A lightweight e-commerce platform built for small craft businesses. Includes a customer-facing storefront and a separate admin dashboard, backed by SQL Server (Azure SQL compatible) and Stripe.
- Framework: Next.js 14 (App Router)
- Database: SQL Server via Prisma
- Payments: Stripe
- Styling: Tailwind CSS
- Monorepo: Three packages —
site/,admin/,shared/
├── site/ → Customer storefront (port 3000)
├── admin/ → Admin dashboard (port 3001)
├── shared/ → Prisma schema, DB utilities, shared types
└── deploy/ → Azure Container Apps deployment (Bicep)
git clone <your-repo-url>
cd <repo>
npm installCopy the example env files and fill in your values:
cp site/.env.example site/.env
cp admin/.env.example admin/.env
cp shared/.env.example shared/.envEdit each .env with your Stripe keys, site name, domain, etc.
cd shared
npx prisma migrate dev
cd ..# In separate terminals:
cd site && npm run dev # → http://localhost:3000
cd admin && npm run dev # → http://localhost:3001All branding is driven by environment variables — no code changes needed:
| Variable | Description |
|---|---|
SITE_NAME |
Your store name |
SITE_URL |
Public URL of the storefront |
STRIPE_SECRET_KEY |
Stripe API secret key |
ADMIN_PASSWORD |
Password for admin access |
INSTAGRAM_HANDLE |
Your Instagram username |
CONTACT_EMAIL |
Store contact email |
Client-side variables use the NEXT_PUBLIC_ prefix (e.g., NEXT_PUBLIC_SITE_URL).
See deploy/README.md for Azure Container Apps deployment instructions.