Every codebase has deep water.
Isobath charts the code that is slow and risky to change, so your team can plan around it before it sinks a sprint.
Ports of call2,400 codebases charted, from seed stage to public companies.
- Kestrel
- moraine
- Tallis&Co
- HALYARD
- ferrous
- Quillon
Most teams navigate by memory.
Ask where the risky code is and you get folklore: a name, a warning, a shrug. Here is what one team said about three modules, next to what Isobath measured.
-
auth/
Here be dragons.
12.0 mMuch safer than its reputation
-
payouts/
Probably fine?
29.8 m0.2 m short of the redline
-
ledger/
Ask Priya first.
41.3 mThe deepest water, and one owner
Every module, sounded.
Isobath drops a line into every part of your code and measures how deep it goes. Depth is the cost of changing that code safely.
Five signals. One number.
Why does ledger/ read 41.3 m? Depth is a weighted blend of what your repository already records. Hover a signal to follow it.
Read it like a chart.
Six symbols carry everything Isobath knows about your code. Here they are one at a time, all on ledger/, the deepest water in kestrel/platform.
-
01
Isobaths
Lines of equal depth, like contours on a hiking map. The closer they bunch, the faster the code gets risky. Inside the red 30 m line, every change needs a careful review.
-
02
Soundings
The measured depth of a single file, printed where it sits. 387 means
ledger/entries.tsis 38.7 m deep. -
03
Hazards
Code tied to recent incidents.
ledger/caused two in the last 90 days, so it stays marked until the fix ships. -
04
Currents
Knowledge that runs through one person. Every change to
ledger/flows through Priya: your bus factor, on the map. -
05
Courses
A planned refactor, drawn as a route around the deep water: six pull requests to bring
ledger/up to 25 m. -
06
Notices
What moved since last week.
ledger/went 3.1 m deeper, so Monday's notice flags it.
Every pull request, in section.
Cut the chart along the files a change touches and you get its section. Isobath draws one for every pull request and redlines the deep water before review starts.
- api/payouts.ts9.4 m
- payouts/retry.ts26.4 m
- ledger/entries.ts43.1 m
- ledger/balance.ts38.6 m
- notify/email.ts7.9 m
Revision 1. Two files sit below 30 m. Review with Priya Raman, who wrote 71% of ledger/.
The chart comes to where you work.
Follow one change to ledger/ through a week. The same depth turns up in Slack, in planning, in your editor and in review.
-
Mon 09:00 · Notice
In Slack
A weekly notice of what moved. This week
ledger/got 3.1 m deeper and a new hazard appeared.#eng-platformIsobath App
Notice 41 · kestrel/platform
- ledger/+3.1 mdeeper
- auth/−4.0 msafer
- payouts/retry.tshazardnew
-
Mon 11:30 · Course
In planning
Set a course that steers around the deep water, then watch the depth fall with each pull request.
Course · ledger/6 PRs · 9 weeks41.3 m todayTarget 25 m- Split
reconcile.ts - Tests around
fx.ts - Second owner for
balance.ts
- Split
-
Wed 15:10 · Editor
In your editor
Depth in the gutter while you type, so you know you are over deep water before you change a line.
ledger/entries.ts43.1 m- export function post(entry: Entry) {
- const fx = rateFor(entry.currency)
- if (entry.reversal) {
- return reverse(entry, fx)
- }
- const balance = reconcile(entry, fx)
- emit('ledger.posted', balance)
- }
reconcile()
43.1 m · 2 incidents · 1 owner
Isobath · last changed 3 days ago
-
Thu 10:02 · Review
In review
A depth check on every pull request, and the reviewer who knows that water.
OpenRetry failed payouts#8812- buildPassed in 2m 14s
- test418 passed
- isobath / depthDeep water: 2 files below 30 m
Suggested reviewer Priya Raman
wrote 71% of ledger/
Every day · Your CI
Your source never leaves your CI.
Everything above is drawn from a runner that reads code where it already lives. Only depth scores cross the boundary.
- SOC 2 Type II
- SSO and SCIM
- EU or US hosting
- Read-only access
- Hashed paths
Teams that charted their deep water.
“We always knew ledger was painful. Isobath showed us exactly where, and then showed the board it was getting better.”
-
“We stopped arguing about which refactor matters most. The chart settles it in one screen.”
Oskar LindHead of Engineering, Moraine
sync/33.4 → 21.0 m
-
“Our auditors asked which code touches card data and how risky it is. I sent them the chart.”
Nadia FaroukSecurity Lead, Tallis&Co
payments/28.9 → 19.5 m
-
“New engineers read the chart on day one. They know where to be careful before anyone has to tell them.”
Wen LiuStaff Engineer, Halyard
core/36.2 → 22.9 m
-
“Depth checks caught two risky merges in the first week. Both touched code with a single owner.”
Mateo RuizPlatform Lead, Ferrous
platform/31.7 → 20.4 m
-
“We put the depth chart in our board deck. It was the first tech debt slide anyone understood.”
Amara OkoyeCTO, Quillon
billing/39.1 → 24.7 m
Notes on measuring code.
Field notes from the team, and from the teams who chart with us.
Priced by the people who commit.
Managers, designers and anyone who only reads the chart are free.
Coastal
$1,080per month
60 engineers × $18, billed yearly
- Unlimited repositories
- Depth checks on pull requests
- Courses and weekly notices
- Slack, SSO and audit log
Before you connect a repository.
Does Isobath read our source code?
The runner parses your code inside your own CI to build syntax trees and the import graph. Only file paths and numeric scores are sent to Isobath, and paths can be hashed.
Which languages are supported?
TypeScript, JavaScript, Python, Go, Java, Kotlin, Ruby, PHP, C# and Rust. Other languages still get depth from history, ownership and incidents.
How long until the first chart?
Usually under 20 minutes for a repository with a few years of history. The chart then updates on every merge to your main branch.
Can a team game its depth?
Depth blends five signals, so pushing one in isolation barely moves it. Simpler, tested code that more than one person understands does.
Do you support monorepos?
Yes. Charts can be split by package, by service or by the teams in your CODEOWNERS file.
Take your first sounding.
Type a repository name to see what its chart could look like. Connect GitHub or GitLab for the real one.
Illustrative preview, generated from the name.