boxlang-application-descriptorlisted
Install: claude install-skill ortus-boxlang/skills
# BoxLang Application Descriptor
## Overview
`Application.bx` is BoxLang's application descriptor. It defines application-level settings and lifecycle callbacks, and it is the cornerstone for running multiple isolated applications in one BoxLang server/runtime.
Use this skill whenever the question involves:
- app bootstrapping and lifecycle events
- per-app configuration in `this.*`
- nested apps and scope isolation
- app-scoped schedulers and watchers
- differences between runtime config (`boxlang.json`) and app config (`Application.bx`)
## Core Model
- BoxLang searches upward from the executing template/script location for the nearest `Application.bx`.
- `Application.bx` is instantiated per request/execution context.
- The `application` scope is persistent for that app name and survives across requests until timeout/stop.
- Multiple unique app names create separate virtual applications in the same JVM.
## Multi-Application Isolation
Each unique `this.name` maps to a unique application memory space:
- isolated `application` scope
- isolated session tracking/cache namespace
- isolated app-level settings and listener behavior
This enables running multiple apps side-by-side (public site, admin site, API site) in a single server process.
## App Name Rules
```boxlang
class {
this.name = "MyApp"
}
```
Best practices:
- Always set `this.name` explicitly.
- Use stable names across deployments unless you intentionally want a new app memory space.
- Avoid dynamic nam