Skip to content

Technische Stack

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Gebruiker β”‚
β”‚ (browser / mobiel) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Frontend App β”‚
β”‚ Vite + React 19 + Zustand 5 β”‚
β”‚ Cloudflare Pages β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Hono API β”‚ β”‚ Externe APIs β”‚
β”‚ CF Workers β”‚ β”‚ - Sentoo β”‚
β”‚ β”‚ β”‚ - Resend β”‚
β”‚ Supabase β”‚ β”‚ - WhatsApp (v1.1)β”‚
β”‚ - PostgreSQL β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ - Auth β”‚
β”‚ - Storage β”‚
β”‚ - pg_cron β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
ComponentKeuze
FrameworkVite 6 + React 19
Data fetchingTanstack Query
State managementZustand 5
FormulierenReact Hook Form + Zod
UI componentenshadcn/ui
Datumsdate-fns
HostingCloudflare Pages
i18nreact-i18next
StylingTailwind CSS
ComponentKeuze
FrameworkHono op Cloudflare Workers
ValidatieZod
AuthSupabase JWT verificatie
PDF generatieForme PDF (WASM)
ComponentKeuze
DatabaseSupabase (PostgreSQL)
AuthSupabase Auth
Scheduled jobsSupabase pg_cron
BestandsopslagSupabase Storage
ComponentKeuze
Betalen (lokaal)Sentoo A2A
Betalen (kaart)Sentoo Cards
EmailResend + React Email
WhatsAppNader te bepalen (v1.1)
ComponentKeuze
App hostingCloudflare Pages
API hostingCloudflare Workers
CDNCloudflare (ingebouwd)
DNSCloudflare
Source controlGitHub
CI/CDGitHub Actions
Monorepopnpm workspaces
Error monitoringSentry
ComponentKeuze
Docs platformAstro Starlight
Docs hostingCloudflare Pages

Vite + React. Snelle development (HMR < 50ms), groot ecosysteem, SPA-model past bij een ingelogde applicatie waar SSR geen meerwaarde biedt.

Hono op Cloudflare Workers. Lichtgewicht, type-safe API framework. Draait op de edge met lage latency. Scheidt business logic van de frontend. Handelt webhooks (Sentoo), facturen en notificaties server-side af.

Forme PDF. Rust/WASM PDF engine die native draait op Cloudflare Workers. React-gebaseerde templates met Hono integratie (@formepdf/hono). Geen headless browser nodig, rendering in milliseconden. Gebruikt voor factuur-PDFs en concept-facturen.

Tanstack Query. Data fetching met ingebouwde caching, optimistic updates en devtools. Beter dan SWR voor apps met veel CRUD-operaties (boekingen, honden, facturen). Mutations met optimistic UI maken de boekingsflow sneller aanvoelen.

Zustand. Minimale state management zonder boilerplate voor client-side UI state (formulierstappen, modals). Server state wordt afgehandeld door Tanstack Query.

React Hook Form + Zod. De facto standaard voor React formulieren. shadcn/ui is erop gebouwd. Zod resolver voor type-safe validatie die gedeeld wordt met de API. Essentieel voor de complexe onboarding (3 stappen) en boekingsflow (5 stappen).

shadcn/ui. Copy-paste component library op Tailwind. Geeft forms, tables, dialogs, calendars en date pickers zonder externe dependency. Ideaal voor admin panel en klantportaal.

date-fns. Lichtgewicht, tree-shakeable date library. Importeer alleen de functies die je gebruikt. Heeft NL, EN en ES locales ingebouwd. Nodig voor openingstijden validatie, boarding dagentelling, vaccinatie-expiry en factuurdata.

React Email. React componenten voor email templates. Zelfde technologie als de app, herbruikbaar voor factuur-templates en notificaties. Integreert met Resend.

Supabase. Volledig geintegreerde backend met database, auth, storage en realtime. RLS policies zorgen voor veilige data-isolatie per gebruiker. pg_cron voor geplande taken (maandfacturen).

Cloudflare Pages + Workers. Snelle global deployment, gratis SSL, ingebouwde CDN. App op Pages, API op Workers. Aruba valt buiten EU maar Cloudflare biedt lage latency via Caribbean PoPs.

Sentry. Error monitoring en performance tracking. Essentieel voor een app die betalingen verwerkt. Als een Sentoo webhook faalt of een factuur niet gegenereerd wordt, moet je dat direct weten. Gratis tier: 5K events/maand.

pnpm workspaces. Monorepo met gedeelde types en utilities tussen app, API en docs. Een repo, consistente tooling.

Sentoo. De enige volledige betaaloplossing voor lokale Arubaanse banken. 1% transactiekosten met max AWG 1,50. REST API met webhooks.

Resend + React Email. Developer-vriendelijke email API met React-based templates. Zelfde componenten herbruikbaar voor factuur-PDFs en email-notificaties.