Upload files to "project-specs"
This commit is contained in:
86
project-specs/TECH_STACK.md
Normal file
86
project-specs/TECH_STACK.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user