There and Back Again

rubyrailsbuilding-in-public

Journey has been sitting quietly since late 2023. Not abandoned. We’ve been using it for planning sessions, it does what it does. But the codebase hasn’t been touched in over a year. A Rails upgrade, a Ruby version bump, a logo change. That’s it.

Two things happened at the same time that changed that.

First: we need a proper roadmap view across our product portfolio. We’ve been building a lot: Meera, Wave CI, Sirius2, HERB, plus all the supporting libraries, and more products in the pipeline. Each product has its own planning, its own priorities, its own timeline. But there’s no single place where we can see everything we’re building, plan release cycles across products, and spot where things depend on each other. A story map per product is fine for feature planning within that product. What we don’t have is the view across all of them: which releases are coming when, what’s blocked on what, how the libraries feed into the products.

Journey can be that view. The data model already supports multiple projects with multiple story maps each. But it was built for single-product story maps. A dozen activities, a handful of releases. A portfolio-level roadmap is a different beast. We need proper zoom controls so you can see the whole map without squinting, better navigation for maps that span more than a screen width, and search that works across stories.

Second: a whole stack of technology we’ve built over the past year is ready to be applied. Sirius2 has matured into a proper design system with sixty-plus components and a full semantic token architecture. HERB gives us JSX-like component syntax in Rails views instead of the ERB ceremony. Turbo 8 shipped Morph and InstaClick. Journey was built before any of this existed. It’s still on raw ERB with hand-rolled CSS and Turbo 7.

So Journey becomes two things at once: the roadmapping tool we actually need, and the proving ground for our new tech stack. If Sirius2 and HERB work well in Journey, they’ll work well anywhere. If they don’t, better to find out here than in a client project.

What’s on the list

The template migration is the big one. Journey has fifty-something ERB views that need to move to HERB and Sirius2 components. That’s not just a syntax swap. It’s replacing shared partials with proper components that have typed attributes and encapsulated rendering. I expect this to take about a week.

Turbo 8 upgrade. Morph changes how page updates work. Instead of replacing DOM elements, it morphs the existing DOM to match the new state. InstaClick prefetches pages on hover so navigation feels instant. Both should make the story map interactions feel snappier.

Docker deployment with a setup wizard, so teams can spin up their own instance without hand-configuring a database. CI pipeline through Wave CI. Security scanning. Email notifications for team events.

And then the product features: better search, labels, zoom controls for large story maps, keyboard navigation. The stuff that turns “works for planning sessions” into “lives in my browser tab all day.”

I’m excited about this sprint. Journey has been useful but static for too long. Time to make it great.