f533d9bfcb
* Fetch balance of users with open limit orders & cancel orders with insufficient balance
* Fix imports
* Fix bugs
* Fix a bug
* Remove redundant cast
* buttons overlaying content fix (#1005)
* buttons overlaying content fix
* stats: round DAU number
* made set width for portfolio/profit fields (#1006)
* tournaments: included resolved markets
* made delete red, moved button for regular posts (#1008)
* Fix localstorage saved user being overwritten on every page load
* Market page: Show no right panel while user loading
* Don't flash sign in button if user is loading
* election map coloring
* market group modal scroll fix (#1009)
* midterms: posititoning, make mobile friendly
* Un-daisy share buttons (#1010)
* Make embed and challenge buttons non-daisyui
* Allow link Buttons. Change tweet, dupe buttons.
* lint
* don't insert extra lines when upload photos
* Map fixes (#1011)
* usa map: fix sizing
* useSetIframeBackbroundColor
* preload contracts
* seo
* remove hook
* turn off sprig on dev
* Render timestamp only on client to prevent error of server not matching client
* Make sized container have default height so graph doesn't jump
* midterms: use null in static props
* Create common card component (#1012)
* Create common card component
* lint
* add key prop to pills
* redirect to /home after login
* create market: use transaction
* card: reduce border size
* Update groupContracts in db trigger
* Default sort to best
* Save comment sort per user rather than per contract
* Refactor Pinned Items into a reusable component
* Revert "create market: use transaction"
This reverts commit
|
||
---|---|---|
.github | ||
.vscode | ||
common | ||
docs | ||
functions | ||
og-image | ||
web | ||
.firebaserc | ||
.gitignore | ||
.prettierrc | ||
dev.sh | ||
firebase.json | ||
firestore.indexes.json | ||
firestore.rules | ||
LICENSE.md | ||
package.json | ||
README.md | ||
yarn.lock |
Manifold Markets
This monorepo has basically everything involved in running and operating Manifold.
Getting started
- Make sure you have Yarn 1.x
$ cd web
$ yarn
$ yarn dev:dev
- Your site will be available on http://localhost:3000
See web/README.md
for more details on hacking on the web client.
General architecture
Manifold's public API and web app are hosted by Vercel. In general, the web app runs as much as possible on the client; we follow a JAMStack architecture. All data is stored in Firebase's database, Cloud Firestore. This is directly accessed by the client for most data access operations.
Operations with complicated contracts (e.g. buying shares) are provided in a separate HTTP API using Firebase's Cloud Functions. Those are deployed separately from the Vercel website; see functions/README.md
for more details.
Directory overview
-
web/
: UI and business logic for the client. Where most of the site lives. The public API endpoints are also in here. -
functions/
: Firebase cloud functions, for secure work (e.g. balances, Stripe payments, emails). Also contains infunctions/src/scripts/
some Typescript scripts that do ad hoc CLI interaction with Firebase. -
common/
: Typescript library code shared betweenweb/
&functions/
. If you want to look at how the market math works, most of that's in here (it gets called from theplaceBet
andsellBet
endpoints infunctions/
.) Also contains incommon/envs
configuration for the different environments (i.e. prod, dev, Manifold for Teams instances.) -
og-image/
: The OpenGraph image generator; creates the preview images shown on Twitter/social media. -
docs/
: Manifold's public documentation that lives at https://docs.manifold.markets.
Contributing
Since we are just now open-sourcing things, we will see how things go. Feel free to open issues, submit PRs, and chat about the process on Discord. We would prefer small PRs that we can effectively evaluate and review -- maybe check in with us first if you are thinking to work on a big change.
By contributing to this codebase, you are agreeing to the terms of the Manifold CLA.
If you need additional access to any infrastructure in order to work on something (e.g. Vercel, Firebase) let us know about that on Discord as well.