Depot exists to solve a specific problem. Make container image builds faster for everyone with as little effort as possible. Builds should be fast by default, regardless of your experience with containers, Docker, `Dockerfile`, etc. The Docker build process should be smarter and reuse as much previous work as possible. Depot should enable faster iteration so you can build, get feedback, and collaborate with as little waiting as possible.
We first started thinking about the first iteration of Depot at the height of the pandemic back in 2020. The first idea came from encountering the same problems over and over again in our day jobs. Running multiple platform and infrastructure teams required us to maintain and optimize the build process for a wide variety of containerized applications. From your traditional Node web app to highly optimized Rust database services.
Doing this for hundreds of services over the years has revealed a few common problems:
- Writing a fast Dockerfile is hard. It's possible to write one that works right away for simple things. But there are often hidden complexities that can cause build times to explode inadvertently. On the other side, there are optimizations you can implement that make them incredibly faster. But neither the complexities nor optimizations are intuitive for a large percentage of developers out there.
- Generic CI providers are great at building the entire ecosystem of software. But they are generally not great at building container images quickly. Oftentimes, they are the source of slow builds themselves. They may or may not support newer Docker features and constrain resources significantly. Like limited disk space for caching.
- The caching built into Docker/BuildKit is naive and doesn’t promote reusing as much work as possible. This requires tedious restructuring of a Dockerfile to optimize for getting as many cache hits as possible. But even then, your first invalidation requires everything after that point to be rebuilt.
Depot is our solution to all of these problems for ourselves, and we believe for you as well!
It’s the tool we wish existed dozens of times optimizing various Docker builds. We are a remote container build service that allows you to get a built image 2-3 times faster than Docker in CI. We run builders with higher specs than traditional CI providers and keep a persistent cache for your project. So every build, cached and uncached, is fast.
Depot is a tool built by real people for real people.
We believe in building software that solves real problems for real people experiencing them. We want our tools, services, and interactions to be simple as well as enjoyable.
Depot is our way of making the world a little bit better by doing what we can with the skills we have. We want to make the lives of our customers a bit easier. If we can save you a bit of time waiting for a build so you can sign off a bit early, focus on a passion, or spend time with your family, that’s a win for us.
What we have built isn’t for everyone and we are good with that fact. Everyone has different perspectives on what works and they should follow what works for them. It’s one of the glorious things about the modern technology world we live in.
Depot exists to provide us and our employees a livelihood while creating incredible experiences for our users. We want to build a sustainable business without building useless junk for our customers or overworking our employees (or ourselves). The world is full of adventures, peaks, valleys, and moments. To sit back and think a developer tool is the most important thing in the world is naive.
We are building out Depot because we can’t change the world, but we can make it a bit better. We can provide a solution to a problem that makes our users’ lives easier. But we can do it sustainably, without sacrificing the personal or professional lives of our employees
If you are looking to speed up your Docker builds, please check out what we are building here. If you have questions or other problems you are facing, please don't hesitate to reach out to us.