Web development

A fast, mobile friendly and SEO friendly site from scratch. dataLayer is set up correctly on day one, so no patching for measurement later.

app/layout.tsx
export function trackPurchase(order) {  window.dataLayer.push({    event: 'purchase',    transaction_id: order.id,    value: order.total,    currency: 'AZN',    items: order.items.map(toGa4Item)  })}
Measurement lives inside the code, it is not bolted on later
Service scope

What we provide

Lighthouse · mobilelast deploy
96Performance
100Accessibility
100Best practices
100SEO

Sites from scratch

Next.js, static export, delivered on Cloudflare. Speed is not something optimised afterwards, it is a target from day one and a condition of delivery.

  • Static export, no server cost
  • Images in WebP through next/image
  • Core Web Vitals targets
  • Not delivered below Lighthouse 90
lib/analytics.ts
export function trackPurchase(order: Order) {  window.dataLayer.push({    event: 'purchase',    transaction_id: order.id,    value: order.total,    currency: 'AZN',    items: order.items.map(toGa4Item)  })}

Site level dataLayer

dataLayer lives inside the code, no patches thrown at GTM afterwards. The event schema for each page type lives in the component itself.

  • An event schema for each page type
  • Push functions at component level
  • Parameter types guaranteed by TypeScript
  • Verified in GTM debug mode
  • hreflang="x-default"/az/xidmetler/olcme-tracking/
  • hreflang="az"/az/xidmetler/olcme-tracking/
  • hreflang="en"/en/services/measurement-tracking/
  • hreflang="tr"/tr/hizmetler/olcumleme-tracking/

Multilingual structure

AZ / EN / TR in three separate folders. hreflang is built only between genuinely translated pages, never between blog posts.

  • Folder structure, not subdomains
  • hreflang and x-default set correctly
  • Canonical URLs, the most common mistake on multilingual sites
  • Language choice in a cookie, no redirect by IP
Free audit

Let us review your setup within 48 hours.

No account access needed. Your website address and a short note are enough, we check the rest.

  1. 01AuditYour current setup is checked against 12 points.
  2. 02Audit reportThe result of the 12 point review: what works, what does not, and in which order to fix it.
  3. 03CallA 30 minute call, questions and answers. No commitment.
  4. 04DecisionIf you want to work together we draw up a plan. If not, the audit report stays yours.
  • 12 point review
  • Within 48 hours
  • No commitment

Audit request

By sending this you accept our privacy policy . No account access is required at this stage.