What SongForgeAI is building.
Three honest columns: shipped, building, next. Updated with every meaningful deploy.
Currently on Build 1041. Every item here ties to a public commit on GitHub.
Shipped in the last 90 days
Telemetry write-canary
Build 1018Cron that alerts if forge_metrics gets zero rows while songs keep being created. Catches the class of silent-telemetry-failure that went unnoticed from Build 928 → 1013.
Admin consolidation (phase 2 — deletion)
Build 1019Retired three experimental admin surfaces (intelligence, mining, crowd) that never matured past prototype. Lab hub now carries a single card.
Dashboard inline lyric editing
Build 1017Click-to-rewrite now live on SongDetail. Same popover + rewrite intents as the forge result screen.
Integration tests for /api/v1/score
Build 101231 new tests covering sync + async + CAS-claim paths on the B2B API surface.
API docs →/[locale]/forge + /[locale]/pricing + /[locale]/refine
Build 1009Localized landing pages for es + pt with hreflang metadata and full cross-locale nav. Deep-links to English product UX.
Strict-mode typecheck ratchet
Build 1007CI now runs tsc --noUnusedLocals + --noUnusedParameters against an allowlist. Newly-authored code cannot land on the allowlist.
Forward-compat tier-id Stripe resolver
Build 1008Canonical tier-name registry maps DB ids (starter/creator/pro) to preferred + legacy Stripe env vars. Eliminates the old SONGWRITER_PRICE_ID drift without a migration.
/metrics/quarterly + diagnostic error states
Build 1006Public craft-metrics report; distinguishes infra error / empty table / below-floor so problems are triagable at a glance.
View report →OpenAPI 3.0 spec at /api/v1/openapi.json
Build 988B2B API documented for programmatic consumption. ReDoc + Swagger Editor deep-links at /developer/api-reference.
API reference →/scoring/standard + whitepaper (v0.9)
Build 940Published the 12-metric rubric under CC-BY-4.0. Whitepaper with Pattison + Stolpe citations and anti-inflation rules.
Open standard →
Actively building
/about page + founder identity
Ship the single biggest fixable trust gap. Schema.org Person + Organization. Last updated field.
Per-metric deep pages
Twelve pages — one per scoring metric — so each can be linked, cited, and ranked in its own right.
(preview: current aggregate) →Guided first-forge onboarding
Three-step overlay on first visit to /forge. Closes the biggest activation gap in the audit.
Craft-linters homepage section
Named first-class promotion for the 5 linters (singability, banned clichés, prosody, fire-line, emotional arc) that currently sit below the fold or inside the forge page.
Author bylines on blog + E-E-A-T
Person schema per post; author page per contributor. Currently posts render without byline attribution.
Next up
Real user testimonials
Five named users with song links. Infrastructure (testimonials.ts with verified=true gate) shipped Build 970 but the registry is empty. Sprint: outreach + collection.
Weekly "your best song" email digest
Retention signal currently absent. Template + worker + Resend integration.
Rewrite handleForge as state machine
EXTRACT-1 has done 21 passes on the forge page. Monolith still 2,000+ lines. Next lever is architectural, not more slices.
"State of Lyric Scoring" annual report
Compound link-bait asset built from existing /metrics/quarterly telemetry. First edition targets Q4.
Full product i18n (not just landing pages)
Forge + dashboard + scoring in es + pt. Currently the landing pages localize but the product UX is English-only.
Suno + Udio partnership — "X-certified" badge
Largest distribution lever given the scoring moat. Outreach-dependent; not on an internal timeline.
Under consideration
Mobile-first forge UX
Current flow is responsive but desktop-first.
Songwriter-craft certification program
Pass X metrics → get a badge. B2B-adjacent and community-building.
Cluster-pillar SEO reorganization
33 songwriting guides regrouped into hub-and-spoke clusters. Current structure is flat.
Why this page exists
Most SaaS roadmaps are marketing artifacts — aspirational lists that never get updated. This one is the opposite. If something is on the shipped list, there is a commit behind it. If it moves between sections, the commit message says so.
A publicly-tracked roadmap is accountability, not a promise. If you want to lobby for something near the top of “Next up,” email me.