Building Control Tower: How We Built Our Own Project Management Platform

We Needed a Tool That Actually Fit

Most project management software is built for a hypothetical team.

It covers every possible use case, which means it’s nobody’s perfect fit. You end up bending your workflow to the software instead of the other way around.

At Flight Plan Marketing, we decided to stop looking for the right tool and start building it. That platform is called Control Tower, and this is how it gets made.

The Platform in Plain Terms

Control Tower is our internal hub for running the agency. The team uses it every day to manage projects, log time, track client work, and get a quick read on what’s happening across the business.

It pulls in live data from the platforms we work in, including Google Ads, Meta, and Shopify, so the view from inside the tool reflects what’s actually happening in the market, not just what’s happening inside the agency.

The goal was simple: one place where the team has the context they need to do their best work, without having to chase it down.

It Wasn’t Designed. It Was Grown.

Control Tower wasn’t built in a boardroom and handed over finished.

It’s been built the way a good campaign gets built: in the open, in tight loops, shaped every week by the people actually using it. The team uses the tool, tells us what’s clunky and what’s missing, and that turns into shipped improvements, often the same day.

The interesting part isn’t the software. It’s the system we use to keep improving it.

Two Lists in Slack

The whole thing runs on something almost embarrassingly simple: two canvases in Slack.

One called Bugs. One called Wishlist.

When something breaks or annoys a team member, it goes on Bugs. When someone thinks “you know what would be great,” it goes on Wishlist. No tickets, no forms, no process tax. Just two running lists that anyone can drop a thought into the moment they have it.

That low friction is the point. Feedback gets captured while it’s fresh, which means the tool keeps getting shaped by real daily use, not by whatever someone remembers to mention in a meeting.

From a Slack Note to a Shipped Change

Here’s the loop we actually run, every time:

The team uses it and reacts. Real work, real friction, real ideas, captured on the canvases as they happen.

We sharpen the idea. Sometimes a wishlist item is crystal clear. Sometimes it’s a seed, like “it might be nice to email a task into the system and have it auto-fill the details.” When something’s fuzzy or far-reaching, we talk it through first, so we’re building the right thing, not just a thing.

We build it together. The item goes into a focused working session with our AI build partner. We plan the approach, then build it, with a human in the driver’s seat the entire time. The AI moves fast, but every decision about what we’re building and why is a human one.

We check it like a user would. Nothing is done because the code looks right. We open the actual app and look at it, on desktop and on a phone, because a lot of the feedback was about how things felt on mobile in the first place.

We write down what changed. Every meaningful change gets a before-and-after record with screenshots, so the team can see what moved without reading code. It doubles as a running changelog of the product’s progress.

We ship it with a safety net. Before anything goes live, it gets a second set of eyes and runs through an automated test suite. Thousands of checks confirm that today’s fix didn’t break yesterday’s feature. Only then does it go out.

Then the loop starts over. New feedback, new canvas items, next session.

What’s Actually Made It Work

A few principles have done more for Control Tower than any single feature.

Build for the people who’ll actually use it. Early on, the tool was capable but cluttered. So cluttered that one team member was tracking her tasks on paper instead of in the platform. That was the wake-up call. We stopped adding and started subtracting: flattened the menus around the screens people touch daily, cut task statuses down to To Do, In Progress, and Done, and removed the noise. A tool nobody uses isn’t powerful. It’s just complicated.

Feedback in, improvement out, fast. The gap between “this is annoying” and “this is fixed” is often measured in hours, not weeks. That speed is only possible because the capture is frictionless and the build-and-ship loop is tight and repeatable.

Show, don’t tell. The before-and-after records mean progress is visible at a glance. The team can see that their feedback actually went somewhere. People keep giving good feedback when they can watch it land.

Never ship blind. Fast doesn’t mean reckless. The review-and-test net is what lets us move quickly without the usual cost of moving quickly, which is things breaking at the worst possible moment.

How It’s Grown

If you zoom out, Control Tower has matured in waves, each one driven by the same loop.

First, getting the data flowing: wiring in the marketing platforms so Control Tower had something real to show. Then making it usable, a significant simplification push so the team would actually adopt it. Then making it sharp, turning plain pages into at-a-glance “cockpit” views for each business, refined over several rounds of feedback. Most recently, making it intelligent: connecting the tool to AI so the team can manage their work conversationally, while pulling in calendar data and deeper marketing signals so the picture keeps getting richer.

Same loop every time. Someone uses it, reacts, and the tool gets a little better the next day.

Final Thoughts

Most software gets bought and adapted to. Control Tower gets used and shaped.

That distinction matters more than it might sound. When the people closest to the work have a direct line to improving the tools they use every day, the tools get genuinely better. Not feature-bloated. Better.

It’s a small system: two lists, a tight loop, and a commitment to shipping things quickly without cutting corners. But it’s the reason Control Tower is a platform the Flight Plan team actually wants to open in the morning.