{"repo":"sholajegede/kinde-sync","free":true,"listed":false,"github":"https://github.com/sholajegede/kinde-sync","clone":"git clone https://github.com/sholajegede/kinde-sync.git","description":"Sync Kinde auth events into Convex in real time via webhooks. No polling, no boilerplate JWT verification.","language":"TypeScript","stars":17,"topics":["auth","authentication","convex","convex-components","kinde","user-sync","webhooks"],"license":"Apache-2.0","category":"auth-billing-email","readme_excerpt":"@sholajegede/kinde-sync A Convex component that syncs Kinde users into your Convex database in real time via webhooks. When a user is created, updated, or deleted in Kinde, your Convex database updates instantly — no polling, no boilerplate JWT verification, no manual sync logic. Found a bug? Feature request? File it here. How it works Without this component, every Convex + Kinde app has to write the same webhook handler: validate the JWT, parse the event, upsert the user. This component does all of that for you. Point your Kinde webhook at your Convex deployment and your users are synced automatically. Kinde sends a JWT-signed POST request to your endpoint on every user event. The component verifies the signature against Kinde's JWKS endpoint, deduplicates events by webhook ID, and upserts or deletes the user in a component-owned Convex table. Your frontend subscribes reactively via useQuery . Prerequisites - A Kinde account with an application configured - Your Kinde issuer URL, client ID, and client secret (see below for how to find these) Getting your Kinde credentials 1. Create a Kinde account and application Go to kinde.com and sign up. Once inside the dashboard, you will already have a default application created. Click View details on your app. 2. Find your credentials On the application details page you will find: - KINDE ISSUER URL — shown as your domain e.g. https://yourapp.kinde.com - KINDE CLIENT ID — labeled \"Client ID\" - KINDE CLIENT SECRET — labeled \"Client se","default_branch":null,"files":null,"tree":[],"storefront":"/r/sholajegede","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/sholajegede/kinde-sync/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}