Modern business website built with Next.js 15, React 19, Tailwind CSS, and Radix UI.
- Main (branch:
main
): devstract.vercel.app - Variant 2 – Hero v2 (branch:
hero-2
): devstract-hero2.vercel.app
- App Router (Next.js 15) with SEO-friendly pages
- Responsive UI with Tailwind CSS and Radix primitives
- Two hero variants (main and hero-2)
- Contact form via EmailJS (
/api/send-email
) - Newsletter subscribe via MongoDB (
/api/subscribe
) - Analytics and performance: Vercel Analytics + Speed Insights
- Auto sitemap/robots with
next-sitemap
- Next.js 15, React 19
- Tailwind CSS, class-variance-authority, tailwind-merge
- Radix UI, lucide-react, framer-motion
- MongoDB (serverless driver)
- Deployed on Vercel
Prereqs: Node 18+ and pnpm (recommended).
- Install deps
pnpm install
- Add environment variables (create
.env.local
at project root) - Run dev server
pnpm dev
(http://localhost:3000)
Add the following to .env.local
(do not commit secrets):
# EmailJS (Contact form)
EMAILJS_SERVICE_ID=your_service_id
EMAILJS_TEMPLATE_ID=your_template_id
EMAILJS_PUBLIC_KEY=your_public_key
# Optional private key if your EmailJS template requires it
EMAILJS_PRIVATE_KEY=your_private_key
# MongoDB (Newsletter subscribe)
MONGODB_URI=mongodb+srv://user:[email protected]
# Optional (defaults to "testing")
MONGODB_DB=devstract
APIs used:
POST /api/send-email
→ sends contact messages via EmailJSPOST /api/subscribe
→ saves email tosubscribers
collection
pnpm dev
→ Start dev serverpnpm build
→ Build for productionpnpm start
→ Start production serverpnpm lint
→ Lintpnpm postbuild
→ Generate sitemap/robots vianext-sitemap
app/
– App Router pages and API routesapi/send-email/route.ts
– EmailJS contact endpointapi/subscribe/route.ts
– MongoDB subscribe endpoint
components/
– UI and section componentspublic/
– Static assetstailwind.config.ts
– Tailwind setup
next-sitemap.config.js
controls sitemap generation@vercel/analytics
and@vercel/speed-insights
enabled inapp/layout.tsx
The hero-2
branch ships an alternative hero design. See it live at devstract-hero2.vercel.app.
Vercel is recommended. Set the env vars above in the Vercel project settings for each environment (Preview/Production). The build command is pnpm build
and output is handled by Next.js.
GNU – see LICENSE
.