Skip to content

Add the Space Console landing page - #1

Merged
vetonshabani0 merged 1 commit into
mainfrom
feat/landing-page
Aug 4, 2026
Merged

Add the Space Console landing page#1
vetonshabani0 merged 1 commit into
mainfrom
feat/landing-page

Conversation

@vetonshabani0

Copy link
Copy Markdown
Contributor

The marketing site — the page that explains Space Console to someone who has
never seen it. Your TV is the console. Every phone is a controller. Nothing to
install.

Preview URL will be commented by the Pages workflow once this run finishes.

What's on the page

Section Sells
Hero the TV as the console and the phone as the pad, both visible in the first screen
Proof strip 33 games · 6 categories · 0 downloads · 4 players · 1 scan
How it works open it on the TV → scan the code → play
The controller reshapes itself the pad morphs per game — menu d-pad, pinball flippers, Reveal/Flag, Blackjack's four buttons, and a landscape analog driving pad for RC Rush
The library all 33 real game posters
Under the hood the signaling service introduces the two peers, then steps out
Built for a room roster & seats, scan-to-rejoin mid-game, 2-player, high scores, 10-foot UI

How it's built

Zero-build and zero-framework like the rest of the org: one index.html, one
stylesheet, one ES module. No bundler, no dependencies at runtime (Google Fonts
is the only external request). Same tooling as the app repos — eslint flat
config, scripts/stamp.mjs, the shared pages.yml.

One deliberate difference: the stamp versions the stylesheet as well as the
scripts
. A landing page is mostly CSS, and a stale cached sheet is the most
visible way for a redeploy to look broken.

The screenshots are real

Every image is a capture of the running console, not a mockup:

  • tv-menu.jpg — the launcher with three controllers actually joined
    (P1 Veton, P2 Ana, P3 Rijad), the real production host in the join bar and a
    live room code
  • tv-rc-rush.jpg — a game running with the in-game HUD open: the rejoin QR,
    the room chip and every seat. This is the proof for the "scan to rejoin
    mid-game" claim, which used to be text-only
  • phone-*.jpg — the pads each of those games asks for
  • thumbs/*.jpg — one poster per game, all 33

They were captured by driving the real apps with Playwright against the
single-origin server, with Chromium's host resolver pointed at the production
hostname so the launcher's own readout renders what production renders. Nothing
is retouched. When the console's UI changes materially, recapture rather than
edit
, so the page can't promise something the product doesn't do.

Verification

At 1440 / 1024 / 834 / 768 / 390:

  • no horizontal overflow at any width, no console errors
  • every scroll reveal fires under real scrolling
  • prefers-reduced-motion parks each animation on a truthful final state — the
    under-the-hood diagram settles on the direct-link phase with signaling idle,
    marquees become plain scrollable rails, nothing is left frozen or invisible
  • body text measures 7–8:1 contrast, mono micro-labels 11–13:1
  • npm run lint and npm run build both pass

Follow-ups (separate PRs)

  • web-api — add landing to the static build and point the root redirect at
    it, so space-console.onrender.com/ opens the landing page and the console
    stays at /game-launcher-web/
  • wiki — add the repo to the services index
  • game-launcher-web — the join address on the TV was ellipsised at 16ch;
    fixed separately, and this page's screenshots already show the result

The page that explains the product to someone who has never seen it: your TV is
the console, every phone is a controller, and there is nothing to install.

Zero-build and zero-framework like the rest of the org — one `index.html`, one
stylesheet, one ES module, no bundler. Same tooling as the app repos (eslint flat
config, `scripts/stamp.mjs` cache-bust, the shared `pages.yml`), with the stamp
extended to version the stylesheet too: a landing page is mostly CSS, and a stale
cached sheet is the most visible way for a redeploy to look broken.

Sections: hero, how it works in three steps, the adaptive controller, all 33
games, the WebRTC story, the party-console details, and a closing CTA. The CTAs
open the live console on Render.

Every screenshot is a real capture of the running console — the launcher with
three controllers actually joined, the in-game HUD with its rejoin QR, the phone
pads each game asks for, and one poster per game. Nothing is mocked or
retouched, so the page cannot promise something the product doesn't do.

Verified at 1440 / 1024 / 834 / 768 / 390: no horizontal overflow, no console
errors, every scroll reveal fires, reduced-motion parks each animation on a
truthful final state, and body text measures 7-8:1 contrast.
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

🚀 Preview for feat/landing-page: https://space-console.github.io/landing/preview/feat-landing-page-96d5/

@vetonshabani0
vetonshabani0 merged commit 15f2eab into main Aug 4, 2026
4 checks passed
@vetonshabani0
vetonshabani0 deleted the feat/landing-page branch August 4, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant