Study how a production Node.js monorepo with GraphQL, React, and RethinkDB is structured and deployed.
Fork Spectrum as a starting point for building your own online community or threaded forum platform.
Contribute bug fixes to the open-source Spectrum product by running the full stack locally and submitting a PR.
Learn how a real-time web app uses Redis for background jobs and RethinkDB for data alongside a GraphQL API.
Requires RethinkDB and Redis running locally, plus dependency installation across all monorepo packages before starting the app.
Spectrum was an online community platform designed to combine the best features of real-time chat apps and traditional forums. The goal was to help community owners grow and manage large online groups in a way that kept conversations organized and searchable rather than disappearing into an endless scroll of messages. The platform joined GitHub in November 2018. The codebase is a monorepo containing the full product: a React frontend, a GraphQL API powered by the Apollo toolchain, a server-side rendering layer, and a set of background worker services. Data is stored in RethinkDB, background jobs run through Redis, and authentication is handled by PassportJS. Everything is written in JavaScript, with Flowtype for type safety. Setting up the project locally requires installing RethinkDB and Redis before running the application. A script installs dependencies across all the individual service packages in the monorepo. After that, database migration and seeding scripts prepare the local data. Each server (API, web frontend, email worker, and others) runs as a separate process that you start individually with yarn commands. The project is structured so different contributors can work on different pieces independently: the API server, the frontend app, the rendering server, and shared code each have their own directories. Code formatting is handled automatically by Prettier on commit. All new JavaScript files must include Flowtype type annotations as a CI requirement. Spectrum is open source under the BSD 3-Clause license.
← withspectrum on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.