The brief
GRANOR is a brand of modular floating docks sold and installed in Ontario by Maryna Kara Inc., a small Ontario corporation. The product is a blow-moulded HDPE cube, 20″ by 20″ by 16″ (50 by 50 by 40 cm), 7 kg, rated for 270 kg/m², that pins together into cottage docks, drive-on jet-ski ports, swim platforms and marina walkways. The same company also sells inflatable pools, boats and greenhouses, and the docks are the lead product.
The brief came in through a form on 11 July 2026. It asked for something premium, strict and short, with no "about us" and no mission statement, and warned that contact details would change. The page had one job: take cold traffic from Facebook and Instagram ads and turn it into a written estimate request.
The buyer we wrote for is a cottage owner in Muskoka, the Kawarthas or the Rideau Lakes, roughly 45 to 65, reading on a phone at the lake. Their real objection showed up in the supplier's own material: an imported plastic cube that might crack in the ice. The strongest honest answer available was the engineering sheet itself, so the page was designed to look like one.
What we built
A landing that reads like a spec sheet
Direction was locked on 22 July 2026: cool slate field, a tall condensed display face, hi-vis yellow reserved for prices and the main buttons, and a mono annotation layer in square brackets ([ PRICING / 07 ]) that numbers every section like a drawing. The module's numbers sit directly under the hero on every slide: size, weight, load, wall thickness, temperature range and warranty.
The first production deploy went out on the evening of 22 July 2026, the same evening the estimate form went live. The page loads everything from its own host: fonts are self-hosted, there is no tag manager, and the pixel only loads after consent. A headless load we ran on 30 October 2026, three times, requested files from one host only, granor.pages.dev. On 22 July the hero images were converted from PNG to WebP, from 1.5 MB to 100 KB, per the commit log.

