Captable
#1 Open-Source Captable, an alternative to Carta, Pully, Angelist and others.
Install / Use
/learn @captableinc/CaptableREADME
- <a href="#features">Features</a>
- <a href="#community">Community</a>
- <a href="#contributing">Contibuting</a>
- <a href="https://github.com/captableinc/captable/blob/main/SELF-HOSTING.md" target="_blank">Self hosting</a>
[!IMPORTANT]
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.
👷 Incorporation (wip) - Captable, Inc. helps you incorporate your company in minutes, with all the necessary legal documents and filings taken care of.
👷 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.
✅ 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.
✅ Investor updates - Delight your investors and team members by sending them regular updates on your company’s progress.
✅ eSign Documents - Sign SAFE, NDA, contracts, offere letters or any type of documents with Captable Sign.
✅ 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.
<h2 id="community">🤝 Community</h2> We 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. <h2 id="contributing">🫡 Contributing</h2>- Please show us some support by giving it a ⭐️
- We are looking for contributors to help us build the future of cap table management.
- Let's collaborate on Discord community channel.
- Any contributions you make are truly appreciated.
<h3 id="start">Getting started</h3> When contributing to <strong>Captable, Inc.</strong>, whether on GitHub or in other community spaces:
- Be respectful, civil, and open-minded.
- Before opening a new pull request, try searching through the issue tracker for known issues or fixes.
- <a href="#gitpod">Development environment on Gitpod</a>
- <a href="#with-docker">Development environment with Docker</a>
- <a href="#without-docker">Development environment without Docker</a>
- Click the button below to open this project in Gitpod.
<h4 id="with-docker">Development environment with Docker</h4>
-
<a href="https://docs.docker.com/get-docker/" target="_blank">Install Docker</a> & <a href="https://docs.docker.com/compose/install/" target="_blank">Docker Compose</a>
-
<a href="https://github.com/captableinc/captable/fork" target="_blank">Fork</a> & clone the forked repository
-
<a href="https://pnpm.io/installation" target="_blank">Install node and pnpm</a>. (optional)
-
Copy
.env.exampleto.envcp .env.example .env -
Run the following command to start the development environment
# With pnpm installed pnpm dx # Without pnpm installed docker compose up -
Run the following command to migrate and seed the database
docker compose exec app pnpm db:migrate docker compose exec app pnpm db:seedNote Everytime you make changes to Dockerfile or compose.yml, you need to rebuild the docker image by running
docker compose up --build -
Running
docker compose upwill start all the services on their respective ports.- App will be running on http://localhost:3000
- Emails will be intercepted: http://localhost:8025
- SMTP will be on PORT
http://localhost:1025 - Postgres will be on PORT
http://localhost:5432 - Prisma studio will be on PORT
http://localhost:5555
-
Frequently used commands
docker compose up- Start the development environmentdocker compose down- Stop the development environmentdocker compose logs -f- View logs of the running servicesdocker compose up --build- Rebuild the docker imagedocker compose run app pnpm db:migrate- Run database migrationsdocker compose run app pnpm db:seed- Seed the database
<h4 id="without-docker">Development environment without Docker</h4>
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.
-
Clone the repository
git clone https://github.com/<your-github-name>/captable.git -
Copy
.env.exampleto.envcp .env.example .env -
Install latest version of node and pnpm
-
Install latest version of postgres database
-
Install mailpit for SMTP and email interception
-
Create database
captablein postgres database -
Update
.envfile'sDATABASE_URLwith database credentials -
For a quick start, you can use Supabase database or Neon as well.
-
To simulate file storage locally, install
miniovia homebrew or any other package manager.brew install minioOnce minio is installed run
minio server start --console-address ":9002"This will start minio server <br> minio api will be available on
http://127.0.0.1:9000and <br> minio web gui will be available onhttp://127.0.0.1:9002.once you see these endpoint in terminal, update the following
.env:UPLOAD_ENDPOINT="http://127.0.0.1:9000" # should match minio api server's endpoint NEXT_PUBLIC_UPLOAD_DOMAIN="http://127.0.0.1:9000" # should match minio api server's endpoint UPLOAD_REGION="us-east-1" # don't change it UPLOAD_ACCESS_KEY_ID="minioadmin" # by default minio username is "minioadmin" UPLOAD_SECRET_ACCESS_KEY="minioadmin" # by default minio password is "minioadmin" UPLOAD_BUCKET_PUBLIC="captable-public-bucket" UPLOAD_BUCKET_PRIVATE="captable-private-bucket"after this, go to minio web gui(
http://127.0.0.1:9002) and login: <br> username:minioadmin<br> password:minioadminand create two buckets with the name: <br>
captable-public-bucketandcaptable-private-bucket,<br> this should matchUPLOAD_BUCKET_PUBLICandUPLOAD_BUCKET_PRIVATEenv's values.and you should be done with minio setup.
-
Run the following command to install dependencies
pnpm install -
Run the following command to migrate and seed the database
pnpm db:migrate pnpm db:seed -
Run the following command to start the development server
pnpm dev # On a different terminal, run the following command to start the mail server pnpm email:dev- App will be running on http://localhost:3000
- Emails will be intercepted: http://localhost:8025
- SMTP will be on PORT
http://localhost:1025 - Postgres will be on PORT
http://localhost:5432
-
Frequently used commands
pnpm dev- Start the development serverpnpm email:dev- Start the mail serverpnpm db:migrate- Run database migrationspnpm db:seed- Seed the database
When making commits, make sure to follow the conventional commit guidelines, i.e. prepending the message with feat:, fix:, chore:, docs:, etc...
git add <file> && git commit -m
