Public
Like
To-do_Tracker
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in miliseconds.
index.ts
https://nezha--bcf1b3103fac11f0945976b3cceeab13.web.val.run
A comprehensive productivity app that combines task management with daily habit tracking.
- ✅ Create, edit, and delete tasks
- ✅ Mark tasks as complete/incomplete
- ✅ Set priority levels (High, Medium, Low)
- ✅ Add due dates
- ✅ Filter and sort tasks
- 📅 Create daily habits to track
- ✅ Mark habits as completed for each day
- 📊 View completion streaks
- 📈 Track progress over time
- 🎯 Set habit goals and descriptions
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database query functions
│ ├── routes/
│ │ ├── todos.ts # To-do CRUD operations
│ │ └── habits.ts # Habit tracking operations
│ └── index.ts # Main Hono server
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main app component
│ │ ├── TodoList.tsx # To-do list component
│ │ ├── HabitTracker.tsx # Habit tracker component
│ │ └── Navigation.tsx # App navigation
│ ├── index.html # Main HTML template
│ ├── index.tsx # Frontend entry point
│ └── style.css # Custom styles
├── shared/
│ └── types.ts # Shared TypeScript types
└── README.md
- Backend: Hono (TypeScript API framework)
- Frontend: React 18.2.0 with TypeScript
- Database: SQLite
- Styling: TailwindCSS
- Storage: Val Town SQLite
GET /api/todos
- Get all todosPOST /api/todos
- Create new todoPUT /api/todos/:id
- Update todoDELETE /api/todos/:id
- Delete todo
GET /api/habits
- Get all habitsPOST /api/habits
- Create new habitPUT /api/habits/:id
- Update habitDELETE /api/habits/:id
- Delete habitGET /api/habits/:id/completions
- Get habit completionsPOST /api/habits/:id/completions
- Mark habit as completed for a dateDELETE /api/habits/:id/completions/:date
- Remove habit completion
This app runs on Val Town. The main entry point is backend/index.ts
which serves both the API and the frontend.