Portfolio Web Application Roadmap
Purpose
This roadmap defines the Portfolio Program execution plan, centered on a high-grade Portfolio App (Next.js + TypeScript) and supported by the Portfolio Documentation App (Docusaurus) as the enterprise evidence engine.
It is written to:
- provide a realistic, staged delivery plan that produces reviewer-visible value early
- enforce an enterprise SDLC posture (docs-as-code, CI gates, traceability)
- define what artifacts must exist at each phase (dossiers, ADRs, threat models, runbooks, release notes)
- guide ongoing planning and implementation through a repeatable workflow
Scope
In scope
- Portfolio App product roadmap (features, IA, and UX)
- Documentation/Evidence roadmap (dossiers and enterprise artifacts)
- CI/CD and release governance roadmap
- Security and operational maturity roadmap
Out of scope
- staffing models, budgets, or vendor procurement
- authentication and backend-heavy services (explicitly deferred early)
Guiding principles
- Evidence-first delivery
- Every meaningful capability must have accompanying evidence artifacts (docs + governance).
- Small, high-quality increments
- Avoid broad refactors and large coupled changes.
- No broken links / no stale docs
- Builds fail on broken integrity conditions; fixes are required.
- Public-safe by design
- No secrets, internal endpoints, or sensitive operational detail leakage.
- Git is the system of record
- Release, rollback, and recovery center on traceable Git history and PR discipline.
Program components
A) Portfolio App (front-of-house)
A TypeScript-based web application that serves as:
- interactive CV
- curated project showcase
- entry point into enterprise evidence (links into docs app)
B) Portfolio Documentation App (evidence engine)
A Docusaurus documentation platform that hosts:
- project dossiers
- ADRs
- threat models
- runbooks
- postmortems (when needed)
- release notes and governance policies
Planning workflow (how this roadmap is executed)
For each phase or milestone:
- Create/Update plan docs first
- roadmap updates (this doc)
- dossier updates for affected project
- Record major decisions
- ADRs for durable architectural or governance changes
- Assess security impact
- update threat model(s) if trust boundaries or entry points change
- Update operations readiness
- runbooks updated for deploy/rollback/triage changes
- Implement
- code changes via PR with CI gates
- Release + evidence
- release notes + links to PRs and deployed preview evidence
Roadmap at-a-glance (phases)
- Phase 0: Baseline governance + evidence scaffolding (Docs App hardened)
- Phase 1: Portfolio App foundation (repo, CI, deployment, core routes) — ✅ Complete (2026-01-17)
- Phase 2: “Gold standard” content (one exemplary project + deep evidence) — ✅ Complete (2026-01-21)
- Phase 3: Scaling content model (repeatable project publishing pipeline) — ✅ Complete (2026-01-23)
- Phase 4: Reliability + security hardening (enterprise credibility upgrades) — ✅ Complete (2026-01-30)
- Phase 5: Advanced demonstrations (multi-language demos, platform proofs, eval-first artifacts) — ✅ Complete (2026-02-04)
- Phase 6: Capstone, evolution, and long-term signal — ✅ Complete (2026-02-05)
- Phase 7: Quality gates, feature catalog, and documentation maturity — ✅ Complete (2026-02-14)
Each phase includes:
- product deliverables
- evidence artifacts required
- acceptance criteria (“Definition of Done”)
Phase 0 — Governance and evidence platform readiness (Docs App)
Objective
Ensure the Documentation App is a credible enterprise evidence engine with strong SDLC controls and operational posture.
Deliverables
- Docusaurus docs platform deployed publicly (Vercel) with preview + production
- CI gates enforced:
- build integrity (broken links fail)
- quality gates for docs app code/config (lint/format/typecheck if applicable)
- Deployment promotion gated by required GitHub checks
- Templates and internal governance (
docs/_meta/) established and non-public
Required evidence artifacts
- ADRs (already established for docs platform choices)
- Documentation App threat model
- Runbooks: deploy, rollback, broken link triage
- Postmortem template available
Acceptance criteria
pnpm buildpasses locally and in CI deterministically- production promotion is blocked until checks pass
- runbooks exist and match real deployment behavior
- docs IA is stable and navigable with curated hubs
Phase 1 — Portfolio App foundation (production-quality skeleton)
Status: ✅ Complete (2026-01-17) — see Phase 1 Implementation Guide
Objective
Stand up the Portfolio App with enterprise-grade SDLC controls and a minimal, polished surface.
Deliverables (Portfolio App repo)
- Next.js 15+ (App Router) + TypeScript strict mode with Tailwind CSS scaffolded via pnpm
- Core routes live:
/,/cv,/projects,/contact,/projects/[slug] - Tooling and governance: ESLint (flat config), Prettier (Tailwind plugin), TypeScript
typecheck, frozen lockfile installs - GitHub Actions workflows in place:
ci / quality(format:check, lint, typecheck)ci / build(Next build)- CodeQL security analysis
- Dependabot weekly updates
- Vercel preview + production deployments, promotion gated by required checks
- Environment contract documented (
NEXT_PUBLIC_*vars) with helpers insrc/lib/config.ts
Required evidence artifacts (Docs App)
- Portfolio App dossier (7-page contract) — initial pass complete
- ADRs: ADR-0005 (stack choice), ADR-0006 (evidence separation), ADR-0007 (hosting/promotion checks)
- Threat model:
portfolio-app-threat-model.md - Runbooks: deploy, rollback, CI triage for Portfolio App
- Release tracking via roadmap + dossier updates
Acceptance criteria
- Deployed previews and production promote only after checks pass — Met
- CI gates stable with consistent check names — Met
- Core routes render in preview and production — Met
- Evidence links point into docs with placeholders ready — Met
Phase 2 — “Gold standard” project and credibility baseline
Status: ✅ Complete (2026-01-21) — see Phase 2 Implementation Guide
Objective
Create one exemplary project case study that sets the standard for all future portfolio entries.
Deliverables (Portfolio App)
- ✅ Gold standard project page (Portfolio App) with repo/demo/evidence links, verification checklist, and conditional rendering for gold-standard vs generic projects
- ✅ CV page upgraded with employment/impact timeline, capability-to-proof mapping, and Evidence Hubs navigation
- ✅ Playwright smoke tests (multi-browser) with 100% route coverage wired into CI
- ✅ Enhanced Portfolio App dossier (7 pages) with gold standard depth
- ✅ Threat model (STRIDE) updated; operational runbooks: deploy, CI triage, rollback, secrets incident response
- ✅ Security hardening: secrets scanning gate, scoped CI permissions, Pre-commit TruffleHog hook
- ✅ Governance artifacts: ADR-0010 (gold standard decision), release note entry, STRIDE compliance report
Required evidence artifacts (Docs App)
- Project dossier (7-page contract) for the gold standard project
- ADR-0010: Portfolio App as Gold Standard Exemplar
- Threat model update for gold standard posture
- Runbooks: deploy, rollback, CI triage, secrets incident response
- Compliance/reporting: STRIDE compliance report, release note documenting completion
Acceptance criteria
- Reviewer can validate senior-level engineering discipline through one project (what/why/how, security posture, ops readiness, reproducibility) — Met
- CI shows smoke tests + quality gates enforced; gold standard evidence links live — Met
- Governance controls (secrets scanning, scoped permissions, pre-commit) operational — Met
Phase 2 Recommended Controls (Hardening Enhancements)
Beyond baseline Phase 1, Phase 2 includes optional hardening controls that strengthen enterprise security posture:
Security Enhancements
- Secrets Scanning Gate (TruffleHog CI)
- Detect hardcoded secrets before merge
- CI job:
secrets-scan(required check)
- Local verification: lightweight pattern-based scan; optional pre-commit for TruffleHog
- Threat model alignment: Information Disclosure (T1) mitigation
-
CI Permission Hardening (Least-Privilege)
- Replace global
permissions: contents: writewith job-specific permissions - Quality job:
contents: write,pull-requests: read(Dependabot auto-format) - Build job:
contents: read(read-only) - Threat model alignment: Tampering (T2), Elevation of Privilege (E1) mitigations
- Replace global
-
Pre-commit Hooks (Local Secret Scanning)
.pre-commit-config.yaml: TruffleHog hook for local commits- Setup:
pre-commit install(one-time) - Threat model alignment: Information Disclosure (T1) prevention
Operational Enhancements
-
Secrets Incident Response Runbook
- New:
rbk-portfolio-secrets-incident.md - 5-phase procedure: Triage → Contain → Investigate → Remediate → Validate
- Severity levels: Critical (≤5 min), High (≤30 min), Medium (≤2 hrs)
- Threat model alignment: Incident Response procedures
- New:
-
STRIDE Compliance Report
- New:
portfolio-app-stride-compliance-report.md - Executive summary of all 12 threat mitigations
- Control evidence mapping to source code and runbooks
- Phase 2 enhancements documented and verified
- New:
Evidence Artifacts
- CI Workflow:
.github/workflows/ci.yml(secrets-scan job + scoped permissions) - Local Scanning:
.pre-commit-config.yaml(TruffleHog hook) - Package Script:
package.json(secrets:scanscript) - Incident Response:
rbk-portfolio-secrets-incident.md(complete runbook) - Compliance Report:
portfolio-app-stride-compliance-report.md(audit)
Implementation Status
- ✅ All Phase 2 recommended controls implemented (as of 2026-01-19)
- ✅ CI workflow updated with secrets scanning gate
- ✅ Permissions hardened to least-privilege per job
- ✅ Pre-commit hooks configured for local scanning
- ✅ Incident response runbook created
- ✅ STRIDE compliance report generated
- ✅ All controls integrated into PR workflow
See Phase 2 Implementation Guide — STEP 4a/4b for detailed procedures.
Phase 3 — Repeatable project publishing pipeline (scale without chaos)
Objective
Make adding projects predictable, low-friction, and consistent with governance.
Deliverables (Portfolio App)
- Stage 3.1: YAML-backed project registry with Zod validation, slug rules, URL validation, build-time script
- Stage 3.2: — EvidenceBlock + VerificationBadge + BadgeGroup components; project pages render standardized evidence badges/links (PR #28, Docs PR #47)
- Stage 3.3: Unit tests (Vitest) for registry/schema/slug helpers; Playwright e2e for route and evidence link resolution; wired into CI
- Stage 3.4: ADR-0011 (registry decision) and ADR-0012 (cross-repo linking); dossier updates; registry schema guide; Copilot instructions updated
- Stage 3.5: CI link validation (registry + evidence URLs), publish runbook, troubleshooting guide
- Stage 3.6: ✅ Complete (2026-01-23) Metadata + analytics (OG/Twitter cards, optional privacy-safe analytics) documented and implemented
Required evidence artifacts (Docs App)
- Dossier updates (architecture/testing) reflecting the registry model
- Registry schema reference guide + publishing checklist
- ADR-0011 (registry decision) and ADR-0012 (cross-repo linking)
- Runbooks: project publish procedure, troubleshooting guide
- CI documentation for registry/link validation
Acceptance criteria
- Adding a new project follows a repeatable checklist (YAML entry + dossier + release note)
- Registry validates on every build; CI fails on invalid slugs/links
- Evidence components/badges render consistently across projects
- Unit + e2e suites enforce registry and link integrity ✅ Met (Stage 3.6 complete)
Phase 4 — Reliability, performance, and security hardening (enterprise maturity)
Status: ✅ Complete (2026-01-30) — see Phase 4 Implementation Guide and Release Note: Phase 4 Completion
Deliverables (Portfolio App)
- Performance/accessibility hardening:
- accessibility review and fixes on core routes
- performance budget mindset; minimize client JS
- Security hardening:
- refined headers posture (where appropriate)
- secrets scanning gate (phase-in)
- dependency audit policy improvements (phase-in)
- Operational maturity:
- improved alerting/monitoring strategy (lightweight, public-safe)
- more deterministic rollback guidance
Required evidence artifacts (Docs App)
- Update Portfolio App threat model with new controls and residual risks
- Add runbooks for:
- dependency vulnerability response
- suspected sensitive publication incident response (if not already)
- Postmortem process exercised if an incident occurs
- ADR(s) for major hardening changes that affect architecture or governance
Acceptance criteria
- Demonstrable controls beyond basics:
- scanning
- audited release process
- mature incident handling documentation
- Operational readiness is credible and not aspirational
Phase 5 — Advanced demonstrations and multi-language portfolio expansion
Objective
Show depth and breadth across languages and disciplines while maintaining enterprise consistency, and ensure the portfolio is reviewer-ready under time pressure.
Deliverables
- Multiple projects across domains:
- Python (automation, data, AI engineering, or platform tooling)
- Java/C++ (systems or performance projects)
- DevOps/SRE demonstrations (GitOps, DR/BCP, IaC, policy as code)
- Each project adheres to the same evidence standard:
- dossier + ADR(s) + threat model (when relevant) + runbooks (when deployed)
- Portfolio App enhances discovery:
- filtering/sorting projects by capability and proof type
- “verification-first” display patterns
Implementation focus (Phase 5 planning)
- Narrative & information architecture refinement
- Portfolio App: sharpen homepage narrative, project summaries, and senior-level decision callouts
- Docs App: improve navigation clarity, index hubs, and “start here” flows
- Evidence validation & cross-checking
- Audit every major claim for linked evidence
- Remove speculative language and undocumented assumptions
- Add reviewer guide + evidence checklist
- Production hardening pass
- Improve error handling UX and graceful degradation
- Verify build reproducibility and environment safety
- Update runbooks/ADRs to reflect final state
- External signals of professionalism
- Consistent naming, clean commit history, README entry points
- License clarity and contribution notes
- Final review & freeze
- Feature freeze + documentation freeze
- Tag release v1.0 with release notes and known limitations
Required evidence artifacts
- Project dossiers per project
- ADRs for significant cross-cutting platform decisions
- Security/ops artifacts scaled appropriately to each project
- Evidence audit checklist
- Reviewer guide (“How to review this portfolio”)
Acceptance criteria
- The portfolio reads like a cohesive program, not a collection of unrelated demos.
- Evidence remains current and traceable across the entire system.
- Reviewers can validate claims quickly with a clear reviewer path.
- Final release tagged with known limitations documented.
Implementation guide
- See Phase 5 Implementation Guide for detailed steps, checklists, and success criteria.
Phase 6 — Capstone, evolution, and long-term signal
Status: ✅ Complete (2026-02-05) — see Phase 6 Implementation Guide
Objective
Preserve credibility over time by defining what belongs, how change is governed, and how the portfolio evolves without noise.
Deliverables
- Portfolio inclusion criteria and explicit exclusions ("what does not belong")
- Portfolio versioning strategy (release cadence, tags, change log expectations)
- Deprecation and archival policy for projects, docs, and references
- Change intake workflow (proposal, evidence audit, reviewer impact)
- Maintenance posture guidance (stability window, update thresholds)
Implementation focus
- Restraint and judgment
- Keep the surface area stable and reduce churn-driven risk.
- Governed evolution
- Add work only when it strengthens credibility and evidence depth.
- Reviewer confidence
- Make the rules and lifecycle of the portfolio explicit and easy to validate.
Required evidence artifacts
- ADR documenting portfolio lifecycle/versioning strategy
- Policy docs covering inclusion criteria and deprecation/archival expectations
- Runbook updates for archival/change control procedures
- Release note entry documenting Phase 6 completion
Acceptance criteria
- New projects are gated by a published inclusion checklist and evidence criteria.
- Versioning and deprecation policies are documented and linked from core hubs.
- Reviewers can understand how the portfolio evolves without losing trust.
Implementation guide
- See Phase 6 Implementation Guide for detailed steps, checklists, and success criteria.
Phase 7 — Quality gates, feature catalog, and documentation maturity
Status: ✅ Complete (2026-02-14) — see Phase 7 Implementation Guide
Objective
Capture and consolidate the post-Phase 6 work that deepened testing coverage, formalized the feature catalog, and tightened CI and verification expectations across both repos.
Deliverables
Portfolio App:
- Expanded automated test coverage for core pages, components, API routes, data utilities, and library functions
- Enhanced test setup and configuration for consistent test execution
- CI gates updated with stricter coverage expectations
Portfolio Docs:
- Feature catalog documentation spanning product journey, evidence model, UX polish, theming, SEO, security, testing, CI/CD, performance, and docs governance
- Commentary standard and examples aligned with reviewer guidance
- Security hardening ADRs and implementation plans
- Updated CI/testing documentation and local verification scripts
Key Changes Captured
Step 1: Security Hardening (5-7 hrs)
- ADR-0018 (React2Shell hardening baseline) and ADR-0019 (portfolio docs hardening baseline)
- Security hardening implementation guides for both apps
- Updated threat models and risk registers
Step 2: Feature Catalog & Commentary (5-7 hrs)
- Full feature catalog with 10 feature domains documented
- Commentary standards and examples for consistent review narratives
- Updated portfolio navigation to reference feature catalog
Step 3: Testing & CI Gates (4-6 hrs)
- Updated CI/CD pipeline documentation
- Enhanced verification scripts with optional audit reporting
- Updated runbooks for deployment and CI triage
Step 4: Portfolio App Test Coverage (4-6 hrs)
- New tests across pages, components, APIs, data, and utilities
- Coverage expansion from baseline to comprehensive
- Integration into CI quality gates
Required Evidence Artifacts
- ADRs for hardening baselines and governance decisions
- Feature catalog and commentary standards
- Updated dossiers for both apps
- Security and testing documentation
- Release notes documenting Phase 7 completion
Acceptance Criteria
- ✅ Feature catalog published and version-tracked
- ✅ Commentary standards enforce evidence-linking
- ✅ Security hardening controls documented and verified
- ✅ Testing depth materially expanded across both apps
- ✅ CI gates tightened and documented
- ✅ All changes deployed and verified in production
Implementation Guide
- See Phase 7 Implementation Guide for detailed steps, checklists, and success criteria.
Backlog (candidate enhancements)
These are explicitly not required to reach “enterprise credible,” but can be added when justified by value and governed by ADR:
- contact form (adds abuse surface → requires threat model update + runbooks)
- authentication (deferred; high governance overhead)
- content CMS integration (requires careful boundary and supply chain analysis)
- analytics instrumentation (must remain privacy-respecting and public-safe)
- automated link checking between Portfolio App and Docs App (optional gate)
Governance: Definition of Done for roadmap milestones
A milestone is complete only when:
- Code is deployed and accessible in production
- CI checks are green and required checks are enforced
- Documentation updates are complete:
- dossier updated
- ADR(s) created/updated for durable decisions
- threat model updated if surface changes
- runbooks updated if operational procedures change
- Release notes entry exists for material changes
- Public-safety requirements are satisfied (“No secrets added”)
References
- Portfolio App dossier:
docs/60-projects/portfolio-app/ - Documentation App dossier:
docs/60-projects/portfolio-docs-app/ - ADR index:
docs/10-architecture/adr/ - Threat models index:
docs/40-security/threat-models/ - Runbooks index:
docs/50-operations/runbooks/ - Templates (internal-only):
docs/_meta/templates/