Zoeken

Zoek in Kavel...

Documentatiemenu

Filosofie

Kavel is met opzet uitgesproken. Het kiest één stack en één manier om dingen te doen, zodat je je tijd besteedt aan het bouwen van features in plaats van aan het kiezen en aan elkaar knopen van tools.

Eén manier om dingen te doen

De meeste starter kits geven je een stapel opties en laten je ze zelf samenstellen. Kavel doet het omgekeerde. Het maakt de architectuurkeuzes vooraf en houdt zich eraan, zodat de modules op elkaar aansluiten en er één voor de hand liggende manier is om te bouwen. Minder beslissingen en minder lijmcode betekenen dat je sneller live gaat.

De keuzes die we maakten

  • Eén host. Alles richt zich op Cloudflare Workers en D1. Geen adapterlaag en geen kleinste gemene deler over clouds heen.
  • Type-veilige RPC. De webapp roept de API aan via oRPC, dus types lopen van begin tot eind door. Geen REST-endpoints om met de hand te schrijven en geen schema drift.
  • Serverstate, geen store. TanStack Query beheert de serverdata, terwijl React-state en de URL de rest beheren. Er is geen globale client-store om te onderhouden.
  • Utility-CSS. Tailwind plus Base UI-primitives die je bezit en herstyled. Geen CSS-in-JS-runtime en geen dichtgetimmerde componentenbibliotheek.
  • Eén toolchain. Bun, Turbo en Biome regelen installeren, bouwen en linten en formatteren. Eén snelle set-up in plaats van een stapel configs.
  • SQL aan de edge. Drizzle op D1, dat SQLite is. Je schrijft een schema en genereert migraties, en past nooit met de hand SQL aan.

Wat we bewust weglieten

  • Geen REST- of GraphQL-laag. oRPC geeft al types van begin tot eind. Een tweede API-stijl zou gewoon nog een contract zijn dat je met de hand onderhoudt.
  • Geen globale state-bibliotheek. Redux, Zustand en consorten lossen een probleem op dat server-state-caching en de URL grotendeels wegnemen. Voeg er pas een toe als er een echte behoefte opduikt.
  • Geen CSS-in-JS. Het brengt een runtime mee en bemoeilijkt server-rendering. Tailwind dekt hetzelfde af zonder dat alles.
  • Geen multi-cloud-abstractie. Portabiliteitslagen kosten snelheid en eenvoud. Kiezen voor één platform houdt de code direct en cold starts bijna nul.

Uitgesproken, niet vastgezet

Je bezit de volledige broncode, dus elk van deze keuzes kun je zelf veranderen. Het punt is dat de standaardkeuzes goed genoeg zijn dat het zelden nodig is.

Voor wie het is

Kavel past bij teams en solobouwers die een product willen opleveren, niet tools willen evalueren. Wil je een leeg canvas met alle opties open, dan past een neutralere starter beter. Wil je sterke standaardkeuzes en een duidelijk pad van nul naar live, dan is dit daarvoor gemaakt.