{"id":21508576,"url":"https://github.com/erfanebrahimnia/unlockrepo","last_synced_at":"2025-06-12T20:33:38.391Z","repository":{"id":262463348,"uuid":"887235479","full_name":"ErfanEbrahimnia/unlockrepo","owner":"ErfanEbrahimnia","description":"Automate your Github repository access","archived":false,"fork":false,"pushed_at":"2024-12-02T12:16:44.000Z","size":479,"stargazers_count":23,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T20:33:20.688Z","etag":null,"topics":["automation","github","gumroad","kysely","nextjs","nextjs14","react","shadcn-ui","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://unlockrepo.com","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/ErfanEbrahimnia.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":"2024-11-12T11:57:55.000Z","updated_at":"2025-05-12T16:56:30.000Z","dependencies_parsed_at":"2025-04-23T23:28:51.041Z","dependency_job_id":"66199c74-085c-43ed-8772-1da9351a9f8f","html_url":"https://github.com/ErfanEbrahimnia/unlockrepo","commit_stats":null,"previous_names":["erfanebrahimnia/unlockrepo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ErfanEbrahimnia/unlockrepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErfanEbrahimnia%2Funlockrepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErfanEbrahimnia%2Funlockrepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErfanEbrahimnia%2Funlockrepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErfanEbrahimnia%2Funlockrepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ErfanEbrahimnia","download_url":"https://codeload.github.com/ErfanEbrahimnia/unlockrepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErfanEbrahimnia%2Funlockrepo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259522450,"owners_count":22870469,"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":["automation","github","gumroad","kysely","nextjs","nextjs14","react","shadcn-ui","tailwindcss","typescript"],"created_at":"2024-11-23T21:06:41.149Z","updated_at":"2025-06-12T20:33:38.364Z","avatar_url":"https://github.com/ErfanEbrahimnia.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"\" width=\"200\" height=\"275\" src=\"https://github.com/user-attachments/assets/1bfc078f-effb-4c6e-8e6e-f0d33a6e38c4\"/\u003e\n\u003c/p\u003e\n\n# 🔐 UnlockRepo\n\nA simple tool to automate and monetize granting access to your private repositories after a purchase is made on Gumroad.\n\n[Live demo](https://unlockrepo.com)\n\n## 👨‍💻 Tech Stack\n\nUnlockRepo is built using:\n\n- [Next.js 14](https://nextjs.org/)\n- [shadcn-ui](https://ui.shadcn.com)\n- [TailwindCSS](https://tailwindcss.com)\n- [Lucia](https://lucia-auth.com/)\n- [Kysely](https://kysely.dev/)\n- [@t3-oss/env-nextjs](https://env.t3.gg/)\n- Hosted on [Vercel](https://vercel.com/)\n\n## 🛠️ Self-Hosting UnlockRepo\n\nDeploying UnlockRepo is straightforward:\n\n1. Clone this repository.\n2. Deploy to Vercel using `npx vercel deploy --prod`.\n3. Set up a new Postgres database.\n4. Register a [Gumroad OAuth application](https://app.gumroad.com/settings/advanced#application-form).\n5. In Gumroad, add a [new custom text field](https://app.gumroad.com/checkout/form) titled \"Github Username\" (make sure it matches this text exactly).\n6. Register a [GitHub OAuth application](https://github.com/settings/developers).\n7. Refer to the [.env.example](https://github.com/ErfanEbrahimnia/unlockrepo/blob/main/.env.example) file and add the environment keys in Vercel.\n\n## ⚙️ Running Locally\n\nTo run UnlockRepo locally, make sure you have Node.js \u003e 18.20.4 and Postgres installed.\n\n1. Clone this repository.\n2. Run `npm install` to install dependencies.\n3. Copy [.env.example](https://github.com/ErfanEbrahimnia/unlockrepo/blob/main/.env.example), rename it to `.env.local`, and update the values as needed.\n4. Run `npm run dev`.\n\n---\n\nFeel free to reach out at erfan@nextjsweekly.com or [on Twitter](https://x.com/ErfanEbrahimnia) with any questions or feedback. Hope you find this useful! 😊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferfanebrahimnia%2Funlockrepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferfanebrahimnia%2Funlockrepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferfanebrahimnia%2Funlockrepo/lists"}