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.
- 01AuditYour current setup is checked against 12 points.
- 02Audit reportThe result of the 12 point review: what works, what does not, and in which order to fix it.
- 03CallA 30 minute call, questions and answers. No commitment.
- 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