norns-app

norns-app

The starter template — a single page that exercises the whole runtime in about sixty lines you can read in one sitting and rewrite in two.

bun create human-synthesis/norns-app my-app
cd my-app
bun install
bun run dev          # http://localhost:5173

bun create clones the public repository human-synthesis/norns-app and runs bun install, which resolves @human-synthesis/norns, norns-core (through norns), norns-ui, norns-tron, the SvelteKit and Svelte peers, Tailwind v4 and valibot from npm. You never see the framework's forks.

#Stack

Svelte 5, SvelteKit 2, Pug, Civet, Tailwind CSS v4, Vite, bun, the three Norns packages, and valibot for validation.

#Commands

bun run dev          # dev server
bun run build        # production build
bun run preview      # preview the build
bun run lint         # norns lint: Civet + Pug pitfall scan
bun run check        # norns check: preprocess + compile every .n / .c through svelte.config.js
bun test             # tests/*.test.js — the feature through the DI container
bun run build        # full Vite build
bunx norns diag src/lib/norns/messages/server/service.c
bun run check:svelte # svelte-check over the .js / .ts / .svelte parts only

Run them in that order before calling a change done; norns check, not svelte-check, is the pass signal for Norns code. The template ships one bun test as the pattern for testing a feature through the container (a small bun plugin in tests/civet-loader.js compiles .c files on import). The framework's own suites live in the framework repositories.

  • Walkthrough — every file in the template and what to do next.