Two package contracts

`.web` is the artifact. `.webapp` is the source package.

Web.app keeps static browser-native bundles simple. Astro keeps this site authored as a normal framework project.

Source package and static package flow.

.web

Static, inspectable, openable

A `.web` folder contains the thing that runs: HTML, CSS, JavaScript, data, assets, and relative package links. No install step is part of the document contract.

  • Serves static folders and marker files.
  • Can mount peer `.web` packages under stable routes.
  • Keeps generated artifacts separate from source tooling.

.webapp

Framework source boundary

A `.webapp` package can be Astro or another local web project. It owns dependencies and build scripts, then emits a static `.web` sibling when the runtime should be plain web files.

  • Keeps source tooling out of `.web` artifacts.
  • Works with package scripts and framework dev servers.
  • Supports deploy-by-branch without custom GitHub workflows.
appify-ui.webappAstro source package
bun run buildStatic build step
appify-ui.webGenerated Pages artifact
gh-pagesBranch publish target