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 ormake stopstops 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~/.nodecraftdatabase is copied (never moved) on first run.

