ARKlight logoARKlight
Getting startedTutorialReferenceExamplesWhyChangelog

Concepts

Parsing
Compilation
Rendering model
State model
Fixture-driven docs

Compilation

Five short essays, part 2 of 5.

A framework compiler of the Svelte v2 era is usually built as a pipeline: parse, then one or more preprocess stages, then compile, with hooks a project can slot into at nearly every stage.

arklight build site.py -o ARK

is closer to a single pass: read the entry file, resolve the closed

Site()

/

Page(...)

/ component vocabulary against its own schema, and write plain HTML, CSS and one shared JS runtime file. There is no preprocess hook, because there is no second language to preprocess -- the input is already plain Python, and the output vocabulary is fixed.

Where configuration still exists

  • arklight.config.py controls build-time settings such as the narrow overdrive escape hatch for a path a server supplies at runtime.
  • Seven registered experimental features (arklight search and experimental APIs) are the only sanctioned way to step outside the default, intrinsic-layout-only output -- each one gated and warned about at build time, not silently available.
  • arklight pack is a separate, later step (bundle a built site into one .ark file) rather than a compiler plugin.

The practical effect: there's very little to configure wrong. Most build failures trace back to the entry file's syntax shape (see

parsing

), not to a misconfigured pipeline stage.

Parsing

ARKlight reads syntax shapes, never runtime behavior.

Open

Rendering model

Static HTML/CSS/JS out; no hydration step at all.

Open

State model

State lives on the page, not in an importable store.

Open

Fixture-driven docs

Every example here is a file that actually builds.

Open
LicenseChangelogGitHubPyPI

ARKlight is GPLv3 with attribution terms; sites you build are yours. Your browser is still running JavaScript. We just made Python responsible for getting it there.