Codebase Overview
BobaBoard’s codebase is split within 4 separate repositories, each with its own purpose and set of technologies:
- boba-editor: our text editor.
- boba-components: our “design system”.
- boba-backend: “makes the magic happen” (i.e. saves and processes data).
- boba-frontend: ties verything together into something aspirationally usable and useful.

boba-editor
Section titled “boba-editor”boba-editor is BobaBoard’s own extension of the QuillJS text editor, and is responsible for anything related to text formatting and embeds (both in “edit” and “display” mode).
Content created through boba-editor is stored in the “Quill Delta” format, an abstract representation that can be translated into other formats, including HTML, through various parsers.
Since other BobaBoard codebases should not interact with this format directly, boba-editor also exports utilities to manipulate the Delta format itself (e.g. extracting images for upload, removing trailing spaces, etc).
boba-components
Section titled “boba-components”boba-components is where BobaBoard’s UI pieces (components) are developed, as separate from the “frontend/server logic” as possible to facilitate reuse and (one day) ease of testing. This is made possible by using StoryBook, which you can see in action at this demo link.
boba-frontend
Section titled “boba-frontend”The BobaBoard frontend repository is in charge of managing the full BobaBoard user experience, putting together the components defined in boba-components (see above) into logical pages, and handling the communication between the user and the server. Based on NextJS.
boba-backend
Section titled “boba-backend”The BobaBoard backend repository is an ExpressJS server, communicating with the boba-frontend through a REST API.
Other than the server itself, this repository contains table definitions for BobaBoard’s PostgreSQL DB.
Other technologies used include a Redis Cache and Jest for testing.