Summary Rows and the Monday Feeling

rubyrailsbuilding-in-public

Something shifted this week. Meera stopped feeling like a project we’re building and started feeling like a product we use. I’m not sure exactly when it happened. Probably somewhere between the summary rows and the board duplication feature.

Summary rows sit at the bottom of each item group and show aggregated data for the columns above them. Status columns get a distribution bar: a thin horizontal strip showing the proportion of items in each state, color-coded to match the labels. Date columns show the range (earliest to latest). Number columns show the sum. It’s the kind of thing that sounds minor until you’re in a planning meeting and someone asks “how much of this sprint is actually done?” and you can just… see it. Right there. No mental math, no counting items.

Board duplication was the other one. We kept running into the pattern of “this board works great for the sales team, can we get the same layout for the marketing team?” Before duplication, that meant manually recreating the board, adding all the columns, configuring the status labels, setting up the groups. Now it’s one click. Clone the board, rename it, swap out the members.

The five-month shape

Looking back at where we are:

The core board experience, inline editing, drag-and-drop, configurable columns, color-coded groups, has been solid since March. April brought authentication, profiles, workspace folders, and the nano ID system for all external-facing identifiers. May was deployment and mobile layout. June was the big one: My Work view, board search, archiving, member management.

The app is server-rendered with Turbo Streams handling all the real-time updates. No client-side framework. Twenty-something Stimulus controllers manage the interactive bits: sortable items, inline editing, popovers, date pickers, color pickers, search filtering. It’s holding up well. The SPA-like feel is there without any of the SPA complexity.

We moved to ruby-vips for image processing this week because avatars needed proper resizing and the MiniMagick dependency was heavy for what we needed. Small change, but it’s the kind of infrastructure investment you make when you know you’re keeping something.

What’s next

LDAP integration. That’s the big one still on the list. Right now users are managed manually: create an account, set a password. For an internal tool, that’s not sustainable. We need users provisioned automatically from Active Directory. Someone joins the company, they appear in Meera. Someone leaves, they’re removed. No manual bookkeeping.

Once LDAP is in, Meera will be fully self-sufficient: running on our infrastructure, authenticated against our directory, tracking our work. That’s what we set out to build five months ago when the Jira licenses were about to expire. We’re almost there.