All posts
- meta
- engineering
Building a career operating system
Why this site is not a portfolio but a single source of truth — one Supabase backend the public site reads and an admin dashboard writes.
2 min read
This site started as a portfolio and became something more useful: a career operating system.
Everything you see on the public page is read from one Supabase backend. Nothing public is editable in source code — an admin dashboard writes it, the public site reads it.
The repeatable recipe
Every content module is the same five steps:
- A table + RLS in
supabase/migrations - Types in
src/lib/supabase/types.ts - Public + admin reads
- Server-action writes
- Public section + admin CRUD
// Public reads are cookieless and ISR-cacheable.
export async function getPublishedPosts() {
const supabase = createPublicClient();
return supabase.from('blog_posts').select('*');
}
This blog is that recipe applied one more time. More soon.