file 02 · air quality hardware and dashboard · lithuania · 2026
the site is not published at the moment. the figures below were measured on the built output.
survair is building a ceiling-native air terminal: an hvac ceiling diffuser that senses air where conditioned air actually enters a room, and signals the room’s air status back into the room through a recessed led ring, with a dashboard behind it. the buyers are premium hotels and offices.
what was wrong
- the page had to carry eleven sections, a hero photograph with two separate subjects in it, and a dashboard, without becoming a heavy page.
- the two subjects of the hero photograph, the diffuser and the wall projection, sit at opposite corners of the frame, so any single crop loses one of them.
what was decided
the whole page is one file with no external javascript.
zero script src tags, zero analytics, zero tracking pixels, zero cookies, zero localStorage. the only non-first-party origins are the two typography hosts. three network requests give a complete desktop above-the-fold render.
rejected: a tag manager, which is the ordinary way this gets built and would have added a third party and a consent obligation to a page that needs neither.
the hero frame changes shape four times down the breakpoint ladder instead of shrinking.
the two subjects are at roughly 59% x / 9% y and 32% x / 42% y. a single crop cannot hold both, so the frame goes 16/10, then 16/9 below 1120px, then 4/3 below 860px, then 1/1 below 560px, with five distinct object-position values so both subjects stay in frame at every width.
every image carries explicit width and height.
cumulative layout shift measured 0.000 across the full 14,269px page.
the numbers
every figure carries three lines: what it measures, the file it was read from, and what it does not prove.
136,870 to 32,008 bytes, 4.28 to 1
the landing page document, gzipped
m site/index.html
does not prove: the document only. photography and the two font hosts are not included.
0
external javascript files, analytics, tracking pixels, cookies, localStorage and sessionStorage across all three pages
m site/
does not prove: a grep of the source. it is not a runtime audit of a live site.
0.000
cumulative layout shift across the full 14,269px page
m measured in chrome
does not prove: one browser, one viewport, one run. it is lab data, not field data.
3
network requests for a complete desktop above-the-fold render
m measured cold
does not prove: above the fold on desktop. the full page pulls more.
35.92%
the saving from the webp encode against jpeg at identical pixel dimensions, across five sizes, 645,898 bytes to 413,862
m site/assets/img/survair/
does not prove: one image set. webp savings vary with content, and a photograph with flat areas compresses differently.
958
rendered dom nodes, for a page with eleven sections
m measured in chrome
does not prove: node count is not speed. it is one input to it.
8 of 8
images carrying explicit width, height and a non-empty alt, mean alt length 100.1 characters
m site/index.html
does not prove: alt text length is not alt text quality.
the alt text on this page averages a hundred characters, which is long. it is long because the photographs carry the argument: a person who cannot see them should get the argument, not a filename.
what they own now
- the repository and the deploy workflow
- a single-file page with no build step, which anyone can open and edit
what this does not prove
this section is here on every file. it is the reason the rest of the page is worth reading.
the site is not published at the moment, so none of this can be checked against a live url today. the figures were measured on the built output in the repository.
the company is pre-hardware. nothing on this page claims a product shipped, a customer, or a revenue figure.
the two typography hosts are the only third parties, and they are third parties. a fully self-hosted version would remove them and was not in scope.