javisantana.com

Landing page change log

Landing page change log

This log connects landing-page iterations with the events in events.duckdb. Localhost and 127.0.0.1 sessions are excluded from visitor baselines.

2026-07-26 — Shorter, article-first landing page

Baseline

Data available through 2026-07-26 (the latest /landing.html event is from 2026-07-25). The current Teenage Engineering design launched on 2026-07-13.

Hypothesis

Visitors—half of whom arrive from Twitter/X—should understand who Javi is in the first viewport and encounter a small, useful set of articles before newsletter promotion. Reducing choice and page length should increase attributable article visits and section completion.

Changes

Metrics to compare after deployment

Use only sessions after the deployment timestamp and exclude local referrers.

2026-07-27 — Reliable, versioned landing measurement

Deployment timestamp: pending. This iteration is not deployed yet.

Baseline

Data window: 2026-07-26 08:50 CEST through 2026-07-27 09:18 CEST, beginning with the first event after commit 5cba1e4. Localhost and 127.0.0.1 referrers are excluded.

Hypothesis

With the post-redesign sample too small for another visual change, preserving the current article-first page and making its measurement reliable will produce a valid comparison sooner than changing content again. Versioned tracker payloads, cache-busted delivery, and viewport-relative section thresholds should make the next session cohort distinguishable and its important interactions attributable.

Changes

Metrics to compare after deployment

Use sessions with analyticsVersion = '2026-07-27', starting at the confirmed deployment timestamp, and keep excluding local referrers.

2026-07-28 — Clean landing experiment boundary

Deployment timestamp: pending. This iteration is not deployed yet.

Baseline

Data window: 2026-07-27 10:36 CEST through 2026-07-28 18:34 CEST, covering the 15 non-local-referrer sessions carrying analyticsVersion = '2026-07-27'. The window begins with the first observed versioned event; it is not a confirmed deployment timestamp. Repeated batched events were deduplicated by session and event payload.

Hypothesis

The current content is already producing article visits, and 15 sessions are not enough evidence for another layout or copy change. Preventing local collection, recording only actionable link clicks, and emitting one reliable end event will create a clean post-change cohort without disrupting the article-first experience.

Changes

Metrics to compare after deployment

Use sessions with analyticsVersion = '2026-07-28', beginning at the confirmed deployment timestamp.

2026-07-31 — Direct article CTA and denser first viewport

Deployment timestamp: 2026-07-31 18:48 CEST (commit b4576fe).

Baseline

Data window: versioned non-local sessions with analyticsVersion in ('2026-07-27', '2026-07-28') through 2026-07-31 14:32 UTC (latest event in events.duckdb). Localhost and 127.0.0.1 referrers are excluded. Batched events were expanded and deduplicated by session, event fields, and second.

Hypothesis

Most visitors bounce before scrolling past the first block. The primary hero CTA only jumped to #start-here, which is often already on screen, so it could not create an article visit. Putting a direct link to the strongest featured article in the first viewport, tightening hero density so writing stays visible, and shortening the latest list from 9 to 5 should raise article CTR among short sessions without changing who Javi is or what the page is for.

Changes

Metrics to compare after deployment

Use sessions with analyticsVersion = '2026-07-31', beginning at the confirmed deployment timestamp; exclude local referrers.

2026-08-03 — Name-first hero and active duration

Deployment timestamp: 2026-08-03 17:31 CEST (this commit).

Baseline

Data window: non-local sessions with analyticsVersion = '2026-07-31' from 2026-07-31 18:51 CEST through 2026-08-03 14:53 CEST (latest event in events.duckdb at analysis time). Localhost and 127.0.0.1 referrers excluded. Batched events expanded and deduplicated by session, fields, and second. Wall-clock durations above 1 hour treated as open-tab outliers for medians.

Hypothesis

The direct article CTA is working, especially on short Twitter sessions, but the most-clicked control is still hero-about: visitors arrive needing a clear name and role before they commit to a post. Putting the name in the H1 and a compact who/what line in the first viewport—while keeping the article CTA and making its label name the destination—should raise article CTR without another layout rewrite. Recording visibility-aware activeDuration will make the next cohort’s engagement medians trustworthy.

Changes

Metrics to compare after deployment

Use sessions with analyticsVersion = '2026-08-03', beginning at the confirmed deployment timestamp; exclude local referrers. Prefer activeDuration for engagement medians; keep wall-clock duration only for outlier checks.