MDXBird: A/B Test Your Blog Posts with Built-in Analytics

MDXBird A/B Testing for Blog Posts
11 min readπŸ”SEO
Summary

TL;DR: A/B test your blog posts to see which variants rank better, convert more, and drive engagement.

MDXBird is an A/B testing framework for blog posts built for Next.js/MDX with GDPR-friendly analytics powered by Tinybird. Track which variants rank better, convert better, and drive more engagementβ€”perfect for B2B SaaS where every blog post could be a huge winner.

Pricing & Availability

MDXBird is available in two paths, depending on whether you want infrastructure or insights:

Path 1: Done-for-You Implementation

One-time: $8,500

What you get:

  • Full MDXBird setup on your Next.js blog
  • My custom blog design and setup that ranks
  • Tinybird configuration + first 3 months of Tinybird costs included
  • Custom dashboard showing top paths, conversion events, variant performance
  • 3 starter A/B tests configured (you tell me which posts to test)
  • Documentation: how to create new variants, how to read the data
  • 90-minute onboarding call to walk through your first test
  • 60 days of technical support (bug fixes, setup issues)

Who this is for:

  • Teams with in-house content ops who can run with it
  • Companies that want the infrastructure and will figure out the rest
  • People who want to try it out before committing to more

The key: This is truly self-serve after 60 days. You'll be able to run tests, read dashboards, and make decisions without me.

Path 2: Optimization Retainer

Setup: $5,000 + $2,500/month (3-month minimum)

What you get:

Setup (Month 1):

  • Everything from Path 1
  • Kickoff call to understand your content strategy, revenue model, key conversion events
  • Baseline audit: which posts are working, which aren't, where the opportunities are

Monthly retainer:

  • 2-3 new A/B tests launched per month (I choose what to test based on data)
  • Monthly insights report: what we learned, what it means, what to do next
  • Optimization recommendations: rewrite this intro, move this CTA, link these posts together
  • Dashboard updates: new metrics, new views, custom queries as needs evolve
  • Ongoing Tinybird cost coverage (included in retainer)
  • Slack/email access for questions

Who this is for:

  • Companies that know content is strategic but don't have bandwidth to analyze data
  • Teams that want an expert making decisions, not just providing tools
  • Anyone who sees this as hiring a "content optimization partner," not buying software

The key: You're paying for insights + recommendations, not just data access. I'm using the tool for you.

Contact me via email or reach out on X to discuss which path makes sense for you.

Here's the problem: In B2B SaaS, every blog post could be a huge winner. But nobody actually does A/B testing for blog posts yet. That literally doesn't exist.

What if you could run two versions of the same blog post and see which one:

  • Ranks better on Google
  • Has better bounce rate and session duration
  • Gets more clicks (crucial for affiliates)
  • Converts better for your own products

That's exactly what MDXBird does.

What is MDXBird?

MDXBird is an A/B testing framework specifically built for blog posts. It's like having a mini Plausible/PostHog/Datafast competitor, but designed for testing content variants and tracking conversions.

The twist: It's GDPR-friendly, works seamlessly with Next.js and MDX, and gives you real-time analytics powered by Tinybird.

Why This Matters

Most marketers A/B test landing pages, emails, and ads. But blog posts? They just publish and hope for the best.

That's a massive opportunity, especially for:

  • B2B SaaS companies where every blog post could drive signups
  • Affiliate marketers tracking which content drives clicks
  • Content teams optimizing for engagement and conversions
  • SEO-focused businesses testing which headlines and structures rank better

How MDXBird Works

1. Create Variant Files

Instead of one blog post file, you create variants:

content/blog/
  β”œβ”€β”€ affiliate-software.mdx      (control)
  └── affiliate-software.b.mdx    (variant B)

Both files share the same slug (normalized automatically), but serve different content. MDXBird handles the routing.

2. Deterministic Variant Assignment

MDXBird uses a GDPR-friendly approach: no cookies, no personal data storage.

It assigns variants deterministically based on:

  • IP address (hashed for privacy)
  • User-Agent
  • Browser fingerprint
  • Accept-Language and other headers

This means the same visitor always sees the same variant, but we're not storing personal data.

3. Built-in Analytics

