A modern, ultra-minimalistic dark-themed landing page built with Next.js 14, TypeScript, Tailwind CSS, and shadcn/ui components.
- 🎨 Dark theme with stunning gradient effects
- ⚡ Lightning-fast performance with Next.js 14
- 🌊 Smooth scroll animations using Framer Motion
- 🎭 Beautiful UI components from shadcn/ui
- 📱 Fully responsive design
- 🎯 SEO optimized
- ♿ Accessible components
- 🎨 Custom animations and transitions
First, install the dependencies:
npm installThen, run the development server:
npm run devOpen http://localhost:3000 with your browser to see the result.
The waitlist form posts to a backend endpoint that writes unique email addresses to a Google Sheet. Configure the following environment variables in a .env.local file:
NEXT_PUBLIC_BACKEND_URL— base URL for the waitlist backend (usehttp://localhost:3000/apiwhen relying on the built-in route handler).GOOGLE_SERVICE_ACCOUNT_EMAIL— service account email with access to the target sheet.GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY— private key for the service account (wrap the key in double quotes and replace literal newlines with\n).GOOGLE_SHEETS_SPREADSHEET_ID— the spreadsheet ID from the Google Sheets URL.GOOGLE_SHEETS_SHEET_NAME(optional) — sheet tab name; defaults toWaitlist Prism.GOOGLE_SHEETS_WAITLIST_RANGE(optional) — range used for storing emails; defaults toA:A.
Ensure the linked spreadsheet grants edit access to the configured service account.
- Framework: Next.js 14
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Animations: Framer Motion
- Icons: Lucide React
├── app/
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Landing page
│ └── globals.css # Global styles
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── scroll-reveal.tsx
│ ├── feature-card.tsx
│ ├── animated-gradient-text.tsx
│ ├── floating-orb.tsx
│ ├── parallax-section.tsx
│ ├── testimonial-card.tsx
│ └── stat-card.tsx
└── lib/
└── utils.ts # Utility functions
Edit tailwind.config.ts to customize the color scheme.
Edit app/page.tsx to update the landing page content.
All custom components are in the components/ directory and can be easily modified.
npm run build
npm startMIT