Skip to content

πŸ“ React.js todo app with many features, including sharing tasks via link, P2P synchronization using WebRTC, theme customization and offline usage as a PWA.

License

Notifications You must be signed in to change notification settings

maciekt07/TodoApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“React.js Todo App

A fast and modern Todo app built with React, featuring task sharing via link, P2P Task Sync with WebRTC, theme customization, offline usage as a PWA, and caching for smooth performance.

Netlify Status GitHub code size in bytes GitHub created at GitHub last commit

πŸ’» Tech Stack

  • react React
  • typescript Typescript
  • vite Vite
  • vitest Vitest
  • emotion Emotion
  • mui Material UI (MUI)

⚑ Features

πŸ”— Share Tasks by Link or QR Code

Easily share your tasks with others using a link or QR code.

Example Link

Shared Task

πŸ€– AI Emoji Suggestions

This feature uses Chrome’s experimental window.LanguageModel API powered by Gemini Nano β€” an on-device LLM.

⚠️ Requires Chrome Canary 128+ with the Gemini Nano model installed - Setup guide

Code: src/components/EmojiPicker.tsx

AI Emoji

πŸ”„ P2P Task Sync with WebRTC

Securely sync all the data between devices using peer-to-peer WebRTC connections. Devices pair via QR code, and your data is transferred directly between them β€” only minimal server involvement for connection setup, with no data stored or processed in the cloud.

  • Tasks and categories are auto-merged based on recent edits or deletions
  • For settings and other data, you choose which device to sync from

sync-demo.mp4

🎨 Color Themes & Dark Mode

Choose from various color themes and toggle between light and dark modes to suit your preferences.

πŸ—£οΈ Task Reading Aloud

Option to have tasks read aloud using the native SpeechSynthesis API, with a selection of voices to choose from.

Task Reading Aloud

πŸ“₯ Import/Export Tasks

Users can import and export tasks to/from JSON files. This feature allows users to back up their tasks or transfer them to other devices easily. Example Import File

πŸ“΄ Progressive Web App (PWA)

This app is a Progressive Web App (PWA), which means it can be installed on your device, used even when you're offline and behave like a native app with shortcuts and app badges.

taskbar

πŸ”„ Update Prompt

The app features a custom update prompt that notifies users when a new version is available, allowing for easy refresh to access the latest improvements.

update prompt

πŸ“± Custom Splash Screens

The app automatically generates custom splash screens for various iOS and iPadOS devices in both light and dark modes. These splash screens provide a smooth, native-like launch experience when the app is opened as a PWA.

Splash Screen Example

To generate splash screens: npm run generate-splash

πŸ‘¨β€πŸ’» Installation

To install and run the project locally, follow these steps:

  • Clone the repository: git clone https://github.com/maciekt07/TodoApp.git
  • Navigate to the project directory: cd TodoApp
  • Install the dependencies: npm install
  • Start the development server: npm run dev

The app will now be running at http://localhost:5173/.

Tip

For mobile device testing, use npm run dev:host to preview the app on your local network with HTTPS.

πŸ“· Screenshots

πŸš€ Performance

Credits

Made with ❀️ by maciekt07, licensed under MIT.

Releases

No releases published

Packages

No packages published