Every interaction is tracked automatically:

  • Clicks: Which links get clicked (internal vs outbound)
  • Scroll depth: How far users read (in 10% increments)
  • Session duration: Time on page
  • Bounce rate: Whether users engage or bounce
  • Device type: Mobile, tablet, desktop
  • Geolocation: Country and city (from headers)
  • UTM parameters: Campaign tracking
  • Referrer: Where traffic comes from

All data flows to Tinybird for real-time analysis.

4. Component Integration

MDXBird provides React components that work seamlessly with MDX:

import { TrackedLink } from '@/lib/mdxbird/components'
 
// In your MDX content
<TrackedLink href="https://example.com">Tracked Link</TrackedLink>

Links are automatically tracked without any manual instrumentation.

Key Features

GDPR-Compliant Tracking

  • No cookies: Uses browser fingerprinting instead
  • Hashed IPs: IP addresses are SHA-256 hashed before storage
  • Privacy-first: Similar approach to Plausible Analytics
  • No personal data: Only aggregated metrics

Real-Time Analytics

Powered by Tinybird's high-performance analytics engine:

  • Sub-second query times even on millions of events
  • Built-in aggregations and dashboards
  • SQL queries for custom analysis
  • Webhook support for real-time alerts

Seamless Next.js Integration

Works out of the box with:

  • Next.js App Router
  • MDX content (via Contentlayer)
  • Static Site Generation (SSG)
  • Server Components

Variant Testing

Test multiple variants:

  • Control vs Variant B (.b.mdx)
  • Multiple variants (.v2.mdx, .v3.mdx, etc.)
  • Deterministic assignment ensures consistent experience
  • Query parameter override for manual testing (?variant=b)

Use Cases

1. SEO Testing

Problem: You have two headlines or content structures. Which one will rank better long-term?

Solution: You can't directly test SEO rankings in real-time, but you can test which variant drives better engagement metricsβ€”and Google rewards that. Create two variants with different H1s, titles, or structures. Track:

  • Which variant has lower bounce rate
  • Which has better session duration and dwell time
  • Which gets more engagement (scroll depth, clicks)
  • Which converts better

How it works: Better engagement metrics signal to Google that your content is valuable and relevant. Over time, this leads to improved rankings. Test "Best SEO Tools" vs "SEO Tools That Actually Work" and measure which variant keeps users engaged longer. The variant with better engagement metrics will likely rank higher after Google recognizes the improved user signals.

2. Affiliate Optimization

Problem: You don't know which CTA copy drives more affiliate clicks.

Solution: A/B test different link placements, anchor text, and CTAs. Track:

  • Click-through rate per variant
  • Which affiliate links perform better
  • Revenue per variant

Example: Test "Check Price" vs "View Deal" button text and measure which drives more conversions.

3. Conversion Rate Optimization

Problem: Blog posts drive traffic but not signups.

Solution: Test different content structures:

  • Where to place CTAs
  • How much social proof to include
  • Which case studies resonate
  • Call-to-action copy

Example: Test a long-form vs. concise version and see which drives more trial signups.

4. Engagement Optimization

Problem: High bounce rate, low session duration.

Solution: Test content formats:

  • Listicles vs. how-to guides
  • Technical depth (beginner vs. advanced)
  • Visual vs. text-heavy
  • Storytelling vs. direct value

Example: Test an image-heavy variant vs. text-only and measure scroll depth and time on page.

Technical Architecture

Server-Side Components

MDXBird uses Next.js Server Components for variant assignment:

import { getAssignedVariant, getBlogPostByVariant } from '@/lib/mdxbird/server'
 
// In your page component
const variant = await getAssignedVariant(baseSlug)
const post = getBlogPostByVariant(baseSlug, variant)

Client-Side Tracking

Tracking happens client-side with batched events:

import { MDXBirdProvider } from '@/lib/mdxbird/components'
 
<MDXBirdProvider page={slug} variant={variant}>
  {children}
</MDXBirdProvider>

Events are batched and sent to your API route, which forwards them to Tinybird.

Data Schema

Each event includes:

  • Timestamp (Unix milliseconds)
  • Session ID (sessionStorage)
  • User ID (localStorage)
  • Page slug
  • Variant name
  • Event type (click, scroll, session_start, session_end)
  • Event data (link URLs, scroll depth, session duration, etc.)
  • Browser metadata (User-Agent, screen size, viewport, etc.)
  • Geolocation (country, city)
  • UTM parameters

How to Get Started

MDXBird is a custom implementation that requires setup and integration.

