- web/app.js: server executable entry point, can also be used programmatically from Node.js
- web/models: Sequelize database models. Most changes in this folder require the creation of a corresponding web/migrations
- web/migrations: database migrations, see also: Section "OurBigBook Web database migration setup"
- web/pages: Next.js URL entry points
- web/front and web/front.tsx: files that can be imported from either front-end of backend. See: stackoverflow.com/questions/64926174/module-not-found-cant-resolve-fs-in-next-js-application/70363153#70363153
- web/back and web/back.ts: files that can be imported only from backend. See: stackoverflow.com/questions/64926174/module-not-found-cant-resolve-fs-in-next-js-application/70363153#70363153
- web_api.js: helpers to access the OurBigBook HTTP REST API. These have to be outside of
web/
because OurBigBook CLI uses them e.g. for syncing local files to the server, and OurBigBook CLI cannot depend on OurBigBook Web components, only the other way around, otherwise we could create circular dependencies. That exact same JavaScript code is also used from the front-end! The infinite joys of homomorphic JS.