← Project manifest

Complete web project

luastra.json · schema v2
luastra.json

Combine required declarations, tests, an asset, web metadata and startup.

When to use it

Use this as a complete starting manifest when a web application needs a logo, startup screen, tests and public metadata.

  • Create the three declared Luau files and assets/logo.png before checking this example. Replace project identity, metadata and canonical URL.
  • Backend is optional and intentionally omitted. Its fields are explained separately above.

Focused example

{
  "schemaVersion": 2,
  "project": {
    "id": "dev.example.notes",
    "entry": "app/main"
  },
  "sdk": {
    "contract": 1
  },
  "capabilities": [
    "ui.render"
  ],
  "modules": [
    {
      "id": "app/main",
      "source": "src/main.luau",
      "dependencies": [
        "luastra/ui"
      ]
    },
    {
      "id": "app/startup",
      "source": "src/startup.luau",
      "dependencies": [
        "luastra/assets",
        "luastra/ui"
      ]
    },
    {
      "id": "app/tests/smoke",
      "source": "tests/smoke.luau",
      "dependencies": [
        "app/main"
      ]
    }
  ],
  "tests": [
    "app/tests/smoke"
  ],
  "assets": [
    {
      "id": "image/logo",
      "source": "assets/logo.png",
      "mediaType": "image/png"
    }
  ],
  "web": {
    "title": "Notes",
    "description": "A small notes application.",
    "canonicalUrl": "https://example.com/",
    "index": true
  },
  "startup": {
    "entry": "app/startup"
  }
}

Complete inventory

View all pages in Project manifest
← Previous: Startup configuration