Eltrix, product marketing site (Jekyll). https://thehansogroup.github.io/eltrix_web/
  • Elixir 77.2%
  • CSS 10.1%
  • HTML 7%
  • Dockerfile 2.8%
  • JavaScript 2.6%
  • Other 0.3%
Find a file
Julian Lindner c8a3bc363a
All checks were successful
CI / Quality gate (push) Successful in 15s
CI / Build and push image (push) Has been skipped
Merge pull request 'docs(agents): correct the lazy_html cold-build cause (not an egress block)' (#18) from fix-agents-egress-claim into main
2026-09-07 05:29:35 +00:00
.forgejo/workflows fix(ci): refuse a release tag that is not on main 2026-09-07 13:10:53 +08:00
assets feat(design): the chosen mark, IBM Plex Mono, and the blue accent 2026-08-19 08:20:33 +08:00
config feat: count page views on www with self-hosted Plausible 2026-08-12 14:37:31 +08:00
lib fix(site): the footer went on promising a check that had been deleted 2026-08-26 13:13:16 +08:00
priv chore: remove the compile-time claim gate and the status page 2026-08-25 07:28:42 +08:00
rel/overlays/bin feat: package the site as an OTP release and build it in CI 2026-08-12 01:33:32 +08:00
test docs(test): name the edge seam and the async: false reason 2026-09-02 09:04:53 +08:00
.formatter.exs feat: rebuild the site in Phoenix, with claims it cannot overstate 2026-08-12 01:27:13 +08:00
.gitignore feat: rebuild the site in Phoenix, with claims it cannot overstate 2026-08-12 01:27:13 +08:00
.release-please-manifest.json feat: package the site as an OTP release and build it in CI 2026-08-12 01:33:32 +08:00
.tool-versions Auto-commit: sync 2025-12-10 10:15:26 +08:00
AGENTS.md docs(agents): correct the lazy_html cold-build cause, it was not an egress block 2026-09-07 13:28:30 +08:00
CLAUDE.md docs: one instruction file, and no status in files 2026-08-24 23:55:59 +08:00
Dockerfile fix: copy rel/ into the build, or the image has no entry point 2026-08-12 01:45:36 +08:00
favicon.png chore: checkpoint before machine reinstall 2026-04-18 11:08:50 +08:00
LICENSE docs: add MIT licence and correct the federation security claim 2026-07-28 13:10:20 +08:00
mix.exs fix(deps): remove the unused only:test lazy_html, which broke cold CI 2026-09-07 13:23:12 +08:00
mix.lock fix(deps): drop lazy_html's now-orphaned build deps (cc_precompiler, elixir_make, fine) 2026-09-07 13:25:09 +08:00
README.md feat: rebuild the site in Phoenix, with claims it cannot overstate 2026-08-12 01:27:13 +08:00

eltrix_web — the site

Phoenix. Serves www.eltrix.org: what the homeserver can do, the policy documents §4.7 requires, and the Matrix discovery documents on the apex.

The one idea

The build fails if a page claims what the project's own criteria do not back. priv/artefacts/status.json is generated from GOAL.md's checkboxes in eltrix_server; EltrixSite.Capabilities names keys and EltrixSite.Status.claim!/1 asserts each is done while the module compiles. Read at runtime this would degrade to a wrong page instead of a red build, which is the failure the design exists to prevent.

The previous site said things the server had never done — an Admin API, a Helm chart, Redis caching, read-replica routing. None of it was malicious; somebody wrote a roadmap in the present tense and nothing could tell.

The same page renders what is partial and missing, from the same file. A site listing only finished features is not lying by sentence and is lying by shape.

Running it

mix setup
mix phx.server     # http://localhost:4012

Port 4012 deliberately: 4000 is reserved and 4011 is the homeserver's dev listener.

Gate

mix ci

Format, unused deps, --warnings-as-errors, tests. compile --force is in there on purpose — the claims are checked at compile time, so a warm incremental build would skip the only check that matters.

Artefacts

priv/artefacts/*.json and priv/policies/*.md are vendored from eltrix_server. They are copies, and a copy can drift; the policies are vendored rather than restated so that the version people are held to is the version somebody edits.