Building Better Developer Tools
What makes a great developer tool? We explore the principles behind building software that developers actually want to use, from fast feedback loops to thoughtful defaults.
Developer Tools
Developer tools have a unique challenge: they need to serve people who build software for a living. These users have high standards, little patience for friction, and an uncanny ability to spot when something feels off.
After years of building tools for developers, we've distilled our learnings into a few core principles that guide everything we build.
Speed is a feature
Developers switch contexts constantly. Every millisecond of latency breaks their flow. A search that takes 500ms feels instant. One that takes 2 seconds feels broken. This isn't about perception—it's about maintaining the mental model of what you're building.
That's why we obsess over performance. Our hybrid search completes in under 50ms. The UI renders at 60fps. Every interaction should feel like it happens before you've finished clicking.
"The best developer tools feel like extensions of your own mind—fast enough that you forget they're there."
Defaults should be opinionated
Configurability is a trap. Every option you add is a decision your user has to make. Most won't make it—they'll stick with the default. So your defaults need to be excellent.
When building rithm, we asked ourselves: if a developer downloads this today, what experience should they have in the first 5 minutes? The answer shaped everything:
- Auto-detect project structure and start indexing immediately
- Sensible ignore patterns (.gitignore, node_modules, etc.)
- Intelligent defaults for Claude model selection
- Zero configuration required to get started
Transparency builds trust
Developers don't like black boxes. When something goes wrong—and it will—they want to understand why. They want to see the logs, trace the execution, understand the data flow.
This is especially true for AI tools. When Claude makes a suggestion, developers want to know what context it received. When a search returns unexpected results, they want to understand the ranking.
We build with transparency in mind:
- Every Claude session shows exactly what context was provided
- Search results include relevance scores
- Indexing progress is visible and detailed
- All data stays local by default
Code speaks louder than words
Here's an example of how we structure a task spec in rithm. The format is designed to give Claude maximum context with minimum noise:
## Task: Add OAuth Login Flow
### Acceptance Criteria
- [ ] User can log in with Google
- [ ] User can log in with GitHub
- [ ] Session persists across browser refresh
### Constraints
- Must not break existing password auth
- Use existing session store
### Context
- Auth module: src/auth/
- Session handling: src/lib/session.ts
This structure emerged from hundreds of iterations. It's the minimum viable context that produces consistent, high-quality results from Claude.
Building for the long term
The best developer tools become infrastructure. They're not just used—they're depended upon. That's a responsibility we take seriously.
We're building rithm to be fast, transparent, and opinionated in the right ways. We hope it becomes a tool you can depend on.
Interested in trying it out? Download rithm for free and let us know what you think.
The rithm Team
Building tools for AI-assisted development