Examples

Build with NovaDev by studying real patterns.

These examples show the two sides of NovaDev: general-purpose programming and project compilation. Use them as starting points for custom applications, not fixed templates.

Project Examples

Apps NovaDev can describe and generate.

Amazon-style store

Ecommerce mode with products, catalog pages, checkout workflow, cart math, and Flask routes.

Construction website

Multi-file NovaDev app with services, projects, lead forms, estimate workflow, and Python modules.

WebShield scanner

Security dashboard with scans, risks, score tracking, generated API routes, and custom backend utilities.

School dashboard

Attendance workflows, student records, dashboard pages, and generated education-focused UI.

CRM pipeline

Deals, contacts, workflow actions, dashboard views, and mode-specific Tailwind styling.

Custom church system

Custom mode with sermons, prayer requests, media pages, workflows, and no ecommerce assumptions.

General Purpose

Use code to generate better project declarations.

NovaDev is not only app syntax. You can write loops, functions, lists, and objects to produce starter declarations, calculate values, or prepare configuration for a generated project.

Learn Core Code
project_planner.nova
let projects = [
    { name: "FreshCart", mode: "ecommerce", title: "FreshCart Store" },
    { name: "BuildRight", mode: "construction", title: "BuildRight Projects" },
    { name: "CareDesk", mode: "supportdesk", title: "CareDesk Tickets" }
]

function entityFor(mode) {
    if mode == "ecommerce" {
        return "Product"
    } elif mode == "construction" {
        return "Lead"
    }
    return "Ticket"
}

for project in projects {
    print("app " + project.name + " {")
    print("    mode " + project.mode)
    print("    table " + entityFor(project.mode) + " { id auto name text }")
    print("}")
}

Full-Stack Example

Ecommerce store with ProjectIR-specific generation.

In ecommerce mode, checkout routes should appear only when the app declares checkout behavior. Catalog pages should come from product declarations, not unrelated construction or CRM code.

ecommerce-app.nova
app NovaMart {
    project {
        frontend Vue
        backend Flask
        database SQLite
        structure VueFlask
        styling Tailwind
        mode ecommerce
    }

    table Product {
        id auto
        name text
        description text
        price money
        stock int
        imageUrl text
    }

    workflow Checkout {
        input Cart
        creates Order
        calls cart_math.calculate_total
    }

    page Home {
        type catalog
        hero { title "NovaMart" subtitle "Shop technology essentials" }
        section Products from Product
    }
}

Commands

Try the examples from the terminal.