OverDB's frontend uses the following technologies:
- Typescript
- React
- Material UI
- React Router
- esbuild
- Apollo Client
Static files (HTML, favicon, etc.) are stored in public
and Typescript is stored under src
. During a build, they are moved into build
.
A dev server is provided by the scripts/devServer.js
script, which uses esbuild.serve
underneath, while the production server is deployed just by pushing the static assets to AWS S3 and delivering using CloudFront.
GraphQL is used to interact with the backend for all but login. Query-specific Apollo hooks are generated by defining the query using gql
in the file it's used and by running yarn graphql-type-gen
. See Watchlist.tsx as an example.