All docs

Docs

Spring Design Library — Roadmap and Milestones

Audience: Leadership, product, engineering
Purpose: Boss-facing timeline anchored to Application Flow publish in 1–2 weeks, then realistic 2-week iteration waves
Last updated: June 2026
Planning anchor date: June 29, 2026


Executive summary

MilestoneTargetWhat ships
M1 — AppFlow publishJul 13, 2026 (1–2 weeks)Clickable end-to-end prototype, stakeholder-ready
M2 — Internal validationJul 27, 2026Designer + stakeholder + developer sign-off cycle
M3 — Architecture alignedAug 10, 2026Dev/DevOps RFC approved; CI + manual QA green
M4 — Injectable DS provenAug 31, 20262 pilot integrations; adoption guide
M5 — Playground operationalSep 21, 2026Vibe-code workflow + graduation path
M6 — Multi-brand demoOct 12, 2026Theme switcher + Foundation brand pilot

Principle: Publish first. Iterate in 2-week waves. Do not start rebranding or external npm publish until M3–M4 gates pass.


Roadmap at a glance

gantt
  title Spring Design Library Roadmap
  dateFormat YYYY-MM-DD
  section Publish
    P0Sprint                  :p0, 2026-06-29, 14d
    M1AppFlowPublish          :milestone, m1, 2026-07-13, 0d
  section Wave1
    InternalValidation        :w1, 2026-07-14, 14d
    M2ValidationComplete      :milestone, m2, 2026-07-27, 0d
  section Wave2
    ArchitectureDevOps        :w2, 2026-07-28, 14d
    M3ArchAligned             :milestone, m3, 2026-08-10, 0d
  section Wave3
    InjectableDS              :w3, 2026-08-11, 21d
    M4InjectableProven        :milestone, m4, 2026-08-31, 0d
  section Wave4
    PlaygroundVibeCoding      :w4, 2026-09-01, 21d
    M5PlaygroundLive          :milestone, m5, 2026-09-21, 0d
  section Wave5
    MultiBrandTheming         :w5, 2026-09-22, 21d
    M6ThemeDemo               :milestone, m6, 2026-10-12, 0d

Milestone detail

M1 — Application Flow publish (Jun 29 – Jul 13, 2026)

Duration: 1–2 weeks
Outcome: Stakeholders can click through the full Personal Loan flow without engineering assistance.

Exit criteria:

  • start landing screen built (not placeholder)
  • analyzing-application routes to success / declined / foundation outcomes
  • verify-bank has prototype Continue → verify-identity
  • Gallery + standalone app both serve the flow
  • Component coverage audit ≥90% DS usage
  • Manual walkthrough checklist signed
  • npm run lint && npm run build pass

Publish URLs:

ChannelURL
Gallery/library/page/appflow/personal-loan/start
Standalone/personal-loans/start
Playground embed/library/playground/projects/live-prototyping/application-flow-live-prototype

Scope lock: P0 only. Defer P1 items (mobile pass, recovery screen) if needed to hit date.


M2 — Internal validation complete (Jul 14 – Jul 27, 2026)

Duration: 2 weeks
Outcome: Prioritized backlog from three review audiences, ranked by Inspired four-risk model.

Exit criteria:

  • Designer review session completed → design sign-off or change list
  • Stakeholder demo session completed → go/no-go for broader sharing
  • Developer architecture review completed → notes feed Wave 2 RFC
  • Backlog updated with risk tags (value / usability / feasibility / viability)
  • Master plan status updated

Parallel delivery: Begin P1 spec items (skip/recovery paths, promote loan-amount/purpose-of-loan to ready).


M3 — Architecture aligned (Jul 28 – Aug 10, 2026)

Duration: 2 weeks
Outcome: Engineering and DevOps agree on how the DS and AppFlow are built, tested, and deployed.

