Skip to content

Parkfuchs 2.0.0

Choose a tag to compare

@DominicWrege DominicWrege released this 10 Sep 22:22
· 39 commits to main since this release

Parkfuchs 2.0.0

This release migrates the website from Next.js to TanStack Start and modernizes the toolchain.

Highlights

  • Framework migration: Next.js App Router → TanStack Start 1.168 (TanStack Router + Vite + Nitro), restructured into src/.
  • Server functions: all server actions now use createServerFn (src/db/*.functions.ts), split from the PocketBase logic in *.server.ts.
  • Typed contracts: GET /api/city responses are validated with zod; the typed HTTP client validates the wire format at runtime (no any/as).
  • Tooling: pnpm replaces npm, ESLint 10 with @tanstack/eslint-config, path alias @/* for all imports.
  • Nix: rewritten flake.nix (pnpm build with fetchPnpmDeps + pnpmConfigHook, dev shell) and an updated services.parkfuchs NixOS module; Docker setup removed.
  • Fixes: number input in the report dialog was impossible to edit (validation fight), green focus rings, geolocation env loading, hydration warnings caused by browser extensions.

Breaking

  • Runtime now reads env vars from .env via Vite (TOMTOM_KEY, DB_HOST); in production the NixOS module or process environment provides them.
  • GET /api/city wire format is unchanged (children of cityInbox with expand.city), but the endpoint now always serves raw PocketBase records without cityRef.