diff --git a/package-lock.json b/package-lock.json index 55d4389..59921e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,9 @@ "radix-ui": "^1.4.3", "react": "19.2.3", "react-dom": "19.2.3", - "tailwind-merge": "^3.4.0" + "tailwind-animations": "^1.0.1", + "tailwind-merge": "^3.4.0", + "tailwind-motlib": "^1.0.4" }, "devDependencies": { "@tailwindcss/postcss": "^4", @@ -7371,6 +7373,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tailwind-animations": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tailwind-animations/-/tailwind-animations-1.0.1.tgz", + "integrity": "sha512-5ouCdgfGS4kcyuzRSb/1O3o9f5Akssi7ue46PHfKjvPLMWjtnzmqM8i6ElES3tKVTyhjSaTPfLti7aB7WSxhZg==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": "^4.0.0" + } + }, "node_modules/tailwind-merge": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", @@ -7381,11 +7392,16 @@ "url": "https://github.com/sponsors/dcastil" } }, + "node_modules/tailwind-motlib": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tailwind-motlib/-/tailwind-motlib-1.0.4.tgz", + "integrity": "sha512-4M80sHBTmXQn/fWo8xZYRDlr8yqLv4ZC2MzpHw8MsGPTbXV75Y3NW518ec3CWSiO3WSEZlhXfOHBKpxEvCuoRw==", + "license": "ISC" + }, "node_modules/tailwindcss": { "version": "4.1.18", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", - "dev": true, "license": "MIT" }, "node_modules/tapable": { diff --git a/package.json b/package.json index e931373..8b3d99b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,9 @@ "radix-ui": "^1.4.3", "react": "19.2.3", "react-dom": "19.2.3", - "tailwind-merge": "^3.4.0" + "tailwind-animations": "^1.0.1", + "tailwind-merge": "^3.4.0", + "tailwind-motlib": "^1.0.4" }, "devDependencies": { "@tailwindcss/postcss": "^4", diff --git a/src/app/globals.css b/src/app/globals.css index 4db1fb8..5b22053 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,6 +1,9 @@ @import "tailwindcss"; @import "tw-animate-css"; @import "shadcn/tailwind.css"; +@import 'tailwind-animations'; + +@tailwind utilities; @custom-variant dark (&:is(.dark *)); diff --git a/src/app/page.tsx b/src/app/page.tsx index 9b5b65d..fc98459 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,4 +1,16 @@ +"use client"; import Link from "next/link"; +import { Motion, Staggered } from "tailwind-motlib"; +import { + Shield, + Zap, + Brain, + Scan, + BarChart3, + Filter, + Send, + TrendingDown, +} from "lucide-react"; export default function Landing() { return ( @@ -12,25 +24,29 @@ export default function Landing() { {/* Hero */}
-

- Trade memecoins
+

+ Your copilot for
- without trading blind + memecoin trading

-

- Nexa filters noise, intercepts high-rug setups, and executes faster, - so you spend less time guessing and more time surviving. +

+ Catch rugs before they happen, execute trades at Solana + speed, and automate the research pro traders do.

- + @@ -42,103 +58,101 @@ export default function Landing() {
- {/* Live signal strip */} - {/*
-
- 🟢 12 rugs intercepted today - ⚡ Median execution: 420ms - 📉 Top 10 holder risk flagged - 🔍 Bundler detected pre-launch -
-
*/} - - {/* Why Nexa */} + {/* Features */}
-
-
-

Risk-aware by default

-

- Every trade is evaluated against holder concentration, bundlers, - deployer behavior, and liquidity signals, before execution. -

-
- -
-

AI where it matters

-

- No magic predictions. Just automated checks that experienced - traders already do, instantly and consistently. -

-
- -
-

Built for speed

-

- Optimized request batching, Solana-native execution, and Jupiter - routing keep latency low even during peak volume. -

-
-
-
- - {/* Risk interception highlight */} -
-
-

- Nexa can stop you before you buy a rug -

-

- When high-risk patterns are detected, Nexa blocks execution by - default and tells you exactly why. If you still want in, that's your - call. But it won't be blind. -

+
+ + {[ + { + icon: Shield, + title: "Warns You Before Rugs", + desc: "Nexa scans each token for risks like holder concentration, grouped wallets, deployer history, and liquidity issues. You see exactly what's wrong before you trade.", + }, + { + icon: Zap, + title: "Routes Trades Fast", + desc: "Nexa handles batching and Jupiter routing to keep your execution quick when the network is busy. You catch opportunities while they're still there.", + }, + { + icon: Brain, + title: "Does the Research For You", + desc: "Nexa runs wallet analysis, deployer vetting, and liquidity checks on every trade. You skip the manual work and focus on timing.", + }, + ].map(({ icon: Icon, title, desc }, i) => ( + +
+
+
+
+ +
+

{title}

+
+

+ {desc} +

+
+
+
+ ))} +
{/* How it works */}
-

How it works

- -
-
- - 1. Detect - - New pairs, migrations, and liquidity events are tracked in real - time. -
-
- - 2. Analyze - - Risk signals, holder distribution, and deployer behavior are scored. -
-
- - 3. Decide - - AI filters or manual overrides determine execution eligibility. -
-
- - 4. Execute - - Trades are routed through Jupiter with minimal latency. -
-
-
- - {/* Fees & alignment */} -
-
-

- Fees that scale with success + +

+ How Nexa works

-

- Nexa charges a small platform fee on executed trades, with optional - AI and quant features available per-use. No subscriptions. No hidden - incentives. -

+
+ +
+ + {[ + { + icon: Scan, + step: "Watches", + desc: "Tracks new pairs, migrations, and liquidity events in real time.", + }, + { + icon: BarChart3, + step: "Scores", + desc: "Analyzes risk signals, holder distribution, and deployer behavior.", + }, + { + icon: Filter, + step: "Flags", + desc: "Alerts you to risks automatically, or lets you override and trade anyway.", + }, + { + icon: Send, + step: "Routes", + desc: "Executes your trades through Jupiter with minimal latency.", + }, + ].map(({ icon: Icon, step, desc }, i) => ( + +
+
+
+
+ +
+ + {step} + +
+

+ {desc} +

+
+
+
+ ))} +