A high-end, single-page application for pre-ordering serialized titanium RC chassis units. Built with Next.js, TypeScript, and Stripe integration.
- Live Inventory Counter: Real-time display of remaining units (X/50)
- Interactive Color Selector: Choose from Titanium Purple, Raw Machined, or Space Black finishes
- Stripe Checkout Integration: Secure payment processing with metadata for finish selection
- Responsive Design: Premium mobile-first design with Tailwind CSS
- Smooth Scrolling: Single-page application with section navigation
- Mock Inventory System: Development-ready with simulated inventory decrements
- Next.js 15 with App Router
- TypeScript for type safety
- Tailwind CSS for styling
- Stripe for payments
- React Context API for state management
- Inter Font for professional typography
-
Clone and navigate to the project:
cd grc-chassis -
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.localfile with:# Stripe Configuration NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_your_publishable_key_here STRIPE_SECRET_KEY=sk_test_your_secret_key_here # Product Configuration STRIPE_PRODUCT_ID=prod_your_product_id_here STRIPE_PRICE_ID=price_your_price_id_here # Site Configuration NEXT_PUBLIC_SITE_URL=http://localhost:3000
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser
- Background: Deep Space Grey (
#1A1A1A) - Accent: Anodized Purple Gradient (
#7F00FFto#4A00E0) - Text: Crisp White (
#FFFFFF) and Light Grey (#E5E5E5)
- Primary Font: Inter (engineered, confident feel)
- Headlines: Bold, gradient text effects
- Body: Clean, readable sans-serif
- Tone: Confident, precise, exclusive
- Tagline: "Perfection is Non-Negotiable"
- Target: High-end RC enthusiasts who value quality
- Create a new product in your Stripe Dashboard
- Set inventory tracking to "Tracked" with quantity: 50
- Note the Product ID and Price ID for environment variables
- Configure success/cancel URLs in your Stripe settings
- Replace placeholder images in components with actual product renders
- Update company details in
FooterSection.tsx - Modify pricing in
checkout/route.ts - Customize finish options in
ConversionSection.tsx
- HeroSection: Above-fold hero with live counter and CTA
- ProofSection: Three-module alternating layout showcasing features
- ConversionSection: Interactive color selector and checkout form
- FooterSection: Final value proposition and contact information
/api/inventory: Returns current inventory count/api/checkout: Creates Stripe checkout session with finish metadata
-
Vercel (Recommended):
npm run build vercel --prod
-
Environment Variables:
- Add all
.env.localvariables to your deployment platform - Update
NEXT_PUBLIC_SITE_URLto your production domain
- Add all
-
Stripe Configuration:
- Update webhook URLs in Stripe Dashboard
- Set up production keys for live payments
- Inventory API uses time-based mock data
- Replace with actual Stripe product queries for production
- Checkout creates real Stripe sessions but uses placeholder product data
- Real-time inventory updates via Stripe webhooks
- Image optimization for product renders
- SEO optimization with proper meta tags
- Analytics integration (Google Analytics, etc.)
src/
├── app/
│ ├── api/
│ │ ├── inventory/route.ts # Live inventory count
│ │ └── checkout/route.ts # Stripe checkout session
│ ├── success/page.tsx # Post-purchase confirmation
│ ├── layout.tsx # Root layout with providers
│ └── page.tsx # Main landing page
├── components/
│ ├── HeroSection.tsx # Hero section with CTA
│ ├── ProofSection.tsx # Feature proof modules
│ ├── ConversionSection.tsx # Checkout and color selection
│ └── FooterSection.tsx # Footer and final CTA
└── context/
└── AppContext.tsx # Global state management
The site is designed to convert high-end RC enthusiasts through:
- Scarcity: Limited to 50 serialized units
- Quality: American-made titanium construction
- Exclusivity: Early access to future product releases
- Personalization: Custom engraving service
For questions about setup or customization, refer to the CURSOR_MEMORY.md file for detailed architecture decisions and implementation notes.