Aug 7, 2026 · by fmerian · View source

dif.sh

Markdown feature flags your coding agent installs for you

dif.sh

Editorial analysis

Why a Git-Native Feature Flag Tool Matters More to Your Storefront Than to Your Engineering Team

Every cross-border operator I know has lived this exact nightmare: you’re running a flash sale on your Shopify storefront, you flip a discount code on, and within forty minutes your support inbox is full of customers who saw the old price, the new price, or some cached hybrid of both. You dig into the codebase — if you even have direct access to it — and find a mess of environment variables, commented-out logic, and half-remembered decisions about what was tested, what was rolled back, and why. The worst part isn’t the technical debt. It’s that you have no idea which version of your storefront actually drove the revenue spike, because the experiment data lives in a dashboard nobody remembers how to access.

That’s the gap dif.sh is aiming at, and it’s why I’m paying attention to a developer tool launch even though my readers are mostly sellers, not engineers. Because here’s the uncomfortable truth: every serious DTC brand and Amazon-focused operation is now a software company whether they admit it or not. The ones winning are the ones who treat their storefront, their listing optimization, and their checkout flow as products that need continuous, disciplined experimentation — not as static pages you set and forget. Dif’s bet is that feature flags and A/B tests belong in your git repository as markdown files, reviewed in pull requests like everything else, with no signup and no API key required. That sounds like an engineering nicety. It’s actually a governance model for how growth teams should make decisions — and there’s a lot cross-border sellers can steal from it, even if they never install a single dependency.

The Problem: Your Experimentation Stack Is a Black Box

Let me be blunt about what most cross-border sellers are actually using for experimentation, because it’s not what the SaaS vendors want you to admit. If you’re running on Shopify, you’re probably relying on the built-in A/B testing in the theme editor, or you’ve bolted on a third-party app that injects JavaScript variants. If you’re doing Amazon FBA, you’re using the built-in Manage Your Experiments tool for listings, which gives you a rudimentary A/B test on main images and titles but tells you almost nothing about why one variant won. And if you’re running a headless storefront or a custom checkout, you’ve likely got a mishmash of client-side testing tools, server-side flags buried in configuration files, and a spreadsheet somewhere that’s supposed to track what’s live.

The core problem with all of these approaches is the same: the institutional memory lives in the wrong place. When a testing tool dies — and I’ve watched several good ones shutter over the years — all of that context evaporates. The Product Hunt commenter who mentioned Flipt Cloud, Reflag, and Hypertune all winding down in the same period isn’t exaggerating. That’s a real consolidation wave in the feature flag space, and it’s exactly why Dif’s maker, David Herzog, frames the origin story the way he does: he asked Claude Code to add feature flags to a project, and the AI agent got stuck when it hit the account-creation wall. The agent defaulted to writing process.env.SHOW_NEW_CHECKOUT instead, which is the software equivalent of duct tape — it works until it doesn’t, and it leaves zero trace of why it was put there.

For a cross-border seller, the equivalent failure mode is your virtual assistant or your agency making a change to your product page, your ad creative, or your pricing logic, and not documenting the reasoning. Six months later, you’re staring at a conversion rate dip and you have no way to reconstruct what changed. Dif’s answer — flags as markdown files in your repo, with every flag and experiment stored as a single .md file that captures context and product decisions — is a discipline that maps directly onto how you should be managing your growth experiments, even if your “repo” is a shared Google Drive folder and your “pull request” is a Slack approval.

Why Amazon sellers should care more than Shopify ones

Here’s a counterintuitive take: this tool matters more for Amazon FBA operators than for Shopify DTC brands, even though Dif will never integrate with Seller Central. On Shopify, you control the codebase, so you have the option of implementing proper feature flags if you have engineering resources. On Amazon, you have almost no control over the runtime environment — you’re renting space on a platform that runs its own experiments on your listings whether you like it or not. That means the only thing you fully control is your decision-making process: how you choose which listing variant to test, how you record what you learned, and how you ensure that knowledge survives staff turnover.

Amazon’s Manage Your Experiments tool will tell you that Variant B beat Variant A on conversion by 12 percent with 95 percent confidence. It will not tell you why — was it the angle of the product photo, the emotional trigger in the title, or the inclusion of a size chart in the second image? Without a structured way to record those hypotheses and learnings, you’re doomed to repeat the same tests with different products, because the person who ran the first test has moved on. Dif’s approach of keeping concluded experiments and inactive flags in the repo as context files, so that future agents and humans can see what’s already been tried, is exactly the learning-management system that multi-SKU Amazon operators desperately need — just applied to a process, not a codebase.

How Dif Actually Works — and What It Gets Right

