TomLabsWeb
TomLabs landing page: signpost to the Etsy shop, the app store and the e-shop.
TomLabs.Web
The landing page of the TomLabs brand at https://tomlabs.cz (replaces the former WordPress site). A plain static site that points visitors to the Etsy shop, the app store (https://apps.tomlabs.cz) and the e-shop (https://shop.tomlabs.cz). Czech page text, English code.
![]()
Layout
| Path | Purpose |
|---|---|
public/ |
The site: index.html, 404.html, styles.css, app.js (theme switch), tomlabs-consent.js (GA4 consent), icons |
VERSION |
Semantic version; bump with CHANGELOG.md |
tools/stamp.sh |
Stamps version + GA ID into the HTML and writes health.json (used by the Docker build) |
tools/serve.mjs |
Local preview with /health |
tools/make-icons.ps1 |
Regenerates icon.png, favicon.ico, apple-touch-icon.png from public/logo.png |
deploy/ |
Dockerfile (nginx), container nginx config, host nginx template, VPS deploy script |
tests/check.mjs |
Static checks |
docs/ARCHITECTURE.md |
Design notes |
Develop
node tests/check.mjs # checks
node tools/serve.mjs 8095 # http://127.0.0.1:8095 (+ /health)
docker build -f deploy/Dockerfile --build-arg VERSION=$(cat VERSION) -t tomlabsweb .
Deploy
Azure DevOps pipeline (azure-pipelines.yml) on main: check, build image, ship it to the VPS over SSH,
verify https://<domain>/health, then refresh the catalogue entry at apps.tomlabs.cz. Setup and DNS cut-over steps
are in the TaskGraph project TomLabs.
Changelog
Changelog
0.3.2 — 2026-10-02
- The e-shop card no longer says "coming soon": shop.tomlabs.cz is live.
0.3.1 — 2026-10-02
- Fixed: the default language follows the browser (first available of EN / CS / DE) and falls back to English only when none is available; a remembered choice still wins.
0.3.0 — 2026-10-02
- German added to the language switch (EN / CS / DE).
- English is the default language.
0.2.0 — 2026-10-02
- Language switch (CS / EN) in the header. It starts from the browser language, remembers the choice and also switches the cookie banner.
0.1.0 — 2026-10-02
- New static TomLabs landing page replacing the WordPress site: a signpost to the Etsy shop, the app store and the upcoming e-shop.
- Dark-first "ops console" look with a System / Light / Dark switch that follows the operating system live.
- Build version in the footer and
GET /healthanswering JSON with the same version. - Cookie consent and Google Analytics 4 through the shared consent script (nothing is sent before the visitor accepts).