The site you are reading — Astro, Supabase, custom admin, live SEO dashboard
Most agency sites are templated WordPress builds running on shared hosting. This one is the version I would build for a client who hired me at full rates. The content lives in Supabase, the admin panel is custom, the /industries/ and /solutions/ pages are programmatic, and the SEO dashboard tracks 57 keywords through DataForSEO every three days.
BOOK A 30-MIN CALLThe numbers
- 95+ Live blog posts across 10 canonical topics
- 20+ Programmatic pages /industries/ + /solutions/ + London locations
- 10 Hub-pillar pages web-frameworks through edge-compute
- 57 Keywords tracked live every 3 days via DataForSEO
The brief
I needed a personal site that could carry the dual weight of being a portfolio (12,000 WordPress sites at Seahawk Media) and a content authority platform (writing about modern stack architecture). The constraint was that it had to be the same architecture I would recommend to a client paying for a serious build — no excuses, no shortcuts, no "I built this on Squarespace because I was busy".
The work that came out of building it became the source for a lot of what is on the site itself: the migration patterns, the programmatic SEO patterns, the admin-panel patterns, the SEO dashboard pattern. The site is the living version of the work.
The architecture
Astro for the public site. Supabase for the content layer (blog posts, pages, translations, topic taxonomy, SEO tracker tables). Netlify for hosting + scheduled functions (advisor.ts for the Stack Advisor tool, three SEO refresh functions running on cron, contact form). GitHub Actions for build triggers, Vercel for SEO tooling experiments.
Custom admin panel at /admin/ — Supabase Auth for sign-in (magic link + bypass-password fallback), inline editing on blog posts and pages, optimistic save with toast notifications, content listing with filters by topic / status / type. The admin reads the same Supabase tables the public site reads from, so editing a post is a single round-trip instead of an agency hand-off.
Programmatic page templates: /industries/[industry], /solutions/[solution], /blog/[slug], /guides/[slug], /web-design-[city]. Each template is data-driven from a TypeScript source-of-truth (lib/industries.ts, lib/solutions.ts) or from Supabase. Adding a new industry or solution is one edit to the data file.
The SEO dashboard
The /admin/seo/ dashboard is the most recent piece — built in May 2026 across six implementation phases. It reads from a five-table Supabase schema (seo_keywords, seo_serp_runs, seo_pages, seo_backlinks, seo_advisor_usage) populated by three Netlify scheduled functions: SERP refresh every 3 days, Lighthouse + indexation weekly, backlinks summary weekly. The functions hit the DataForSEO API with bounded concurrency (8 inflight requests) and write structured snapshots back to Supabase.
Dashboard reads via the authenticated admin Supabase client (RLS gates the data). Five quick-stat cards at the top, full keyword tracker with group filters, top movers up/down, pages tracker, backlinks summary, Stack Advisor usage with a 30-day sparkline. Per-keyword drill-down shows a 90-day SVG position chart with AI-Overview rings on data points. Manual refresh buttons hit the same scheduled functions through a JWT-gated endpoint.
Initial seed run on 7 May 2026 captured 7 keywords ranking in top 100, 18 AI Overviews seen across 57 queries, 36 PAA boxes captured. The system is live and the data flows.
What it proves
This site is the production reference for the patterns I sell. Every claim about Astro speed, Supabase admin patterns, programmatic page generation, schema rigour, AI-citation tracking, has a working implementation here that anyone can inspect. When a client asks "could you build this for me", the answer is "I already built it for myself; I know exactly what it costs and where the gotchas are".
The codebase is open in spirit — patterns documented in CLAUDE.md, content plan updated weekly in CONTENT-PLAN-2026-Q2.md, gap analysis tracked in CONTENT-GAPS-2026-05.md. The git log is the live record of what shipped this month.
The stack
- Astro
- Supabase
- Netlify
- DataForSEO
- Anthropic Claude
- FAL
- Pagefind
Timeline: Live since 2024, continuous expansion since
Related work
If your project shape matches this one — the conversation is short
If the architectural pattern here is close to your project shape, the next step is a 30-min call. Describe your brief; I tell you whether I am the right person; by the end you have a stack pick, a price range, and a delivery window. No deck, no qualification screen.