Interested in A/B testing your blog posts?

Choose your path:

  • Path 1 ($8,500 one-time): Get the complete infrastructure and run it yourself
  • Path 2 ($5,000 setup + $2,500/month): Get the infrastructure + ongoing optimization and insights

Get in touch via email or reach out on X to discuss which path makes sense for you.

Analytics & Insights

Key Metrics

MDXBird tracks the metrics that matter:

  1. Engagement Metrics

    • Average scroll depth per variant
    • Session duration
    • Bounce rate
  2. Conversion Metrics

    • Click-through rate (CTR)
    • Outbound link clicks
    • Internal link clicks
  3. SEO Metrics (Indirect Indicators)

    • Engagement metrics that signal quality to Google (bounce rate, dwell time, session duration)
    • Organic traffic per variant (measured over time)
    • User engagement patterns that correlate with better rankings
  4. Behavioral Metrics

    • Device type breakdown
    • Geographic distribution
    • Referrer analysis
    • UTM campaign performance

Querying Data

With Tinybird, you can run SQL queries like:

SELECT 
    variant,
    COUNT(*) as views,
    AVG(session_duration) as avg_duration,
    SUM(CASE WHEN session_is_bounce = 0 THEN 1 ELSE 0 END) / COUNT(*) as engagement_rate
FROM mdxbird_events
WHERE page = 'affiliate-software'
    AND event_type = 'session_end'
GROUP BY variant

Why Tinybird?

Tinybird is built for real-time analytics:

  • Performance: Sub-second queries on billions of events
  • Cost-effective: Pay only for what you use
  • SQL-native: Query data like a database
  • Real-time: Events available immediately
  • Scalable: Handles millions of events per day

It's perfect for A/B testing because you need fast, real-time insights to make decisions quickly.

The Competitive Advantage

Nobody else is doing this. Seriously.

While everyone else publishes blog posts and hopes for the best, you'll be:

  • Testing which headlines rank better
  • Optimizing for conversions, not just traffic
  • Making data-driven content decisions
  • Scaling what works, killing what doesn't

For B2B SaaS companies, this is a game-changer. Every blog post becomes a conversion optimization opportunity.

Real-World Example

I've already implemented this on my own blog. Here's what I'm testing:

Post: "Best Affiliate Software" (affiliate-software)

Control: Standard listicle format with embedded reviews

Variant B: Comparison table format with side-by-side features

Metrics I'm tracking:

  • Which variant has better engagement (lower bounce rate, higher session duration, deeper scroll depth)
  • Which gets more affiliate clicks
  • Which converts better to newsletter signups
  • Which drives better user signals that lead to improved SEO over time

After 30 days, I'll have concrete data on which format works better. The variant with better engagement metrics will likely see improved Google rankings as the algorithm recognizes better user signals. Then I'll apply those learnings to future posts.

Next Steps

If you're ready to weaponize your blog posts:

Choose your path:

  • Self-serve ($8,500 one-time): Get the infrastructure, run tests yourself
  • Done-for-you ($5,000 setup + $2,500/month): Get infrastructure + ongoing optimization and insights

Get in touch via email or reach out on X to discuss which path makes sense for you.

This is the future of content marketing: data-driven, conversion-focused, and optimized for results.


Ready to A/B test your blog posts? This is a Datafast/Plausible/PostHog competitor, but specifically built for A/B testing content and tracking conversions. Perfect for B2B SaaS where every blog post could be a huge winner.

The setup is insanely quick. The value is extremely high for people doing blogs. And it works seamlessly with Next.js.

Two paths available:

  • $8,500 one-time: Complete infrastructure, self-serve
  • $5,000 setup + $2,500/month: Infrastructure + ongoing optimization

Get in touch via email or reach out on X to discuss which path makes sense for you.

WRITTEN BY:

Ilias is a former CTO turned SEO strategist who specializes in building scalable content systems that rank, convert, and compound. He's founded multiple ventures including LinkDR (AI-powered backlinks), MagicSpace SEO (CRO-focused agency), AISEOTracker (SEO monitoring), and GenPPT (AI presentations).

He's led SEO and content projects for 50+ brands, producing growth systems that drive 300%+ organic traffic increases through systematic conversion psychology and technical optimization.

Read more about Ilias
Newsletter

Get weekly insights on seo

MDXBird: A/B Test Your Blog Posts with Built-in Analytics