Thank you for your interest in contributing!
The fullstack environment composes several services, among those are the following first-party:
| Repository | Required | Profile | Access |
|---|---|---|---|
| maevsi/android | optional | — | public |
| maevsi/ios | optional | — | public |
| maevsi/postgraphile | ✅ | default |
public |
| maevsi/reccoom | optional | recommendation |
private |
| maevsi/sqitch | ✅ | default |
public |
| maevsi/stack | ✅ | — | public |
| maevsi/vibetype | ✅ | default |
public |
There are two development modes:
| Mode | When to use | Setup | Where to start |
|---|---|---|---|
| Frontend only | Working on UI, i18n, or anything that doesn't require running backend services | Manual only | Vibetype repository |
| Fullstack | Working on backend services, the database, the API, or any cross-cutting concern | Automated or manual | This guide (continue reading) |
🪟 Windows users: Set up WSL first and continue inside the Linux subsystem. If you use VS Code, see VS Code + WSL.
dargstack initIf you prefer to step through each action yourself:
-
Install prerequisites
-
Create a parent directory and clone the sibling repositories into it:
mkdir vibetype && cd vibetype git clone git@github.com:maevsi/android.git # optional git clone git@github.com:maevsi/ios.git # optional git clone git@github.com:maevsi/postgraphile.git git clone git@github.com:maevsi/reccoom.git # optional, private git clone git@github.com:maevsi/sqitch.git git clone git@github.com:maevsi/stack.git git clone git@github.com:maevsi/vibetype.git
Click here if you don't have SSH set up (you should!) to use HTTPS URLs instead
mkdir vibetype && cd vibetype git clone https://github.com/maevsi/android.git # optional git clone https://github.com/maevsi/ios.git # optional git clone https://github.com/maevsi/postgraphile.git git clone https://github.com/maevsi/reccoom.git # optional, private git clone https://github.com/maevsi/sqitch.git git clone https://github.com/maevsi/stack.git git clone https://github.com/maevsi/vibetype.git
-
Initialize all cloned projects for development according to their READMEs.
-
Build development container images:
cd stack dargstack buildAn interactive selection dialog will let you choose which services to build.
-
Deploy:
dargstack deploy
-
You should now be able to access Vibetype at https://app.localhost 🎉
Follow @dargmuesli's Contributing Guidelines for branch naming, commit formatting, and the pull request workflow.
Read @dargmuesli's guide on Semantic Versioning for how to format PR, issue and commit titles.
- Service files live in
src/development/<service>/compose.yaml(full Compose document) andsrc/production/<service>/compose.yaml(production delta only). - Run
dargstack buildto interactively select and build development container images after making changes to a service's source code. - Run
dargstack documentto regenerateartifacts/docs/README.mdafter adding or modifying services. - Do not edit
artifacts/files directly: they are generated or gitignored.
- Keep YAML keys sorted lexicographically where order is semantically irrelevant.
- Use natural language in comments; refer to code artifacts with backticks.
- Do not use abbreviations in names unless omitting them would look unnatural.