{"id":48446725,"url":"https://github.com/biomathcode/open-kyc","last_synced_at":"2026-04-06T18:04:17.642Z","repository":{"id":324102955,"uuid":"1092290003","full_name":"biomathcode/open-kyc","owner":"biomathcode","description":"Open Source KYC platform","archived":false,"fork":false,"pushed_at":"2025-11-17T19:05:59.000Z","size":3354,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T19:28:19.921Z","etag":null,"topics":["id-verification","kyc-platform","react","tanstack"],"latest_commit_sha":null,"homepage":"https://open-kyc.netlify.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/biomathcode.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":null,"dco":null,"cla":null}},"created_at":"2025-11-08T11:07:01.000Z","updated_at":"2025-11-24T12:10:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/biomathcode/open-kyc","commit_stats":null,"previous_names":["biomathcode/open-kyc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/biomathcode/open-kyc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biomathcode%2Fopen-kyc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biomathcode%2Fopen-kyc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biomathcode%2Fopen-kyc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biomathcode%2Fopen-kyc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/biomathcode","download_url":"https://codeload.github.com/biomathcode/open-kyc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biomathcode%2Fopen-kyc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31483389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["id-verification","kyc-platform","react","tanstack"],"created_at":"2026-04-06T18:03:48.747Z","updated_at":"2026-04-06T18:04:17.634Z","avatar_url":"https://github.com/biomathcode.png","language":"TypeScript","readme":"## OpenKYC\n![OpenKYC logo](./public/logo.png)\n\nBuild for the Tanstack Start [Hackathon](https://www.convex.dev/hackathons/tanstack)\n\nKYC platform powered by Convex, tanstack start, [react-aria](http://intentui.com/), netlify, cloudflare, better-auth, autumn, gemini. \n\n\n![OpenKYC ShowCase](./public/showcase.png)\n\n\n\n![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/biomathcode/open-kyc?utm_source=oss\u0026utm_medium=github\u0026utm_campaign=biomathcode%2Fopen-kyc\u0026labelColor=171717\u0026color=FF570A\u0026link=https%3A%2F%2Fcoderabbit.ai\u0026label=CodeRabbit+Reviews)\n\n\n\n### Deployment\n\n- `npx convex dev`\n- `npx convex deploy`\n\n### Environment Variables\n\n- `CONVEX_DEPLOYMENT`\n- `VITE_CONVEX_URL`\n- `VITE_CONVEX_SITE_URL`\n- `BASE_URL`\n- `GITHUB_CLIENT_ID`\n- `GITHUB_CLIENT_SECRET`\n- `SITE_URL`\n- `FIRECRAWL_API_KEY`\n- `SENTRY_AUTH_TOKEN`\n- `BETTER_AUTH_SECRET`\n- `RESEND_API_KEY`\n- `GEMINI_API_KEY`\n- `AUTUMN_SECRET_KEY`\n\n\n\n### Features\n\n- Dashboard\n- Verifications\n- Analytics\n- Workflows\n- Customization\n- Questionnairs\n- Blocklist\n  \n- Manual Checks \n- Settings\n\n\n## Convex Workflows\n\n* Background check powered by firecrawl \n* Id verification powered by gemini \n\nuser uploads documents -\u003e status -\u003e complete -\u003e workflow -\u003e extract data -\u003e for Background Check \n\n\n## How it works \n\nuser will create custom workflow, workflows include age verification, address verification, etc, \nthen for verification users you can create custom session with workflow types, this session can be expired of live forever, one session can only collect information about one individual only. \n\n\n\n\n\n## Netflify deploy -\u003e \n[DEMO URL](https://open-kyc.netlify.app)\n\n\n\n## Cloudflare  -\u003e \n\n[DEMO_URL](https://tanstack-start-app.sharma-pratik2016.workers.dev)\n\n\n---\n\n# 🛠️ Tech Stack\n\n## **Frontend**\n\n| Technology                            | Version        | Purpose                          |\n| ------------------------------------- | -------------- | -------------------------------- |\n| React                                 | 19.1.1         | Core UI framework                |\n| React DOM                             | 19.1.1         | DOM renderer                     |\n| TanStack Start                        | 1.132.2        | Full-stack React framework (SSR) |\n| TanStack Router                       | 1.132.2        | File-based routing               |\n| TanStack React Query                  | 5.90.7         | Data fetching / caching          |\n| TanStack React Form                   | 1.23.8         | Form handling                    |\n| TanStack Table                        | 8.21.3         | Data tables                      |\n| Tailwind CSS v4                       | 4.1.13         | Styling                          |\n| shadcn/ui (via tailwind + react-aria) | Latest         | UI components                    |\n| React Aria Components                 | 1.13.0         | Accessible UI primitives         |\n| Lucide React                          | 0.552.0        | Icons                            |\n| Motion                                | 12.23.24       | Animations                       |\n| Recharts                              | 3.4.1          | Charts                           |\n| React Markdown                        | 10.1.0         | Render Markdown                  |\n| Input OTP                             | 1.4.2          | OTP UI input                     |\n| QR-Code / React-QR-Code               | 1.5.4 / 2.0.18 | QR generation                    |\n| Class Variance Authority              | 0.7.1          | Component variants               |\n| Tailwind Merge                        | 3.4.0          | Class merging                    |\n| Tailwind Variants                     | 3.1.1          | Variant utilities                |\n| Tailwindcss React Aria Components     | 2.0.1          | Theme for RAC                    |\n| Culori                                | 4.0.2          | Color utilities                  |\n---\n\n## **Backend**\n\n| Technology         | Purpose                          |\n| ------------------ | -------------------------------- |\n| Convex             | Primary backend (DB + functions) |\n| Convex Crons       | Scheduled jobs                   |\n| Convex Workflows   | Workflow orchestration           |\n| Convex Workpool    | Distributed batch processing     |\n| Convex Migrations  | Schema migration toolkit         |\n| Convex Better Auth | Authentication                   |\n| Better Auth        | Additional auth utilities        |\n| Autumn / atmn      | Subscription billing (Stripe)    |\n| Firecrawl          | Site crawling                    |\n| UUID               | ID generation                    |\n| Zod + Zod-to-JSON  | Schema + validation              |\n\n---\n\n## **External APIs**\n\n| Service             | Use Case                 | Cost          |\n| ------------------- | ------------------------ | ------------- |\n| Firecrawl           | Crawling / SERP scraping | Job-based     |\n| Google GenAI        | AI models                | Usage-based   |\n| Stripe (via Autumn) | Payments                 | Standard fees |\n\n---\n\n## **Infrastructure**\n\n| Layer           | Technology         |\n| --------------- | ------------------ |\n| Hosting         | Cloudflare Workers |\n| Backend Runtime | Convex Functions   |\n| Storage         | Convex Storage     |\n| Error Tracking  | Sentry             |\n\n---\n\n## **Development**\n\n| Tool              | Purpose                    |\n| ----------------- | -------------------------- |\n| pnpm              | Package manager            |\n| TypeScript        | Type safety                |\n| Vitest            | Testing                    |\n| Vite              | Build tool                 |\n| Wrangler          | Cloudflare dev/preview     |\n| ESLint + Prettier | Code quality               |\n| Concurrently      | Run multiple dev processes |\n\n---\n\n\n\n### References\n- https://github.com/mikecann/port-geo-christmas-lights-cruise/tree/the-video-release\n- https://convex-better-auth.netlify.app/framework-guides/tanstack-start\n  \n- https://github.com/firecrawl/firecrawl/tree/main/examples\n- https://github.com/ericciarla/trendFinder\n- https://github.com/tanstack/router/tree/main/examples\n- https://github.com/get-convex/better-auth/tree/main/examples/tanstack\n- https://github.com/abhik-99/Liveness-Detection\n- https://modal.com/docs/examples/doc_ocr_jobs\n\n\n### FAQ\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eWhy Open Source?\u003c/b\u003e\u003c/summary\u003e\n  \u003cp\u003e\n    People keep asking me why open sourced this project because I wanted to use \n    \u003ca href=\"https://www.coderabbit.ai\" target=\"_blank\"\u003eCoderabbit\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/details\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiomathcode%2Fopen-kyc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbiomathcode%2Fopen-kyc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiomathcode%2Fopen-kyc/lists"}