A modern, responsive todo list application built with React, TypeScript, Vite, and Tailwind CSS. All todo items are stored in the browser's local storage. The app is containerized with Docker and served using Bun for production-ready deployment.
- ✅ Add, edit, complete and delete todos
- ⏰ Scheduling with natural language
- 🚩 Tagging and filtering with #hashtags
- 💾 Local storage in browser, no DB
- ⌨️ Keyboard controls and shortcuts
- 🎨 Modern UI with Tailwind CSS
- 📱 Responsive design
- 🚀 Fast development with Vite
- 🐳 Docker containerization
- ⚡ Built with Bun for speed
- 🧪 Entirely vibe-coded with Opencode
-
Clone the repository:
git clone https://github.com/nicbet/toodle.git cd toodle -
Install dependencies:
bun install
-
Start the development server:
bun run dev
-
Open http://localhost:5173 in your browser.
To build the project locally:
bun run buildThis creates a dist/ directory with the production build.
To serve locally:
bun run serveTo build and run with Docker:
make buildThis will:
- Run
bun run buildto create the production build - Build the Docker image
ghcr.io/nicbet/toodle:latest
make allormake build: Build the Docker imagemake clean: Remove build artifacts and Docker image
The Docker image serves the app using Bun's built-in static file server. The app listens on the :80 that you can map to any port you like.
docker run -p 3000:80 ghcr.io/nicbet/toodle:latestversion: '3.8'
services:
toodle:
image: ghcr.io/nicbet/toodle:latest
ports:
- "3000:80"We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Run tests:
bun run test(when tests are added) - Lint your code:
bun run lint - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/your-feature - Submit a pull request
- Use TypeScript for type safety
- Follow the existing code style (Prettier formatting)
- Use camelCase for variables and PascalCase for components
- Add JSDoc comments for functions and components
- Ensure responsive design with Tailwind CSS
bun run dev: Start development serverbun run build: Build for productionbun run serve: Serve production build locallybun run preview: Preview production buildbun run lint: Run TypeScript type checking
This project is licensed under the MIT License.
