feat(web): add public /roadmap coming-soon page #164

Merged
nrupard merged 1 commit from feat/bunyip-136-roadmap-page into main 2026-06-17 18:45:49 +02:00
Owner

What

Adds a public GET /roadmap "coming soon" page to the Bunyip marketing site (BUNYIP-136) and wires its nav entry into the header and footer.

How

  • New content::roadmap handler in bunyip-web/src/handlers/content.rs, modeled exactly on our_story: public_ctx then public_response(..., "Roadmap · Bunyip", true, content), so it inherits the public shell, theming, header, footer, and feedback launcher with no new infrastructure.
  • Page groups items into three status buckets ("Shipping soon", "Planned", "Exploring"), each rendered as cards reusing the existing rounded-lg border bg-card text-card-foreground shadow-sm shell and the icon("check", ...) pattern from pricing_card.
  • Seed content lives in const (title, description) arrays at the top of the handler, the same shape as the pricing PERSONAL / BUSINESS lists, so updating the page is a one-line edit. This is placeholder content with a clean upgrade path to a data-backed source later (the rejected alternative of a /v1/roadmap API + admin CRUD is noted in the issue).
  • Route registered in bunyip-web/src/main.rs inside the // Public / marketing block, next to /our-story.
  • "Roadmap" link added to the desktop header nav and the footer Product column, matching the Pricing / Our Story placement and classes.

No API, schema, or migration changes. All copy is American English with no em-dashes.

Verification

just check-container (fmt + clippy -D warnings + build + workspace lib tests) passes clean.

Notes

The last acceptance criterion (create a separate placeholder roadmap item in the BUNYIP YouTrack project, David's standup ask) is tracked independently of this code change and is handled outside this PR.

🤖 Generated with Claude Code

## What Adds a public `GET /roadmap` "coming soon" page to the Bunyip marketing site (BUNYIP-136) and wires its nav entry into the header and footer. ## How - New `content::roadmap` handler in `bunyip-web/src/handlers/content.rs`, modeled exactly on `our_story`: `public_ctx` then `public_response(..., "Roadmap · Bunyip", true, content)`, so it inherits the public shell, theming, header, footer, and feedback launcher with no new infrastructure. - Page groups items into three status buckets ("Shipping soon", "Planned", "Exploring"), each rendered as cards reusing the existing `rounded-lg border bg-card text-card-foreground shadow-sm` shell and the `icon("check", ...)` pattern from `pricing_card`. - Seed content lives in `const` (title, description) arrays at the top of the handler, the same shape as the pricing `PERSONAL` / `BUSINESS` lists, so updating the page is a one-line edit. This is placeholder content with a clean upgrade path to a data-backed source later (the rejected alternative of a `/v1/roadmap` API + admin CRUD is noted in the issue). - Route registered in `bunyip-web/src/main.rs` inside the `// Public / marketing` block, next to `/our-story`. - "Roadmap" link added to the desktop header nav and the footer Product column, matching the Pricing / Our Story placement and classes. No API, schema, or migration changes. All copy is American English with no em-dashes. ## Verification `just check-container` (fmt + clippy `-D warnings` + build + workspace lib tests) passes clean. ## Notes The last acceptance criterion (create a separate placeholder roadmap item in the BUNYIP YouTrack project, David's standup ask) is tracked independently of this code change and is handled outside this PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(web): add public /roadmap coming-soon page
All checks were successful
Check / fmt / clippy / build / test (pull_request) Successful in 1m29s
Create release / Create release from merged PR (pull_request) Has been skipped
bd4fbab3b4
Add a static SSR /roadmap page to bunyip-web that surfaces planned and in-progress work, grouped into "Shipping soon", "Planned", and "Exploring" status buckets. The handler mirrors the our_story pattern (public_ctx then public_response, launcher flag true) so it inherits the public shell, theming, header, footer, and feedback launcher with no new infrastructure. Seed content lives in const (title, description) arrays at the top of the handler, the same shape as the pricing PERSONAL / BUSINESS lists, so updating the page is a one-line edit and there is a clean upgrade path to a data-backed source later.

Wire a "Roadmap" link into both the desktop header nav and the footer Product column, matching the Pricing and Our Story placement and classes. No API, schema, or migration changes.

#BUNYIP-136

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
nrupard deleted branch feat/bunyip-136-roadmap-page 2026-06-17 18:45:49 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/bunyip!164
No description provided.