The mechanics of Dif are refreshingly simple, which is why I think they’re worth understanding even if your engineering team is three people and a freelance contractor. You install it with one command, there’s no signup and no API key required, and it keeps flags in your repo as markdown files. When you run dif init, it adds instructions to your agents.md file, and it generates a context.json on each build so that coding agents — think Claude Code or similar AI tooling — have a better idea of what flags exist, what’s been removed, and what’s already been tried. A/B tests live in the same setup, even before you’re ready to run them.

The self-hosted version is free, which is a meaningful differentiator in a market where most feature flag tools charge per seat or per monthly active flags. The cloud piece, which costs money, is for getting a view across projects and having Dif propose changes — but those proposals still come back through pull requests. Git stays the source of truth. That’s not just an architectural choice; it’s a philosophical one. Chris Fowles, the other maker, makes the point explicitly in the comments: feature flags are important enough infrastructure that they shouldn’t disappear when a vendor does, and keeping Git as the source of truth means your experimentation history survives any single tool’s business failure.

The comment thread surfaces a few details worth noting. When asked about explaining old flags to new team members, Herzog explains that every flag and experiment is stored as a single .md file, and concluded experiments or inactive flags store context and product decisions. During setup, you define “product surface areas,” which function as running logs of what each screen has taught you. When asked about how it works with Claude, Fowles says that initializing Dif installs skills for Claude and other AI tools that help with authoring feature flags, generating surfaces, and concluding experiments. And when asked about A/B testing, Herzog confirms you can run simple and complex UI experiments, and when you’re ready, Dif Cloud reads your repo and turns every .md experiment file into a live view with exposures, lift, confidence intervals, and a ready-to-conclude flag.

The most interesting exchange, though, is about whether Dif can add insights on which flags are impacting user behavior the most. Fowles’s answer is that you turn on events in dif/config.yaml, and it works with Dif Cloud or any other analytics platform. Then the key line: “any time a flag or experiment is concluded the results are used as context for future experiments.” That’s the compounding learning loop that most growth teams never achieve, because their experiment results live in a dashboard that nobody reads after the test concludes.

Where the math breaks

Let me be the critical voice the makers explicitly asked for in their launch post — they said they’d genuinely love the critical version of feedback. The first limitation is that Dif solves the governance problem of feature flags, not the statistical problem of A/B testing. The tool tells you where experiments live and how to manage them as code artifacts. It does not, by itself, tell you whether your sample size is adequate, whether your traffic split is statistically sound, or whether you’re suffering from peeking bias. The cloud piece gives you exposures, lift, and confidence intervals, but that’s a feature of the paid tier, and it’s still not a substitute for a proper experimentation methodology.

The second limitation is that Dif is built for teams that already think in terms of repos, pull requests, and code review. That describes a Shopify headless operation or a DTC brand with a serious engineering function. It does not describe the vast majority of Amazon FBA sellers, who are running their business from Seller Central, a spreadsheet, and a WhatsApp group with their VA. For that audience, the entire concept of “git as source of truth” is alien. The tool’s learning-management philosophy is transferable, but the implementation is not.

The third limitation is the one I’d flag for any cross-border operator considering adopting this: it assumes you have the engineering capacity to maintain a codebase where flags are actually read at runtime. If your storefront is a standard Shopify theme with apps bolted on, you’re not in a position to implement server-side flag evaluation. You’d be using Dif as a documentation tool, which is valuable but is a fraction of what it’s designed to do. And if you’re not using AI coding agents, the context.json and agents.md features are solving a problem you don’t have yet.

What Cross-Border Sellers Can Borrow, Even Without Installing Anything

Here’s where I pivot from product review to operating philosophy, because that’s where the real value is for my readers. Dif’s underlying insight is that experimentation is only as valuable as your ability to learn from it, and your ability to learn is only as good as your institutional memory. The tool enforces that memory by making every flag and experiment a first-class citizen of the codebase, reviewed in PRs, with context attached. You can replicate that discipline without touching a line of code.

First, create a “decisions log” for every product page, every listing, and every checkout flow you control. It doesn’t need to be markdown in a repo. A Notion database, a Google Sheet, or even a well-structured shared doc works. The point is that every test you run — whether it’s a Shopify product page variant, an Amazon listing A/B test, or a pricing experiment — gets recorded with the hypothesis, the result, and the decision. That’s the .md file equivalent. The discipline is that you conclude every experiment explicitly, and you write down what you learned in a place where future you, or future hires, will find it.

Second, treat your AI assistants the way Dif treats coding agents. If you’re using ChatGPT, Claude, or any AI tool to draft product descriptions, ad copy, or listing optimizations, you should be feeding it your past experiment results as context. Dif generates a context.json on each build so agents know what flags exist, what’s been removed, and what’s already been tried. Your equivalent is a running document of “what we’ve tested and learned on this product category” that you paste into your AI prompt before asking for a new variation. The tool’s maker says the short-term benefit is that the agent stops re-proposing what has already been tested; the long-term hope is that synthesized learnings compound. That’s exactly the dynamic you want with your AI copywriting assistant — otherwise you’ll get the same three headline variations every time, because the AI doesn’t remember that you already tested them and lost.