Exit criteria:

  • Architecture RFC signed (package boundaries, consumption model, publish path)
  • CI runs lint + build for both apps
  • manual QA smoke test in CI: start → analyzing → application-success
  • Deployment doc for gallery vs personal-loan app

M4 — Injectable DS proven (Aug 11 – Aug 31, 2026)

Duration: 3 weeks
Outcome: Spring look-and-feel can be applied to an external host app in <4 hours using tokens alone.

Exit criteria:

  • Injectable DS guide published (injectable-ds-guide.md)
  • Pilot A: blank Next.js + tokens only — pass
  • Pilot B: vibe-coded page + L1+L2 layers — pass
  • Pilot C: personal-loan standalone confirmed outside gallery chrome
  • Component gap matrix documented (what exists vs fallback)

Gate: Do not npm-publish until M3 RFC approved.


M5 — Playground operational (Sep 1 – Sep 21, 2026)

Duration: 3 weeks
Outcome: Anyone can start a vibe-coded experiment in the Playground with a clear path to package graduation.

Exit criteria:

  • Submission workflow documented (owner, status, approval goal)
  • Graduation path tested: playground → package PR → gallery doc
  • ≥1 playground project graduates to @spring/ds-react
  • Embed preview URLs work for stakeholder review (?embed=1)

M6 — Multi-brand theme demo (Sep 22 – Oct 12, 2026)

Duration: 3 weeks
Outcome: Theme switching demonstrated in gallery; partner override spec for DPP flows.

Exit criteria:

  • Theme provider pattern implemented (data-theme CSS variable swap)
  • Gallery theme switcher on foundation + AppFlow demo
  • Foundation flow as second-brand pilot
  • Partner override spec documented (token overrides, not forked components)
  • Screenshot diff on 3 screens per theme

Gate: M4 injectable guide validated; AppFlow publish-quality at M1.


Dependency map

flowchart TD
  m1[M1AppFlowPublish]
  m2[M2InternalValidation]
  m3[M3ArchitectureAligned]
  m4[M4InjectableDS]
  m5[M5Playground]
  m6[M6MultiBrand]

  m1 --> m2
  m2 --> m3
  m3 --> m4
  m4 --> m6
  m2 --> m5
  m4 --> m5
  • M1 blocks everything — no meaningful iteration without a walkable prototype.
  • M3 blocks external npm publish — feasibility must be resolved first.
  • M4 blocks M6 — rebranding before injectability creates duplicate token systems.
  • M5 can start after M2 but benefits from M4 adoption patterns.

What we defer (explicitly out of 15-week scope)

ItemWhy deferredRevisit when
Production APIs / Flinks / TwilioGallery is visual prototypeProduction product team
Full mobile pass (20 screens)P1 after publishWave 1 prioritization
External npm public registryNeeds M3 architectureAfter M3 RFC
Turborepo / monorepo toolingLow priority at 2 appsWhen >3 workspaces
Code Connect gallery-side migrationMedium debt, not blockingDedicated pass post-M3

Reporting cadence (for leadership)

WhenFormatContent
Daily (publish sprint only)Standup / SlackP0 task status, blockers
End of each wave30-min reviewMilestone exit criteria checklist
Bi-weeklyRoadmap updateMilestone status, risk register, next wave scope

Risk register

RiskLikelihoodImpactMitigation
1–2 week publish missedMediumHighScope-lock P0; defer P1
"Publish" confused with productionMediumHighLabel all URLs as prototype
Injectable DS blocked without npmLowMediumL1+L2 works via CSS import
Rebranding started too earlyMediumHighGate to M6; document in decision framework
Team capacity split across wavesMediumMediumParallel tracks only where dependencies allow

Related documents

DocumentRole
01-project-overview-and-goals.mdVision, OKRs, Inspired framework
03-phase-playbook.mdDetailed tasks and testing per wave
04-product-decision-framework.mdWhen to rebrand vs feature vs UX
personal-loan-appflow-master-plan.mdP0/P1/P2 engineering tasks