Manifold Markets: A market for every question
Go to file
mantikoros 91bec9c996
Referrals page (#676)
* Referrals page added to sidebar; useSaveReferral; InfoBox

* text color

* eslint

* migrate useUsers hook to react-query (#674)

* Remove bet button from free response comments

* Make answer replies more closely spaced together

* Host Ida and Alex's MTG Guesser game (#656)

* Copy over code from Mtg Guesser

* Run Prettier

* CSS Tweaks: Hover feedback, button positioning

* Hide all but counterspell & burn, for now

* Move to /mtg directory

* Fix prettierignore

* smaller jsons (#673)

limited burn to only red cards and also added limited json files to only have fields needed to play

* Add Ida's tweak to card position

Co-authored-by: marsteralex <bob.masteralex@gmail.com>

* Adjust card positioning

* Make the select screen index.html

* Remove other guessing games

* Remove alternate versions; add Alex's email

* Remove unused jsons

* Small FR comments tweaks

* Spacing tweak

* Changing manalinks table UI (#665)

From table to card view

* Fix comment spacing on non-FR

* Move "Send M$" lower in sidebar More list.

* Move leaderboards up in mobile nav

* eslint

* prettier

Co-authored-by: Sinclair Chen <abc.sinclair@gmail.com>
Co-authored-by: James Grugett <jahooma@gmail.com>
Co-authored-by: Austin Chen <akrolsmir@gmail.com>
Co-authored-by: marsteralex <bob.masteralex@gmail.com>
Co-authored-by: ingawei <46611122+ingawei@users.noreply.github.com>
2022-07-21 14:43:10 -05:00
.github Typescript project references take 2 (#586) 2022-06-27 13:32:24 -07:00
.vscode add tailwind to recommended vscode extensions 2022-06-23 14:25:55 -05:00
common search: use default categories for non-authed users 2022-07-20 00:23:00 -05:00
docs Add API endpoints for fetching user info by username and ID (#652) 2022-07-15 14:03:34 -07:00
functions Fix last 3 days number 2022-07-19 17:22:23 -06:00
og-image Threaded free response comments & general comments sections (#121) 2022-05-03 14:38:40 -06:00
web Referrals page (#676) 2022-07-21 14:43:10 -05:00
.firebaserc Allow admins to see private-users info 2022-01-24 00:48:10 -06:00
.gitignore add tailwind to recommended vscode extensions 2022-06-23 14:25:55 -05:00
.prettierrc move prettier config to top level 2022-01-10 17:44:42 -06:00
firebase.json Typescript project references take 2 (#586) 2022-06-27 13:32:24 -07:00
firestore.indexes.json Clone missing indexes from firestore 2022-07-07 15:41:44 -07:00
firestore.rules Update firestore rules for question editing 2022-07-18 14:52:28 -06:00
LICENSE.md Choose MIT license 2022-04-02 12:01:23 -07:00
package.json Reorganize verify scripts (#589) 2022-06-28 12:46:25 -07:00
README.md Mention /docs package in README 2022-05-31 15:16:18 -07:00
yarn.lock Update Next.js 12.1.2 -> 12.2.0 (#669) 2022-07-20 15:42:31 -07:00

Manifold Markets

This monorepo has basically everything involved in running and operating Manifold.

Getting started

  1. Make sure you have Yarn 1.x
  2. $ cd web
  3. $ yarn
  4. $ yarn dev:dev
  5. 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 in functions/src/scripts/ some Typescript scripts that do ad hoc CLI interaction with Firebase.

  • common/: Typescript library code shared between web/ & functions/. If you want to look at how the market math works, most of that's in here (it gets called from the placeBet and sellBet endpoints in functions/.) Also contains in common/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.