{"id":8073403,"url":"https://github.com/captableinc/captable","last_synced_at":"2025-07-23T18:32:12.586Z","repository":{"id":216237142,"uuid":"740771950","full_name":"captableinc/captable","owner":"captableinc","description":"#1 Open-Source Captable, an alternative to Carta, Pully, Angelist and others.","archived":false,"fork":false,"pushed_at":"2024-05-22T12:51:08.000Z","size":9156,"stargazers_count":328,"open_issues_count":12,"forks_count":41,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-22T13:14:39.644Z","etag":null,"topics":["captable","dataroom","esign","fundraising","investor","nextjs","open-source","prisma","typescript"],"latest_commit_sha":null,"homepage":"https://captable.inc","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/captableinc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-01-09T03:06:05.000Z","updated_at":"2024-05-27T12:29:57.004Z","dependencies_parsed_at":"2024-05-02T05:37:13.360Z","dependency_job_id":"823e82ee-8408-4609-98fd-1476769e3f32","html_url":"https://github.com/captableinc/captable","commit_stats":null,"previous_names":["opencapco/opencap.co","captableinc/captable"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/captableinc%2Fcaptable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/captableinc%2Fcaptable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/captableinc%2Fcaptable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/captableinc%2Fcaptable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/captableinc","download_url":"https://codeload.github.com/captableinc/captable/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227339595,"owners_count":17767336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["captable","dataroom","esign","fundraising","investor","nextjs","open-source","prisma","typescript"],"created_at":"2024-04-17T00:02:42.358Z","updated_at":"2024-11-30T12:30:55.156Z","avatar_url":"https://github.com/captableinc.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ca href=\"https://captable.inc\" alt=\"Captable, Inc.\"\u003e\n  \u003cimg alt=\"Captable, Inc. cover image\" src=\"https://captable.inc/og.png\"\u003e\n\u003c/a\u003e\n\n\u003ch1 align=\"center\"\u003eCaptable, Inc.\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  #1 Open-source Cap table management platform, an alternative to Carta, Pulley, Angelist and others.\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://captable.inc\"\u003e\u003cstrong\u003eLearn more »\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/captableinc/captable/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/captableinc/captable\" alt=\"Github\" /\u003e\n  \u003c/a\u003e\n  \n  \u003ca href=\"https://twitter.com/captableinc\"\u003e\n    \u003cimg alt=\"X (formerly Twitter) Follow\" src=\"https://img.shields.io/twitter/follow/captableinc\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://discord.gg/rCpqnD6G6p\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Discord-Join%20us%20on%20Discord-purple\" alt=\"Join us on Discord\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/captableinc/captable/actions/workflows/release.yml\"\u003e\n    \u003cimg src=\"https://github.com/captableinc/captable/actions/workflows/release.yml/badge.svg?branch=main\u0026title=CI\" alt=\"CI\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/captableinc/captable/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/captableinc/captable?label=license\u0026logo=github\u0026color=f80\u0026logoColor=fff\" alt=\"License\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://hub.docker.com/r/captable/captable\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Docker%20Hub-captable/captable-blue\" alt=\"Docker image\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 id=\"toc\"\u003eTable of contents\u003c/h3\u003e\n\n- \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\n- \u003ca href=\"#community\"\u003eCommunity\u003c/a\u003e\n- \u003ca href=\"#contributing\"\u003eContibuting\u003c/a\u003e\n- \u003ca href=\"https://github.com/captableinc/captable/blob/main/SELF-HOSTING.md\" target=\"_blank\"\u003eSelf hosting\u003c/a\u003e\n\n\u003ch2 id=\"features\"\u003e✨ Key features\u003c/h2\u003e\n\n\u003e [!IMPORTANT]  \n\u003e We envision a world where cap table management is accessible, secure, and empowering for all. Captable, Inc. aims to democratize the handling of cap tables, securities, and stakeholder interactions. Through cutting-edge technology and a commitment to openness, we strive to be the catalyst for positive change in financial ecosystems.\n\n👷 **Incorporation** (wip) - Captable, Inc. helps you incorporate your company in minutes, with all the necessary legal documents and filings taken care of.\n\n👷 **Cap table management** (wip) - Captable, Inc. helps you keep track of your company’s ownership structure, including who owns what percentage of the company, how much stock/options has been issued, and more.\n\n✅ **Fundraise** - Captable, Inc. can help you raise capital, whether its signing standard or custom SAFE or creating and managing fundraising rounds, tracking investor commitments, and more.\n\n✅ **Investor updates** - Delight your investors and team members by sending them regular updates on your company’s progress.\n\n✅ **eSign Documents** - Sign SAFE, NDA, contracts, offere letters or any type of documents with Captable Sign.\n\n✅ **Data rooms** - Captable, Inc. provides a secure virtual data room where you can store important documents and share them with investors, employees, and other stakeholders.\n\n\u003ch2 id=\"community\"\u003e🤝 Community\u003c/h2\u003e\nWe have a community of developers, designers, and entrepreneurs who are passionate about building the future of finance. Join us on Discord to connect with like-minded individuals, share your ideas, and collaborate on projects.\n\n- [Join us on Discord](https://discord.gg/rCpqnD6G6p)\n- [Follow us on Twitter](https://twitter.com/captableinc)\n- [Meet the Founder](https://captable.inc/schedule)\n\n\u003ch2 id=\"contributing\"\u003e🫡 Contributing\u003c/h2\u003e\n\n- Please show us some support by giving it a ⭐️\n- We are looking for contributors to help us build the future of cap table management.\n- Let's collaborate on [Discord](https://discord.gg/rCpqnD6G6p) community channel.\n- Any contributions you make are truly appreciated.\n\n\u003ch3 id=\"stack\"\u003eStack\u003c/h3\u003e\n\n- [Next.js](https://nextjs.org)\n- [Tailwind](https://tailwindcss.com)\n- [Prisma ORM](https://prisma.io)\n\n---\n\n\u003ch3 id=\"start\"\u003eGetting started\u003c/h3\u003e\nWhen contributing to \u003cstrong\u003eCaptable, Inc.\u003c/strong\u003e, whether on GitHub or in other community spaces:\n\n- Be respectful, civil, and open-minded.\n- Before opening a new pull request, try searching through the [issue tracker](https://github.com/captableinc/captable/issues) for known issues or fixes.\n\n\u003ch3 id=\"setup\"\u003eSetup development environment\u003c/h3\u003e\n\n- \u003ca href=\"#gitpod\"\u003eDevelopment environment on Gitpod\u003c/a\u003e\n- \u003ca href=\"#with-docker\"\u003eDevelopment environment with Docker\u003c/a\u003e\n- \u003ca href=\"#without-docker\"\u003eDevelopment environment without Docker\u003c/a\u003e\n\n\u003ch4 id=\"gitpod\"\u003eDevelopment environment on Gitpod\u003c/h4\u003e\n\n- Click the button below to open this project in Gitpod.\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/captableinc/captable)\n\n---\n\n\u003ch4 id=\"with-docker\"\u003eDevelopment environment with Docker\u003c/h4\u003e\n\n- \u003ca href=\"https://docs.docker.com/get-docker/\" target=\"_blank\"\u003eInstall Docker\u003c/a\u003e \u0026 \u003ca href=\"https://docs.docker.com/compose/install/\" target=\"_blank\"\u003eDocker Compose\u003c/a\u003e\n- \u003ca href=\"https://github.com/captableinc/captable/fork\" target=\"_blank\"\u003eFork\u003c/a\u003e \u0026 clone the forked repository\n- \u003ca href=\"https://pnpm.io/installation\" target=\"_blank\"\u003eInstall node and pnpm\u003c/a\u003e. (optional)\n- Copy `.env.example` to `.env`\n\n  ```bash\n  cp .env.example .env\n  ```\n\n- Run the following command to start the development environment\n\n  ```bash\n\n  # With pnpm installed\n  pnpm dx\n\n  # Without pnpm installed\n  docker compose up\n\n  ```\n\n- Run the following command to migrate and seed the database\n\n  ```bash\n\n  docker compose exec app pnpm db:migrate\n  docker compose exec app pnpm db:seed\n\n  ```\n\n  \u003e **Note**\n  \u003e Everytime you make changes to Dockerfile or compose.yml, you need to rebuild the docker image by running `docker compose up --build`\n\n- Running `docker compose up` will start all the services on their respective ports.\n\n  - App will be running on [http://localhost:3000](http://localhost:3000)\n  - Emails will be intercepted: [http://localhost:8025](http://localhost:8025)\n  - SMTP will be on PORT `http://localhost:1025`\n  - Postgres will be on PORT `http://localhost:5432`\n  - Prisma studio will be on PORT `http://localhost:5555`\n\n- Frequently used commands\n  - `docker compose up` - Start the development environment\n  - `docker compose down` - Stop the development environment\n  - `docker compose logs -f` - View logs of the running services\n  - `docker compose up --build` - Rebuild the docker image\n  - `docker compose run app pnpm db:migrate` - Run database migrations\n  - `docker compose run app pnpm db:seed` - Seed the database\n\n---\n\n\u003ch4 id=\"without-docker\"\u003eDevelopment environment without Docker\u003c/h4\u003e\n\n\u003e This has been tested on Mac OS and works really well. If you are using Linux/Windows/WSL, you might need to install some additional dependencies.\n\n- [Fork the repository](https://github.com/captableinc/captable/fork)\n\n- Clone the repository\n\n  ```bash\n  git clone https://github.com/\u003cyour-github-name\u003e/captable.git\n  ```\n\n- Copy `.env.example` to `.env`\n\n  ```bash\n  cp .env.example .env\n  ```\n\n- Install latest version of node and pnpm\n- Install latest version of postgres database\n- Install [mailpit](https://mailpit.axllent.org/docs/install/) for SMTP and email interception\n- Create database `captable` in postgres database\n- Update `.env` file's `DATABASE_URL` with database credentials\n- For a quick start, you can use [Supabase database](https://supabase.com/) or [Neon](https://neon.tech/) as well.\n- To simulate file storage locally, install `minio` via homebrew or any other package manager.\n\n  ```bash\n  brew install minio\n  ```\n\n  Once minio is installed run\n  ```bash\n  minio server start --console-address \":9002\"\n  ```\n\n  This will start minio server \u003cbr\u003e\n  minio api will be available on `http://127.0.0.1:9000` and \u003cbr\u003e\n  minio web gui will be available on `http://127.0.0.1:9002`.\n\n  once you see these endpoint in terminal, update the following `.env`:\n  \n  ```bash\n  UPLOAD_ENDPOINT=\"http://127.0.0.1:9000\" # should match minio api server's endpoint\n  NEXT_PUBLIC_UPLOAD_DOMAIN=\"http://127.0.0.1:9000\" # should match minio api server's endpoint\n  UPLOAD_REGION=\"us-east-1\" # don't change it\n  UPLOAD_ACCESS_KEY_ID=\"minioadmin\" # by default minio username is \"minioadmin\"\n  UPLOAD_SECRET_ACCESS_KEY=\"minioadmin\" # by default minio password is \"minioadmin\"\n  UPLOAD_BUCKET_PUBLIC=\"captable-public-bucket\"\n  UPLOAD_BUCKET_PRIVATE=\"captable-private-bucket\"\n  ```\n\n  after this,\n  go to minio web gui(`http://127.0.0.1:9002`) and login: \u003cbr\u003e\n  username: `minioadmin` \u003cbr\u003e\n  password: `minioadmin`\n\n  and create two buckets with the name: \u003cbr\u003e `captable-public-bucket` and `captable-private-bucket`,\u003cbr\u003e this should match `UPLOAD_BUCKET_PUBLIC` and `UPLOAD_BUCKET_PRIVATE` env's values.\n\n  and you should be done with minio setup.\n\n- Run the following command to install dependencies\n\n  ```bash\n  pnpm install\n  ```\n\n- Run the following command to migrate and seed the database\n\n  ```bash\n  pnpm db:migrate\n  pnpm db:seed\n  ```\n\n- Run the following command to start the development server\n\n  ```bash\n  pnpm dev\n\n  # On a different terminal, run the following command to start the mail server\n  pnpm email:dev\n  ```\n\n  - App will be running on [http://localhost:3000](http://localhost:3000)\n  - Emails will be intercepted: [http://localhost:8025](http://localhost:8025)\n  - SMTP will be on PORT `http://localhost:1025`\n  - Postgres will be on PORT `http://localhost:5432`\n\n- Frequently used commands\n  - `pnpm dev` - Start the development server\n  - `pnpm email:dev` - Start the mail server\n  - `pnpm db:migrate` - Run database migrations\n  - `pnpm db:seed` - Seed the database\n\n\u003ch4 id=\"changes\"\u003eImplement your changes\u003c/h4\u003e\n\nWhen making commits, make sure to follow the [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/) guidelines, i.e. prepending the message with `feat:`, `fix:`, `chore:`, `docs:`, etc...\n\n```bash\ngit add \u003cfile\u003e \u0026\u0026 git commit -m \"feat/fix/chore/docs: commit message\"\n```\n\n\u003ch4 id=\"pr\"\u003eOpen a pull request\u003c/h4\u003e\n\n\u003e When you're done\n\nMake a commit and push your code to your github fork and make a pull-request.\n\nThanks for your contributions. Much ❤️\n\n---\n\n\u003ch2 id=\"contributors\"\u003e💌 Contributors\u003c/h2\u003e\n\u003ca href=\"https://github.com/captableinc/captable/graphs/contributors\"\u003e\n  \u003cp\u003e\n    \u003cimg src=\"https://contrib.rocks/image?repo=captableinc/captable\" alt=\"A table of avatars from the project's contributors\" /\u003e\n  \u003c/p\u003e\n\u003c/a\u003e\n\n---\n\n![Alt](https://repobeats.axiom.co/api/embed/a8fc8a167d33eec78a71953a2b9e58985ca4b3b6.svg \"Captable repo activity\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaptableinc%2Fcaptable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaptableinc%2Fcaptable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaptableinc%2Fcaptable/lists"}