A claims register before any copy
Before writing a line we listed what the page may not say: "Made in Canada", "permit-free", "ice-proof", "in stock", competitor names, invented reviews, and any certification the supplier could not document. The supplier's sheet had its own "do not claim without proof" section, and it overruled an earlier marketing draft: the warranty is 10 years (a "20-year" pillar was retired), the module weighs 7 kg (5.5 kg was retired). The footer now says in plain words that no ISO, CE, CSA or ABYC conformity is claimed.
The same register shaped the photography. Supplier shots of Mediterranean marinas and factory pallets were left out, blue and orange units were recoloured to the brand grey (the client's own files were named "repaint grey"), and the gallery carries a label: supplier reference photography, with items marked "GRANOR site" being the client's real installs. The first FAQ answer takes the objection head-on: the modules are moulded overseas, here is what they are specified to, and here is the Canadian company that answers for the warranty.

The dock designer
A price list asks a cottager to imagine a dock. The designer at /design/ shows it on their own water. It is a Leaflet map: the visitor searches an address, lake or marina, drops a GRANOR dock drawn to real scale, drags and rotates it, and changes length and width module by module. Presets cover jet-ski port, cottage dock, L-dock, T-dock and swim platform. The panel counts modules, square metres and square feet and prints a rough price as it changes.
Map imagery was the part we iterated hardest. Esri world imagery is soft at dock scale, so on 23 July we layered the Ontario government's 20 cm orthophoto on top, with Esri showing through outside the province. The map opens on Muskoka Wharf in Gravenhurst, where existing docks give a sense of scale before the visitor has typed anything.
"This is my dock, get my estimate" sends the configuration, the price shown and a Google Maps pin of the dock's position to the same lead backend as the form, tagged as a map configuration. On a phone the designer opens as a compact teaser that goes full-screen on tap, since a map inside a scrolling page fights the visitor's thumb.

Leads where the owner already is
The form and the designer post to a Google Apps Script endpoint. Each request becomes a row in a Google Sheet, an e-mail to the owner and a message from a dedicated Telegram bot into a group shared by the client and the studio. A honeypot field filters the simplest bots. A small bug-report button on every block sends feedback through the same pipe, labelled with the block it was opened on.
Ad readiness
Everything a Meta campaign needs on the page side was built before launch: Open Graph and Twitter cards with a share image, a privacy policy written for PIPEDA and Québec's Law 25, a consent banner, and a Meta Pixel scaffold that fires PageView and fires Lead on both the form and the designer. The pixel ID field in the build script is still empty, waiting for the client's ad account.
Two revision rounds with the client
The client works in documents. His first list of remarks, dated 3 August 2026, came as a Word file in his own Drive folder, and it reshaped the page. Sizes went imperial-first, and the module became 20″ by 20″ by 16″ (50 by 50 by 40 cm) after he corrected our 508 mm. Every mention of permits was removed, Québec was dropped to keep the territory to Ontario, the jet-ski port became a half-day install, and the logo and wordmark were set in one line to match the trademark filing. That round went live on 7 August. On 11 August we checked all 19 remarks again on the live site and sent him a shared document with proposals for the blocks he had left open.


The second round, "ДОРАБОТКА-2", had 11 points and was applied on 14 August. The biggest change was the price list. The client sent prices per package, and every one of them came out at $30 per square foot of deck, so we made that the single rule for the price cards and the designer, with delivery and assembly included and tax on top. A 3 by 6 jet-ski port is 18 modules, 50 sq ft and $1,500 on the card and in the designer alike. Anchoring was removed everywhere because the client treats it as a separate business; assembly and delivery stayed. Utility became Commercial, priced on request.

The jet-ski preset in the designer used to draw a U-shaped slip. The client's product is a solid platform with a sunken centre trough open at the bow, so the preset now draws exactly that. Two sections with an interactive assembly demo and engineering copy were removed at his request; the spec table moved under the gallery, next to the components.
Two new blocks came in that round. An offers block now sits directly after the hero, with a button to it on the first screen and Offers first in the menu: 15% off for orders from 1 November to 28 February, 10% off a pre-order with 50% down, and a further 5% for collecting from the warehouse. We proposed those percentages in the 14 August report and left each one as a single number the client can change. A dealers block replaced a seasonal section with three routes for installers: refer the job for a commission, hold stock and keep the margin, or collect per job at dealer pricing. Each "Apply" button pre-fills the form with the route.


On 22 August, at the owner's request, we stopped answering with our own documents and marked up his file instead: a green line under each of his points saying what was done, orange where we were waiting on him. That format stuck.

The trademark
The name needed protecting before money went into ads. On 22 July 2026 we searched the Canadian Trademarks Database across every status, domestic and Madrid Protocol records together. One record contained GRANOR, a composite food mark in class 30, and it was expunged. A registered competitor mark in class 19 confirmed that modular floating docks belong there.
We drafted the application as a word mark in standard characters, with all goods taken from CIPO's pre-approved list to avoid wording objections: transportable metal greenhouses (class 6), boats and inflatable boats (class 12), non-metal greenhouses and non-metal modular floating docks (class 19), inflatable and play swimming pools (class 28). The client signed the applicant sheet on 14 August.
Filing through CIPO's e-services took longer than drafting. Opening the payment page pulls an application out of the cart. If the payment is not completed, the draft sits in a pending transaction and the cart and work-in-progress lists show nothing. The way back is Transaction history, then Copy on the pending row, which restores everything except one standard-characters checkbox. We rebuilt the cart that way twice. Application 2496521 was filed and paid on 24 August 2026 and formalized the same day. On 30 October 2026 the public record shows it awaiting examination.
What happened
The landing has been live at granor.pages.dev since 22 July 2026, with 14 production deploys up to 22 August, all of them listed in Cloudflare Pages. Both revision rounds are closed. The trademark application is in the queue at CIPO.
The ad campaign has not started, so this case has no traffic, cost or lead numbers. The lead sheet holds seven rows, all our own end-to-end tests from 22 and 23 July 2026. Two things hold the launch, both on the client's side: the Meta Pixel ID, and the go-ahead to point granor.ca at the landing. Since 23 October 2026 the bare domain serves HTTPS and redirects to www, which still shows the registrar's parking page.



What we would do next
Switch the domain and launch. Connect granor.ca to the Pages project, change the canonical and Open Graph URLs in the build script, verify the domain in Meta Business Manager, drop in the pixel ID, and add the Conversions API on the Apps Script side with the same event id as the browser Lead event, as we did for Beaver Movers.
Sell the off-season. The page already offers 15% off from 1 November to 28 February. A dock bought in winter is installed after ice-out, so the first campaign should run on that offer, with the dock designer as its landing point.
Fix one leftover. The designer's footnote still describes the module as 508 by 508 mm. Every other surface follows the client's 20″ by 20″ by 16″ correction, and this one should too.
A French page. Québec was taken out at the client's request. If GRANOR later sells into the Outaouais or Québec cottage country, a French version is the first job.
Related
The landing service: landing page development. The market groundwork for a product like this: market analysis. The campaigns that will point at the page: targeted ads. The same lead-to-Telegram mechanism, already running for a client in Ottawa: Beaver Movers.
Project lead: Marketing MIX. Client: GRANOR, a brand of Maryna Kara Inc., Ontario. Year: 2026.

