Oyster: The open-source software that powers the ColorStack community experience. ✊🏿✊🏾✊🏽✊🏼
Here is a list of important tools and technologies that power the ColorStack codebase:
Here is the structure of our Typescript monorepo:
apps
|--- admin-dashboard
|--- api
|--- member-profile
packages
|--- core
|--- db
|--- email-templates
|--- types
|--- ui
|--- utils
The apps
directory houses all of our applications (see "Applications"
section).
The packages
directory contains reusable pieces of code that are used across
our applications.
core
: Nearly all of our core business logic. Will eventually colocate
feature-based UI next to its related business logic.db
: Database layer, which houses all migrations, database scripts (ie:
seed
) and testing utilities that involve the database.email-templates
: React-based email templates built with
Resend.types
: Miscellaneous types shared across applications.ui
: Reusable UI components built in React.utils
: Reusable utility functions, such as sleep
.To ensure that we don't have any breaking changes, we have a GitHub Actions workflow that runs, which can block a PR from being merged if certain checks don't pass.
For more information on how that CI pipeline works, see this file.
We use Railway to host our applications as well as our
PostgreSQL and Redis databases. Whenever we make some changes to our main
branch, Railway will automatically pick up those changes and deploy a new
version of our applications.
Each application has a railway.json
file where we can configure certain
settings and instructions so Railway knows how and when to build/start our
application. See this file as an example. For a full
list on what we can configure, see
here.
Please see our contributing guide! 👋
A heartfelt thanks to our ColorStack members for their contributions! 🙏
Made with contrib.rocks.