manifold/web
Boa 1db1a739cf
Misc comment ux improvements (#103)
* Separate comments and bets via tabs

* Normalcase comment button

* Note about abbreviated and all mode

* Revese,abbreviate,limit comments in feed
2022-04-26 15:08:50 -06:00
..
.husky Disable tsc linting 2021-12-18 15:18:58 -08:00
components Misc comment ux improvements (#103) 2022-04-26 15:08:50 -06:00
hooks Track latency of feed and portfolio page. 2022-04-21 01:00:08 -05:00
lib Support local firestore emulation (#91) 2022-04-25 09:46:35 -06:00
pages Top traders -> Top bettors 2022-04-26 08:42:45 -06:00
public Portfolio page! Add to sidebar when signed in, move about into more. 2022-04-03 15:48:25 -05:00
.eslintrc.js Turn of lint for nextjs typos (triggered by getStaticPropz) 2022-03-09 21:31:38 -06:00
.gitignore Run a ts type checker in parallel with nextjs dev process 2021-12-19 15:26:59 -06:00
.prettierignore Run prettier 2021-12-09 15:23:21 -08:00
next-env.d.ts upgrade nextjs version 2021-12-15 23:49:38 -06:00
next-sitemap.js Generate sitemap server-side 2022-03-24 09:52:13 -07:00
next.config.js Update API link 2022-03-24 09:40:57 -07:00
package.json Bump web typescript to 4.5.3 (#98) 2022-04-25 10:47:00 -05:00
postcss.config.js Prettier: no semi, spaces 2, single quote, trailing comma 2021-12-02 17:49:46 -06:00
README.md Write some useful stuff in the /web README (#94) 2022-04-26 13:08:29 -07:00
tailwind.config.js Fix tiny Tailwind config details (#82) 2022-04-19 21:41:24 -05:00
tsconfig.json Take 2 on getting tsc to behave (#97) 2022-04-25 10:46:20 -05:00

Manifold Markets web app

Getting started

To run the development server, install Yarn, and then in this directory:

  1. yarn to install all dependencies
  2. yarn dev:dev starts a development web server, pointing at the development database
  3. Your site will be available on http://localhost:3000

Check package.json for other command-line tasks. (e.g. yarn dev will point the development server at the prod database. yarn emulate will run against a local emulated database, if you are serving it via yarn serve from the functions/ package.)

Tech stack

Manifold's website uses Next.js, which is a React-based framework that handles concerns like routing, builds, and a development server. It's also integrated with Vercel, which is responsible for hosting the site and providing some other production functionality like serving the API. The application code is written exclusively in Typescript. Styling is done via CSS-in-JS in the React code and uses Tailwind CSS classes.

Building and deployment

Vercel's GitHub integration monitors the repository and automatically builds (next build) and deploys both the main branch (to production) and PR branches (to ephemeral staging servers that can be used for testing.)

Parts of the file structure that directly map to HTTP endpoints are organized specially per Next.js's prescriptions:

/public

These are static files that will be served by Next verbatim.

/pages

These are components that Next's router is aware of and interprets as page roots per their filename, e.g. the React component in pages/portfolio.tsx is rendered on the user portfolio page at /portfolio.

/pages/api

Modules under this route are specially interpreted by Next/Vercel as functions that will be hosted by Vercel. This is where the public Manifold HTTP API lives.

Contributing

Please format the code using Prettier; you can run yarn format to invoke it manually. It also runs by default as a pre-commit Git hook thanks to the pretty-quick package. You may wish to use some kind of fancy editor integration to format it in your editor.

Developer Experience TODOs

  • Prevent git pushing if there are Typescript errors?