Name resolution
routeup resolves the route name from the first source that is set. Every source is used literally; routeup never appends a project or config name to an explicit argument.
Source precedence
Section titled “Source precedence”1. CLI argument routeup serve example-app2. Environment ROUTEUP_NAME=example-app3. Config "name" in routeup.json or the package.json routeup block4. Directory basename working directory name (last-resort fallback)Flags and env override config; config provides the default. When none of the
above are set, routeup uses the basename of the current working directory as the
route name — so running from ~/projects/example-app gives https://example-app.localhost
automatically without any config.
Literal names
Section titled “Literal names”An explicit positional name is always the complete route name, whether it is bare or dotted. Omit the argument when you want the environment, config, or directory fallback.
config name = example-app
routeup serve -> example-approuteup serve api -> apirouteup serve api.example-app -> api.example-approuteup serve api.other -> api.other
no env or config name, working directory = example-app:routeup serve -> example-app
ROUTEUP_NAME=api routeup serve -> api (environment name is literal)Local vs public names
Section titled “Local vs public names”This rule produces the route name. Locally any depth works
(api.example-app → https://api.example-app.localhost). Public hosts must be one label
under the server’s namespace, so routeup normalizes dots to hyphens when
exposing (api.example-app → public label api-example-app). See
Routes and Tokens.