MCPcopy Index your code
hub / github.com/1984vc/cap-table

github.com/1984vc/cap-table @v3.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0.1 ↗ · + Follow
109 symbols 280 edges 51 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

1984 Startup Finance Library and Worksheet

Why

At 1984 we believe SAFEs should be easy to understand and model, and the tools for that should be open source, well-tested, and easy for anyone to use. Currently the best we have are either some aging Excel spreadsheets that get passed around, or a fairly rudimentary webapp.

The goal of this repository is to provide a tool for startup founders to quickly understand the decisions they make with regards to financing, especially at the SAFE round.

Our primary project is the Cap Table Worksheet Tool, which you can find on our website at https://1984.vc/docs/cap-table-worksheet/

Technical Details

SAFE Conversion worksheet (React app)

SAFE Conversion Worksheet App

This app is 100% client-side, and allows you to quickly model what your Cap table would look like in a variety of scenarios.

Goals: 1. Users should be able to enter in their cap table details and model different fundraising scenarios. 2. Users can share this cap table with co-founders and investors easily and securely.

How to share a worksheet

To share your worksheet, click the "Save" button and copy the URL. This contains all your cap table data, so you can share it freely with co-founders or other investors.

How data is stored

We don't store any data in the backend. Instead we serialize the state of the worksheet and hold it in the URL hash. This allows you to quickly share a spreadsheet, without worrying about permissions (people you share this with get a snapshot of the current state but won't recieve updates)

SAFE Conversion Google Sheet

If you're more comforable with a spreadsheet, we offer this script as a Google Apps Script, which you can use here:

Latest SAFE Conversion Google Sheet

Development / Contributing

React App

  1. Clone the repo
  2. Install node modules - yarn install
  3. Run the development server - yarn dev
  4. Visit the localhost server at http://localhost:3000/startup-finance/safe-conversion

Testing / Linting / Staging

This library is tested using Jest, which you can run with yarn test

ESLint is used to keep the styling and lint for common errors, run lint with yarn run lint

Any commits push to staging will automatically get deployed to our staging worksheet, which you can find here

Deployment of Google Apps Script

Process:

  1. Update the version in package.json
  2. Update CHANGELOG.md to reflect the latest additions and changes
  3. Tag the release vX.X.X and push to Github.

Github Actions handle the deployment, which consists of the following steps

  1. Lint
  2. Test
  3. Build
  4. Deploy via the Google Clasp CLI

License

The code located at src/library is licensed under MIT, feel free to do with it as you please. Because the React app is very styled to the 1984 brand we are not licensing it, but providing the code as open source in order to build trust.

If you run into any issues, please feel free to open a ticket (or better yet, a PR), and we'll look into it.

Credit

This project builds off the work of others. Credit where credit is due.

Extension points exported contracts — how you extend this code

ISafeInvestment (Interface)
(no doc)
src/library/safe_conversion.ts
SeriesProps (Interface)
(no doc)
src/app/components/safe-conversion/Conversion/SeriesInvestorList.tsx
ProcessEnv (Interface)
(no doc)
src/library/types/global.d.ts
SeriesRowProps (Interface)
(no doc)
src/app/components/safe-conversion/Conversion/SeriesInvestorList.tsx
Process (Interface)
(no doc)
src/library/types/global.d.ts
PercentNoteProps (Interface)
(no doc)
src/app/components/safe-conversion/Conversion/PercentNote.tsx
RowsProps (Interface)
(no doc)
src/app/components/safe-conversion/Conversion/PropTypes.ts
SAFEProps (Interface)
(no doc)
src/app/components/safe-conversion/Conversion/SafeNoteList.tsx

Core symbols most depended-on inside this repo

formatNumberWithCommas
called by 20
src/app/utils/numberFormatting.ts
stringToNumber
called by 10
src/app/utils/numberFormatting.ts
getID
called by 9
src/app/cap-table/state/initialState.ts
createConversionStore
called by 9
src/app/cap-table/state/ConversionState.ts
fitConversion
called by 6
src/library/safe_conversion.ts
compressState
called by 5
src/app/utils/stateCompression.ts
createNewState
called by 4
src/app/cap-table/page.tsx
getRecentStates
called by 4
src/app/cap-table/state/localstorage.ts

Shape

Function 92
Interface 17

Languages

TypeScript100%

Modules by API surface

src/library/safe_conversion.ts9 symbols
src/library/index.ts8 symbols
src/app/components/safe-conversion/Conversion/SafeNoteList.tsx7 symbols
src/app/components/safe-conversion/Conversion/ExistingShareholders.tsx7 symbols
src/app/cap-table/state/ConversionState.ts7 symbols
src/app/components/safe-conversion/Conversion/SeriesInvestorList.tsx6 symbols
src/app/components/safe-conversion/Conversion/PricedRound.tsx6 symbols
src/app/cap-table/state/initialState.ts6 symbols
src/app/utils/stateCompression.ts5 symbols
src/app/components/safe-conversion/Conversion/Finder.tsx5 symbols
google-apps-script/src/index.ts5 symbols
src/app/utils/numberFormatting.ts4 symbols

For agents

$ claude mcp add cap-table \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact