Skip to Content
StandardsGetting Started

Getting Started

Everything you need to set up a local development environment for Frequency.

Prerequisites

Node.js 24+

Check: node -v

pnpm 9+

corepack enable && corepack prepare pnpm@latest —activate

Supabase CLI

brew install supabase/tap/supabase

Claude Code CLI

For AI-assisted development with /freq agents

Clone & Install

# Clone with submodules (includes AI Drivers) git clone --recurse-submodules https://github.com/FrequencyAds/frequency-sites.git cd frequency-sites # Install all workspace dependencies pnpm install

Environment Setup

Each app needs its own .env.local with Supabase credentials. All apps in the monorepo share the same Supabase project:

cp .env.example apps/private/standards/.env.local cp .env.example apps/private/template-private/.env.local cp .env.example apps/public/brand/.env.local

Edit each .env.local and add your Supabase credentials:

NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key

Note: .env.local files should be identical across apps unless there’s a specific reason to differ. Next.js loads .env.local from the app directory, not the monorepo root — so each app needs its own copy.

Run a Dev Server

# Run a specific app pnpm dev --filter=@frequencyads/standards # Or use the convenience scripts pnpm template-private # Private template pnpm template-public # Public template pnpm template-brand # Brand site # Run ALL apps simultaneously pnpm dev

Verify Your Setup

# Type-check all packages (runs via Turborepo) pnpm type-check # Lint all packages pnpm lint # Full production build pnpm build

If all three commands pass, your environment is correctly configured.

Development Workflow

  1. Create a branch for your work
  2. Run the dev server for the app you’re working on
  3. Make changes — the dev server hot-reloads
  4. Type-check with pnpm type-check before committing
  5. Commit — pre-commit hooks (Husky + lint-staged) run lint + format automatically
  6. Push — pre-push hooks run type-check
  7. Open a PR — quality gates (VALIDITUS, GATED) run automatically

Adding a New App

To create a new documentation site in the monorepo:

  1. Copy a template: cp -r apps/private/template-private apps/private/my-app
  2. Update package.json — change name to @frequencyads/my-app
  3. Update src/app/layout.tsx — change metadata (title, description)
  4. Update src/app/navbar.tsx — change branding text
  5. Copy .env.local from an existing app
  6. Run pnpm install from the monorepo root
  7. Start development: pnpm dev --filter=@frequencyads/my-app

Each new app gets its own Vercel project for deployment. See Deployment.

Troubleshooting

MantineProvider was not found

Multiple copies of @mantine/core are installed (version mismatch). Fix by cleaning and reinstalling:

rm -rf node_modules apps/*/node_modules packages/*/node_modules pnpm-lock.yaml pnpm install

Auth redirect loop

Check that your .env.local has the correct Supabase URL and anon key matching your Supabase project.

Missing component styles

Make sure @frequencyads/components/style.css is imported in your root layout.tsx:

import '@frequencyads/components/style.css';

pnpm install fails

  1. Ensure Node 24+: node --version
  2. Enable corepack: corepack enable
  3. Clear caches: pnpm store prune && rm -rf node_modules && pnpm install

Next Steps

Last updated on