Guides
Configuration
Two layers: environment (build-time) and Settings (runtime).
The two layers
Environment variables set deploy-time identity — the canonical URL and metadata defaults baked into pages at build time. /admin/settings sets runtime identity — everything a visitor sees rendered: site name, logo text, brand color, social links, pricing copy, footer, and the built-in monetization prices.
| Concern | Where |
|---|---|
| Canonical URL, sitemaps, OG defaults | NEXT_PUBLIC_SITE_URL, NEXT_PUBLIC_SITE_NAME |
| Displayed name, wordmark, tagline | Settings → Identity |
Brand color (CSS --primary) | Settings → Identity |
| Social links, community URL | Settings → Author & links |
| Pricing amount & badge | Settings → Pricing |
| Template checkout URL | Settings → Pricing |
| Fast-track & featured prices | Settings → Monetization |
| GA4 analytics | Settings → gaMeasurementId |
A fresh clone renders correctly before any configuration exists — every setting has a hardcoded fallback (see SITE_SETTINGS_DEFAULTS in apps/web/lib/site-settings.ts).
Environment reference
See Environment variables for the annotated list. The only hard requirements are DATABASE_URL and BETTER_AUTH_SECRET; NEXT_PUBLIC_SITE_URL is required in production.
Pricing and checkout
The /template sales page and the /pricing page read these settings, so you can adjust your own product's price and copy without touching code:
- Pricing amount & badge — the headline price shown on the sales and pricing pages.
- Checkout URL — where the "buy" button points. Leave it empty and the button links to the internal
/pricingpage; set it to an external checkout link (Stripe Payment Link, Polar, Gumroad, etc.) and the button opens that instead. This is how you sell your own copy of the template, or anything else. If you don't resell the template, see Customization for removing the sales pages.
Monetization
The Monetization card controls the built-in Stripe revenue features:
- Fast-track — enable/disable, and the price a visitor pays to jump the submission review queue.
- Featured — enable/disable, the price, and how many days a paid placement stays pinned.
These toggles only take effect when Stripe keys are present in the environment; without them the paid options never render. Full details in Monetization.
Team and roles
/admin/team (owner/admin only) manages accounts:
- owner — everything; created once by the setup wizard, cannot be demoted or removed
- admin — content plus team, settings and API keys
- editor — content only
Public sign-up is disabled by design; every account is created by an owner or admin.