Skip to content

psousa.dev=#selectbiofromauthor;

I build the content infrastructure behind large multilingual websites, and tools for data that outgrew its container.

select*frompostswherefeatured= true;

2024-01-13

SSR CSS modules as a library author · docs

Rollup-compiled CSS modules add a client-side script, raising concerns for server-side rendering. Navigate this quirk for seamless integration in both environments

select*frompostsorder bypub_datedesc;

2026-07-07

The content store, part 4: the fun stuff · storyblok · architecture · content-store

Once your CMS content lives in a real database, weird doors open: ranking components by fold position, generating your imports from usage data, and CI builds that never sync. Final part of the series.

2026-07-07

The content store, part 3: the read side · storyblok · architecture · content-store

Serving CMS content from a local database sounds trivial until stories start referencing each other. Relations, cycles, and why dev mode reads differently than production. Part 3 of a series.

2026-07-07

The content store, part 2: keeping a copy you can trust · storyblok · architecture · content-store

Syncing content into SQLite is easy. Keeping that copy honest is the hard part: redundant writes, locales that disagree, and syncs that fail halfway. Part 2 of a series.

-- more at /posts →

select*fromprojects;

go · tui

onda

Terminal radio for wandering the world's airwaves. Privacy-first, offline search, no telemetry.

typescript · extension

JSON Bonsai

Browser extension that keeps 100k-node JSON payloads navigable. Tree, table, schema, and query views.

go · cli

lnpm

Local npm package development without the reinstall loop. A faster yalc.