Roadmap
import { Badge } from ‘@astrojs/starlight/components’;
Current version:
v0.1.0-devTarget:v1.0.0-mvpLive tracker:api.brettjohnson.xyz/api/status
M1 — Brand Foundation & Design System
Objective: Establish visual identity, typography, color system, and component library.
| ID | Task | Status |
|---|---|---|
| M1-T1 | Define color palette (dark base, red accent) | ✅ |
| M1-T2 | Select and license typography pairing | ⏳ |
| M1-T3 | Create logo variants (primary, monogram, reversed) | ⏳ |
| M1-T4 | Build base component library (Button, Card, Nav, Footer) | 🔄 partial |
| M1-T5 | Create Figma design file with all screens | ⏳ |
M2 — Infrastructure Setup
Objective: Production-grade infrastructure before a single line of app code.
| ID | Task | Status |
|---|---|---|
| M2-T1 | Register brettjohnson.xyz, configure Cloudflare DNS | ⏳ |
| M2-T2 | Create Vercel project, link GitHub repo | ⏳ |
| M2-T3 | Configure Supabase project, create leads schema | ⏳ |
| M2-T4 | Set up environment variables in Vercel (.env.example committed) | ✅ |
| M2-T5 | Configure GitHub Actions CI pipeline (lint/build/security; Lighthouse pending) | 🔄 partial |
| M2-T6 | Set up Sentry error tracking | ⏳ |
M3 — Core Pages (Static)
Objective: All primary public-facing pages rendered and deployable.
| ID | Task | Status |
|---|---|---|
| M3-T1 | Hero section: photo, headline, CTA buttons | ⏳ |
| M3-T2 | About / Story section: three-act narrative | ⏳ |
| M3-T3 | Services grid: 6 service cards with inquiry CTAs | ⏳ |
| M3-T4 | Press / Media logos bar (auto-scroll ticker) | ⏳ |
| M3-T5 | Testimonials section: 3 quotes with attribution | ⏳ |
| M3-T6 | Footer: links, social icons, legal | ⏳ |
M4 — Booking & Contact System
Objective: Functional lead capture and booking request pipeline.
| ID | Task | Status |
|---|---|---|
| M4-T1 | Build inquiry form (Zod validation, server action) | ⏳ |
| M4-T2 | Store submissions in Supabase leads table | ⏳ |
| M4-T3 | Send confirmation email via Resend to submitter | ⏳ |
| M4-T4 | Send internal notification email to Brett / team | ⏳ |
| M4-T5 | Embed Calendly for discovery call scheduling | ⏳ |
| M4-T6 | Connect leads to HubSpot CRM via API | ⏳ |
M5 — Media Kit & Press Portal
Objective: Self-service press and media resource center.
| ID | Task | Status |
|---|---|---|
| M5-T1 | Build /media page with filterable press grid | ⏳ |
| M5-T2 | Create email-gated media kit download | ⏳ |
| M5-T3 | Upload headshots, bios, logos to Cloudflare R2 | ⏳ |
| M5-T4 | Generate PDF one-sheet | ⏳ |
| M5-T5 | Add structured data (Person schema, Article schema) | ⏳ |
M6 — Podcast Integration
Objective: Surface AnglerPhish and Online Fraudcast content natively.
| ID | Task | Status |
|---|---|---|
| M6-T1 | Fetch RSS feed from hosting platform | ⏳ |
| M6-T2 | Build episode card component with audio embed | ⏳ |
| M6-T3 | Build /podcast page with episode archive + search | ⏳ |
| M6-T4 | Add podcast schema markup | ⏳ |
| M6-T5 | Subscribe links: Spotify, Apple, RSS | ⏳ |
M7 — SEO, OG & Performance Hardening
Objective: Technical SEO and performance baseline for organic discovery.
| ID | Task | Status |
|---|---|---|
| M7-T1 | Generate dynamic OG images per page | ⏳ |
| M7-T2 | Configure sitemap.xml and robots.txt | ⏳ |
| M7-T3 | Lighthouse audit: all scores ≥ 90 | ⏳ |
| M7-T4 | Configure CSP, X-Frame-Options, HSTS headers | ⏳ |
| M7-T5 | Add Plausible analytics | ⏳ |
M8 — Launch & Post-Launch Monitoring
Objective: Go-live with full observability.
| ID | Task | Status |
|---|---|---|
| M8-T1 | Final content review and copy sign-off | ⏳ |
| M8-T2 | Domain cutover (brettjohnson.xyz → Vercel prod) | ⏳ |
| M8-T3 | Configure Axiom log aggregation | ⏳ |
| M8-T4 | Configure uptime monitoring | ⏳ |
| M8-T5 | Announce via LinkedIn + podcast + email | ⏳ |
| M8-T6 | Submit to Google Search Console | ⏳ |
Future Phases
| Phase | Feature | Timeline |
|---|---|---|
| Phase 2 | Newsletter (Beehiiv) — weekly threat intel digest | Month 4–6 |
| Phase 2 | Online course: “Inside the Mind of a Cybercriminal” | Month 5–8 |
| Phase 3 | Enterprise training portal with cohort management | Month 8–12 |
| Phase 3 | VLN Security co-brand landing page | Month 6 |
| Phase 4 | White-label curriculum for speaker bureaus | Month 12–18 |
| Phase 5 | Book site (separate subdomain or microsite) | Upon publishing deal |