Twindo

Twindo, formerly Canvas, the spatial intelligence platform built by Occipital, the company behind RedLaser and the Structure Sensor, brought me in as their enterprise WordPress engineer, and I rebuilt the marketing site, carried it through a full corporate rebrand and domain change, and built the first-party attribution and consent architecture that measures a funnel spanning two domains.

Key Takeaways

  • Carried a whole company's rename through the website: canvas.io became www.twindo.com with a new brand, new domain, every landing page migrated, navigation rewritten, redirects mapped, and historical campaign data preserved through the cutover.
  • Restored trust in marketing's numbers, tracing paid-traffic attribution through the live tracking layer itself and correcting how consent state reached each vendor.
  • Decided consent on the server, before a single tag loads: a geo-aware regional model with opt-out for US visitors, opt-in elsewhere, and Global Privacy Control honoured automatically.
  • Built first-party attribution that survives the subdomain hop, five UTM parameters and nine advertising click IDs carried in a root-domain cookie readable by the app at signup.
  • Audited the full GTM container line by line and brought every tag, trigger and variable in line with the measurement plan.
  • Treated PageSpeed as engineering, taking CLS from 1.03 to 0.24 and LCP from 0.91s to 0.41s before touching a single feature.
  • Replaced the hosted help centre with owned content, every legacy support URL mapped to its article, verified end to end after deploy.

Organization

Twindo is the spatial intelligence platform of Occipital, Inc., a Colorado company with more than fifteen years in 3D sensing and 20+ patents, whose history runs from RedLaser through the Structure Sensor to a spot in the Apple keynote that introduced LiDAR on the iPhone. The product turns an iPhone into a surveying instrument, converting LiDAR scans into CAD/BIM models, floor plans and measurement reports for architects, designers and contractors, with 12,000+ professional users and 100M+ square feet modeled.

Challenge

The funnel did not live on one domain: a visitor researches on the marketing site, downloads the app, and purchases on app.twindo.com, instrumented separately by a different team. Marketing needed numbers it could trust across that boundary, a defensible privacy posture for CPRA and GDPR, and a site fast and flexible enough to carry a rebrand that arrived mid-engagement.

Solution

  • The theme taken into version control and rebuilt module by module: structured SCSS with brand variables, defensive templates, and a modern PHP baseline, which is what made the rebrand a global change rather than a hunt.
  • The full domain and brand cutover executed with attribution continuity, 301 mapping and post-launch verification in Search Console and GA4.
  • A server-decided consent architecture with the consent library inlined ahead of GTM, because load order is the whole point.
  • A purpose-built attribution class writing campaign context to a 30-day root-domain cookie, consent-gated, with self-referrals filtered.
  • A complete GTM container audit and rebuild against the measurement plan, verified with live QA tooling.
  • A performance program: the animation stack removed, fonts made async, images served as WebP through a CDN resizer, and transport-level tracking changes that improved Core Web Vitals with zero measurement loss.
  • The homepage rebuilt from a designed prototype across eleven sections, then every string, image and FAQ moved into tabbed CMS fields with shipped content as fallback.
  • A /llm-api/ endpoint publishing the company's products, pricing and content as one canonical machine-readable record, and the help centre migrated into an owned support post type.

Results

  • Paid-search attribution corrected by an estimated 25 to 40%.
  • CLS from 1.03 to 0.24; LCP from 0.91s to 0.41s; mobile PageSpeed up 25 to 40 points.
  • 10 to 20% of wasted ad spend avoided.
  • 6 to 12 marketing hours a month returned.
  • All 41 legacy support URLs verified resolving after the migration.