Skip to content

Create a vertical

Terminal window
pnpm create-app <name> --display "<DISPLAY>" --tagline "<TAGLINE>" --keywords "<a,b,c>"

The scaffolder copies the working vertical pattern (apps/fashion is the template): core packages + denpa.config.ts + a home board + a /broadcast smart-TV clock + /api/health.

FileRole
denpa.config.tsidentity, theme, copy, market scope — details
app/layout.tsxreads config.theme
app/page.tsxexport default createForkPage(config)
app/broadcast/page.tsxexport default createForkBroadcastPage(config)
app/api/health/route.ts{ ok: true }

Dependencies: @denpa/{app-config,sdk,types,ui} + next/react; next.config.mjs transpiles @denpa/sdk-core and @denpa/realtime.

Read before trusting the output:

  • The template uses markets: VERTICAL_SCOPES.fashion. The scaffolder cannot rewrite that, so a fresh fork silently inherits the fashion scope until you edit denpa.config.ts.
  • providers is not set — a Kalshi-first fork is a manual edit.
  • The theme stays the template’s until changed.

Always open denpa.config.ts first.

  1. Add { "path": "./apps/<name>" } to tsconfig.references.json.
  2. pnpm install && pnpm --filter @denpa/<name> build until it compiles clean.
  3. Add a <name>) branch to railway.toml (start) and scripts/railway-build.sh (build). See Deploy.

Paste from the repo root:

Fork Denpa into a new vertical called <name> ("<Display Name>", <one-line tagline>).
1. Run: pnpm create-app <name> --display "<DISPLAY>" --tagline "<TAGLINE>" --keywords "<a,b,c>"
2. Edit apps/<name>/denpa.config.ts — distinct theme, markets.includeKeywords for my vertical.
3. Keep app/broadcast wired to the smart-TV clock; scope it with createForkBroadcastPage(config, { categories: [...] }) if my vertical maps to a known clock category.
4. For full parity follow FEATURES.md; writes ONLY through denpa.ai/api/predictions with a dk_ key. Never re-implement scoring, resolution, receipts, or identity.
5. pnpm install && pnpm --filter @denpa/<name> build — fix until clean.
6. Print the Railway deploy steps and env vars (NEXT_PUBLIC_API_URL, PROGRAM_CLOCK_URL).
Do not touch apps/web or denpa.ai's broadcast surface.