One thing done well: your cap table.
Open-source cap table management for founders. Import from Pulley, manage equity, and take your data with you.
Use Capy · Self-host · Contribute · Roadmap · Changelog
We were Pulley customers too. We wanted a small, understandable product we could keep running, with code we could inspect and data we could export. So we built Capy.
This repository contains the web app, backend functions, equity calculations, import/export code, and deployment configuration. The hosted service at capyinc.com runs this application. Self-hosted installations do not require a Capy subscription.
| Workflow | Included |
|---|---|
| Bring your cap table | Preview a detailed Pulley Excel export before signup; review reconciliation and warnings before saving; import contacts separately. |
| Manage equity | Track stakeholders, shares, options, SAFEs, share classes, and equity plans. Record corrections, option exercises, and cancellations with activity history. |
| Understand ownership | Review fully diluted ownership, plan reserves, and supported monthly vesting schedules. Search, sort, and filter the cap table. |
| Model fundraising | Compare priced-round dilution with pre-money and post-money SAFEs, caps, and discounts; save scenarios. |
| Share with stakeholders | Give a stakeholder access to their own holdings through an invitation that can be claimed once and revoked. |
| Keep records | Store documents and save approval, offer, and communication drafts. |
| Take your data | Download the cap table as Excel and individual tables as CSV. |
Screenshots use fictional companies and synthetic records.
Capy is a young project with a working hosted product. We publish the implementation, checks, and limitations so you can evaluate it yourself.
The current release does not send documents for signature, move money, file taxes, provide 409A appraisals, or automate legal-document generation. An MCP server and Open Cap Table Format export are on the roadmap; exports today are Excel and CSV. Email verification/password recovery delivery and administrator-team invitations are not yet implemented.
Read supported workflows and boundaries and the Pulley import guide before migrating a company.
Requirements: Bun 1.3.14, Node.js 24, and your own Convex project. Stripe and Cloudflare credentials are not needed for local development.
git clone https://github.com/zain/capy.git
cd capy
bun install --frozen-lockfile
cp apps/web/.env.example apps/web/.env.local
bun run dev:setupCreate or select your own Convex project. Once the CLI has written packages/backend/.env.local, use a second terminal from the repository root to configure its development environment:
cd packages/backend
bunx convex env set SITE_URL http://localhost:3001
bunx convex env set BETTER_AUTH_SECRET "$(openssl rand -hex 32)"
bunx convex env set CAPY_SELF_HOSTED true
cd ../..The setup command waits for a successful push; if it reports missing environment variables, leave it running while setting them. Copy the deployment's .convex.cloud and .convex.site URLs into apps/web/.env.local, then:
bun run devOpen localhost:3001, create an account, and import a workbook or create an empty company. See the development guide for the full environment reference and troubleshooting.
bun run check # formatting, lint, production build, and TypeScript
bun run test # import/export, calculations, billing, and webhook tests
bun audit # known dependency vulnerabilitiesGitHub Actions runs these checks on pushes and pull requests, with a frozen lockfile and no production credentials. See CONTRIBUTING.md for the review and testing expectations.
| Part | Technology |
|---|---|
| Web app | React, TanStack Start, TypeScript |
| Database and server functions | Convex |
| Authentication | Better Auth with the Convex adapter |
| Calculations and validation | Decimal.js and Zod |
| Excel import/export | ExcelJS |
| Tooling | Bun and Vite+ |
| Hosted web deployment | Cloudflare Workers |
apps/web/ Routes, product UI, authentication, imports, and exports
packages/backend/ Convex schema, functions, permissions, and file storage
packages/equity/ Shared equity calculations, validation, and modeling
packages/ui/ Shared UI components
packages/infra/ Cloudflare deployment command
scripts/ Production build helper
docs/ Setup, architecture, product scope, and migration guides
Read the architecture guide for data flow and access boundaries. The self-hosting guide covers deployment on your own Cloudflare and Convex accounts, updates, and backups. Running the Convex server itself on your infrastructure is not yet a tested deployment path for this repository.
Built by Zain and Sina. Zain maintains this repository; hello@capyinc.com reaches the team.
- Bugs and feature requests: open an issue.
- Setup and usage questions: Discussions.
- Private migration or account help: email us.
- Security vulnerabilities: use private vulnerability reporting, as described in SECURITY.md.
Please use synthetic examples in public issues. See SUPPORT.md for what to include in a report.
Capy is licensed under GNU AGPL v3.0 (AGPL-3.0-only). Contributions use the same license. Dependency and asset licenses remain with their respective authors; see THIRD_PARTY_NOTICES.md.
Built with Better T Stack, TanStack, Convex, Better Auth, and shadcn/ui. Capy is an independent project and is not affiliated with Pulley or Carta.


