Implemented POC

Static page layer

Lilastro

A small .lilastro page compiler that keeps Lilscript in charge of application behavior and hands web delivery to Lilpack.

Its exact job

Static shell in, Lilscript entry out

Owns

Page compilation

Reads frontmatter and template HTML from src/pages/index.lilastro, validates required fields, and emits the root HTML document.

Delegates

Application code

The frontmatter points to main.lil. Listings, prices, quantities, screens, and rendered fragments remain Lilscript.

Delegates

Delivery

Lilpack compiles the module graph before Vite 8 handles the dev server, HMR, Rolldown build, and Oxc minification.

Control flow

No hidden framework runtime

  1. index.lilastrofrontmatter + static HTML + skeleton
  2. main.lildata, state machine, rendering, interactions
  3. browser.lil → browser.tstyped host boundary for DOM, events, timers, and scrolling
  4. Lilpack → Vite 8dependency graph, reload, production bundle

Interop and reload

TypeScript is a host, not the app language

The POC imports a small TypeScript adapter through typed Lilscript extern declarations. It performs DOM mounting, delegated click handling, timers, and scrolling. Business state never moves into a second implementation.

During development

A .lilastro edit regenerates the page. A .lil edit is recompiled through Lilpack and invalidates the Vite module graph at the Lilscript HMR boundary.

Controlled production result

The same accessible Parcel Market through two paths

The control uses plain Astro with no Solid integration. Both builds share the same CSS, behavior, focus restoration and announcements, modern ESM target, Vite 8.2.1, Rolldown/Oxc path, and disabled module-preload polyfill.

JavaScript buildBrotli-11 · primarygzip-9Raw
Lilastro + Lilpack2,665 B3,132 B7,957 B
Astro2,672 B3,132 B8,801 B

Lilastro is 7 B smaller Brotli, ties gzip, and is 844 B smaller raw. The compressed result is effectively equal; this POC does not establish framework-wide superiority. Open both builds as demos.

Current capability

What is real

  • Frontmatter and HTML template compilation
  • Lilscript entry and stylesheet wiring
  • Development regeneration and Lilpack HMR
  • Build, check, format, lint, TypeScript strict, and SARIF commands

Not claimed

What remains

  • General multi-page routing or content collections
  • Astro component/API compatibility
  • SSR, hydration directives, integrations, or adapters
  • A reusable published package