A minimal, mobile-first Todo List PWA built with React, TypeScript, and Tailwind CSS.
Features
- Lazy & Minimal: No clutter. No titles. No "Add" buttons. Just type and go.
- Mobile-First Design: Optimized for touch interactions and mobile screens.
- PWA Support: Installable on iOS and Android. Works offline.
- Multiple Lists: Organize your tasks into separate lists.
- Snooze Items: Temporarily hide completed items for 1 hour to declutter your view.
- Share Lists: Export and import lists using a simple encoded string.
- Alphabetical Sorting: Lists and items are automatically sorted for you.
- Persistence: Data is saved automatically to your device's local storage.
- Dark Mode: Automatic device-driven dark mode support.
Tech Stack
- Framework: React + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS v4
- PWA: vite-plugin-pwa + Workbox
- Testing: Vitest + React Testing Library
- CI/CD: GitHub Actions
Getting Started
Prerequisites
- Node.js (v20 or later recommended)
- npm
Installation
-
Clone the repository:
git clone https://github.com/lazy-software/list.git cd list -
Install dependencies:
Development
Start the development server:
Testing
Run the unit tests:
Building for Production
Build the app for deployment:
The output will be in the dist directory.
Deployment
This project is configured to deploy automatically to GitHub Pages using GitHub Actions.
- Push changes to the
mainbranch. - The workflow in
.github/workflows/deploy.ymlwill build and deploy the app. - Ensure your repository Settings > Pages source is set to "GitHub Actions".
License
MIT