Skip to content

Try it locally ​

The portal runs entirely on your machine, with the real sign-in flow. No Cloudflare account, no real email, no Docker.

Run ​

Node.js 22 or later, from apps/theme-hub:

sh
npm ci
(cd ../../packages/core && npm ci)
npm run db:local
npm run dev

npm run dev builds the interface and then starts the Worker on http://localhost:8787.

Sign in ​

The interface opens in English (default language); the account menu lets you switch to French, Ukrainian or Arabic.

  1. Open http://localhost:8787.
  2. Enter [email protected] and request a code.
  3. Click Read the local test code (“Lire le code de test local” in French), then sign in.

Only the email delivery is replaced by a local inbox. This inbox exists only in the local environment, on a localhost address. Locally, [email protected] is a platform administrator.

Try a theme ​

  1. Create an organization.
  2. New theme: import theme/DWA.css (repository root). The validator and preview appear; the reference theme passes without errors.
  3. Save the draft, then publish.
  4. In VS Code, run DWA : se connecter au portail (connect to the portal) with http://localhost:8787, then DWA : choisir un thème d’organisation (choose an organization theme).

Local data is in apps/theme-hub/.wrangler/, ignored by Git.

Never deploy the local environment

The local environment uses a public development secret. No deployment is configured for now; it will be covered by a dedicated procedure.

Architecture ​

ComponentServiceRole
API and interfaceCloudflare Workers + Static AssetsWeb API, extensions API, React interface served by the Worker
DatabaseCloudflare D1 (SQLite)Organizations, members, groups, themes, versions, reports, sessions, activity log
FilesCloudflare R2 or organization storagePublished CSS
AuthenticationBetter Auth, in the WorkerEmail codes, SSO OIDC, sessions
AssistantClaude API (optional)Fixes proposed in the editor

No permanent server and no PostgreSQL database: locally, D1 and R2 are simulated by Miniflare. The tests also simulate S3, Azure, the OIDC provider and the Claude API: no request goes out to a remote service.

Documentation of the DWA Core v1 language, the VS Code extension, the CLI and the theme portal.