{"id":22143319,"url":"https://github.com/patricks-js/planit","last_synced_at":"2026-04-12T16:10:42.437Z","repository":{"id":280317906,"uuid":"941287674","full_name":"patricks-js/planit","owner":"patricks-js","description":"Open-source task manager with built-in time tracking to streamline productivity.","archived":false,"fork":false,"pushed_at":"2025-03-13T03:55:05.000Z","size":319,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T11:54:00.863Z","etag":null,"topics":["better-auth","drizzle","nextjs15","postgresql","typescipt"],"latest_commit_sha":null,"homepage":"","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/patricks-js.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}},"created_at":"2025-03-01T23:32:55.000Z","updated_at":"2025-03-13T03:55:08.000Z","dependencies_parsed_at":"2025-03-24T11:43:46.393Z","dependency_job_id":"8917c44f-bf8d-41b4-a79d-dd337ff5bd50","html_url":"https://github.com/patricks-js/planit","commit_stats":null,"previous_names":["patricks-js/planit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patricks-js/planit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patricks-js%2Fplanit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patricks-js%2Fplanit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patricks-js%2Fplanit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patricks-js%2Fplanit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patricks-js","download_url":"https://codeload.github.com/patricks-js/planit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patricks-js%2Fplanit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267362351,"owners_count":24075101,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["better-auth","drizzle","nextjs15","postgresql","typescipt"],"created_at":"2024-12-01T22:08:57.422Z","updated_at":"2026-04-12T16:10:42.391Z","avatar_url":"https://github.com/patricks-js.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/patricks-js/planit\"\u003e\n    \u003cimg src=\"public/logo.svg\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003ePlanit\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    A simple and intuitive task management app with built-in time tracking.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/patricks-js/planit\"\u003e\u003cstrong\u003eLearn more »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/patricks-js/planit\"\u003eWebsite\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/patricks-js/planit/issues/new?labels=bug\u0026template=bug-report---.md\"\u003eReport Bug\u003c/a\u003e\n    \u0026middot;\n    \u003ca href=\"https://github.com/patricks-js/planit/issues/new?labels=enhancement\u0026template=feature-request---.md\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n# About Planit\n\n\u003c!-- Project Video Overview --\u003e\nPlanit is a modern and simple task manager with built-in time tracking to streamline productivity. It offers a user-friendly interface for managing tasks, automating recurring tasks, tracking time spent on tasks, and monitoring task completion (with reminders).\n\n## Features\n\n- **Task Management**: Create, edit, and delete tasks with ease.\n- **Time Tracking**: Track the time spent on tasks with built-in time tracking.\n- **Automated Recurring Tasks**: Set up recurring tasks to automate repetitive tasks.\n- **Free Reminders**: Get reminders for upcoming tasks.\n- **Task Prioritization**: Prioritize tasks based on Eisenhower's Matrix (Urgency and Importance).\n\n## Built With\n\nSome of the major technologies used in this project include:\n\n- [![Next][NEXTJS_BADGE]][NEXTJS_URL]\n- [![React][REACT_BADGE]][REACT_URL]\n- [![Bun][BUN_BADGE]][BUN_URL]\n- [![TypeScript][TYPESCRIPT_BADGE]][TYPESCRIPT_URL]\n- [![TailwindCSS][TAILWIND_BADGE]][TAILWIND_URL]\n- [![Drizzle ORM][DRIZZLE_BADGE]][DRIZZLE_URL]\n\n## Getting Started\n\n### Prerequisites\n\nHere is what you need to be able to run Planit locally:\n\n- Bun (v1.2 or higher)\n- Docker \u0026 Docker Compose (latest)\n\n### Installation\n\n1. Clone the repository:\n\n    ```bash\n    git clone https://github.com/patricks-js/planit.git\n    ```\n\n2. Install dependencies:\n\n    ```bash\n    bun install\n    ```\n\n3. Set up environment variables:\n\n    Create a `.env.local` file in the root directory and add the following:\n\n    ```bash\n    # App\n    NEXT_PUBLIC_APP_URL=http://localhost:3000\n\n    # Database\n    DATABASE_URL=\u003cyour_database_url\u003e\n\n    # Better Auth\n    BETTER_AUTH_URL=$NEXT_PUBLIC_APP_URL\n    BETTER_AUTH_SECRET=\u003cyour_better_auth_secret\u003e\n\n    # Better Auth providers\n    GITHUB_CLIENT_ID=\u003cyour_github_client_id\u003e\n    GITHUB_CLIENT_SECRET=\u003cyour_github_client_secret\u003e\n\n    GOOGLE_CLIENT_ID=\u003cyour_google_client_id\u003e\n    GOOGLE_CLIENT_SECRET=\u003cyour_google_client_secret\u003e\n    ```\n\n4. Run the application:\n\n    ```bash\n    bun dev\n    ```\n\n5. Open your browser and navigate to `http://localhost:3000`\n\n## Roadmap (MVP)\n\n- [ ] User authentication\n  - [x] OAuth social sign-in\n  - [ ] Magic link sign-in\n- [ ] Task management\n  - [ ] Task CRUD\n  - [ ] Task prioritization\n  - [ ] Task scheduling\n  - [ ] Sub-task management\n  - [ ] Task recurring\n- [ ] Time tracking\n- [ ] Real-time updates\n- [ ] Push notifications\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nDistributed under the Unlicense MIT License. See [LICENSE](./LICENSE) for more information.\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\u003c!-- [PRODUCT_VIDEO_URL]: public/logo.svg --\u003e\n[NEXTJS_BADGE]: https://img.shields.io/badge/next.js-000000?style=for-the-badge\u0026logo=nextdotjs\u0026logoColor=white\n[NEXTJS_URL]: https://nextjs.org/\n[REACT_BADGE]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[REACT_URL]: https://reactjs.org/\n[TYPESCRIPT_BADGE]: https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\n[TYPESCRIPT_URL]: https://www.typescriptlang.org/\n[TAILWIND_BADGE]: https://img.shields.io/badge/TailwindCSS-20232A?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=38B2AC\n[TAILWIND_URL]: https://tailwindcss.com/\n[DRIZZLE_BADGE]: https://img.shields.io/badge/Drizzle-111111?style=for-the-badge\u0026logo=drizzle\u0026logoColor=C5F74F\n[DRIZZLE_URL]: https://orm.drizzle.team/\n[BUN_BADGE]: https://img.shields.io/badge/Bun-000000?style=for-the-badge\u0026logo=bun\u0026logoColor=white\n[BUN_URL]: https://bun.sh/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatricks-js%2Fplanit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatricks-js%2Fplanit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatricks-js%2Fplanit/lists"}