Third, and this is the one that hurts, adopt the “git as source of truth” mindset for your entire operation. The reason Dif works is that it doesn’t trust the vendor to hold your history; it keeps everything in a format you own and control. Cross-border sellers should apply that same logic to their tooling stack. Your email marketing platform, your review management tool, your inventory forecasting software — all of them can wind down, get acquired, or change their pricing model overnight. The operators who survive those transitions are the ones who maintain their own records of what was tested, what worked, and what the metrics were, rather than trusting that the SaaS dashboard will always be there.

The Shopify angle: your theme is a codebase, whether you like it or not

Shopify merchants who’ve graduated to custom themes or headless storefronts are the most natural early adopters of a tool like Dif, because they already live in the world of repos and PRs. If you’re running a custom checkout flow or a headless storefront on Shopify Plus, the ability to ship a new feature behind a flag, review it in a PR, and roll it back without a full deploy is genuinely powerful. The specific use case that caught the attention of commenter Sansa Grey — running simple UI experiments like changing a button layout or onboarding flow — is bread-and-butter work for DTC brands trying to lift conversion rates. The difference between doing that with a client-side testing tool and doing it with server-side flags is the difference between guessing and knowing. Client-side tools can’t reliably measure server-side behavior, and they add JavaScript overhead that can hurt your Core Web Vitals — which, as of the 2024 Google algorithm update, is a ranking factor you can’t afford to ignore.

Where I Have Doubts

I want to hold onto my skepticism, because the cross-border space is littered with developer tools that were technically elegant and commercially irrelevant. My first doubt is about the business model. The self-hosted version is free, and the cloud piece is for cross-project views and AI-proposed changes. That’s a reasonable open-core model, but it means Dif is betting that growth teams will pay for the convenience of a hosted dashboard and AI assistance. The problem is that the teams most likely to adopt a git-native tool are also the teams most likely to be comfortable with self-hosting and cobbling together their own analytics. The “it’s open source” appeal that excited commenter fmerian is real, but open source users are historically the hardest to convert to paid tiers.

My second doubt is about the AI-agent integration being the wedge. The origin story is that Claude Code got stuck on account creation and defaulted to an environment variable, and Dif’s pitch is that it unblocks coding agents. That’s a real problem, but it’s a problem for a niche within a niche: teams that use AI coding agents and need feature flags and want those flags to be reviewable in PRs. That’s a much smaller market than the general feature flag space that Flipt, Reflag, and Hypertune were fighting over. The consolidation those tools experienced isn’t a signal that the market is ready for a new entrant; it might be a signal that the market is smaller than the venture-funded players hoped.

My third doubt is the one I keep coming back to for my readers specifically: most cross-border sellers are not going to use this tool, because they are not running custom codebases. The philosophical lessons are valuable, and I’ve spent most of this essay extracting them. But if I’m honest about adoption curves, the sellers who need this most — the ones running multi-brand DTC operations with headless storefronts — are also the ones who already have a growth engineering team that’s probably already using something like LaunchDarkly or Statsig. Dif’s differentiation is the git-native, markdown-file approach and the AI-agent context. That’s genuinely novel, but novel isn’t the same as necessary.

What I’d Watch / Test Next

If you’re a Shopify Plus merchant with a custom theme or a headless build, here’s what I’d do this week: spin up Dif in a staging repo and run a real feature flag through a PR review. Don’t just read the docs — simulate the exact workflow the makers describe. Create a flag, have a teammate review it, merge it, and then try to explain to a new developer what that flag does and why it exists. The test isn’t whether the tool works; it’s whether the markdown-file context actually makes the history legible. If it does, you’ve found a way to make your experimentation process survive staff turnover — which is worth more than any single A/B test you’ll run with it.

If you’re an Amazon FBA operator, don’t install Dif. Instead, take the learning-management philosophy and build your own “context file” for your listings. Set up a shared doc for your top 20 SKUs. For each one, record every Manage Your Experiments test you’ve run, the hypothesis, the result, and the decision. Then, the next time you ask an AI tool to rewrite a title or generate image concepts, paste that history into the prompt. Measure whether the suggestions improve. That’s the Dif loop, applied to a process instead of a codebase.

And for everyone running a DTC brand, watch the dif.sh Product Hunt page over the next few months to see whether the cloud tier gains traction. The consolidation in the feature flag space isn’t over, and the winners will be the tools that make experimentation knowledge compound rather than evaporate. Whether Dif is one of them depends on whether growth teams decide that their experiment history is an asset worth managing — and whether they’re willing to keep it in a format that outlives any single vendor. That’s a bet I’d be willing to make, even if I’m not ready to place it on Dif specifically.

Ready to Create Your Own?

Join thousands of brands creating high-performing video ads with VEONIB. No editing skills required.

Start Creating for Free