avatar vian's notes

Learning in public, one post at a time

  • HOME
  • CATEGORIES
  • TAGS
  • ARCHIVES
  • ABOUT
Home The Router My Colleague Showed Me
Post

The Router My Colleague Showed Me

Posted Jun 10, 2026 Updated Jul 9, 2026
By Alvian
2 min read

I first noticed it in passing. Colleagues had it open during work — a dashboard I didn’t recognize, a dropdown with more providers than I’d ever seen. I didn’t ask right away. Just filed it away as something to look into.

It was 9router.

I clicked through the GitHub repo. Readme. Screenshots. A dashboard with 40+ providers in a dropdown. Fallback chains. Format translation. Token compression.

My first thought: this is too much.

I already had OpenCode. It worked. Sure, I’d been hitting the subscription cap three weeks into every billing cycle, watching the spinner hang while the rate-limit error loaded. But that was a subscription problem, not a tooling problem. I could live with it.

I closed the tab. Went back to the auth bug.


A week later, it happened again. 1am. Deploy waiting. OpenCode Go had hit its $60 monthly cap. I was staring at a rate-limit error, thinking about how much work I still had left.

The fallback providers existed. They were right there in the account settings — a list of free tier options I’d never configured. I’d been treating them like a joke. A backup for emergencies. Something I’d get around to someday.

When you hit your paid subscription limit three weeks in, having fallback providers isn’t optional — it’s the difference between shipping a feature and waiting for the reset date.

That night I went back to the 9router repo. Read it again, slower. The 40+ providers stopped looking like noise. They started looking like redundancy. The format translation — converting between OpenAI, Anthropic, and whatever new provider dropped that week — started looking like the thing I’d been manually copy-pasting prompts to work around.

The overload I’d felt before wasn’t complexity for its own sake. It was the thing I didn’t know I needed until I needed it.


I forked it that weekend.

And then I couldn’t stop.

The monorepo was the first thing I tackled. Next.js monolith, routing engine and dashboard tangled together. I wanted to understand what I was actually running.

So the monorepo split became the first change after forking: the API server (Hono) got its own workspace, the dashboard (Next.js) another, the CLI got esbuild bundling. The best way to understand something is to take it apart.

See The Tools I Built Around OpenCode for what led here. See What I Changed in 9router for what happened next.


Sources: OpenCode Go documentation ($10/month, $60/month usage budget across three rolling windows: $12/5h, $30/week, $60/month)

Thanks to Mahardicka Nurachman and Valerian Dwi Purnomo for showing me 9router.

9router router ai provider
This post is licensed under CC BY-NC 4.0 by the author.
Share

Recently Updated

  • Building Memory Into 9router: A Proxy-Layer Experiment
  • The Tunnel
  • This Is My ADE
  • Why I Left GitHub Copilot
  • The Router My Colleague Showed Me

Trending Tags

9router tooling technical personal ai warp ade analytics postmortem agents

Further Reading

Jul 24, 2026

Building Memory Into 9router: A Proxy-Layer Experiment

Every coding AI I tried was great at problems, terrible at context. I’d start a new session and describe my stack, my preferences, my ongoing projects — everything the AI needed to be useful. Next...

Jul 8, 2026

This Is My ADE

I hit send on a prompt. Watched the spinner. Started calculating — was I past the cap yet? Three weeks into the billing cycle, OpenCode Go had hit its limit. I’d been conditioned to expect the erro...

Jun 17, 2026

What I Changed in 9router

The npm install output scrolled up the terminal. I watched, braced for the usual 30-second wait. It finished in four seconds. The node_modules folder was 2.5MB instead of 200MB. Then the server st...

Older
The Tools I Built Around OpenCode
Newer
What I Changed in 9router

© 2026 Alvian. Some rights reserved.

This blog is open source — view on GitHub

Using the Chirpy theme for Jekyll.

Trending Tags

9router tooling technical personal ai warp ade analytics postmortem agents