Skip to content

Repository files navigation

fixpointlinux.org

The landing page for fixpoint-linux — a Linux system that is a fixed point.

Built as a plain Elm app (Browser.element) that is statically pre-rendered (SSG) and then loaded as a single micro-frontend by the @mfe/framework thin shell. No iframes.

This repo is the source of record.

Architecture

index.html                  ← SSG build output (generated; gitignored)
src/Main.elm                ← the Elm Browser.element app (the landing page)
scripts/ssg.mjs             ← SSG: elm make + happy-dom pre-render → index.html
shell/index.html            ← thin shell entry (import map + CSS + slot)
shell/shell.js              ← boots @mfe/framework createApp
shell/templates/fixpoint.html ← route template with the [data-mfe] slot
shell/mfe/fixpoint-landing.js ← the Elm app as an @mfe MFE module (mount/unmount/update)
vendor/@mfe/*               ← vendored @mfe/core + @mfe/framework ESM dist
LEGACY-index.html           ← the original single-file page (content reference)

The Elm app renders the full landing page (nav + components dropdown, hero, idea/time/stack/ principles/design sections, footer). At build time scripts/ssg.mjs runs the compiled Elm bundle under happy-dom, serializes the rendered view, and injects it into the shell's [data-mfe] slot — so the page loads with content already present (no-JS / SEO friendly). On the client the shell's createApp rehydrates and the Elm MFE takes over, mounting directly into the slot.

Build

npm install          # elm, happy-dom, elm-format, playwright (devDeps)
npm run build        # elm make src/Main.elm --output=dist/elm.js --optimize
                     #   && node scripts/ssg.mjs   (writes index.html)

vendor/@mfe/ is produced by npm run build in ~/projects/mfe-framework and copied here:

cp ~/projects/mfe-framework/packages/core/dist/*.js      vendor/@mfe/core/
cp ~/projects/mfe-framework/packages/framework/dist/*.js vendor/@mfe/framework/

About

fixpointlinux.org — the fixpoint-linux landing page (static HTML, served on node-infra via Caddy)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages