You've seen the pattern. You Google "JSON formatter," land on some tool that works fine, and then you notice the sidebar. CSV converter. Base64 encoder. YAML validator. Hex color picker. Markdown preview. A mortgage calculator, somehow. The tool you came for is now one tab in somebody's app drawer, and you're left wondering when a JSON formatter decided it needed to calculate your monthly payment on a two-bedroom in Denver.
We build single purpose software tools. Every tool in the AppCrib catalog does exactly one thing. Not two things. Not one thing with a "Pro" tier that unlocks the second thing. One thing.
This isn't laziness. It's the whole point.
Why does every free tool eventually become an everything tool?
The lifecycle is predictable enough that you could set a cron job for it.
A developer builds a focused utility. It solves one problem well. People find it, use it, share it. Traffic grows. The developer thinks: "What if I added a few more features?" So they bolt on a converter. A validator. An API endpoint. Maybe a dark mode toggle that requires an account for some reason.
Then comes monetization pressure. The developer introduces tiers. The free version gets slower, or limited, or watermarked. Features that made the tool worth using migrate behind a paywall. What started as a clean utility is now a SaaS product with a pricing page, a comparison table, and a blog post explaining why the "Starter" plan is "perfect for individuals."
The original tool, the one people actually needed, is now buried under the weight of everything it was never supposed to be.
What if the tool just... stayed small?
At AppCrib, we enforce this with a system we call scope locks. When a tool is designed, it gets a complexity score. Tools that score in the micro tier (0-24) are locked there permanently. scope_lock=true is a constraint baked into the project definition, and it's not a suggestion. It's a hard ceiling that no one overrides.
A scope-locked micro tool has no authentication. You don't need an account to format JSON. No backend. Your data never leaves your browser. No billing, no Stripe, no "upgrade to Pro." Hard caps on size: max 3 routes, max 15 components. Free, ad-supported, forever. The only external service allowed is consent-gated analytics.
If a tool needs more than that, it's not a micro tool. It gets a different classification and a different build process. But the micro tools stay micro. That's the deal.
What does "one job" actually look like?
jsonr formats JSON. Paste messy JSON on the left, formatted JSON appears on the right. Toggle between 2-space and 4-space indentation. Minify. Copy. The tagline is "Paste JSON. Done." and we meant it literally.
Diffpad compares JSON and YAML. Two panes, paste data in both, hit Compare. Additions, deletions, modifications. Color-coded, line by line. No merge functionality. No version history. No collaboration features. It compares things. End of scope.
Then there's lintcron. It validates cron expressions. Paste one in, get instant field-by-field feedback, see the next scheduled runs, read a plain-English description of what the expression actually does. It won't schedule anything for you. It won't connect to your server. It just tells you if your cron is broken.
None of these will ever sprout a sidebar full of unrelated utilities. The scope lock prevents it structurally, not just philosophically.
Why constraints are the whole product strategy
There's a popular belief in software that constraints are what you endure until you raise enough money to remove them. We think that's backwards. Constraints are what keep the product honest.
Our complexity tier system isn't bureaucracy. It's architecture. A micro-tier tool gets template-first methodology: match the problem to a proven scaffold, customize the specifics, ship it in hours. No design committee. No "phase two" roadmap. No backlog full of features that exist because someone thought they'd be cool.
The tier system means a JSON formatter scores about 12 on our complexity rubric. At that score, the methodology is locked to template-first. No auth gets added. No backend gets provisioned. No billing integration sneaks in. The tool is structurally prevented from becoming the thing you hate about every other free tool on the internet.
And because there's no backend, there's nothing to maintain and nothing to breach. Your data stays on your device. The tool runs in your browser tab and forgets you exist the moment you close it.
The "Pro" tier is a broken promise
You know exactly how this goes. A free tool adds a paid tier. The free version stops getting better. Bug fixes slow down. New features land exclusively in Pro. The free tier becomes a demo: technically functional but deliberately limited in ways designed to frustrate you into paying. The conversion funnel replaces the utility as the product's actual purpose.
We run ads. We're straightforward about that. But ad support means the tool you use today is the same tool you'll use next year. There's no incentive to cripple the free version because there is no paid version. The free version is the only version.
The tools still get dark mode, responsive layouts, keyboard shortcuts where they make sense, fast loads. They're built to the same bar as paid software. The difference is nobody's going to email you in 14 days to remind you that your trial is expiring.
This only works if you actually commit to it
The easy version of this philosophy is to say "we believe in focused tools" and then quietly add features when growth stalls. We built constraints into the system specifically to make that impossible.
scope_lock=true isn't a guideline. It's enforced at every phase of our build pipeline. If a tool is scoped as micro and someone tries to add authentication, the system catches it and sends it back. Not because a manager said no, but because the architecture literally won't allow it.
That sounds rigid. It is rigid. That's the point. The rigidity is what protects the tool from becoming the bloated, gated, kitchen-sink product that made you go looking for an alternative in the first place.
One tool. One job. Every time.
We're building dozens of single purpose software tools, and every one of them will do exactly one thing well. No feature creep. No "Pro" tier. No sidebar full of tools you didn't ask for.
You came here to format JSON, compare YAML, or validate a cron expression. The tool does that, and then it gets out of your way.