Service
A small site, and the handover is measured
Most small sites are bought on how they look and handed over on trust. This one is handed over on numbers: no mixed content, no broken link, a stated Lighthouse score, a stated page weight, and every one of them reproducible by you on your own machine after we have gone. We are remote, in UTC+5, and that is said here rather than implied away — if the job needs somebody in the room, this is the wrong page.
- Fixed scope
- Measured handover
- No mixed content
- Lighthouse stated
- Remote, UTC+5
Measured means these, on the day it is handed over
Every row below is a number or a yes, taken from the site as published rather than from a dev server, written into the handover note, and reproducible by you afterwards with the command beside it. None of them needs our cooperation to check, which is the point: a measurement you can only get from the person who was paid is not a measurement.
| What is measured | What it rules out |
|---|---|
| Plain http is redirected | A host can serve https perfectly and still answer port 80 with the site, which means a visitor who types the domain never reaches the secure version. What a plain-http request actually does, and the one-line fix per platform. |
| The certificate, and who watches it | The expiry is in the handshake, so it is readable from anywhere — and an automated renewal still fails four ways. How to read it yourself, so the renewal is not being watched only by the machine doing the renewing. |
| Nothing requested over http | A script or stylesheet on an http URL is blocked outright on an https page, and the page half-works in a way the author rarely sees. What the browser does with each kind, and how to find every one in your own markup. |
| Every internal link resolves | Both ends are in your own site, so a 404 is checkable before a visitor finds it rather than after. The check, and why “it works locally” misses it. |
| The viewport line is present | Without it a phone lays the page out at desktop width and scales the result down, which is the single most common reason a site reads as broken on a phone. One line that decides how a phone renders. |
| Lighthouse, stated per page | Performance, accessibility, best practices and SEO, run on the published URL, with the scores written down rather than described as “fast”. A number can be argued with; an adjective cannot. The scores for this page are written down with the rest of the site's. |
| Page weight, stated | Bytes over the wire for the heaviest page, including images. This is the number that decides what the site costs a visitor on a phone on mobile data, and almost nobody hands it over. |
The site you are reading is the sample
There is no portfolio of other people's sites on this page, because the honest sample is this one. It is generated by a single Python file with no framework under it, and a second script reads the built HTML and refuses to publish on a dead internal link, a contents entry pointing at nothing, or a claim that cannot be defended. How this site is built has the page count, the assertion count, both gate runs, the commands to reproduce them, and the two accessibility defects that measuring found here — in our own site, after it was live, published rather than quietly fixed.
That page is the argument for this one. A firm that measures its own site and publishes what the measurement found is making a different offer from a firm that shows you screenshots, and it is the only part of this lane that cannot be copied by somebody who would rather not look.
Who this is for, and who it is not
A small firm with a few real pages
What you do, who it is for, the work behind it, and a way to get in touch that arrives. Several pages rather than several dozen, written to be read rather than to fill a template, and quoted as one fixed price against a scope agreed in writing first.
A site that exists and is quietly wrong
The redirect nobody added, the certificate nobody is watching, the asset still on http, the link that has answered 404 since the last rename. These are measurable from outside and usually a one-line fix — so the measurement arrives first, and often that is all that is needed.
Not a template store, and not a bidding war
There is a market where the whole conversation is the price, and it is won by whoever says the lowest number. We are not in it, on purpose. If price is the only question, the answer is somebody else — and saying so now is cheaper for both of us than finding out in week three.
Not a monthly marketing retainer
No ongoing content, no ads, no ranking promises. Search position is not something anybody can honestly sell as a deliverable, and this page does not. What is for sale is a site that is correct, measured, and yours.
Remote, and what that actually means. We work from UTC+5 and answer within one business day. There are no site visits, no meetings in your office, and nothing on this page implies a local presence — the search phrase for this work has a “near me” tail and we are deliberately not writing for it. What remote does mean in practice: the whole job runs through the artefacts, the scope is in writing before anything starts, and every claim about the result is a number you can check yourself from wherever you are.
What you own at the end. The pages, the source, the repository and the domain, in your account rather than ours, with nothing that stops you taking it to somebody else the following week. What a handover contains is written down for every piece of work here, and this lane is no exception: a defect in what we wrote is ours to fix at no charge for thirty days after handover.
The pipeline underneath, if you want it
A site is the small end of a larger job: the deploy that is one command, the build that refuses rather than ships when a check fails, the certificate watched from outside the host that renews it, the alert pointed at what a visitor would notice. Web and app builds, and the pipeline that keeps them up is the same practice applied to an application rather than to a few pages, and it is the page to read if what you have is a product rather than a site.
Deliverables
What you actually receive
Fixed price per deliverable, quoted against a written specification. No hourly billing, and no price before the scope is in writing.
| Deliverable | Detail |
|---|---|
| The site itself | The pages, written and built, in a repository and a hosting account that are yours rather than ours, with the dependencies named and a README somebody else can start from. |
| A measured handover note | One page: every row of the table above with its value on the day of handover, the command that produced it, and the Lighthouse scores per page. Yours to re-run. |
| A deploy that is one command | Build, check, publish, and a way back — with the check running before the publish, so a failure is a build that stopped rather than a page that is wrong in public. |
| The certificate and the redirect, settled | Plain http redirected once with the right status, the certificate renewing, and the renewal watched from somewhere other than the host doing the renewing. |
| A short operating note | How to change the text without us, what the checks refuse and why, and what to do on the morning something fails. |
Also
Other services
Niagara 5 migration
Niagara 5 readiness audits and migration, including JACE 8000 to JACE 9000: which third-party modules survive the new runtime and mandatory signing.
Custom modules & drivers
Bespoke Niagara rt, wb and ux modules and drivers written against the Baja API: pure Java, signed, and stamped to install across a mixed estate.
Operator graphics
Niagara operator screens built once and reused: standard PX plant sheets bound by relative ORD, bajaux web widgets and dashboards, and a written standard.
Station engineering
JACE controller and Niagara station setup end to end: platform commissioning, TLS, users, roles, BACnet and Modbus, tagging, histories, alarms, backups.
Workbench tooling
Custom Workbench views and tools for repetitive Niagara work: bulk renaming and retagging, station audits, provisioning helpers and module inventories.
IoT & LoRaWAN
Custom IoT and LoRaWAN builds: decoders that survive a station, a self-hosted ChirpStack server, MQTT, and the points or dashboards the readings become.
Integration audit
A fixed-scope paid audit of an existing Niagara integration: what talks to what, where it breaks, and what fixing it would take.
Protocols & data
Field protocol integration and the data behind it: BACnet, Modbus, M-Bus and MQTT, into a building system, a database or a dashboard.
Web, apps & DevOps
Web and app builds with the DevOps around them: front end, backend, the database under it, and the build, deploy and monitoring work that keeps it up.
Spreadsheets & internal tools
An audit of the spreadsheet a team runs on — every rule it encodes, and which ones contradict each other — then one bounded slice of it as a web app.
Next step
Send the address of the site you have. The measurement comes back free.
If there is a site already, the first useful thing is not an opinion about it — it is what a stranger can measure from outside: the certificate, the plain-http redirect, whatever is still requested over http, and every internal link that answers 404. That arrives whether or not anything else follows, and if the site is fine, that is the answer.