Reference

Commands, structure, and compiler details.

Use this page when you need a quick map of NovaDev commands, shell commands, file layout, compiler pipeline, project architecture, and generated output.

CLI

NovaDev command-line tools.

nova.py commands
nova new my_app --frontend Vue --backend Express --database SQLite
# Creates Downloads/Nova source code/my_app
python nova.py run examples/scripts/math_tool.nova
python nova.py shell
python nova.py ir examples/apps/ecommerce_1_1
python nova.py explain examples/apps/ecommerce_1_1
python nova.py validate examples/apps/ecommerce_1_1
python nova.py tokens examples/apps/webshield
python nova.py ast examples/apps/webshield --json
python nova.py lint examples/apps/webshield
python nova.py format examples/apps/webshield --check
python nova.py docs examples/apps/webshield
python nova.py build-ui examples/apps/webshield
python nova.py build-backend examples/apps/webshield
python nova.py build-fullstack examples/apps/webshield
python nova.py dev examples/apps/webshield
python nova.py clean generated/web-shield
novapm.py commands
python novapm.py doctor
python novapm.py install-language --source .
python novapm.py init-registry
python novapm.py configure-registry https://example.com/nova-packages.json
python novapm.py search ui
python novapm.py install packages/hello-ui
python novapm.py list
python novapm.py info hello-ui
python novapm.py remove hello-ui
python novapm.py pack packages/hello-ui

Shell

Interactive commands inside python shell.py.

.load

Load and run a NovaDev file inside the shell session.

.tokens

Show lexer tokens for a file or project.

.ast

Inspect parsed AST output, including JSON mode when supported.

.lint

Find common project or syntax issues before generation.

.docs

Generate documentation from Nova project declarations.

.build-fullstack

Generate frontend and backend project files from a NovaDev app.

Compiler Pipeline

How NovaDev thinks about source code.

1

Lexer

Reads source text and emits tokens for identifiers, keywords, strings, numbers, booleans, nil, operators, punctuation, and comments.

2

Parser

Converts tokens into AST nodes for programs, expressions, statements, app declarations, pages, tables, routes, workflows, and modules.

3

Interpreter

Walks the AST, evaluates expressions, stores variables in environments, runs functions, loops, conditions, classes, and print calls.

4

ProjectIR

Collects app-level declarations into a structured intermediate representation used by project-specific generators.

5

Generators

Write Vue/Vite modules, Express routes, SQLite/Prisma models, workflows, tests, custom files, and docs.

File Structure

Recommended folders for NovaDev and generated projects.

NovaDev source tree
novadev/
  lexer.py
  parser.py
  ast_nodes.py
  interpreter.py
  runtime.py
  project_ir.py
  package_manager.py
nova.py
shell.py
novapm.py
examples/
packages/
docs/
nova website/
Generated full-stack project
generated/my-app/
  frontend/
    index.html
    app.js
    components.js
    project.js
    style.css
  backend/
    app.py
    wsgi.py
    application/
      api.py
      web.py
    models.py
    requirements.txt
  docs/
    project-ir.json
    compiler-report.md

FAQ

Developer questions.

No. NovaDev has a lexer, parser, AST, interpreter, shell, runtime, module system, package manager, and a ProjectIR compiler layer. The generator should use declarations and custom code, not blindly copy the same files into every project. Use mode custom when the app does not fit a common category. NovaDev should generate only from the tables, pages, workflows, routes, modules, architecture, and custom code you declare. styling Tailwind gives the compiler utility-oriented design intent. Vue/Vite targets emit local project CSS instead of a development-only browser compiler. Use frontend VueVite for the Tailwind package and plugin workflow. Nova-wrapped Python modules let developers add project-specific backend logic. Workflows and generated routes can call those helpers when the app declares them.