Find developers who build with your stack.
Stackmatch scans public GitHub package.json files, builds dependency fingerprints for developers and organizations, and surfaces stackmates: people whose real project stacks overlap with yours.
Live site: stackmatch.dev
Docs: stackmatch.dev/docs
GitHub is rich with signals, but most developer discovery still starts from bios, follower counts, or keyword search. Stackmatch starts from what people actually build with.
The project maps developers, packages, languages, topics, and communities through dependency overlap. That makes it easier to find peers using similar tools, spot emerging package communities, and turn shared technical context into collaboration.
- Builds public stack fingerprints from root and nested
package.jsonfiles. - Finds stackmates using shared package counts and stack similarity scoring.
- Creates public profile pages for indexed developers and organizations.
- Surfaces package pages, package leaderboards, language pages, and topic communities.
- Supports GitHub sign-in so developers can claim their profile.
- Offers optional private stack sync through separate GitHub App consent.
- Keeps private analysis aggregate-only: dependency names and counts, not source code.
Stackmatch is a TypeScript monorepo built around a Next.js web app and a Convex backend.
| Area | Technology |
|---|---|
| Web app | Next.js App Router, React, Tailwind CSS |
| Backend/data | Convex queries, mutations, actions, scheduled jobs |
| Auth | Better Auth with GitHub OAuth |
| UI | Shared @stackmatch/ui package, Lucide icons, Radix primitives |
| Tooling | pnpm, Turborepo, Biome, TypeScript |
| Testing | Vitest, Testing Library, jsdom accessibility tests |
apps/web Next.js app, Convex functions, routes, UI surfaces
packages/api Shared API-facing contracts and helpers
packages/config Site config, routes, themes, shared app config
packages/constants Centralized policy and product constants
packages/localization User-facing copy and metadata strings
packages/ui Shared UI primitives
packages/utils Shared scoring and utility logic
docs Architecture notes, governance docs, planning docs
- Node.js compatible with the version expected by the repo tooling.
- pnpm 10.x.
- Convex configured for this repo; local development uses the bundled Convex watcher.
- A GitHub token for public repository reads.
pnpm installCreate .env.local at the repo root or apps/web/.env.local with the values required by the web app and Convex backend:
CONVEX_DEPLOYMENT=...
NEXT_PUBLIC_CONVEX_URL=...
GITHUB_TOKEN=...
ANALYZE_API_KEY=...
BETTER_AUTH_SECRET=...
SITE_URL=http://stackmatch-web.localhost:1355
NEXT_PUBLIC_SITE_URL=http://stackmatch-web.localhost:1355
NEXT_PUBLIC_BASE_URL=http://stackmatch-web.localhost:1355Use a dedicated Convex project/database for Stackmatch. Do not point local development at another product's Convex deployment.
pnpm --filter @stackmatch/web devThis starts the correct local development pair: portless for Next.js plus the Convex local backend watcher. Use the portless URL printed by the command, usually:
http://stackmatch-web.localhost:1355
Do not run next dev, pnpm --filter @stackmatch/web dev:next, or a raw localhost-only server for profile or data-backed pages.
Run the quick repo verification before opening a pull request:
pnpm verify:quickUseful targeted checks:
pnpm --filter @stackmatch/web typecheck
pnpm --filter @stackmatch/web test
pnpm --filter @stackmatch/web test:a11y
pnpm check:constants
pnpm check:data-boundaryRun the full verification, including build, when the change is broad or release-facing:
pnpm verifyStackmatch is opening publicly and welcomes focused contributions that improve developer discovery, stack analysis, product quality, documentation, and reliability.
Good first areas:
- Improve onboarding and documentation.
- Add tests around stack scoring, profile rendering, and data boundary behavior.
- Improve package, topic, language, and profile discovery flows.
- Tighten accessibility and performance for public pages.
- Refine Convex ingestion and sync reliability.
- Strengthen sponsor transparency, package ecosystem briefs, and contributor recognition.
Before contributing, read CONTRIBUTING.md. This repo uses pnpm, Conventional Commits, Lefthook, centralized constants governance, and data-boundary rules for Convex access.
Stackmatch reads public GitHub repository metadata and package.json manifests to build public dependency fingerprints. Source code is not cloned or stored for public stack analysis.
Private repository analysis is optional and requires a separate GitHub App installation where the user chooses which repositories to grant. For private sync, Stackmatch stores aggregate dependency names/counts and sync status keyed to the GitHub login. It does not store private source code, private file paths, private repository names, commit messages, or commit SHAs.
- Better stackmate explanations and match transparency.
- Richer package and ecosystem pages.
- More contributor-friendly development docs.
- Stronger profile claiming, moderation, and privacy controls.
- Community surfaces for maintainers, OSS projects, and DevRel teams.
Thanks goes to these people:
David Dias 💻 🎨 🤔 |
This project follows the All Contributors specification. Contributions of any kind are welcome.
MIT © 2026 David Dias Digital. See LICENSE.