Back to Blog

Solving the 'Floor Problem' in Admin Product Development

EN 🇺🇸Article10 min read
#software architecture#frontend development#admin panels#engineering productivity

Ever start a new admin panel, internal tool, or SaaS back-office, only to find your team spending months building the same foundational features you’ve built countless times before? Authentication, permissions, data tables, forms—it's all essential, but none of it is the actual product. This hidden, repetitive work is what we call the Floor Problem.

The Floor Problem describes the extensive, non-differentiating work required to establish a stable and consistent base for any serious administrative application. It consumes valuable engineering time, delays shipping core product features, and often results in a codebase riddled with inconsistencies. Understanding this problem and adopting deliberate strategies to address it can drastically improve engineering velocity and product quality.

What the Floor Problem actually is

The Floor Problem is the recurring challenge in software development, particularly for administrative products, where teams repeatedly build the foundational components necessary for an application to function, rather than focusing on its unique value proposition. Imagine building a house: the floor isn't the exciting living room or the modern kitchen, but the concrete slab, plumbing, and electrical wiring that everything else rests upon. Without it, nothing can stand.

This "floor" includes a suite of essential features that are critical for any operational system, yet they rarely provide direct business value or differentiation. They are prerequisites, often underestimated in scope and complexity, that must be robust and consistent for the application to be usable and maintainable. The core mechanism is one of unrecognized duplication and incremental complexity creep, where seemingly simple requirements grow into significant engineering efforts.

Key components

Here are the essential components that typically constitute the "floor" in admin product development:

The problem often reveals itself slowly, month after month, as the seemingly simple initial setup morphs into a significant undertaking.

  1. Week 1: You set up a basic login, a sidebar, and a couple of routes. It feels easy, like you're making quick progress.
  2. Week 4: The humble list of rows evolves into a complex data table that needs server pagination, URL-driven state, persistent column preferences, and a working CSV export.
  3. Week 8: Basic if (user.role === 'admin') checks are no longer sufficient. A real permissions system (RBAC) emerges, gating navigation items, route access, and individual action buttons.
  4. Week 12: A stakeholder demands feature flags for a controlled rollout. Now you need a config UI, a flag-checking hook, and robust route guards, pushing initial estimates far past their mark.

Why engineers choose it

Engineers don't choose to rebuild the floor; they are often forced into it because existing solutions fall short for real-world applications. The industry offers various tools to help, but they typically cluster at two ends of a spectrum, neither fully addressing the "Floor Problem":

Because none of these options fully deliver a production-ready "floor" for complex admin products, teams repeatedly rebuild it, each time slightly differently, leading to a proliferation of bespoke conventions and solutions.

The trade-offs you need to know

While building the floor seems like an inevitable first step, it’s crucial to understand that it doesn't remove complexity; it merely shifts it. Ignoring the Floor Problem or addressing it inadequately introduces significant trade-offs:

When to use it (and when not to)

Understanding the Floor Problem helps you make informed decisions about your project's foundation. It's about being deliberate.

Use it when:

Avoid it when:

Best practices that make the difference

Building a solid foundation for your admin product requires deliberate effort and adherence to key principles. These practices help you overcome the Floor Problem and set your team up for long-term success.

Be Opinionated

Define and enforce a single, consistent way to do things across your application. This means one way to structure a page, one way to define a route, one way to wire a data table, and one way to check permissions. Document these conventions explicitly, and use tools like linters or scaffolding scripts to enforce them. An opinionated foundation means new engineers can quickly understand and contribute to any part of the codebase, predicting how the fourth page works after seeing the first three.

Be Complete

A truly effective foundation must integrate all the core pieces: authentication, RBAC, data tables, forms, dashboards, notifications, theming, i18n, and routing. These components shouldn't just exist; they must be wired together seamlessly. Users should be able to sign in, view a list, edit a record, receive a notification, switch languages, toggle dark mode, and have their preferences persist across reloads—all out of the box, without needing to reinvent the integration logic for each feature.

Be Real

The most crucial property of a good admin foundation is that it must be tested against an actual, complex operational workflow, not just a simple CRUD (Create, Read, Update, Delete) demo. Patterns that survive modeling an entity with multiple statuses, sub-resources, and a separate decision flow are fundamentally different from patterns that only look good in an initial demo. This "realness" ensures your foundation can handle the intricate business logic and user interactions of a true operational system.

Adopt a Deliberate Foundation

Instead of mindlessly rebuilding the floor with every new project, make an informed choice. You can build it yourself with deliberate planning and strong conventions, fork an existing opinionated foundation that aligns with your team's stack (e.g., React with Redux/Zustand, MUI/Tailwind), or, for very simple cases, use a low-code platform. The key is to assess foundations not just by their components, but by how well they encode patterns for real-world workflows. Look for proof that the foundation has handled complex scenarios, not just demo screens.

Wrapping up

The Floor Problem is a ubiquitous, yet often overlooked, challenge in software engineering. The months spent rebuilding authentication, permission systems, advanced data tables, and robust forms are a significant drain on engineering resources, slowing down product development and introducing insidious technical debt through inconsistent patterns. It's a problem of invisible complexity and unrecognized cost.

Recognizing that the true unit of admin software is the pattern, not just the component, is key to overcoming this. By being opinionated, building complete, integrated solutions, and validating them against real operational workflows, teams can move past the constant reinvention of the "floor." This deliberate approach frees engineers to focus on the unique, value-generating features that truly differentiate a product.

Investing in a well-thought-out, robust foundation is not a luxury; it's a strategic imperative for any serious admin product. It's the difference between a codebase that decays over time and one that enables sustained velocity and growth. Choose wisely, build deliberately, and your team will spend less time on the floor and more time building impactful features.

Newsletter

Stay ahead of the curve

Deep technical insights on software architecture, AI and engineering. No fluff. One email per week.

No spam. Unsubscribe anytime.

Solving the 'Floor Problem' in Admin Product Development | Antonio Ferreira