Ten years ago, I was a Principal Engineer at Microsoft (Yammer), and I was sick of managing Nexus servers.
Every few months, someone’s build would break because our artifact repository went down. We’d scramble to restart services, clean up disk space, debug JVM memory issues, or figure out why replication failed again. For something so foundational to our development workflow, it was remarkably fragile.
I kept thinking: this is infrastructure. It should be invisible. It should just work.
That frustration became CloudRepo. And today, ten years later, I’m celebrating something I never expected to feel proud of: building a boring business.
The Problem Nobody Talks About
Want to know something the marketing pages won’t tell you about most artifact repositories? They’re old Java applications that someone moved to the cloud.
Both Nexus Repository and JFrog Artifactory started sometime in the early 2000s. Both were designed for an era when developers ran everything on-premises, when “cloud” meant renting rack space at a data center. These products work. They’re mature. They have extensive feature lists.
But under the hood, they’re still fundamentally the same architecture: Java apps that store artifacts on local filesystems, with cloud storage bolted on as an afterthought. When you pay for “Cloud-Hosted Artifactory,” you’re paying for someone else to manage the same infrastructure headaches you’d have managing it yourself.
CloudRepo was different from day one. We built on DynamoDB and S3 because that’s what makes sense for storing and retrieving artifacts in a cloud-native world. No file system replication to manage. No JVM tuning to worry about. No complex clustering for high availability. No scheduled downtime or outage windows. AWS handles all of that.
Different architecture. Different economics. Different reliability.
What 10 Years Actually Looks Like
I could tell you CloudRepo has had 99.99% uptime for 10 years. But percentages are abstract. Let me be more concrete.
We’ve had zero scheduled maintenance windows.
Not “minimal” maintenance. Not “planned downtime during off-hours.” Zero. Our customers have never had to plan around CloudRepo being unavailable. There’s no email that says “CloudRepo will be down Saturday 2 AM - 6 AM for upgrades.” We deploy continuously, without interrupting service.
Our architecture means we can update the application without dropping connections. S3 and DynamoDB don’t go down for maintenance. The load balancers handle traffic seamlessly during deploys. This isn’t a brag about operational excellence - it’s just what happens when you build on cloud-native foundations instead of trying to cloudify desktop software.
99.99% uptime for 10 years, only three customer impacting incidents in all those years. Zero scheduled maintenance windows. That’s the kind of boring I’m proud of.
The Case for “Boring”
In 2016, when I started CloudRepo, the startup world was obsessed with hypergrowth. Raise money. Hire fast. Capture market share at all costs. Figure out profitability later.
I’d been through that before. I’d watched VC-funded startups burn through millions chasing growth metrics while making products worse for actual customers. I’d seen engineering teams build features nobody wanted because some investor said “enterprise customers need it.”
I wanted to try something different: build a product that solved a real problem, charge a fair price for it, and let customers pay the bills instead of investors.
This sounds obvious when I write it out. But in practice, it means saying no to a lot of things.
No to venture capital that would push us toward enterprise features small teams don’t need. No to the complexity that comes from trying to be everything to everyone. No to consumption-based pricing that punishes customers for actually using the product.
The result is a business that grows steadily, serves customers well, and lets me sleep at night. Some people call that “lifestyle business” like it’s an insult. I call it sustainable.
What We Got Right
Looking back at ten years, here’s what I’m most proud of:
Bootstrapped independence. CloudRepo has never taken venture capital. Every decision we make is about what’s best for our customers, not what’s best for our next funding round. When a customer emails us with a feature request, we can evaluate it on its merits instead of filtering it through “will this help us hit the metrics our investors care about?”
No egress fees. This was a deliberate choice from the beginning, even when it made our economics harder. Your CI pipeline can run 1,000 times a day and your bill stays the same. You shouldn’t have to think about whether downloading your own artifacts will blow up your budget.
Our competitors charge consumption fees because it’s profitable for them. JFrog Artifactory bills you for every gigabyte of data transfer. For an active development team with continuous integration, that can double or triple the base price. We decided that was unfair and built our pricing model around predictability instead.
Human support included. When you email CloudRepo support, or use our Intercom Widget, you get a response from a real person on our team (usually myself). Not a chatbot. Not a support representative reading from a script. Not a sales pitch to upgrade to an enterprise support contract.
Support is part of the product. It’s not an upsell. This seems basic, but apparently it’s radical in the repository management space.
Fair, predictable pricing. Our pricing page shows our prices. All of them. You don’t need to “contact sales” to find out what CloudRepo costs. You don’t need to negotiate. You don’t need to worry about consumption overage surprises at the end of the month.
Starter plan is $199/month. Team plan is $399/month. Business plan is $699/month. Unlimited users, unmetered data transfer, support included. That’s it. That’s the pricing.
What We Got Wrong
I’d be lying if I said we got everything right. A few honest admissions:
We were too slow to add Python package support. Our Maven and Gradle customers were happy, but we missed the PyPI wave for a few years. The Python ecosystem was growing fast, and we should have prioritized it sooner.
Our admin UI has needed a refresh for a while. It works, it’s functional, but it’s not beautiful. When you’re a small team, you make tradeoffs. We prioritized reliability and core features over UI polish. That was probably the right call, but it meant living with an admin portal that felt dated.
We underinvested in documentation early on. Our support team ended up answering questions that good docs would have handled. We’ve improved significantly, but those early years were rougher than they needed to be.
What’s Next
Ten years in, we’re investing in the next decade. Here’s what’s coming:
Single Sign-On (SSO) for enterprise customers who need it. SAML, OIDC, the works. This has been our most requested enterprise feature, and it’s finally happening.
Docker registry support. Container images have become as fundamental as JAR files for many teams. We’re adding native Docker registry support so you can manage all your artifacts in one place.
NPM packages. JavaScript isn’t going anywhere. Teams that use CloudRepo for Java often need somewhere for their npm packages too.
A completely rebuilt UX. Our admin portal is getting a ground-up redesign. Modern, fast, and actually pleasant to use. The infrastructure that never goes down deserves an interface to match.
Thank You
Ten years of a bootstrapped business doesn’t happen without customers who trust you with their most critical infrastructure.
To the teams who signed up in 2016 when we were nobody, who took a chance on a one-person company because the product made sense: thank you. Several of you are still customers today, and that means everything.
To the customers who sent detailed bug reports, feature requests, and feedback: you made CloudRepo better. Every email that started with “have you considered…” pushed us to improve.
To the developers who recommended CloudRepo to their colleagues, wrote about us in blog posts, mentioned us in Stack Overflow answers: word of mouth is how we grew. We don’t have a marketing team or advertising budget. You are our marketing team.
To my family, who tolerated late nights debugging production issues in the early years, weekend deploys, and my tendency to check my phone during dinner “just in case”: thank you for your patience with a founder who couldn’t fully switch off.
The Next Ten Years
I don’t know what artifact repositories will look like in 2036. Maybe AI will be writing and deploying code with no human involvement. Maybe artifacts will be streamed on demand instead of stored. Maybe something will replace Maven that we can’t even imagine yet.
What I do know is that CloudRepo will keep doing what we’ve always done: solve real problems for developers, charge fair prices, and make infrastructure invisible.
99.99% uptime for 10 years. Zero scheduled maintenance windows. No egress fees. Human support that actually helps.
That’s the kind of boring I want to build for another decade.
Been with us since the early days? I’d love to hear from you. Drop me an email and tell me about your CloudRepo journey. And if you haven’t tried CloudRepo yet, start your free trial and see what ten years of cloud-native infrastructure feels like.