Skip to content

The Forma starter

Getting started

From a source release to your first product change, with a clear path for setup, verification, and updates.

1. Keep a clean starting point

Open your buyer library to find the releases you have acquired. Keep the release notes, source revision, and checksum supplied with your download. Extract the source into an empty directory, preserve the included license, and put your copy in your own version control.

2. Run the first page

Install the Bun, Node.js, uv, and Python versions pinned in the release. The README and version files are the source of truth for that release. From the repository root, run bun run setup:check, then bun run setup --name "Acme", then bun run dev:site.

Open http://localhost:4321. The public website uses local content and needs no database, identity provider, CMS, Stripe account, or email service. Setup creates missing local configuration and preserves existing settings.

3. Verify the starting source

Stop the development server before running the browser checks, which use the same ports. Run bun run playwright install chromium, followed by bun run check:sample. This checks formatting, types, tests, builds, browser behavior, and deployment packaging with the included sample configuration.

4. Make one product change

Start with project.json for the display name and packages/content/src/sample.ts for public copy. Public pages live in apps/site; application routes live in apps/product; protected operations live in apps/api. Shared colors and native control styles live in packages/design-system. The buyer-onboarding guide inside docs maps these files in more detail.

5. Select the integrations you need

Use the guides in extensions to configure accounts, workspaces, billing, email, or Sanity. Run the documented migrations with the migration credential before using database features. Keep identity, Stripe, database, and SMTP secrets in their designated server environments. Optional examples become part of your product when you select and configure them.

6. Give your agent the same context

Read AGENTS.md, README.md, and the guides beside the affected app. Inspect current changes before editing. Implement the smallest complete change for my goal, run the documented checks, and report actual results. My first change is [your product change], and my hosting target is [your target].

Replace the bracketed text with your own goal. As your product changes, update the agent instructions and the relevant guides so the repository describes your application.

7. Deploy and update deliberately

Follow docs/deployment.md to choose Cloudflare, conventional containers, or the Docker and Caddy self-hosting setup. Before release, use docs/production.md to verify the selected providers, HTTPS origins, migrations, backups, and operational settings.

To adopt another source release, commit your current work, read the new release notes, compare the changes on a branch, and rerun the checks. A new download does not merge itself into your customized application. Releases already in your library remain available after subscription cancellation.

Prepare a useful support report

Include the source revision, operating system, tool versions, selected integrations, exact command, and expected and actual behavior. A small reproduction and a sanitized error or request ID help explain the issue. Leave credentials, customer data, and authentication URLs out of the report.