Every admin product starts by rebuilding the same eight things — auth, RBAC, tables, forms, theming, i18n, feature flags, routing. None of it is the product. Here's why this keeps happening, and what to do instead.

Every internal tool, SaaS back office, and operational admin product begins life the same way. Someone opens an empty Vite project. The team picks a UI library. Then they spend three months building the same things every other admin product has already built.

Auth with token refresh. A permissions system. A data table that does server pagination, sorting, filtering, search, column reorder, and CSV export. A form stack with consistent validation. Empty states. Loading states. Error states. A notifications system. Light and dark themes. A language switcher. Feature flags. A routing setup that drives navigation and breadcrumbs from a single source.

Then — and only then — does the team start building the actual product.

This is the floor problem. The floor is the work you have to do before the product can stand on it. And almost nobody talks about how much of it there is, or how badly teams rebuild it.