svelte-effect-nix-template Svelte Themes

Svelte Effect Nix Template

Svelte + Effect + Nix template. Reproducible builds, tests, dev environment, formatting.

Svelte Effect Nix Template

This is a Nix-powered Svelte template with Effect integration. It builds an app fully reproducibly, including tests.

To quickly get started with this template, run:

mkdir project
cd project
nix flake init -t github:cor/svelte-effect-nix-template
git init

Building and Running

Building the App

To build the app, run:

nix build .#app -L

This will:

  1. Install all dependencies
  2. Build the application
  3. Run tests using vitest
  4. Output the build artifact to ./result

Previewing the App

To preview the built app in a browser, run:

nix run .#app-preview

This will:

  1. Build the app if it hasn't been built already
  2. Start a local server using miniserve
  3. Serve the app on http://localhost:8080

The preview server uses SPA mode, so client-side routing will work correctly.

Development

Development Server

To start the development server with hot reloading:

nix run .#app-dev

This will install dependencies and start the Svelte development server.

Development Shell

To enter a development shell with all necessary tools:

nix develop

This provides:

  • Node.js and pnpm
  • TypeScript language server
  • Svelte language server
  • Tailwind CSS language server
  • Other development tools

Formatting Code

Format all code in the project with:

nix fmt

This project uses treefmt to orchestrate multiple formatters and linters through a single command. The configuration is defined in nix/treefmt.nix.

Formatters

Tool File Types
Biome TypeScript, JavaScript, CSS, JSON, JSONC, TSX, JSX, GraphQL, HTML, Svelte, Astro
nixfmt-rfc-style Nix
taplo TOML
yamlfmt YAML
mdformat Markdown

Linters

Tool Purpose
Biome JavaScript/TypeScript linting with recommended rules
statix Nix linting
deadnix Detect unused Nix code
shellcheck Shell script analysis

Top categories

Loading Svelte Themes