Here’s the thing about admin panels: nobody wants to build them, nobody wants to maintain them, and the people who need them most are the ones with the least power to demand them.
This is a problem.
I ran a platform once. Not a big one, but big enough to have customer service people who weren’t me. From day one, I gave them tools—real tools. They could reset passwords, grant trials, see debugging info, approve orders. They could actually solve problems without filing a ticket and waiting for me to wake up.
Was this risky? Maybe. But I worked with these people. I trusted them. And more importantly, I trusted the audit trail. Every action was logged. If someone went rogue, I’d know. Nobody ever did.
The result: customers got help in minutes instead of hours. Support staff felt empowered instead of helpless. And I wasn’t the single point of failure for every minor issue.
I learned this philosophy in restaurants.
The restaurant that got it right
For a period of time I worked in food service. 15 restaurants to be exact—not simultaneously, but still. Yes, someone with autism worked customer-facing in the service industry. Ask me how well that went. (Actually, don’t. I’m much happier now.)
One restaurant in particular taught me something I still carry. This place was massive—6 floors, 500 seats. Bad shit happens constantly in restaurants: drinks get screwed up, food takes too long, orders come out wrong. At most restaurants, front-line staff can’t do anything about it. Want to comp a meal? Find a manager. Want to offer a gift card? Find a manager. Want to actually fix the problem for the guest who’s sitting right in front of you, visibly annoyed? Find a manager.
The problem: at a 6-floor restaurant, the manager is never on your floor. They’re three floors away dealing with a different crisis.
This restaurant did something radical. They gave every server the ability to comp meals, issue discounts, and hand out gift cards. No manager approval required. The audit trail existed—it’s not like anyone was getting away with fraud—but the person responsible for the guest was actually empowered to be responsible for the guest.
It seems obvious when you say it out loud.
The pattern I keep seeing
I don’t run my own thing anymore. I work for somebody. And I’ve noticed a pattern at every company since: there isn’t an investment in tools.
The workflow looks like this:
- Customer reports a problem
- Support person logs into some bare-bones Grafana dashboard
- Support person can’t actually do anything useful
- Support person files a ticket for a developer
- Developer goes and looks at error logs
- Developer maybe opens a production REPL to inspect actual data
- Developer relays the diagnosis back to support
- Support finally tells the customer what’s going on
That’s a lot of steps. That’s a lot of latency. That’s a lot of developer time spent on something a support person could have handled if they had the right interface.
“But we have Retool”
Yes, there are tools trying to solve this. Retool, Appsmith, various low-code/no-code platforms. They’re fine. I’ve used them. They work for some workflows.
I still prefer ActiveAdmin or Trestle for Rails apps. They’re ugly. They’re opinionated. They’re also extremely fast to set up and they leverage your existing models and validations.
Here’s the uncomfortable part: most admin work is just CRUD. Create, read, update, delete. You don’t need a beautiful React app. You don’t need a design system. You need a form that edits a database row and doesn’t let you break constraints.
What admin shouldn’t be
Admin should not be an extension of whatever stack you’re trying to push on customers.
I’ve seen companies with beautiful, polished customer-facing products and admin panels that literally don’t exist. Or admin that’s “log into the database and run SQL.” Or admin that requires a developer to make any change to any record.
That’s not acceptable. That’s a choice to prioritize engineering aesthetics over operational reality.
If your support team can’t reset a password without filing a Jira ticket, you don’t have a support team. You have a ticket-filing team.
What admin should be
Quick. Dirty. Just enough.
Admin should be:
- Fast to build. Days, not weeks. Use a framework. Generate scaffolds. Ugly is fine;
- Auditable. Every action logged. Who did what, when, to which record;
- Permission-aware. Not everyone needs access to everything. But the people who need access should actually have it;
- Operational, not aspirational
The restaurant got this right. The people closest to the problem should be able to solve the problem. The audit trail is what protects you, not the bottleneck.
The real cost
When you don’t invest in admin, the cost doesn’t show up on a balance sheet. It shows up in:
- Slower response times for customers;
- Support staff who feel powerless and burn out;
- Developers pulled into operational work instead of building;
- Customers who leave because their problem took three days to resolve instead of three minutes
You can’t measure the deals you lost because support couldn’t help fast enough. But they happened.
Where to start
If you’re sitting on a codebase with no admin tooling, here’s what I’d do:
-
Pick a framework and commit. For Rails: ActiveAdmin or Trestle. For Django: django-admin (it’s built in). For Node: AdminJS. Don’t build from scratch.
-
Start with read-only. Just let support see what’s in the database. Customer info, order history, subscription status. No editing yet. This alone solves half the ticket volume.
-
Add the high-frequency operations. What are the three things support asks developers to do most often? Password resets? Refunds? Status changes? Build those first.
-
Log everything. Every action, every user, every timestamp. This is how you earn trust. This is how you protect yourself when something goes wrong.
-
Expand based on real need. Don’t build speculatively. Wait until support says “I wish I could do X” and then build X.
The restaurant had a 500-person dining room and a handful of managers. They scaled by trusting their servers with real power and real accountability.
Your admin panel is the same problem. Trust your people. Give them tools. Keep the audit trail.
That’s how you manage at scale.