Skip to content

The Open Source alternative to Carta and Pulley.

License

Notifications You must be signed in to change notification settings

djshubs/opencap.co

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Captable, Inc. cover image

Captable, Inc.

#1 Open-source Cap table management platform, an alternative to Carta, Pulley, Angelist and others.

Learn more »

Github X (formerly Twitter) Follow Join us on Discord CI License Docker image

Table of contents

✨ Key features

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.

🤝 Community

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.

🫡 Contributing

  • 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.

Stack


Getting started

When contributing to Captable, Inc., 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.

Setup development environment

Development environment on Gitpod

  • Click the button below to open this project in Gitpod.

Open in Gitpod


Development environment with Docker

  • Install Docker & Docker Compose

  • 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 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:seed
    

    Note 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 up will 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 environment
    • docker compose down - Stop the development environment
    • docker compose logs -f - View logs of the running services
    • docker compose up --build - Rebuild the docker image
    • docker compose run app pnpm db:migrate - Run database migrations
    • docker compose run app pnpm db:seed - Seed the database

Development environment without Docker

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.

  • Fork the repository

  • 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

  • Install mailpit for SMTP and email interception

  • Create database captable in postgres database

  • Update .env file's DATABASE_URL with database credentials

  • For a quick start, you can use Supabase database or Neon 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 on http://127.0.0.1:9000 and
    minio web gui will be available on http://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:
    username: minioadmin
    password: minioadmin

    and create two buckets with the name:
    captable-public-bucket and captable-private-bucket,
    this should match UPLOAD_BUCKET_PUBLIC and UPLOAD_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: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
  • Frequently used commands

    • pnpm dev - Start the development server
    • pnpm email:dev - Start the mail server
    • pnpm db:migrate - Run database migrations
    • pnpm db:seed - Seed the database

Implement your changes

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 "feat/fix/chore/docs: commit message"

Open a pull request

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 ❤️


💌 Contributors

A table of avatars from the project's contributors


Alt

About

The Open Source alternative to Carta and Pulley.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.9%
  • CSS 1.1%
  • Other 1.0%