{"id":14969191,"url":"https://github.com/ciphertron/git-ship-done","last_synced_at":"2026-01-06T12:10:38.059Z","repository":{"id":250750093,"uuid":"833567255","full_name":"CIPHERTron/git-ship-done","owner":"CIPHERTron","description":"A to-do application to manage all your issues on GitHub","archived":false,"fork":false,"pushed_at":"2024-07-30T12:24:42.000Z","size":1486,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-02-11T10:42:09.524Z","etag":null,"topics":["fastify","jetstream","nextjs","octokit","prisma","pusher","replicache","shadcn-ui","supabase","tailwindcss","turborepo","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CIPHERTron.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":"2024-07-25T09:59:29.000Z","updated_at":"2024-08-27T18:40:50.000Z","dependencies_parsed_at":"2024-07-29T23:18:28.173Z","dependency_job_id":"b2eae15e-7ef3-4bd7-be22-7c7738dfa4b1","html_url":"https://github.com/CIPHERTron/git-ship-done","commit_stats":null,"previous_names":["ciphertron/git-ship-done"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIPHERTron%2Fgit-ship-done","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIPHERTron%2Fgit-ship-done/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIPHERTron%2Fgit-ship-done/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIPHERTron%2Fgit-ship-done/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CIPHERTron","download_url":"https://codeload.github.com/CIPHERTron/git-ship-done/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245674792,"owners_count":20654225,"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":["fastify","jetstream","nextjs","octokit","prisma","pusher","replicache","shadcn-ui","supabase","tailwindcss","turborepo","typescript"],"created_at":"2024-09-24T13:41:19.383Z","updated_at":"2026-01-06T12:10:38.026Z","avatar_url":"https://github.com/CIPHERTron.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git Ship Done - a real-time sync todo app\n\n![Screenshot 2024-07-29 at 10 13 27 PM](https://github.com/user-attachments/assets/5e651adc-e79e-4134-a68f-3a61508e7db7)\n\nGit Ship Done is a low latency todo application built with modern web technologies to ensure seamless real-time synchronization and efficient task management. Utilizing Replicache for real-time data sync, Fastify for a robust backend, Next.js for a dynamic frontend, and Turborepo for efficient monorepo management, this application offers a smooth and interactive user experience. Manage your tasks effortlessly with real-time updates, ensuring your to-do list is always up-to-date across all your devices.\n\n## Key Features:\n\n- Real-Time Sync: Instant updates across all your devices using Replicache.\n- GitHub Issues Integration: Create and manage GitHub issues directly from the application. Each todo can be linked to a GitHub issue, allowing you to keep track of your tasks and their corresponding issues in one place.\n- Efficient Monorepo Management: Leverage Turborepo for streamlined project organization and build processes.\n\n## Architecture:\n\n![Screenshot 2024-07-29 at 10 58 22 PM](https://github.com/user-attachments/assets/540c73e5-c8ce-4117-8708-99240ad4e580)\n\n\n## Tech Stack\n- Turborepo - monorepo tooling\n- Frontend\n  - Next.js\n  - Typescript\n  - Shad CN\n  - Tailwind CSS\n  - Replicache\n- Backend\n  - Fastify\n  - Typescript\n  - Replicache\n  - Nats Jetstream\n  - Pusher.js\n  - Supabase\n  - Prisma\n  - Octokit API\n \n\n## Setup Instructions\n- fork \u0026 clone the repo\n- run `yarn install` in the root dir of the project. This will install both BE \u0026 FE deps\n- run `npx replicache@latest get-license` to create replicache license key\n- add `.env` file locally with all your secrets\n  - Client secrets:\n  ```txt\n  REPLICACHE_LICENSE_KEY=your license key\n  ```\n  - Server secrets:\n  ```txt\n  DATABASE_URL=\"your db url\"\n  DIRECT_URL=\"your direct url\"\n  GITHUB_API_URL=https://api.github.com\n  GITHUB_TOKEN=your PAT\n  REPO_OWNER=owner\n  REPO_NAME=repo\n  PUSHER_APP_ID=app id\n  PUSHER_KEY=key\n  PUSHER_SECRET=secret\n  PUSHER_CLUSTER=cluster\n  ```\n- Run `yarn dev` in the root to spin up both the client \u0026 the server\n- Client will be running in port 3000 \u0026 server in port 8888\n- Go to HTTP://localhost:3000\n\n## Development Process\n- Setup Monorepo with Turborepo:\n\n- Initialize a monorepo using Turborepo to manage the frontend and backend projects.\nCreate two main workspaces: apps/ui for the Next.js frontend and apps/api for the Fastify backend.\nFrontend Development:\n\n- Next.js Setup:\n  - Initialize a Next.js project in the apps/ui workspace.\n  - Configure TypeScript for type safety and improved development experience.\n  - Styling and UI Components:\n  - Integrate Tailwind CSS for utility-first styling.\n  - Use ShadCN for custom UI components, including checkboxes for todo items.\n    \n- Real-Time Sync:\n  - Initialize Replicache using `useReplicache` to enable real-time synchronization of todo items across devices.\n  - develop ui components for todo app\n \n    \n- Backend Development:\n  - Initialize a Fastify server in the apps/api workspace.\n  - Configure TypeScript for backend development.\n  - Use Supabase or any db of your choice as the SQL database for storing todo items.\n  - Set up Prisma ORM for database interactions and schema management.\n  - Define the Prisma schema for the Todo model \u0026 run migrations.\n\n- Real-Time Sync:\n  - Integrate Replicache on the backend to handle real-time data sync operations.\n  - Ensure you write controllers that'll handle the creation, updating, and deletion of todos.\n  - Create endpoints for Replicache push and pull to synchronize data.\n  - Use NATS JetStream for event handling and message streaming.\n  - Integrate Pusher.js to send real-time pokes to the client to let it know to pull patch from server.\n\n- GitHub Issues Integration:\n  - Use Octokit API to create and manage GitHub issues from the application.\n  - Develop endpoints to handle the creation and linking of GitHub issues to todo items.\n\n- Connect the Next.js frontend with the Fastify backend through API calls.\n\n---\n\n*Built with* \u003c3 *by [Pritish](https://pritishsamal.xyz) .aka CIPHERTron*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciphertron%2Fgit-ship-done","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fciphertron%2Fgit-ship-done","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciphertron%2Fgit-ship-done/lists"}