- Notifications
You must be signed in to change notification settings - Fork119
#1 Open-Source Captable, an alternative to Carta, Pully, Angelist and others.
License
captableinc/captable
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
#1 Open-source Cap table management platform, an alternative to Carta, Pulley, Angelist and others.
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.
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.- 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 onDiscord community channel.
- Any contributions you make are truly appreciated.
When contributing toCaptable, Inc., whether on GitHub or in other community spaces:
- Be respectful, civil, and open-minded.
- Before opening a new pull request, try searching through theissue tracker for known issues or fixes.
- Development environment on Gitpod
- Development environment with Docker
- Development environment without Docker
- Click the button below to open this project in Gitpod.
Fork & clone the forked repository
Install node and pnpm. (optional)
Copy
.env.example
to.env
cp .env.example .env
Run the following command to start the development environment
# With pnpm installedpnpm dx# Without pnpm installeddocker compose up
Run the following command to migrate and seed the database
docker composeexec app pnpm db:migratedocker composeexec app pnpm db:seed
NoteEverytime you make changes to Dockerfile or compose.yml, you need to rebuild the docker image by running
docker compose up --build
Running
docker compose up
will start all the services on their respective ports.- App will be running onhttp://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
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.example
to.env
cp .env.example .env
Install latest version of node and pnpm
Install latest version of postgres database
Installmailpit for SMTP and email interception
Create database
captable
in postgres databaseUpdate
.env
file'sDATABASE_URL
with database credentialsFor a quick start, you can useSupabase database orNeon as well.
To simulate file storage locally, install
minio
via homebrew or any other package manager.brew install minio
Once minio is installed run
minio server start --console-address":9002"
This will start minio server
minio api will be available onhttp://127.0.0.1:9000
and
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 endpointNEXT_PUBLIC_UPLOAD_DOMAIN="http://127.0.0.1:9000"# should match minio api server's endpointUPLOAD_REGION="us-east-1"# don't change itUPLOAD_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:
username:minioadmin
password:minioadmin
and create two buckets with the name:
captable-public-bucket
andcaptable-private-bucket
,
this should matchUPLOAD_BUCKET_PUBLIC
andUPLOAD_BUCKET_PRIVATE
env'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:migratepnpm 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 serverpnpm email:dev
- App will be running onhttp://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 theconventional commit guidelines, i.e. prepending the message withfeat:
,fix:
,chore:
,docs:
, etc...
git add<file>&& git commit -m"feat/fix/chore/docs: commit message"
When you're done
Make a commit and push your code to your github fork and make a pull-request.
Thanks for your contributions. Much ❤️
About
#1 Open-Source Captable, an alternative to Carta, Pully, Angelist and others.