• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
stevekrouse

stevekrouse

todo-list-test

Public
Like
todo-list-test
Home
Code
4
backend
3
frontend
3
shared
1
README.md
Branches
3
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
8/1/2025
README.md

Todo List App

A simple persistent todo list application built with:

  • Backend: Hono API framework with SQLite database
  • Frontend: React with TypeScript
  • Styling: TailwindCSS

Features

  • ✅ Add new todos
  • ✅ Mark todos as complete/incomplete
  • ✅ Delete todos
  • ✅ Persistent storage with SQLite
  • ✅ Real-time updates
  • ✅ Responsive design
  • ✅ Loading states and error handling

Project Structure

├── backend/
│   ├── database/
│   │   ├── migrations.ts    # Database schema
│   │   └── queries.ts       # Database operations
│   ├── routes/
│   │   └── todos.ts         # Todo API routes
│   └── index.ts             # Main Hono app
├── frontend/
│   ├── components/
│   │   ├── App.tsx          # Main React component
│   │   ├── TodoItem.tsx     # Individual todo component
│   │   └── TodoForm.tsx     # Add todo form
│   ├── index.html           # HTML template
│   └── index.tsx            # React entry point
├── shared/
│   └── types.ts             # Shared TypeScript types
└── README.md

API Endpoints

  • GET /api/todos - Get all todos
  • POST /api/todos - Create a new todo
  • PUT /api/todos/:id - Update a todo
  • DELETE /api/todos/:id - Delete a todo

Development

The app runs on Val Town with automatic deployment. The backend serves both the API and static frontend files.

Usage

  1. Visit the application URL
  2. Add new todos using the input form
  3. Click the checkbox to mark todos as complete/incomplete
  4. Click the delete button (trash icon) to remove todos
  5. All changes are automatically saved to the SQLite database

The application includes initial data injection to avoid extra API calls on page load, providing a smooth user experience.

FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.