Docs
Everything you
need to know.
AstroStack templates are standard Astro 5 projects. No lock-in, no proprietary abstractions. This page covers setup, integrations, and deployment.
01 — Getting Started
Up and running in minutes.
AstroStack templates are Fullstack Astro projects. Free templates are public GitHub repositories you can clone. Paid templates are downloadable ZIP files. No scaffolding tools or proprietary CLIs.
git clone <template-url> my-project For free templates: clone from GitHub. For paid templates: download the ZIP and unzip into your project folder.
cd my-project && npm install Install all dependencies
cp .env.example .env Copy and fill in your API keys
npm run dev Start the development server on :4321
02 — Project Structure
What's inside the box.
All templates follow the same folder layout. All editable code lives in `src/`. Paid ZIP templates include the same structure, just downloaded locally instead of cloned.
03 — Environment Variables
Keys you'll need.
Each template ships with a `.env.example` file. Copy it to `.env` and fill in your values before running the dev server.
All templates
SITE_URL https://yourdomain.com Your deployed domain. No trailing slash.
Stripe — Paid Templates Only
STRIPE_SECRET_KEY sk_live_... Stripe dashboard → Developers → API keys
STRIPE_WEBHOOK_SECRET whsec_... Stripe dashboard → Developers → Webhooks
STRIPE_PRICE_* price_... One ID per product. Create in Stripe → Products.
Supabase — Paid Templates Only
SUPABASE_URL https://xxx.supabase.co Project URL from Supabase dashboard
SUPABASE_ANON_KEY eyJ... Public anon key — safe to expose client-side
SUPABASE_SERVICE_ROLE_KEY eyJ... Server-only. Never expose to the browser.
Appwrite — Paid Templates Only
APPWRITE_ENDPOINT https://cloud.appwrite.io/v1 Your Appwrite endpoint. Cloud or self-hosted.
APPWRITE_PROJECT_ID your-project-id Found in Appwrite console → Settings
APPWRITE_API_KEY your-api-key Server-only. Create in Appwrite → API Keys.
Clerk — Free & Paid Templates
PUBLISHABLE_KEY pk_live_... Publishable key from Clerk dashboard
SECRET_KEY sk_live_... Server-only secret key
Puter.js — Paid Templates Only
PUTER_APP_ID your-app-id App ID from puter.com. Free tier available.
04 — Stripe Setup
Accepting payments.
Paid templates that collect payments use Stripe Checkout. Free templates do not require Stripe.
Create a product
Stripe dashboard → Products → Add product. Set a one-time price. Copy the price_xxx ID.
Add price IDs to .env
Paste each price_xxx into the corresponding STRIPE_PRICE_* variable in your .env.
Register the webhook
Stripe → Developers → Webhooks → Add endpoint. URL: https://yourdomain.com/api/webhook. Events: checkout.session.completed, payment_intent.payment_failed.
Test locally
stripe listen --forward-to localhost:4321/api/webhook — gives you a local STRIPE_WEBHOOK_SECRET for dev.
Go live
Swap test keys for live keys in production. Update the webhook endpoint to your live URL.
05 — Deployment
Ship it.
Templates with API routes require server-side rendering. Set output to 'server' or 'hybrid' in astro.config.ts and install the adapter for your host.
Cloudflare
npx astro add cloudflare Edge runtime. Fast globally.
Netlify
npx astro add netlify Add netlify.toml if needed.
Vercel
npx astro add vercel Recommended. Zero config.
Node
npx astro add node Self-hosted. Set mode: 'standalone'.
06 — License
One purchase. Yours forever.
All templates are sold under a single-use commercial license. Free templates from GitHub are MIT licensed. Paid templates are one-time commercial licenses.
- ✓ Use in a single commercial or personal project
- ✓ Modify and extend the code freely
- ✓ Deploy to production indefinitely
- ✓ Use across local, staging, and production for the same project
- ✕ Resell, sublicense, or redistribute the source code
- ✕ Use the same purchase across multiple unrelated projects
- ✕ Claim the template as your own original work
Questions?
If anything here is unclear or your situation isn't covered, reach out before purchasing.
petitpoisdev@gmail.com