87 lines
2.3 KiB
Markdown
87 lines
2.3 KiB
Markdown
# Tech Stack Recommendation
|
|
|
|
## Short Answer
|
|
|
|
If you are rebuilding this app from scratch, I would use:
|
|
|
|
- HTMX + Tailwind if you want a simple server-rendered web app
|
|
- Flutter Web only if you want to stay in the Flutter ecosystem
|
|
|
|
## Recommendation
|
|
|
|
For this app, HTMX + Tailwind is the better default if the priority is:
|
|
|
|
- simpler architecture
|
|
- faster screen-by-screen rebuild
|
|
- less frontend complexity
|
|
- server-rendered HTML with progressive enhancement
|
|
|
|
Flutter Web is still viable if:
|
|
|
|
- you want to preserve Flutter skills
|
|
- you expect the app to stay mostly in the Flutter ecosystem
|
|
- you are okay spending more time on desktop layout tuning
|
|
|
|
React is also viable, but it is more framework than you need if the app mostly consists of forms, lists, and detail pages.
|
|
|
|
## Suggested Stack
|
|
|
|
### Frontend
|
|
|
|
- HTMX
|
|
- Tailwind CSS
|
|
- server templates
|
|
- optional Alpine.js for small interactions
|
|
- optional server-side form validation helpers
|
|
|
|
### UI Structure
|
|
|
|
- responsive app shell
|
|
- partial page updates
|
|
- reusable template fragments
|
|
- shared table/card patterns
|
|
- modal and drawer patterns only when needed
|
|
|
|
### Data
|
|
|
|
- server-side API adapter
|
|
- request/response DTO layer
|
|
- session or token handling on the backend
|
|
- HTML forms with progressive enhancement
|
|
|
|
### Testing
|
|
|
|
- backend unit tests for API adapter and request parsing
|
|
- template rendering tests for key pages
|
|
- smoke tests for login and order flow
|
|
|
|
## Why This Fits the Problem
|
|
|
|
- The current app is mobile-heavy and likely needs a cleaner desktop shell.
|
|
- HTMX keeps the frontend thin while still allowing dynamic interactions.
|
|
- Tailwind gives fast control over responsive layouts without building a large component system.
|
|
- Server-rendered pages are easier to keep consistent while you rebuild screen by screen.
|
|
|
|
## If You Stay On Flutter
|
|
|
|
Use:
|
|
|
|
- Flutter Web
|
|
- go_router
|
|
- Riverpod or Bloc
|
|
- responsive layout helpers
|
|
- separate desktop sidebar shell from mobile bottom-nav shell
|
|
|
|
Flutter is fine, but the layout work will be more manual.
|
|
|
|
## If You Choose HTMX + Tailwind
|
|
|
|
Use:
|
|
|
|
- backend templates for pages and fragments
|
|
- HTMX for partial swaps
|
|
- Tailwind utility classes for responsive layout
|
|
- a small amount of JS only for UI gaps HTMX does not cover
|
|
|
|
This is the cleanest fit if you want the new app to stay simple and maintainable.
|