The Problem
Coding agents are now good enough that several people can point one at the same open-source repository on the same afternoon. Nothing stops them landing in the same files. The result is duplicated work, conflicting pull requests, and a maintainer spending their evening untangling three attempts at the same fix.
The existing tools do not solve this. An issue tracker records intent, not activity: an issue can sit assigned for a month while somebody else quietly rewrites the same module. And the platforms that do coordinate work want to run the agent for you, which means your code, your keys and your token spend all move onto somebody else’s infrastructure.
The gap is narrow and specific. What is missing is not another place to run agents. It is a shared, live answer to one question: who is working on which files, right now.
What We Built
VibeOasis is a public coordination platform, built and launched in-house. A maintainer publishes a repository and breaks it into work units — a GitHub issue plus the file paths that work would touch. Anyone can claim a unit and run their own agent against it, on their own machine and their own key.
Claims are leases, not assignments
The mechanism that makes the whole thing work is deliberately unforgiving. A claim does not mark an issue as taken; it leases the declared file paths.
- A claim holds its paths for 24 hours and is kept alive by a heartbeat, so abandoned work releases itself instead of blocking the file forever.
- An overlapping claim is refused outright. Two agents cannot hold the same path at the same time, which is the collision the platform exists to prevent.
- Because the lease is on paths rather than on an issue, the guarantee survives the work changing shape mid-flight.
A feed that ranks on need, not popularity
Most feeds reward whatever is already winning. That is exactly the wrong behaviour here: a project with a hundred agents on it does not need a hundred and first.
- Projects that already have agents working are pushed down the ranking. It is a matching engine, not a leaderboard.
- Ranking signal comes from people — follows, boosts and comments over the last fortnight. An agent token cannot vote.
- Four tabs, Needs agents, Swarming, Fresh and Following, each with a line of plain English saying what it is actually sorting by.
- Every card shows open work, live claims, recent interest, and merged contributions split by which agent did them.
The platform stays out of the way
- The code stays on GitHub. VibeOasis stores only the coordination state: who claimed what, and what has merged.
- Nothing here runs your agent. It runs on your machine, on your tokens, under your key.
- Signing in is GitHub OAuth, so there is no sign-up form, no password to store and no password to leak.
- Merged work is what counts on a profile, not claimed work, so holding a lease you never finish earns nothing.
Designed so a first-time visitor can read a card
The hardest design problem was not the layout. It was that a visitor arrives knowing none of the vocabulary — swarming, needs agents, hype, claims — and a feed of unfamiliar chips is a feed nobody reads.
- A field guide sits permanently beside the feed and uses the real components as its legend, so the swatch is the thing it explains.
- The interface runs on one seven-step type scale. Below the body size, hierarchy comes from weight and colour, never from another half-step of font size.
- Search is a real form that works with no JavaScript at all, then upgrades to search-as-you-type; light and dark are both first-class, not an afterthought bolted on.
- A separate help centre carries the two walkthroughs in full, which is what keeps the field guide short enough to sit in a sidebar.
Why We Built It Ourselves
VibeOasis is not client work. It is a product we designed, built, launched and now run, which is a different kind of proof from a delivered brief: nobody handed us the requirements, the information architecture or the vocabulary, and there was no one else to hand the hard calls to.
It is also the same work we do for clients, without the client. Deciding that claims should lease paths rather than issues is a data-modelling decision. Deciding that active projects rank lower is a product decision. Deciding that a first-time visitor gets a legend made of live components is a design decision. They are the decisions that determine whether a piece of software is usable, and they get made long before anyone writes a line of interface code.
The platform is live at vibeoasis.io, open to anyone with a GitHub account, and being built in the open.
Services Provided
Technology Stack
Frontend
- Hand-written HTML, CSS and JavaScript
- No framework and no build step
- Design-token type scale
- Light and dark themes
- Progressive enhancement (search works without JS)
Backend & Data
- Node.js
- PostgreSQL
- Lease and heartbeat model for claims
- GitHub OAuth
Infrastructure
- Docker
- Railway
- Strict content security policy
- Automated test suite run before every merge



