Design pass: make eco-app.coilysiren.me the beautiful eco-app website #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
eco-app.coilysiren.me is live (2026-06-12) serving the placeholder SPA:
frontend/(Vite + React + TypeScript, no SSR), built into the fused image by the Dockerfile node stage, served at/byeco_mcp_app.http_appwith assets under/assets.This issue tracks the real design pass - "a beautiful new eco-app website". Raw material already shipping from this same service:
/preview+/preview/<tool>cards (server status, economy, map, species, climate, crafting, fair price, government, ecoregion)/jobs/tracker UI/infoJSONDirection sketch from the session that shipped the placeholder:
index.htmlalready carries the base set.Iteration loop:
ward exec frontend-dev(HMR on :5173, proxies toward exec httpon :4000), ship = push to main (CI publishes image) +services/eco-app/scripts/rollout.shon kai-server (auto-rollout tracked in coilyco-bridge/deploy#5).Milestone 1 landed in
5491094: the placeholder is now a live landing page.hasMeteoris false./preview.jsonevery 60s and degrades gracefully when the game server is unreachable - the shell and CTAs stay useful.frontend-test/frontend-lint, and a CIfrontendjob gating publish.Next directions from the issue sketch, in rough order:
Direction update from Kai mid-iteration: the site is one flat surface, not per-page spheres. Landed across two commits:
/is now a thin directory - compact hero, then one card per surface (Server, Jobs, Server card, Community) with small live badges (meteor days, online count, settler count) that degrade silently when the game server is unreachable./servercarries the full live snapshot the old landing page held (hero, meteor banner, stat grid, CTAs)./jobsdropped its embedded server-status card - general server stats belong to the SPA pages now. The jobs page is jobs-only and shares the topbar/footer shape and theme.css visual language.http_app.pygrew a catch-all SPA fallback so client routes like/serversurvive hard refreshes (tests intests/mcp/test_spa_fallback.py).New per-feature pages should follow the same shape: a card on the homepage directory, a route under the shared Layout, heavy content on the subpage.
SPA-everything landed in
7b9a832: the Jinja2 + HTMX jobs dashboard is retired and /jobs is a React route under the shared Layout - no more full-page reloads crossing the jobs boundary. eco_spec_tracker is now API-only at /jobs/api (public /jobs/api/v1/* paths unchanged, /v1/meta carries the mock-data flag), the frame-ancestors CSP ships site-wide from http_app.py so the coilysiren.me iframe embed keeps working, and the vite proxy narrowed to /jobs/api. Verified live: client-side nav across / /server /jobs, real 114-player data, legacy /jobs/professions URLs land on the SPA page.Wave plan agreed with Kai after auditing all 12 /preview pages, and wave 0 landed in
3470eb7: