InsForge Backend Branching - Git style branching for your backend
byβ’
Git-style branching for your entire backend. Spin off a branch to get a full, isolated copy of everything: your database, storage, auth, edge functions, and more, ready for your agents to experiment on without touching production.

Replies
InsForge
Hey Product Hunt π I'm @hanghuang, co-founder of InsForge.
InsForge makes it incredibly fast to build powerful fullstack apps with your coding agent. But once you have real users, letting your agent touch your production backend directly gets dangerous fast. One wrong migration and your entire database can be gone in seconds.
That is exactly why we built Backend Branching.
A branch is a clone of your whole backend, not just the database. Your Postgres, auth, storage, edge functions, configs, all of it. Just ask your coding agent to spin one up, and it gets a real, isolated backend to build on at full speed. Your production stays completely safe.
When your agent finishes, it kicks off the merge, but nothing goes live yet. You get a PR-style diff to review first, and it only merges after you approve. If there is a conflict, the merge is blocked so your agent can go fix it. And anytime you want a clean slate, reset the branch back to main.
This is what agentic coding has been missing. Your agents build faster in real, isolated environments, and production is always safe.
We're live today and can't wait to see what you and your agents build. π Got questions? Drop them below, or join our Discord.
Huge thanks to our hunter @garrytan for hunting us π
@hanghuangΒ @garrytanΒ Congrats on the launch Hang. Looks cool, maybe a bit more practical info on conflict handling?
InsForge
@garrytanΒ @zolani_matebeseΒ we will be summarizing and listing the conflicts, and you can directly copying and pasting them into your coding agents :)
@hanghuangΒ @garrytanΒ Love this. The biggest fear with coding agents isn't generating code anymore, it's giving them access to production π
The backend branching approach feels like the missing safety layer for agentic development. Curious to know, how long does it typically take to spin up a full backend branch, and are there any limits on the number of concurrent branches?
InsForge
@garrytanΒ @sagar_deoreΒ no limits! And our goal for next quarter is to make branching even cheaper and faster
InsForge
@bhawna_rajputΒ thatβs where diff comes in: you can review diffs
Backend branching sounds obvious in retrospect, but the hard part is always state. Code branches are cheap because diffing text is cheap. What happens when two branches have diverging database migrations, or one branch mutates shared infrastructure that the other branch depends on? Curious how InsForge handles merge conflicts at the data layer, not just the code layer.
InsForge
@fberrez1Β state is the hard part. We run a 3-way diff across backend objects, not text files. If parent and branch diverge on the same table / policy / function / config, merge is blocked with conflict context. User-data rows are isolated and not auto-merged into prod.
InsForge
@fberrez1Β we track the state of the branch and showing diffs (compare to parent)
InsForge
@fberrez1Β We want agent to understand the state and we provide the guidance on the changes by using the state diff. Agent should be understand the state diff and understand which one should go first and how does it resolve in the data layer.
Just like humans will need to look at the conflicts and see if it's just a migration timestamp difference, or it actually is touching the same resource. We provide agent the right context to do so as well.
InsForge
@fberrez1Β Yes β backend branching is fundamentally different from code branching. We've written a blog post that walks through how it actually works under the hood: https://insforge.dev/blog/behind-backend-branching
Does the PR-style diff show only schema changes, or also auth, storage, function, and config changes?
InsForge
@ea_zΒ Great question. Itβs not schema-only.
The diff covers database schema changes, but also mergeable backend config like auth providers, storage bucket config, edge function definitions, email templates, realtime config, and schedules. We intentionally keep user-data rows out of auto-merge, because branch data is often test data and shouldnβt pollute production.
InsForge
@ea_zΒ we show everything! And the best part is your coding agents can help you to reivew those diffs!
InsForge
@ea_zΒ data and config changes as well! and those are considered backend changes that your agent should be aware!
Gro
Agentic coding needs guardrails like this. Speed without isolation is risky.
InsForge
@lily_liu8Β Exactly. Agents can move incredibly fast, but backend state is where mistakes get expensive.
The goal is to give them a real backend to work against, while keeping production untouched until the changes are reviewed and merged.
InsForge
@lily_liu8Β 100%
Triforce Todos
InsForge
@abod_rehmanΒ Thanks Abdul! Thatβs exactly the safety layer we wanted agents to have.
For parallel branches, we use a three-way diff: parent at branch creation time, parent now, and branch now. If the branch and parent both changed the same object in different ways, the merge is blocked and we surface a conflict report instead of silently overwriting anything. The preview is shown before applying, so the agent or developer can resolve it on the branch and try again.
InsForge
@abod_rehmanΒ we will run 3-way diff to trace diffs and conflicts. If there's any conflicts, the merge will be blocked, and we will provide context of the conflicts to your coding agent, then it will resolve it for you!
Git-style branching for backend logic is a pattern that applies further than just APIs β financial model versioning has the same core problem. When running multiple scenario branches in a DCF or project finance model (base / downside / stressed), you need clean isolation so you can test an assumption without corrupting the live version. Same thing git solves for code.
I build financial modeling tools at ModeLoop (modeloop.net) and the explore-an-assumption-without-breaking-the-main-model problem comes up constantly in real deal work. Do you see demand from quant or finance teams, or is InsForge squarely targeting software infrastructure?
InsForge
@samir_asadovΒ exactly. Anywhere state matters, branching matters. Weβre focused on software infrastructure first, but the same isolation-before-merge pattern definitely applies to financial models too.
InsForge
@samir_asadovΒ you can build any kind of software / app on top of InsForge, we have clients across so many different industries
Tabstack
@InsForge is one of the best OSS products launched on Product Hunt this year from my perspective.
S/O for this new launch, @hanghuang and team! Keep up the great work.
InsForge
@fmerianΒ thank you so much for the kind words!!!
Lessie AI
When using Claude Code or Cursor, backend state is usually the scary part. Branching the whole backend makes the workflow feel safer.
InsForge
@alexia_liΒ Totally agree. With Claude Code or Cursor, frontend iteration is already fast, but backend changes need a safer loop.
Thatβs why we made the branch a full backend environment instead of just a database copy, so agents can test auth, storage, functions, and database changes without touching production.
InsForge
@alexia_liΒ this is exactly why we built backend branching XD
DeckSpeed
This could be even clearer if the first screenshot showed everything included in a branch: DB, auth, storage, functions, config.
InsForge
@hanzhizhang0405Β that's fair
How do you handle secrets and environment variables across branches?
InsForge
@xiao_zhang9Β We treat secrets and environment-specific values very conservatively.
A branch gets its own environment, and values like API keys are regenerated so requests donβt accidentally point at the wrong backend. During merge, env-specific fields such as API keys, OAuth client secrets, redirect URLs, and similar config are excluded from being pushed back to production. So the branch can be realistic for testing, but it canβt accidentally overwrite prod secrets.
InsForge
@xiao_zhang9Β we will create entire new env variables, and encrypted, then send to your coding agent. So your coding agent will switch to the dev branch automatically.