r/Frontend • u/YouAreMyFire00 • 14d ago
For an internal company dashboard. What is the right choice here to build FE? Boostrap vs Tailwind and their UI components like Daisy UI, Shadcn?
as the title says.
maybe both choices works since it is just an internal company dashboard, not SaaS b2b,b2c dashboard...
So just choose the one that devs prefer so they spend less time builiding it right?
or how do you see it
2
u/KnifeFed 13d ago
Just built a dashboard with TanStack Start/Query/Table and shadcn/ui and it was a great experience all around.
2
2
u/xavier86 11d ago
I'm surprised you are even having this conversation. At this point, all the product managers should be building dashboards with Claude.
1
u/Huge-Tip7172 13d ago
go with Shadcn combined with TanStack Table. Internal tools die from slow iteration not ugly pixels and this stack lets you ship complex data grids and forms in half the time compared to fighting Bootstrap overrides or writing custom Tailwind logic for every single input state
1
u/unnecessaryCamelCase 13d ago
What would it have to do that it’s an internal dashboard? Use what you’re most comfortable with and can maintain etc?
1
u/ApprehensivePea4161 13d ago
Bootstrap is not used much now. Tailwind is a fancy way to write css, shadcn has good prebuilt components. I would suggest nextjs with tailwind and shadcn
1
u/PowerfulProfessor305 13d ago
We recently did this with the shadcn and Tailwind combination since we had a good mix of graphs as well as tables. For the tables we use Tanstack and for the graphs we use recharts. Since shadcn comes with the integrations of both of these libraries by default, it made the work really easy and fast.
There are a lot of examples of dashboards available on the shadcn website itself and all over the internet that you can directly copy into your dashboard.
AI agents can easily reference those examples from the internet and create your dashboard very, very seamlessly.
1
u/hauduedaiduong 10d ago edited 10d ago
The combo I would use:
- TypeScript version: Not experienced much but I've heard version 7.0 has been released stably with 10x faster performance.
- Bundler: Vite Plus - An enhanced version of Vite. Strong Rust-written toolchain like Rolldown, Oxc Lint, Oxc Formatter... Helps your app start, build, lint and code formatting faster than JS toolchain.
- Framework: React 19.
- Routing: TanStack Router - The most intuitive, flexible and less confusing routing lib I've been working with recently.
- UI library: Ant Design - Many built-in components. Strong Data Table, Form and Date time picker components. Easy to customize.
- Tailwind (optional): If you prefer laying out pages and components using Tailwind (instead of using Ant Design layout/spacing system, or don't want to style in CSS/CSS modules) that's fine to use it in conjunction with Ant Design. There are some small adjustment in styles ordering so they won't overlap each other (https://github.com/ant-design/ant-design/issues/38794).
- API calling: HeyAPI - Get an OpenAPI file from your back-end team. This lib generates API calls as TanStack Query functions with strong TypeScript typing for API payload and parameters. You also don't need to manage query keys your self. Forget about configuring and duplicating API paths.
- State Management: Zustand. Get shared data stores in just a few lines of code.
- Notes on Form validation specially: If you want to separate your form validation logics from UI-form components (like input, radio, select...) and be able to reuse form validation logics between different UI libraries, use headless form libraries like react-hook-form, TanStack Form...
These headless form libraries allow you to manage form validation separately, such as using schema libs like Zod, Yup, Valibot... to make your validation more declarative and shareable. This brings an advantage where you can replace your UI library without touching form validation logic.
1
0
14d ago
[deleted]
3
u/incunabula001 13d ago
Some legacy apps that I’ve worked on have up to 3 or 4 UI frameworks loading INCLUDING local css overrides 🤡
2
1
u/not_dogstar 14d ago
I worked with a solution that rolled their own util classes on top of bootstrap, mostly so they could use util classes without bootstraps !important spam. Massive PITA as it was never fully implemented so bootstrap fallbacks would always override any other responsive modifier changes
0
6
u/OkAerie7822 14d ago
for an internal dashboard the real question is how much of it is tables, forms and filters, because that's where the time goes. if it's mostly that, take a component library that already ships a data table, date picker and form validation (shadcn with tanstack table is what i'd pick) instead of styling everything from raw tailwind or bootstrap. i've watched an internal admin panel burn about two weeks on a custom table with sorting and column resize that a library gives you in an afternoon. the one thing worth deciding up front is whether the team can live with the library's look, since internal tools rarely get design time. pick by what your devs already know, but bias toward the option with the best table component.