Skip to content

Roadmap

import { Badge } from ‘@astrojs/starlight/components’;

Current version: v0.1.0-dev Target: v1.0.0-mvp Live tracker: api.brettjohnson.xyz/api/status


M1 — Brand Foundation & Design System

Objective: Establish visual identity, typography, color system, and component library.

IDTaskStatus
M1-T1Define color palette (dark base, red accent)
M1-T2Select and license typography pairing
M1-T3Create logo variants (primary, monogram, reversed)
M1-T4Build base component library (Button, Card, Nav, Footer)🔄 partial
M1-T5Create Figma design file with all screens

M2 — Infrastructure Setup

Objective: Production-grade infrastructure before a single line of app code.

IDTaskStatus
M2-T1Register brettjohnson.xyz, configure Cloudflare DNS
M2-T2Create Vercel project, link GitHub repo
M2-T3Configure Supabase project, create leads schema
M2-T4Set up environment variables in Vercel (.env.example committed)
M2-T5Configure GitHub Actions CI pipeline (lint/build/security; Lighthouse pending)🔄 partial
M2-T6Set up Sentry error tracking

M3 — Core Pages (Static)

Objective: All primary public-facing pages rendered and deployable.

IDTaskStatus
M3-T1Hero section: photo, headline, CTA buttons
M3-T2About / Story section: three-act narrative
M3-T3Services grid: 6 service cards with inquiry CTAs
M3-T4Press / Media logos bar (auto-scroll ticker)
M3-T5Testimonials section: 3 quotes with attribution
M3-T6Footer: links, social icons, legal

M4 — Booking & Contact System

Objective: Functional lead capture and booking request pipeline.

IDTaskStatus
M4-T1Build inquiry form (Zod validation, server action)
M4-T2Store submissions in Supabase leads table
M4-T3Send confirmation email via Resend to submitter
M4-T4Send internal notification email to Brett / team
M4-T5Embed Calendly for discovery call scheduling
M4-T6Connect leads to HubSpot CRM via API

M5 — Media Kit & Press Portal

Objective: Self-service press and media resource center.

IDTaskStatus
M5-T1Build /media page with filterable press grid
M5-T2Create email-gated media kit download
M5-T3Upload headshots, bios, logos to Cloudflare R2
M5-T4Generate PDF one-sheet
M5-T5Add structured data (Person schema, Article schema)

M6 — Podcast Integration

Objective: Surface AnglerPhish and Online Fraudcast content natively.

IDTaskStatus
M6-T1Fetch RSS feed from hosting platform
M6-T2Build episode card component with audio embed
M6-T3Build /podcast page with episode archive + search
M6-T4Add podcast schema markup
M6-T5Subscribe links: Spotify, Apple, RSS

M7 — SEO, OG & Performance Hardening

Objective: Technical SEO and performance baseline for organic discovery.

IDTaskStatus
M7-T1Generate dynamic OG images per page
M7-T2Configure sitemap.xml and robots.txt
M7-T3Lighthouse audit: all scores ≥ 90
M7-T4Configure CSP, X-Frame-Options, HSTS headers
M7-T5Add Plausible analytics

M8 — Launch & Post-Launch Monitoring

Objective: Go-live with full observability.

IDTaskStatus
M8-T1Final content review and copy sign-off
M8-T2Domain cutover (brettjohnson.xyz → Vercel prod)
M8-T3Configure Axiom log aggregation
M8-T4Configure uptime monitoring
M8-T5Announce via LinkedIn + podcast + email
M8-T6Submit to Google Search Console

Future Phases

PhaseFeatureTimeline
Phase 2Newsletter (Beehiiv) — weekly threat intel digestMonth 4–6
Phase 2Online course: “Inside the Mind of a Cybercriminal”Month 5–8
Phase 3Enterprise training portal with cohort managementMonth 8–12
Phase 3VLN Security co-brand landing pageMonth 6
Phase 4White-label curriculum for speaker bureausMonth 12–18
Phase 5Book site (separate subdomain or microsite)Upon publishing deal