{"id":18626339,"url":"https://github.com/maciekt07/todoapp","last_synced_at":"2025-05-16T16:06:06.751Z","repository":{"id":169159995,"uuid":"645063293","full_name":"maciekt07/TodoApp","owner":"maciekt07","description":"📝 React.js todo app with many features, including sharing tasks via link, theme customization and offline usage as a PWA.","archived":false,"fork":false,"pushed_at":"2025-05-15T23:52:33.000Z","size":183585,"stargazers_count":229,"open_issues_count":2,"forks_count":125,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-16T00:28:52.643Z","etag":null,"topics":["badge","intl","mui","productivity","productivity-app","react-todo","react-todo-app","react-todo-list","react-todolist","task-manager","to-do-app","to-do-list","todo","todo-app","todo-application","todo-list","todo-list-app","todoapp","todolist","window-ai"],"latest_commit_sha":null,"homepage":"https://react-cool-todo-app.netlify.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maciekt07.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-24T20:58:48.000Z","updated_at":"2025-05-15T23:52:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"65b23f8a-d644-4bca-9d66-0c00645aecd6","html_url":"https://github.com/maciekt07/TodoApp","commit_stats":{"total_commits":178,"total_committers":2,"mean_commits":89.0,"dds":0.005617977528089901,"last_synced_commit":"d8a2e4e61b51af6e50b22f05b46d9e5f97ae9765"},"previous_names":["maciekt07/todoapp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciekt07%2FTodoApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciekt07%2FTodoApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciekt07%2FTodoApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maciekt07%2FTodoApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maciekt07","download_url":"https://codeload.github.com/maciekt07/TodoApp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254564124,"owners_count":22092122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["badge","intl","mui","productivity","productivity-app","react-todo","react-todo-app","react-todo-list","react-todolist","task-manager","to-do-app","to-do-list","todo","todo-app","todo-application","todo-list","todo-list-app","todoapp","todolist","window-ai"],"created_at":"2024-11-07T04:37:45.696Z","updated_at":"2025-05-16T16:06:06.744Z","avatar_url":"https://github.com/maciekt07.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- \u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/public/logo192.png\" width=\"128px\" /\u003e\n\u003c/p\u003e --\u003e\n\n# 📝React.js Todo App\n\n\u003cp align=\"center\"\u003e\u003ci\u003eA fast and modern Todo app built with React, featuring task sharing via link, theme customization, offline usage as a PWA, and caching for smooth performance.\u003c/i\u003e\u003c/p\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/baner.png\" /\u003e\n\n## [https://react-cool-todo-app.netlify.app/](https://react-cool-todo-app.netlify.app/)\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/e3b07d34-f0da-4280-9076-fd40eea893c6/deploy-status)](https://app.netlify.com/sites/react-cool-todo-app/deploys)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/maciekt07/TodoApp?color=%23b624ff)\n![GitHub created at ](https://img.shields.io/github/created-at/maciekt07/TodoApp?color=%23b624ff)\n![GitHub last commit](https://img.shields.io/github/last-commit/maciekt07/TodoApp?color=%23b624ff)\n\n\u003c!-- \u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/iPhone%20Mockup%20black.png\" width=\"400px\" /\u003e\n\u003c/p\u003e --\u003e\n\n## 💻 Tech Stack\n\n\u003cul style=\"display: flex; flex-direction: column; gap:10px;\"\u003e\n  \u003cli style=\"vertical-align: middle;\"\u003e\n    \u003cimg src=\"https://go-skill-icons.vercel.app/api/icons?i=react\" alt=\"react\" width=\"24\" style=\"vertical-align: middle; margin-right: 4px;\" /\u003e React\n  \u003c/li\u003e\n    \u003cli style=\"vertical-align: middle;\"\u003e\n    \u003cimg src=\"https://go-skill-icons.vercel.app/api/icons?i=typescript\" alt=\"typescript\" width=\"20\" style=\"vertical-align: middle;margin-right: 4px;\" /\u003e Typescript\n  \u003c/li\u003e\n    \u003cli style=\"vertical-align: middle;\"\u003e\n    \u003cimg src=\"https://go-skill-icons.vercel.app/api/icons?i=vite\" alt=\"vite\" width=\"24\" style=\"vertical-align: middle;margin-right: 4px;\" /\u003e Vite\n  \u003c/li\u003e\n  \u003cli style=\"vertical-align: middle;\"\u003e\n    \u003cimg src=\"https://go-skill-icons.vercel.app/api/icons?i=vitest\" alt=\"vitest\" width=\"24\" style=\"vertical-align: middle;margin-right: 4px;\" /\u003e Vitest\n  \u003c/li\u003e\n  \u003cli style=\"vertical-align: middle;\"\u003e\n    \u003cimg src=\"https://go-skill-icons.vercel.app/api/icons?i=emotion\" alt=\"emotion\" width=\"24\" style=\"vertical-align: middle;margin-right: 4px;\" /\u003e Emotion\n  \u003c/li\u003e\n    \u003cli style=\"vertical-align: middle;\"\u003e\n    \u003cimg src=\"https://go-skill-icons.vercel.app/api/icons?i=mui\" alt=\"mui\" width=\"24\" style=\"vertical-align: middle;margin-right: 4px;\" /\u003e Material UI (MUI)\n  \u003c/li\u003e\n\u003c/ul\u003e\n\n## ⚡ Features\n\n### 🔗 Share Tasks by Link or QR Code\n\nEasily share your tasks with others using a link or QR code.\n\n**[Example Link](https://react-cool-todo-app.netlify.app/share?task=N4IgJg9gdgpiBcAzAhgGwM4wDQgA4EspYwEAXAJwFdsQpkBbOeEAdRgCN19SYACAERgA3GKgi5GUUiBxgY6AMbl8uUvmgIQAYXIxkPXsl6pkUMIQDmvXMgt8A7twAWvAEp6FpAHQArdL0QIcl4FVHwYKS9eJ1JSXHR4AHpE+1SvAE8ISlJKdhgvBQh6FP0FJwB+IQBedgBZAGsoRABpAA0ASQAxAEEADgAyUiqAJgBmdH7kdgB9MtNYVCrEXRgtCDktBlwvIIsZEBh6CB98TQBGRABOMDOAWgvRxAVb4YAGV7B7xAAWdnZ9wpiciaADE7AAbMNvohEPswPomCA3sMAKy3V7fF6vAAqrzO8DOl3gr3BXleAHZRgAtOF6MBhWCaZFojEvUa4-FnXrE15k940nAKBEWILpBAAbVA+BIzFew0uwwU7GQaMQ4Jgw1u3zOCkx7BRyHJtwUKMuyFeyGQMAUiBgo32dEYmhYQXq+0Ox1OzAeGoBECBoKhvRgMJAAF8sFKZWdwb1yWdUdryd9waMyaMcI7EWtzFA9jgPSdzogDaqYK9YYL-UFQeCbsNQ2GALo4EzoUgAZWQIiZcpZmLeHPgb3go15oxR1PDQA\u0026userName=Maciej)**\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ShareDialog.png\" width=\"300px\" alt=\"Shared Task\" /\u003e\n\n### 🤖 AI Emoji Suggestions\n\nThis uses `window.ai` which is an experimental feature that works only in dev version of Chrome with some flags enabled. [More info](https://afficone.com/blog/window-ai-new-chrome-feature-api/)\n\nCode: [src/components/EmojiPicker.tsx](https://github.com/maciekt07/TodoApp/blob/main/src/components/EmojiPicker.tsx#L116)\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/emoji-ai.gif\" alt=\"AI Emoji\" width=\"360px\" style=\"border-radius:12px\" /\u003e\n\n### 🎨 Color Themes \u0026 Dark Mode\n\nChoose from various color themes and toggle between light and dark modes to suit your preferences.\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/settings.png\" width=\"500px\" /\u003e\n\n### 🗣️ Task Reading Aloud\n\nOption to have tasks read aloud using the native `SpeechSynthesis` API, with a selection of voices to choose from.\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ReadAloud.png\" width=\"260px\" alt=\"Task Reading Aloud\" /\u003e\n\n### 📥 Import/Export Tasks\n\nUsers 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](https://github.com/maciekt07/TodoApp/blob/main/example-import.json)\n\n### 📴 Progressive Web App (PWA)\n\nThis 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.\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/pwaTaskBar.png\" alt=\"taskbar\" width=\"260px\" /\u003e\n\n### 🔄 Update Prompt\n\nThe app features a custom update prompt that notifies users when a new version is available, allowing for easy refresh to access the latest improvements.\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/UpdatePrompt.png\" alt=\"update prompt\" width=\"260px\" /\u003e\n\n### 📱 Custom Splash Screens\n\nThe 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.\n\n\u003cimg src=\"screenshots/SplashScreen.png\" alt=\"Splash Screen Example\" width=\"450px\" /\u003e\n\nTo generate splash screens: `npm run generate-splash`\n\n## 👨‍💻 Installation\n\nTo install and run the project locally, follow these steps:\n\n- Clone the repository: `git clone https://github.com/maciekt07/TodoApp.git`\n- Navigate to the project directory: `cd TodoApp`\n- Install the dependencies: `npm install`\n- Start the development server: `npm run dev`\n\nThe app will now be running at [http://localhost:5173/](http://localhost:5173/).\n\n\u003e [!TIP]\n\u003e For mobile device testing, use `npm run dev:host` to preview the app on your local network.\n\n## 📷 Screenshots\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ss1.png\" width=\"300px\" /\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ss2.png\" width=\"300px\" /\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ss3.png\" width=\"300px\" /\u003e\n\n\u003c!-- \u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ss4.png\" width=\"300px\" /\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ss5.png\" width=\"300px\" /\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/ss6.png\" width=\"300px\" /\u003e --\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/sspc1.png\" width=\"650px\" /\u003e\n\n## 🚀 Performance\n\n\u003cimg src=\"https://raw.githubusercontent.com/maciekt07/TodoApp/main/screenshots/performance.png\" width=\"600px\" /\u003e\n\n## Credits\n\nMade with ❤️ by [maciekt07](https://github.com/maciekt07), licensed under [MIT](https://github.com/maciekt07/TodoApp/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaciekt07%2Ftodoapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaciekt07%2Ftodoapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaciekt07%2Ftodoapp/lists"}