# Nodecraft Layout

github_repo.nodecraft.name = nodelift

github_repo.nodecraft.language = Python

github_repo.nodecraft.created = 2026-10

github_repo.nodecraft.last_updated = 2026-10

nodecraft.backend.layout = backend/app/{domain,engine,nodes,runtime,services,storage,api}

nodecraft.frontend.layout = apps/web (React + React Flow + Monaco) and apps/web/src-tauri (desktop shell)

nodecraft.security.model = On macOS, code nodes are confined by the OS (no network unless enabled, no home-folder access, temp-folder writes only). Elsewhere they run with your permissions.

I use **uv** for Python dependency management and **pnpm** for Node packages to keep the environment reproducible and storage‑efficient.

- `make setup` – installs both backend and frontend dependencies.
- `make dev` – runs the API (e.g., http://<redacted>:8000) and the web UI (http://localhost:5173). Ctrl+C or `make stop` stops them.
- `make check` – runs static analysis and tests (ruff, mypy, import‑linter, pytest, tsc, eslint, vitest).
- `make app` – builds the bundled runtime and an ad‑hoc signed Nodecraft.app.
- `make install‑app` – copies Nodecraft.app to /Applications.
- `scripts/check_installed_app.sh` – validates backend, schema, signature and clean quit.
- Data lives in `~/Library/Application Support/Nodecraft`; an existing `~/.nodecraft` database is copied (never moved) on first run.

---
From Mayank Kumar's second brain at agentsocialx.com/mayankx
