chat gippity made the readme im doing this to learn htmx and golang i hate react now im a htmx-grug-pilled dev, f the virtual dom v0 made like 50% of my frontends styles btw
-
finish the main page and abstract the update logic of the tags
-
split the task updating and tag creation/relation endpoints
-
make ui composable
-
implement the get task by tags page
-
implement manage tags page
- implement CRUD on tags, make it a card based ui for CRUDing tags
-
make the dropdowns for adding relations only show items which havent been added already as tags
-
add many to many relationship thing and show tasks related to tag in the card
-
implement tags page tag relation to task
-
make the footer work
-
IMPLEMENT ACTUAL FILTERING ON TASKS PAGE
- implement searching by name
- implement filtering by tag
- implement filtering by completed (cba)
-
read the other md files rq
-
refactor v1.5
- add net/http and remove echo
- add decent logging on errors
- move handler logic outside of the router
- add sqlc
- complete the rest of the app, get it back to how it was
-
implement actual database migrations
-
add the actual http/1.1 response and request in the logging middleware so i know http strings are being sent and recieved over http
-
host with https on local network
-
add barebones auth using cookies
-
then jwt
- finish the migration business
- implement the readme on how to add session auth
- add sql to the sessions instead of storing them in memory
- make an indicator showing if the user is logged in or not
- finish fetching the tags and shit
- change the hx-redirects to just forms with actions
- block csrf, add session expirations, add jwt
-
refactor v2 (vaults)
-
notes
-
note to self: every tag action based on its vault should be validated with the user id
-
large scale objectives
-
objectives
-
replace auto incrementing ids with uuids (no random id guess attack vector)
-
make it work with the uuids and vault ids now
- change all of the queries to use vault ids
- add default vault id to users, add vault type
- make the sign up create a default vault
-
add author info to tags and tasks, fix the n+1s with joins, fix updatednow
- tags
- tasks
- fix the n+1 problem with author info
-
fix the workflow
- make all queries work with roles and vaults
- change constraints of uniqueness to include vaults
-
add redirect to tasks/vault filter on tag id click
-
golang standards project layout conform to this structure
-
ALWAYS Update the updated_now fields so its actually true
-
order everything by created_at
-
!!! add a vault middleware which gives the vault depending on if the route is the shared one or the default one, cuz rn its only default
-
add vaults page
- fix bug where you cant see the people connected to the vaults
- fix bug where i can see other peoples tasks at /tasks
- fix bug where i can edit other peoples vaults without being owner
- add removing collaborators if ur owner
- stop 1 user from having multiple entries of a role (I already implemented that security measure, I guess im not that dumb after all.)
- fix that one stupid bug where an owner can remove themselves as a collaborator
-
-
Best practices refactor
-
I'm gonna do this boring shit later, going a bit forward so i can do websockets
-
fix users being able to see other peoples individual tags without auth
-
test for security issues
-
Error handling, SQL, better authz
- ADD ACTUAL RBAC AND RLS INSTEAD OF THIS BS EXISTS SHIT!
- take a look at whole codebase sql and search for security issues before proceeding
- add some serverside error handling that gives back descriptive errors instead of sql (its secured rn but make it responsive to the user)
- add alphabetical sorting to everything after created_at so its uniform!
-
add decent error logging
-
add sql query logging
-
fix that one dumb down migration at 8
-
fix add tag in tasks page
-
move onto phase with collaborative vaults with websockets
-
-
Make the multi user part work (vault implementation)
-
finish vault introduction page
-
add "upload profile picture" to sign up
-
learn about websocket pub/sub architecture
-
make the debug page show which clients are connected (names)
-
make the pub/sub channel(vault) based
-
authorize the websocket connections
-
create my own http verb system in websockets
- make task stuff work
- make the tag stuff work
!!!
- refactor how adding tags works (single tag)
- change the query to be like the tasks one where it returns and redo the handler then
- refactor how adding tags works (single tag)
- think and fix what to do with paths
-
make real time mouse sharing
-
think about what to do with the ws having to reconnect on every url change
- [x] hx boost ftw - [x] make the page like a SPA so u dont have to reconnect to the ws when switching from tasks to tags page -
refactor all the services and websockets logic
- test (manually)
-
architecture better
-
add error showing to RBAC issues
- just implement utils.showerror but for websockets
-
-
do a good frontend with templ
-
add a home page with "current active users"
-
add JSON endpoint for mobile app, openapi specs
- add some documentation to the json returning api
-
add notification system via sse
- users can request others access to vaults
- x user edited this, etc
-
add some tests bruh
Aight 😤 let’s cook something that's:
- 🔥 fun to build
- 🧠 hits core web fundamentals (routing, templates, components, state)
- 💡 has room to grow into full-stack if you want later
- 🛠️ perfect for your Go + HTMX + Tailwind stack
A keyboard-driven task manager with nested tasks, tagging, filters, and HTMX-powered inline editing.
- 📝 Add / Edit / Delete tasksw
- 🏷️ Tag tasks with colors (e.g.,
#school,#project,#bug) - ✅ Mark tasks complete
- 🔍 HTMX-powered search and tag filter
- 💥 All inline — no page reloads
| URL | Purpose |
|---|---|
/ |
Dashboard w/ all tasks |
/tasks/:id |
Focus view on one task |
/tags/:tag |
Filtered view by tag |
/about |
(optional) About page |
- Go HTML templates w/ layout + components ✅
- HTMX for real-time interactivity ✅
- Tailwind for styling ✅
- URL routing + query handling in Go ✅
- Basic CRUD over a slice/map (or SQLite later) ✅
- Optional: persistence w/ a local file or sqlite 🔥
- Optional: keyboard shortcuts (
js + htmx) 🔥
- ⏱️ Due dates + calendar view
- 🔁 Recurring tasks
- 📦 Export to Markdown / JSON
- 🔒 Auth if you make it multi-user later

