Static site for www.mobileaccessgateway.ch, migrated off Squarespace to GitHub Pages.
The Mobile Access Gateway itself lives in ahdis/MobileAccessGateway; its technical documentation is published separately at ahdis.github.io/MobileAccessGateway. This repository is the marketing site only.
The live site is still served by Squarespace. DNS has not been changed, no
CNAME file exists, and GitHub Pages has not been enabled. See
Cutover below.
Pages are generated from shared chrome so the header and footer cannot drift
between files. Edit the content in _build/, then:
python3 _build/build.py # regenerates index.html and the three page dirsCommit the generated HTML — GitHub Pages serves it as-is, with no build step,
no Jekyll and no Actions workflow. (.nojekyll is present because Jekyll would
otherwise skip the _-prefixed directories.)
Preview locally with python3 -m http.server 8080.
index.html, contributors/, contact/, privacy-policy/, 404.html
assets/ css, js, self-hosted Poppins, WebP images
_build/ page content + shared header/footer -> the HTML above
_design/ extracted tokens, grid tables, review notes, and the tools
_reference/ verbatim archive of the original Squarespace site
Every page was measured against the live Squarespace site with Playwright at 1440px and 390px. Full-page heights:
| Page | Desktop | Mobile |
|---|---|---|
| home | 0.0% | +0.3% |
| contributors | −1.0% | +0.7% |
| privacy-policy | +3.4%* | +4.1%* |
| contact | −19.4% | −25.5% |
On the home page every landmark's x position and width matches exactly at both breakpoints.
Two pages differ on purpose, so their numbers are not fidelity measures:
contact is shorter because the Squarespace form was replaced by a mailto:
link, and privacy-policy (*) is longer because its text was amended — see
below.
Re-run the comparison at any time (needs the local server running):
npm install
node _design/tools/compare.mjs # page heights, live vs local
node _design/tools/measure.mjs / # landmark x/width; AXIS=y for vertical
VP=mobile node _design/tools/measure.mjs /
node _design/tools/linkcheck.mjs # internal links and assets
node _design/tools/test-consent.mjs # verifies analytics stays off until Acceptprompt.md is a prompt for a future session doing the same job on
another site — the reconnaissance checklist, the traps that cost time here, the
reusable tooling, and reconnaissance already done on the next target
(www.matchbox.health).
_reference/archive.sh re-downloads the original site: all four pages, every
CDN asset, the theme CSS, the webfonts, and the inline <style> blocks holding
the Fluid Engine grid definitions. Run it again while the Squarespace
subscription is still active if anything looks missing — once it lapses the
original is unrecoverable.
Tokens were measured from the live site rather than reverse-engineered from
Squarespace's 1.27 MB site.css. See
_design/DESIGN-NOTES.md for the findings and
_design/GRID.md for the per-breakpoint grid tables.
The key one: mobile is a separately authored layout, not a reflow. All 21 Fluid Engine blocks sit at different grid positions at the two breakpoints, and mobile stacking order cannot be derived from the desktop arrangement — the home page's three feature groups alternate left/right on desktop but always put the image first on mobile.
- Contact form →
mailto:info@ahdis.ch. No third-party form processor. - Google Analytics retained (
G-29ZBMN1C2G), so a consent banner was rebuilt: Consent Mode startsdenied, GA loads only after Accept, and the choice is remembered. Verified by_design/tools/test-consent.mjs. - Privacy policy amended. Ported verbatim first, then updated so it matches
how the site actually works on GitHub Pages — most importantly section 6,
which claimed all processing happens in Switzerland. Every change is recorded
with before/after in
_design/PRIVACY-REVIEW.md. The newsletter paragraphs were removed as well — MAG has no newsletter and the site never had a signup. This is legal text and should be reviewed before the cutover. - Broken links fixed. The home page's "Mobile health (mHealth)" link now
points at ahdis's mHealth-Konzept PDF; it previously went to an
e-health-suisse.ch URL that 404s (and still 404s on the live site). The
footer's
ahdis.ch/en/link, which 301s to a 404, now useswww.ahdis.ch/en/homelike the other ahdis links. No external link on the site is broken.
Not done yet, and gated on explicit approval. When it happens:
- Enable GitHub Pages on
main/ root, verify atahdis.github.io/mobileaccessgateway.ch. - Add a
CNAMEfile containingwww.mobileaccessgateway.ch. - In Google Cloud DNS, point the apex at GitHub's IPs
(
185.199.108–111.153) andwwwatahdis.github.io. - Wait for the certificate, then enable Enforce HTTPS.
- Only after verifying: cancel Squarespace.
The repository must stay public — ahdis is on the free org plan, which does not serve Pages from private repositories.