Files
doclink_web/project-specs/TECH_STACK.md
2026-04-13 11:26:58 +07:00

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.