Dev Notes / Interface thinking

Writing that treats front-end like product design.

Essays, build notes and interface breakdowns focused on motion, systems, dark UI, landing pages and product-facing front-end craft.

Launching All DashAI on WordPress.org: What Changed, What Matters, and Why It Ships Better
Product Launch8 min read

Launching All DashAI on WordPress.org: What Changed, What Matters, and Why It Ships Better

14 articles

Curated selection

Adding Semantic Search to a Blog with Supabase and OpenAI Embeddings
AI EngineeringJune 2026

Adding Semantic Search to a Blog with Supabase and OpenAI Embeddings

A smaller, focused alternative to a full RAG pipeline: let readers search a blog by meaning, not just by keyword.

AISupabaseEmbeddingsSearch
Building a Blog CMS with Next.js Server Actions: A Practical CRUD Walkthrough
Next.jsJune 2026

Building a Blog CMS with Next.js Server Actions: A Practical CRUD Walkthrough

How this very blog's CMS handles create, read, update and delete using Next.js Server Actions and Supabase, without a separate API layer.

Next.jsServer ActionsSupabaseCRUD
Test
WordPressJune 2026

Test

Test

WordPress
Server Components vs Client Components in Next.js: A Decision Framework
Next.jsJune 2026

Server Components vs Client Components in Next.js: A Decision Framework

A short, practical framework for deciding what should be a Server Component, what needs the client, and how to stop guessing.

Next.jsReactServer Components
Launching All DashAI on WordPress.org: What Changed, What Matters, and Why It Ships Better
Product LaunchJune 2026

Launching All DashAI on WordPress.org: What Changed, What Matters, and Why It Ships Better

A practical breakdown of the All DashAI launch on the WordPress.org plugin directory, the product decisions behind version 2.2.0, and what the release means for WordPress teams that need clearer operational visibility.

All DashAIWordPress PluginProduct LaunchObservability
How to Build a Supabase Vector Database for RAG in Next.js Without Making the Architecture Mysterious
AI EngineeringJune 2026

How to Build a Supabase Vector Database for RAG in Next.js Without Making the Architecture Mysterious

A didactic guide to building a practical vector-backed RAG pipeline with Supabase and Next.js, from schema design and ingestion to retrieval and prompt assembly.

SupabaseRAGVector DatabaseNext.js
Running WordPress with Docker Without Making Local Development Fragile
DevOps for WordPressJune 2026

Running WordPress with Docker Without Making Local Development Fragile

A practical guide to what Docker is, why it helps WordPress development, and how to run WordPress locally with containers in a way that stays understandable and repeatable.

DockerWordPressLocal DevelopmentDevOps
Dark Mode Done Right: Theme Switching with React Context and CSS Variables
CSS & StylingJune 2026

Dark Mode Done Right: Theme Switching with React Context and CSS Variables

A simple, reliable pattern for theme toggling that avoids a flash of the wrong theme and keeps the logic in one place.

ReactCSSDark ModeNext.js
CSS Custom Properties in Production: Building a Theme Without a CSS Framework
CSS & StylingJune 2026

CSS Custom Properties in Production: Building a Theme Without a CSS Framework

How a handful of CSS variables can power a full dark and light theme without a styling library doing the work for you.

CSSCSS VariablesThemingDark Mode
Why I Moved This Portfolio's Blog from Static Files to Supabase
Engineering NotesJune 2026

Why I Moved This Portfolio's Blog from Static Files to Supabase

The practical reasons behind migrating this site's blog off static files and into a real CMS backed by Supabase.

SupabaseNext.jsCMSEngineering
Tailwind CSS Without the Mess: Patterns for Keeping Utility Classes Sane at Scale
Tailwind CSSJune 2026

Tailwind CSS Without the Mess: Patterns for Keeping Utility Classes Sane at Scale

Practical conventions for keeping a Tailwind codebase readable once a project grows past a handful of components.

Tailwind CSSCSSFrontend
TypeScript for Real Projects: The Types You Will Actually Use
TypeScriptJune 2026

TypeScript for Real Projects: The Types You Will Actually Use

A grounded look at the TypeScript features that pay off in everyday product code, instead of the exotic type gymnastics tutorials love to show off.

TypeScriptTypesJavaScript
Designing a Full-Text Search Feature in Supabase with Plain Postgres
SupabaseJune 2026

Designing a Full-Text Search Feature in Supabase with Plain Postgres

Before reaching for a dedicated search service, Postgres' own full-text search inside Supabase can cover most blog and content search needs.

SupabasePostgresSearch
A Practical Guide to React Hooks: useState, useEffect and the Patterns That Actually Hold Up
ReactJune 2026

A Practical Guide to React Hooks: useState, useEffect and the Patterns That Actually Hold Up

A no-nonsense look at the hook patterns worth keeping, and the habits that quietly cause bugs in production.

ReactHooksJavaScript