The fiesta.rastrillo.org website: a landing page in eleven languages, and the design system with its explanations
The landing page replaces the placeholder: the bunting, the one-link install with Copy, a live sample app in Day, Plain or Signal and light or dark, the six reasons, and a footer linking Rastrillo and the CARLOS sites. English is at /, the ten other languages at /<code>/, Arabic right to left. All the English went through copy review; the ten translations are machine drafts nobody has reviewed. The design system moves to /design-system/ and now explains each family, example and state, carried from Rastrillo's approved prose with the Go-only parts rewritten and reviewed. Fiesta itself does not change: /1/ still serves 1.0.0, and site/FOLLOW-UPS.md lists what 1.1 should take in. Reviewed task by task and as a whole branch (Astra); make ci on the tip is discussion #18. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Squashed from site into main.
45 files changed,
+7764
−74
.amadan/ci.d/{50-suite@10 => 50-suite@12}+0 −0Makefile+10 −8cmd/fiesta/main.go+24 −14cmd/fiesta/release_test.go+44 −10examples/prose.json+378 −0hack/seed/README.md+7 −0hack/seed/_rastrillo/prose_fiestaseed_test.go+517 −0hack/seed/prose-review.json+338 −0hack/seed/run-prose.sh+65 −0internal/gallery/copy.go+4 −13internal/gallery/gallery.css+5 −0internal/gallery/gallery.go+87 −13internal/gallery/pages_a11y_browser_test.go+112 −0internal/gallery/prose.go+143 −0internal/gallery/prose_rule_test.go+160 −0internal/gallery/prose_test.go+411 −0internal/www/export_test.go+4 −0internal/www/fs.go+18 −0internal/www/landing.go+358 −0internal/www/landing_browser_test.go+1208 −0internal/www/landing_test.go+621 −0internal/www/links_test.go+268 −0internal/www/serve_test.go+227 −0internal/www/site_browser_test.go+134 −0internal/www/strings.go+217 −0internal/www/strings_test.go+175 −0internal/www/www.go+124 −0internal/www/www_test.go+182 −0site/FOLLOW-UPS.md+23 −0site/index.html+0 −16site/landing/page.html.tmpl+195 −0site/landing/strings/ar.json+88 −0site/landing/strings/bn.json+88 −0site/landing/strings/en.json+88 −0site/landing/strings/es.json+88 −0site/landing/strings/ga.json+88 −0site/landing/strings/hi.json+88 −0site/landing/strings/ja.json+88 −0site/landing/strings/pt-PT.json+88 −0site/landing/strings/ru.json+88 −0site/landing/strings/vi.json+88 −0site/landing/strings/zh-Hans.json+88 −0site/static/bunting.js+472 −0site/static/site.css+144 −0site/static/site.js+121 −0
CI passed — run details
CI log
=== gofmt ===
=== no-rastrillo ===
mkdir -p "/home/paulca/.local/state/amadan/runner/repos/rastrillo__fiesta/wt/gallery/.build/tmp"
go test -run '^(TestFiestaNeverImportsRastrillo|TestThePublicPackagesLinkNoBrowser)$' -count=1 .
ok amadan.net/rastrillo/fiesta 0.324s
=== size ===
go test ./internal/build -run '^TestTheOneLinkIsUnder25KiBGzipped$' -count=1 -v
=== RUN TestTheOneLinkIsUnder25KiBGzipped
build_test.go:138: fiesta-plain.css: 152856 bytes, 22303 bytes gzipped (21.8 KiB of the 25.0 KiB limit)
build_test.go:138: fiesta-signal.css: 152951 bytes, 22414 bytes gzipped (21.9 KiB of the 25.0 KiB limit)
build_test.go:138: fiesta.css: 155770 bytes, 23018 bytes gzipped (22.5 KiB of the 25.0 KiB limit)
--- PASS: TestTheOneLinkIsUnder25KiBGzipped (0.04s)
PASS
ok amadan.net/rastrillo/fiesta/internal/build 0.049s
=== suite ===
--- shard 0 of 12 ---
==> shard 0 of 12: make root
go build ./...
go vet ./...
FIESTA_TEST_REQUIRE_NODE=1 FIESTA_TEST_REQUIRE_GIT=1 go test -count=1 ./...
ok amadan.net/rastrillo/fiesta 2.174s
ok amadan.net/rastrillo/fiesta/check 8.410s
ok amadan.net/rastrillo/fiesta/cmd/fiesta 12.800s
ok amadan.net/rastrillo/fiesta/example 0.248s
ok amadan.net/rastrillo/fiesta/internal/axe 0.194s
ok amadan.net/rastrillo/fiesta/internal/build 2.455s
ok amadan.net/rastrillo/fiesta/internal/codeview 0.074s
ok amadan.net/rastrillo/fiesta/internal/gallery 8.739s
? amadan.net/rastrillo/fiesta/internal/harness [no test files]
ok amadan.net/rastrillo/fiesta/internal/markup 0.073s
ok amadan.net/rastrillo/fiesta/internal/nodetest 0.767s
ok amadan.net/rastrillo/fiesta/internal/site 5.316s
ok amadan.net/rastrillo/fiesta/internal/tokens 0.091s
ok amadan.net/rastrillo/fiesta/internal/www 14.650s
--- shard 1 of 12 ---
==> shard 1 of 12: make staticcheck
go run honnef.co/go/tools/cmd/staticcheck@v0.8.2 -tags browser ./...
--- shard 2 of 12 ---
==> shard 2 of 12: make govulncheck
go run golang.org/x/vuln/cmd/govulncheck@v1.8.0 ./...
=== Symbol Results ===
No vulnerabilities found.
Your code is affected by 0 vulnerabilities.
This scan also found 2 vulnerabilities in packages you import and 5
vulnerabilities in modules you require, but your code doesn't appear to call
these vulnerabilities.
Use '-show verbose' for more details.
--- shard 3 of 12 ---
==> shard 3 of 12: make gitleaks
go run github.com/zricethezav/gitleaks/v8@v8.30.1 git --no-banner --redact --log-opts='--full-history --diff-filter=tuxdb HEAD' .
[90m11:04PM[0m [32mINF[0m [1mUnknown SCM platform. Use --platform to include links in findings.[0m [36mhost=[0mamadan.net
[90m11:04PM[0m [32mINF[0m [1m1 commits scanned.[0m
[90m11:04PM[0m [32mINF[0m [1mscanned ~5826711 bytes (5.83 MB) in 6.27s[0m
[90m11:04PM[0m [32mINF[0m [1mno leaks found[0m
--- shard 4 of 12 ---
==> shard 4 of 12: make browser.internal.harness
./hack/gotest.sh browser 'internal.harness'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
ok amadan.net/rastrillo/fiesta/internal/harness 14.530s
--- shard 5 of 12 ---
==> shard 5 of 12: make browser.check~1of3
./hack/gotest.sh browser 'check~1of3'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
gotest: slice 1 of 3 of ./check/ runs 95 of 286 tests
ok amadan.net/rastrillo/fiesta/check 276.363s
--- shard 6 of 12 ---
==> shard 6 of 12: make browser.check~2of3
./hack/gotest.sh browser 'check~2of3'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
gotest: slice 2 of 3 of ./check/ runs 95 of 286 tests
ok amadan.net/rastrillo/fiesta/check 300.716s
--- shard 7 of 12 ---
==> shard 7 of 12: make browser.check~3of3
./hack/gotest.sh browser 'check~3of3'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
gotest: slice 3 of 3 of ./check/ runs 96 of 286 tests
ok amadan.net/rastrillo/fiesta/check 332.367s
--- shard 8 of 12 ---
==> shard 8 of 12: make browser.internal.gallery~1of2
./hack/gotest.sh browser 'internal.gallery~1of2'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
gotest: slice 1 of 2 of ./internal/gallery/ runs 1 of 25 tests
ok amadan.net/rastrillo/fiesta/internal/gallery 153.193s
--- shard 9 of 12 ---
==> shard 9 of 12: make browser.internal.gallery~2of2
./hack/gotest.sh browser 'internal.gallery~2of2'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
gotest: slice 2 of 2 of ./internal/gallery/ runs 24 of 25 tests
ok amadan.net/rastrillo/fiesta/internal/gallery 65.512s
--- shard 10 of 12 ---
==> shard 10 of 12: make browser.internal.www~1of2
./hack/gotest.sh browser 'internal.www~1of2'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
gotest: slice 1 of 2 of ./internal/www/ runs 17 of 33 tests
ok amadan.net/rastrillo/fiesta/internal/www 59.799s
--- shard 11 of 12 ---
==> shard 11 of 12: make browser.internal.www~2of2
./hack/gotest.sh browser 'internal.www~2of2'
gotest: on DOCS-T1, driving the harness's own choice (/usr/bin/chromium)
gotest: slice 2 of 2 of ./internal/www/ runs 16 of 33 tests
ok amadan.net/rastrillo/fiesta/internal/www 48.414s
.amadan/ci.d/{50-suite@10 => 50-suite@12}Loading diff…
MakefileLoading diff…
cmd/fiesta/main.goLoading diff…
cmd/fiesta/release_test.goLoading diff…
examples/prose.jsonLoading diff…
hack/seed/README.mdLoading diff…
hack/seed/_rastrillo/prose_fiestaseed_test.goLoading diff…
hack/seed/prose-review.jsonLoading diff…
hack/seed/run-prose.shLoading diff…
internal/gallery/copy.goLoading diff…
internal/gallery/gallery.cssLoading diff…
internal/gallery/gallery.goLoading diff…
internal/gallery/pages_a11y_browser_test.goLoading diff…
internal/gallery/prose.goLoading diff…
internal/gallery/prose_rule_test.goLoading diff…
internal/gallery/prose_test.goLoading diff…
internal/www/export_test.goLoading diff…
internal/www/fs.goLoading diff…
internal/www/landing.goLoading diff…
internal/www/landing_browser_test.goLoading diff…
internal/www/landing_test.goLoading diff…
internal/www/links_test.goLoading diff…
internal/www/serve_test.goLoading diff…
internal/www/site_browser_test.goLoading diff…
internal/www/strings.goLoading diff…
internal/www/strings_test.goLoading diff…
internal/www/www.goLoading diff…
internal/www/www_test.goLoading diff…
site/FOLLOW-UPS.mdLoading diff…
site/index.htmlLoading diff…
site/landing/page.html.tmplLoading diff…
site/landing/strings/ar.jsonLoading diff…
site/landing/strings/bn.jsonLoading diff…
site/landing/strings/en.jsonLoading diff…
site/landing/strings/es.jsonLoading diff…
site/landing/strings/ga.jsonLoading diff…
site/landing/strings/hi.jsonLoading diff…
site/landing/strings/ja.jsonLoading diff…
site/landing/strings/pt-PT.jsonLoading diff…
site/landing/strings/ru.jsonLoading diff…
site/landing/strings/vi.jsonLoading diff…
site/landing/strings/zh-Hans.jsonLoading diff…
site/static/bunting.jsLoading diff…
site/static/site.cssLoading diff…
site/static/site.jsLoading diff…