Educational Project Disclaimer
Learning project for exploring integration of different languages and frameworks within a single monorepo.
Polyglot monorepo managed by Nx that combines multiple applications.
Live: moda.ravecat.io
- Nix (flakes enabled)
- direnv + nix-direnv (optional, for automatic environment activation)
sh <(curl -L https://nixos.org/nix/install)mkdir -p ~/.config/nix
printf "experimental-features = nix-command flakes\n" >> ~/.config/nix/nix.confFor automatic environment activation when entering the project directory:
nix profile install nixpkgs#direnv nixpkgs#nix-direnv
mkdir -p ~/.config/direnv
echo 'source $HOME/.nix-profile/share/nix-direnv/direnvrc' >> ~/.config/direnv/direnvrcAdd direnv hook to the shell - see direnv docs
With direnv (recommended):
If direnv is configured, the environment activates automatically when you cd into the project directory. On first use,
approve with:
direnv allowAfter that, no explicit commands are needed - direnv will load and unload the environment on entering and leaving the directory.
Without direnv (manual):
Run in each new shell session:
nix developPrepare workspace dependencies (apps + packages) and project setup targets:
make setupStart all projects:
make startOr both in one command:
make serveSelected projects (minimum: ash_framework for API, phoenix_framework for real-time, and any client app):
npx nx run-many -t start -p nextjs,ash_framework,phoenix_framework --tuiISC