Website that sells · under construction
A website that cannot publish a number the client has not approved: Cessca's B2B site
Occupational health and safety consultancy in Cuautla, Mexico. A static ten-page site that captures leads on WhatsApp, with a custom verifier and an editorial lock that blocks unapproved text. Under construction.
- Client
- Cessca
- Industry
- B2B occupational health, safety and civil protection consultancy · Cuautla, Mexico
The problem
Cessca needed a site that brings qualified requests and routes them to WhatsApp, where the business closes. No online store: in this sector the product is a document and the sale is a conversation. The hard part was not the technology.
- Each service line competes for different searches; a single-page site competes for none of them.
- Almost everything it sells is regulatory: a misquoted standard or a self-written accreditation is a legal problem for the client.
- The existing sales material came with the sector's clichés and with figures (years of experience, companies served) nobody had documented.
- The client has to be able to maintain it: a catalogue and a standards centre with dozens of entries.
Before
- Sales material: a corporate PDF presentation written in the sector's language.
- Trust figures: no document backing them when the project started.
What we built
| Phase | Delivered working |
|---|---|
| Shared base | Header, footer and metadata from a single source. Company data in one file. Design system defined before the first page. |
| Six service pages | One template, six pages: each contributes data, not markup. Fixed sections; the ones without material are not drawn; 'What you receive' is always drawn, even when it says 'pending confirmation'. |
| WhatsApp capture | Every button opens the chat with a prefilled message naming the service, product or standard it came from. Floating button on every page and a fixed mobile bar with Call and WhatsApp. |
| Custom verifier | Builds the site and checks the output: internal links, a single H1, image alt and dimensions, unique title and description, correct canonical, privacy notice inside every form, no orphan pages. It has its own tests. |
| Editorial lock | Text without an approved brief carries a draft mark, is visible on screen and is counted by the verifier. The publish command fails while any remain: 126 drafts as of August 18, 2026. |
| Pending | Product catalogue, standards centre and blog: three of seven sub-projects. Privacy notice linked and intentionally empty: the client's lawyer writes it; until then the form stays off. |
Adjustments after delivery
- Decided not to publish: the 'zero sanctions' promise from the sales material, the lab's accreditation number, client names or logos without written authorization, city pages without real presence, and any experience figure until the data exists.
How it was built
- 01
Discovery and architecture
Six service lines, six pages, six keyword groups. Fixed URL map before writing a page.
- 02
Design system before the first screen
Colors, sizes, spacing and components in one document; no hand-written values in the CSS.
- 03
Sub-projects with a spec and a plan
Seven sub-projects; each removes the pages it delivers from the pending list. That list can only shrink.
- 04
Verifier before pages
Quality rules written as automatic checks with tests, so no page is done without passing them.
- 05
Content flow without shortcuts
Page brief → approval → writing → SEO review → client validation → publication. Regulatory content is always validated by the client.
- 06
A list of missing data, handed to the client
Ordered by what it unblocks. 113 commits between August 14 and 18, 2026.
Technology
Eleventy 3 with Nunjucks templates; own CSS and JavaScript, no browser frameworks; static HTML served by Apache on Hostinger. Node verifier with its own tests. Catalogue and standards designed as data (JSON the client edits) plus one template per entry type.
Verified figures
- Pages built
- 10
- Templates
- 7
- Sub-projects integrated
- 4 of 7
- Drafts blocked (Aug 18, 2026)
- 126
- Pace
- 113 commits in 5 days
- Service lines with their own page
- 6
- Standards with an in-house lab
- 7
- Browser dependencies
- 0
Business metrics: none yet, because the site is not live. They will be published when the client measures them 30 and 90 days after launch.
What changed
Confirmed vs missing, separated
Unconfirmed data shows as 'pending confirmation' and the lock prevents publishing it by mistake.
One page per service
Same structure, data-driven, nothing redesigned when adding the next.
Cessca knows what each message is about
The WhatsApp arrives with the originating service, product or standard.
SEO mistakes caught before publishing
Wrong canonicals, duplicate descriptions, images without dimensions.
What is not published, in writing
Instead of arguing it every time.
One list of what is needed from the client
Ordered by what it unblocks.
Does your firm live on referrals?
With no site that brings requests, or one that promises things you never said. Tell us what should happen when someone lands on your site.