Application Stack

Declared dependencies

The versions below are the ranges declared in package.json; they are not claims about a currently running process.

LayerRepository declarationRole
SvelteKit@sveltejs/kit ^2.63.0routing, server endpoints, and application build
Sveltesvelte ^5.56.1component runtime and runes
Bits UIbits-ui ^2.19.0headless component behavior and accessibility primitives
Tailwind CSStailwindcss ^4.3.3 and @tailwindcss/vite ^4.3.3utility generation and design tokens
Node adapter@sveltejs/adapter-node ^5.5.7standalone Node deployment output
Vitevite ^8.0.16development and production bundling
TypeScripttypescript ^6.0.3static typing

The direct runtime dependency set is intentionally small: @internationalized/date, @lucide/svelte, bits-ui, clsx, and tailwind-merge. The declared development set contains the SvelteKit, Svelte, Tailwind, TypeScript, Vite, adapter-node, and svelte-check toolchain.

Svelte 5 runes

vite.config.ts passes a compiler option to sveltekit(...) that forces runes mode for project files while leaving packages under node_modules to their own compiler mode:

compilerOptions: {
	// Force runes mode for the project, except for libraries. Can be removed in svelte 6.
	runes: ({ filename }) =>
		filename.split(/[/\\]/).includes('node_modules') ? undefined : true
},
adapter: adapter()

Project components therefore use $props, $state, $derived, snippets, and bindable runes rather than legacy export let and on:event syntax.

Styling boundary

Bits UI supplies headless state, keyboard, focus, form, and ARIA behavior. src/app.css supplies the project palette, typography, radii, animation definitions, base dark surface, and shared btn, card, panel, input, chip, and muted utilities. See Design system for the literal values.

Runtime target

  • Adapter selection is present in vite.config.ts.
  • deploy/bits.service configures the Node process for loopback host 127.0.0.1 and port 51500.
  • deploy/bits.nginx.conf targets that loopback upstream for the application and defines a separate static wiki virtual host.
  • systemd and port status: verified. bits.service is enabled and active, runs as loca, and listens only on 127.0.0.1:51500.
  • Reverse proxy and TLS status: verified. nginx -t passed, both public hosts returned 200 over HTTPS, and their shared Let’s Encrypt certificate expires on 2026-11-28.

See Operations for the production receipts.


loca.zone · bits.loca.zone · Svelte · Bits UI