Skip to content

App Manifest ​

The smallweb manifest can be defined in a smallweb.json[c] file at the root of the project. This file is optional, and sensible defaults are used when it is not present.

Available Fields ​

entrypoint ​

The entrypoint field defines the file to serve. If this field is not provided, the app will look for a main.[js,ts,jsx,tsx] file in the root directory. If none is found, it will serves the directory statically.

root ​

The root field defines the root directory of the app. If this field is not provided, the app will use the app directory as the root directory.

crons ​

The crons field defines the crons to run. The crons are defined in a JSON array, and each cron is an object with the following fields:

  • args: The arguments to pass to the cron
  • schedule: The schedule to run the cron. This is a cron expression that defines when the cron should run.
  • description (optional): A description of the cron. This is used for documentation purposes only.
json
{
  "crons": [
    {
      "args": ["arg1", "arg2"],
      "schedule": "0 * * * *",
      "description": "This cron runs every hour"
    }
  ]
}

private ​

Make an app private. Private apps are only accessible to users with the authorizedEmails or authorizedGroups set in the config.

json
{
  "private": true
}

privateRoutes ​

List of routes that are private. Private routes are only accessible to users with the authorizedEmails or authorizedGroups set in the config.

json
{
  "privateRoutes": [
    "/private/**"
  ]
}

publicRoutes ​

List of routes that are public. Public routes are accessible to everyone, even when the app itself is private.

json
{
  "private": true,
  "publicRoutes": [
    "/public/**"
  ]
}