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

stevekrouse

todo-list-test

Public
Like
todo-list-test
Home
Code
5
backend
2
frontend
1
shared
1
README.md
H
index.ts
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 server with SQLite for data persistence
  • Frontend: Client-side React with Tailwind CSS
  • Database: SQLite for storing todos

Features

  • ✅ Add new todos
  • ✅ Mark todos as complete/incomplete
  • ✅ Edit todo text (double-click to edit)
  • ✅ Delete todos
  • ✅ Persistent storage with SQLite
  • ✅ Responsive design with Tailwind CSS

Project Structure

/
├── index.ts              # Main Hono server entry point
├── backend/
│   ├── database/
│   │   └── schema.ts     # Database schema and operations
│   └── routes/
│       └── todos.ts      # API routes for todos
├── frontend/
│   └── App.jsx          # React frontend application
├── shared/
│   └── types.ts         # Shared TypeScript interfaces
└── README.md            # This file

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

Usage

  1. The app will automatically initialize the SQLite database on first run
  2. Visit the root URL to access the web interface
  3. Use the input field to add new todos
  4. Click checkboxes to mark todos as complete/incomplete
  5. Double-click on todo text to edit
  6. Click the delete button to remove todos

Live Demo

The application is deployed and ready to use. Simply visit the root URL of your Val Town project to start using the todo list.

API Testing

You can test the API endpoints directly:

  • GET /api/todos - Get all todos
  • POST /api/todos - Create a new todo (send JSON with text field)
  • PUT /api/todos/:id - Update a todo (send JSON with text and/or completed)
  • DELETE /api/todos/:id - Delete a todo

Example:

curl -X POST https://your-val-url.web.val.run/api/todos \ -H "Content-Type: application/json" \ -d '{"text":"Buy groceries"}'

Development

The app uses:

  • React 18.2.0 for the frontend
  • Hono for the backend framework
  • SQLite for persistent storage
  • Tailwind CSS for styling
  • Babel for JSX transformation in the browser
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.