{"id":50978707,"url":"https://github.com/rajdeepds/craft","last_synced_at":"2026-06-19T12:01:50.245Z","repository":{"id":350486340,"uuid":"1205212768","full_name":"RajdeepDs/craft","owner":"RajdeepDs","description":"The review process layer for engineering teams.","archived":false,"fork":false,"pushed_at":"2026-05-02T16:11:21.000Z","size":1078,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-02T18:09:52.476Z","etag":null,"topics":["drizzle-orm","effect","neon","nextjs","orpc","postgresql","react","tailwindcss","tanstack-query"],"latest_commit_sha":null,"homepage":"https://craft-eight-kohl.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RajdeepDs.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,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-08T18:41:28.000Z","updated_at":"2026-05-02T16:11:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/RajdeepDs/craft","commit_stats":null,"previous_names":["rajdeepds/craft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RajdeepDs/craft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2Fcraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2Fcraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2Fcraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2Fcraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RajdeepDs","download_url":"https://codeload.github.com/RajdeepDs/craft/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RajdeepDs%2Fcraft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34530302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"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":["drizzle-orm","effect","neon","nextjs","orpc","postgresql","react","tailwindcss","tanstack-query"],"created_at":"2026-06-19T12:01:49.191Z","updated_at":"2026-06-19T12:01:50.235Z","avatar_url":"https://github.com/RajdeepDs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Craft\n\n**The review process layer for engineering teams.**\n\n---\n\n## The problem\n\nCode review is the most important moment in software development, it's where quality is decided, knowledge is shared, and teams either move fast or get stuck. But nobody has ever built a real product for it.\n\nGitHub gives you a diff viewer with a comment box. That's not a workflow, that's a file viewer.\n\nThe result: PRs sit for days with no feedback. Reviewers leave 40 comments with no indication of what's actually blocking the merge. Authors send \"PTAL\" into the void and wait. Engineering leads have no visibility into where things are slowing down.\n\nTeams aren't bad at code review because they don't care. They're bad at it because no product has ever given them a real process.\n\n**Craft is that product.**\n\n---\n\n## What Craft does differently\n\nThe unit of work in Craft is not a pull request. It is a **Change** — an intent to ship something, with structured context, clear ownership, typed feedback, and a defined path to done.\n\n### The Change Brief\nEvery Change starts with structured context — not a freeform text box. What changed, why it exists, how to verify it, and the risk level. Written by the author, readable by the reviewer in two minutes. No more cold reviews. No more \"can you explain what this does\" comments.\n\n### Typed feedback\nComments in Craft have a type: **Blocker**, **Suggestion**, **Nit**, or **Question**. Only Blockers gate the merge. Authors get a clear action list — not a wall of threads to triage. Reviewers give feedback that means something.\n\n### Structured verdicts\nNot just approve or request changes. Craft has four verdicts: **Ship it**, **Fix and merge**, **Needs re-review**, and **Rethink**. Each one triggers the right next step automatically. No ambiguity about what happens after a review.\n\n### The queue\nReviewers open Craft and see exactly what needs them — ordered by wait time and risk level. No notification triage, no GitHub inbox archaeology. Just the work, in the right order.\n\n### Cycle time visibility\nCraft tracks every Change from ready to shipped. Which areas of the codebase are review bottlenecks? Which authors are growing? Where is the team slowing down? This data doesn't exist anywhere today. Craft builds it passively.\n\n---\n\n## How it works\n\nCraft sits on top of GitHub. Your code stays where it is. Craft owns the process around it.\n\n```\nDeveloper opens a PR on GitHub\n          ↓\nCraft creates a Change automatically\n          ↓\nAuthor fills the Change Brief (auto-drafted, editable)\n          ↓\nCraft routes it to the right reviewer\n          ↓\nReviewer gets a queue — not a notification\n          ↓\nReviewer leaves typed comments and submits a verdict\n          ↓\nAuthor sees a clear action list — blockers only\n          ↓\nBlockers resolved → Change ships\n```\n\nNo Slack messages. No \"PTAL\". No guessing.\n\n---\n\n## Tech stack\n\n| Layer | Technology |\n|---|---|\n| Framework | Next.js 16 (App Router) |\n| Styling | Tailwind CSS + Shadcn/UI |\n| Database | PostgreSQL (Neon) + Drizzle ORM |\n| API | oRPC |\n| Business logic | Effect |\n| Auth | Better Auth |\n| Background jobs | Trigger.dev |\n| Webhooks | Svix |\n| Realtime | Ably |\n| Email | Resend + React Email |\n| Payments | Polar |\n| Monorepo | Turborepo |\n\n---\n\n## Getting started\n\n### Prerequisites\n\n- Node.js 20+\n- Bun\n- A GitHub App (for OAuth and webhooks)\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/RajdeepDs/craft.git\ncd craft\n```\n\n### 2. Install dependencies\n\n```bash\nbun install\n```\n\n### 3. Set up environment variables\n\n```bash\ncp .env.example .env\n```\n\n\n### 4. Set up the database\n\n```bash\nbun db:generate\nbun db:migrate\n```\n\n### 6. Run the development server\n\n```bash\nbun dev\n```\n\nOpen [http://localhost:3001](http://localhost:3001).\n\n---\n\n## Roadmap\n\nCraft is in active development. The current focus is v1 — the core review loop.\n\n**v1 — The core loop**\n- [x] Data model and state machine\n- [ ] GitHub App integration and webhook sync\n- [ ] Change creation with structured Brief\n- [ ] Reviewer queue view\n- [ ] Typed comments (Blocker / Suggestion / Nit / Question)\n- [ ] Structured verdicts\n- [ ] Author action list\n- [ ] Email notifications\n- [ ] Team setup and member management\n\n**v2 — Process intelligence**\n- [ ] Smart reviewer routing based on ownership and load\n- [ ] SLA configuration and enforcement\n- [ ] Cycle time analytics dashboard\n- [ ] Slack notifications\n\n**v3 — The long game**\n- [ ] GitLab and Bitbucket support\n- [ ] Deploy tracking and post-ship outcomes\n- [ ] Codebase health insights\n- [ ] Public API\n\n---\n\n## Contributing\n\nCraft is open source and contributions are welcome.\n\n### Development workflow\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feat/your-feature`\n3. Make your changes\n4. Run the linter: `bun lint`\n5. Submit a pull request against `main`\n\n### Commit convention\n\nCraft uses [Conventional Commits](https://www.conventionalcommits.org/).\n\n```\nfeat:     a new feature\nfix:      a bug fix\ndocs:     documentation changes\nchore:    maintenance, dependency updates\nrefactor: code change that neither fixes a bug nor adds a feature\n```\n\n### Good first issues\n\nLook for issues tagged [`good first issue`](https://github.com/RajdeepDs/craft/issues?q=label%3A%22good+first+issue%22) to get started.\n\n---\n\n## Philosophy\n\nCraft is opinionated by design.\n\nThere is one way to submit a Change Brief. One set of comment types. One set of verdicts. This is not a limitation — it is the product. The best review processes are explicit and consistent, not infinitely configurable.\n\nWe will say no to features that make the lazy path easier than the right path. We will say no to features that add configuration where we can add conviction instead. We will say no to features that serve every team in theory and no team in practice.\n\nIf this sounds like your kind of product, you're in the right place.\n\n---\n\n## License\n\nCraft is licensed under the [GNU Affero General Public License v3.0](LICENSE).\n\nThis means:\n- You can use, modify, and distribute Craft freely\n- If you run a modified version of Craft as a network service, you must release your modifications under the same license\n- Commercial use is permitted — you can use Craft at your company\n- You cannot take Craft, build a closed-source SaaS on top of it, and keep your changes proprietary\n\nFor commercial licensing inquiries — if AGPL doesn't work for your use case — contact us at [rajdeepds626@gmail.com](mailto:rajdeepds626@gmail.com).\n\n---\n\n## Community\n\n- **GitHub Discussions** — questions, ideas, and general discussion\n- **GitHub Issues** — bug reports and feature requests\n- **X / Twitter** — [@Rajdeep](https://x.com/Rajdeep__ds) — product updates\n\n---\n\n*Built with conviction. Craft is what code review should have always been.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajdeepds%2Fcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajdeepds%2Fcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajdeepds%2Fcraft/lists"}