Astilba Env · 0.3 public alpha
Configure once; expose only what each artifact needs.
Declare build, deployment, and request configuration in one portable contract; generate typed browser and server interfaces with a physical exposure boundary.
@astilba/env 0.3.0 · public alpha · local-first
01 · Fit
One contract; several application artifacts
Fits
- Build-once deployment promotion
- Reviewable public browser configuration boundaries
- Separate build, deployment, and request validation
- Node applications and generated Cloudflare Workers deployment targets with first-party codecs
- Optional Vite browser boundaries
- Provider-neutral declared-name inventory checks
- Framework-owned routes and startup
Does not fit
- A secret manager or
.envloader - A hosted configuration control plane
- Inline executable configuration injection
- One ambient mutable environment object
- A stable API commitment during 0.3
02 · Guarantees and costs
Exposure is part of the contract
| Guarantee | Boundary made visible |
|---|---|
| Every value belongs to an explicit lifecycle. | Build, deployment, and request values are resolved where they become available. |
| Browser and server interfaces are physically separated. | Generated browser modules contain public projections only; applications must keep private targets and mixed barrels outside the browser graph. |
| Browser delivery is data, not executable injection. | The application owns an inert same-origin JSON endpoint or framework transport and its response policy. |
| Env never becomes the configuration authority. | Applications keep their environment variables, platform bindings, and secret manager. |
03 · Release state
Public for evaluation; deliberately not stable
Declaration compilerPublic alpha
Generated server targetsPublic alpha
Cloudflare WorkersLimited deployment path
Browser JSON protocolPublic alpha
Vite boundaryVite 8
Next.js adapterNot exported
Hosted serviceNot provided