https://github.com/biomathcode/open-kyc
Open Source KYC platform
https://github.com/biomathcode/open-kyc
id-verification kyc-platform react tanstack
Last synced: 13 days ago
JSON representation
Open Source KYC platform
- Host: GitHub
- URL: https://github.com/biomathcode/open-kyc
- Owner: biomathcode
- Created: 2025-11-08T11:07:01.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-11-17T19:05:59.000Z (5 months ago)
- Last Synced: 2026-01-11T19:28:19.921Z (3 months ago)
- Topics: id-verification, kyc-platform, react, tanstack
- Language: TypeScript
- Homepage: https://open-kyc.netlify.app/
- Size: 3.2 MB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## OpenKYC

Build for the Tanstack Start [Hackathon](https://www.convex.dev/hackathons/tanstack)
KYC platform powered by Convex, tanstack start, [react-aria](http://intentui.com/), netlify, cloudflare, better-auth, autumn, gemini.


### Deployment
- `npx convex dev`
- `npx convex deploy`
### Environment Variables
- `CONVEX_DEPLOYMENT`
- `VITE_CONVEX_URL`
- `VITE_CONVEX_SITE_URL`
- `BASE_URL`
- `GITHUB_CLIENT_ID`
- `GITHUB_CLIENT_SECRET`
- `SITE_URL`
- `FIRECRAWL_API_KEY`
- `SENTRY_AUTH_TOKEN`
- `BETTER_AUTH_SECRET`
- `RESEND_API_KEY`
- `GEMINI_API_KEY`
- `AUTUMN_SECRET_KEY`
### Features
- Dashboard
- Verifications
- Analytics
- Workflows
- Customization
- Questionnairs
- Blocklist
- Manual Checks
- Settings
## Convex Workflows
* Background check powered by firecrawl
* Id verification powered by gemini
user uploads documents -> status -> complete -> workflow -> extract data -> for Background Check
## How it works
user will create custom workflow, workflows include age verification, address verification, etc,
then 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.
## Netflify deploy ->
[DEMO URL](https://open-kyc.netlify.app)
## Cloudflare ->
[DEMO_URL](https://tanstack-start-app.sharma-pratik2016.workers.dev)
---
# 🛠️ Tech Stack
## **Frontend**
| Technology | Version | Purpose |
| ------------------------------------- | -------------- | -------------------------------- |
| React | 19.1.1 | Core UI framework |
| React DOM | 19.1.1 | DOM renderer |
| TanStack Start | 1.132.2 | Full-stack React framework (SSR) |
| TanStack Router | 1.132.2 | File-based routing |
| TanStack React Query | 5.90.7 | Data fetching / caching |
| TanStack React Form | 1.23.8 | Form handling |
| TanStack Table | 8.21.3 | Data tables |
| Tailwind CSS v4 | 4.1.13 | Styling |
| shadcn/ui (via tailwind + react-aria) | Latest | UI components |
| React Aria Components | 1.13.0 | Accessible UI primitives |
| Lucide React | 0.552.0 | Icons |
| Motion | 12.23.24 | Animations |
| Recharts | 3.4.1 | Charts |
| React Markdown | 10.1.0 | Render Markdown |
| Input OTP | 1.4.2 | OTP UI input |
| QR-Code / React-QR-Code | 1.5.4 / 2.0.18 | QR generation |
| Class Variance Authority | 0.7.1 | Component variants |
| Tailwind Merge | 3.4.0 | Class merging |
| Tailwind Variants | 3.1.1 | Variant utilities |
| Tailwindcss React Aria Components | 2.0.1 | Theme for RAC |
| Culori | 4.0.2 | Color utilities |
---
## **Backend**
| Technology | Purpose |
| ------------------ | -------------------------------- |
| Convex | Primary backend (DB + functions) |
| Convex Crons | Scheduled jobs |
| Convex Workflows | Workflow orchestration |
| Convex Workpool | Distributed batch processing |
| Convex Migrations | Schema migration toolkit |
| Convex Better Auth | Authentication |
| Better Auth | Additional auth utilities |
| Autumn / atmn | Subscription billing (Stripe) |
| Firecrawl | Site crawling |
| UUID | ID generation |
| Zod + Zod-to-JSON | Schema + validation |
---
## **External APIs**
| Service | Use Case | Cost |
| ------------------- | ------------------------ | ------------- |
| Firecrawl | Crawling / SERP scraping | Job-based |
| Google GenAI | AI models | Usage-based |
| Stripe (via Autumn) | Payments | Standard fees |
---
## **Infrastructure**
| Layer | Technology |
| --------------- | ------------------ |
| Hosting | Cloudflare Workers |
| Backend Runtime | Convex Functions |
| Storage | Convex Storage |
| Error Tracking | Sentry |
---
## **Development**
| Tool | Purpose |
| ----------------- | -------------------------- |
| pnpm | Package manager |
| TypeScript | Type safety |
| Vitest | Testing |
| Vite | Build tool |
| Wrangler | Cloudflare dev/preview |
| ESLint + Prettier | Code quality |
| Concurrently | Run multiple dev processes |
---
### References
- https://github.com/mikecann/port-geo-christmas-lights-cruise/tree/the-video-release
- https://convex-better-auth.netlify.app/framework-guides/tanstack-start
- https://github.com/firecrawl/firecrawl/tree/main/examples
- https://github.com/ericciarla/trendFinder
- https://github.com/tanstack/router/tree/main/examples
- https://github.com/get-convex/better-auth/tree/main/examples/tanstack
- https://github.com/abhik-99/Liveness-Detection
- https://modal.com/docs/examples/doc_ocr_jobs
### FAQ
Why Open Source?
People keep asking me why open sourced this project because I wanted to use
Coderabbit