Naar de inhoud

Werk2026

Een finance-contentplatform, in productie

Marketingsite, nieuwsbrief en nieuwsfeed, met een ledengedeelte achter een Stripe-betaalmuur. Postgres met default-deny row-level security, wachtwoordloze authenticatie en een news-ingestion-pipeline die de feed vult. Het securitymodel wordt gedekt door een SQL-testsuite tegen een wegwerpdatabase.

Stack
Next.js 16SupabaseStripeResendVercel

Drie producten op één database: een publieke marketingsite, een nieuwsbrief en een nieuwsfeed met samengestelde items. Daarachter een ledengedeelte achter een Stripe-betaalmuur.

Securitymodel

Postgres staat op deny-by-default. Geen tabel is leesbaar tot een policy dat toestaat. Toegang die een grens moet oversteken loopt via security-definer-functies in plaats van via een ruimere policy. Authenticatie is wachtwoordloos.

Het model wordt gedekt door een SQL-testsuite tegen een wegwerp-Postgres die controleert wat elke rol wel en niet mag zien. Een securitymodel dat alleen gelezen is, is niet geverifieerd.

Contentpipeline

Een geplande ingestion-taak haalt items op uit nieuws- en toezichtbronnen, normaliseert wat er binnenkomt en zet het klaar voor review voordat het de feed bereikt. Nieuwsbriefverzending loopt via Resend.

Beheer

Uitgerold op Vercel met auto-deploy vanaf main, DNS en e-mailrouting op Cloudflare en toegankelijkheidsaudits inclusief de contrastberekeningen waarop ze steunen.