Next.js 16 app for stellar_card.com. Marketing site, API docs, and admin dashboard.
npm run dev -w web # start dev server on :3000
npm run build -w web # production build
npm run typecheck -w web # TypeScript check
npm run lint # ESLint (run from monorepo root)| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_API_BASE_URL |
Production only | Backend API base URL, e.g. https://api.stellar_card.com |
In development the dashboard defaults to http://localhost:4000 for its API base.
app/
page.tsx Marketing landing page
docs/ HTTP API reference + quickstart
dashboard/ Operator dashboard (email OTP auth, redirects to /overview)
pricing/ company/ Marketing pages (careers, press, security, etc.)
blog/ changelog/ Editorial surface + RSS feed
legal/ privacy/ terms/ Legal pages
components/ Shared UI components
globals.css Global styles + brand CSS variables
layout.tsx Root layout: fonts, metadata template, JSON-LD
sitemap.ts robots.ts manifest.ts opengraph-image.tsx
public/
skill.md Agent-facing setup guide
llms.txt Machine-readable service index
logo-light.svg Brand logo (dark-bg variant)
- Uses
next/font/googlefor Fraunces (display), IBM Plex Sans (body), and IBM Plex Mono (data). The build downloads font files from Google Fonts at build time — ensure outbound HTTPS access is available in your build environment. - The dashboard authenticates via email OTP (6-digit code), session cookie is
sameSite: strict. The marketing surface is fully public. - Next.js 16 file conventions are in force: middleware lives in
proxy.tsat the web root (the oldmiddleware.tsname is deprecated and logs a migration notice in the dev server).