Product Update
9 min
How to Build a Vercel Alternative In-House with Tempest

Jonathan Xavier
Content Strategist
May 7, 2025
Vercel is a wildly popular platform among frontend developers—and for good reason. It transforms frontend deployment into a magical experience: just commit your code to GitHub, and Vercel automatically builds, tests, and deploys it into a live website. This simplicity allows developers to focus purely on writing code, dramatically shortening development cycles and boosting collaboration. No more waiting for overwhelmed DevOps teams—developers can instantly spin up preview environments, gather feedback, make quick changes, and ship faster than they ever thought possible.
Yet despite these benefits, Vercel isn't perfect for everyone. Many organizations can’t or won’t use it, which leaves their frontend teams thinking this kind of developer experience and operational agility is forever out of reach. The only alternative is building an internal tool—but good luck finding the resources to put together something even a fraction as usable.
Or so you might think. But the reality is that it’s now easier than ever to build and maintain an internal platform like Vercel, thanks to Tempest. With Tempest, you can build your own internal version of Vercel—customized precisely to your organization's needs—in as little as three weeks, even without a large platform engineering team. In this blog, we’re going to show you how.
Why Companies Struggle to Adopt Vercel
But first, let’s look at the reasons why this might be a good idea in more detail. If the end goal is simplicity and ease of use, doesn’t it make more sense to just use Vercel rather than build your own internal tool for the same purposes? It’s the industry standard for a reason, after all.
In many cases, that’s true. However, Vercel also has a few key drawbacks that make it a nonstarter for a lot of companies:
Opinionated stack: Choosing Vercel means committing to an entire frontend stack dictated by its specific architecture and tools, limiting flexibility as teams and projects evolve.
Public cloud lock-in: Organizations are limited to public cloud infrastructure, restricting hybrid or private cloud options, critical for sectors like finance or healthcare.
Limited complexity handling: Vercel struggles with apps demanding extensive computation or complex backend integration tightly coupled with the frontend.
Optimized strictly for speed: Vercel removes friction between coding and deployment, making manual reviews, approvals, or automated compliance checks difficult to integrate.
Costly bandwidth: Vercel isn't priced like a Saas provider, it's priced like a hosting provider—and a costly one at that. Bandwidth can quickly become prohibitively expensive for large organizations, often far exceeding basic cloud infrastructure costs.
Because of these constraints, companies with complicated business logic, stringent security and compliance needs, or significant bandwidth usage—often large tech firms, financial institutions, or growing enterprises—typically find themselves unable to use Vercel, despite recognizing its appeal.
There are two main types of organization for whom Vercel remains out of reach:
Highly regulated or security-focused industries: Companies operating in sectors like finance, healthcare, or government face stringent compliance and security requirements that Vercel's public cloud model and streamlined approach can’t accommodate.
High-traffic, bandwidth-intensive businesses: Companies experiencing rapid growth in web traffic quickly find Vercel's bandwidth costs unsustainable. Even those that begin on Vercel and enjoy its benefits often face tough decisions when their usage scales significantly, feeling trapped between escalating costs and the daunting prospect of transitioning off the platform.
These constraints leave many teams feeling stuck, convinced they don't have the resources, manpower, or budget to make a change. Yet with the advent of powerful, flexible developer platforms like Tempest, that’s no longer true.
How Vercel Actually Works
To appreciate why building a frontend deployment platform has traditionally been so challenging—and why Tempest simplifies this process significantly—you need to understand what's happening under the hood of platforms like Vercel.
At its core, Vercel uses a framework it developed called Next.js. We can see how this looks in production by looking at the recommended architecture for OpenNext, an open source project for self-hosting Next.js.

Source: OpenNext
This framework includes three key layers:
Core Layer: Dynamically builds websites using serverless functions, pulling assets from cloud storage, and caching these pages to reduce compute requirements and minimize latency.
Revalidation Layer: Maps cached pages to tags, invalidating them when they're outdated or when content updates occur, typically triggered by changes committed to the repository.
Warming Layer: Keeps Lambda function instances alive to avoid frequent cold-starts, ensuring the system responds quickly even when rebuilding pages.
The process appears magical, but it’s straightforward:
When a user first requests a page, the core layer checks if a cached version exists.
If no cached page exists, the serverless functions compile the page by fetching the necessary databases, asset files, and CSS, then cache the completed page.
Subsequent page requests load instantly from the cache.
If the source content changes (like a GitHub commit), the revalidation layer deletes cached pages, prompting fresh builds for future requests.
Deleted pages are automatically invalidated, returning 404 errors.
Each individual component—assets stored in Amazon S3, builds executed via Amazon Lambda, and caching managed through CloudFront—is likewise fairly simple on its own. Even a company with a relatively lean platform team should have no problem implementing them, particularly if they start from a good baseline with open-source tools like OpenNext.
The challenge, rather, is orchestration. Stitching all these pieces means manually configuring multiple services and managing complex settings in Amazon Web Services. This task is tedious and requires dedicated platform engineers.
For lean engineering teams, it quickly becomes a non-starter. The resulting system often ends up being a tangled web of configurations difficult to maintain, troubleshoot, or even fully understand. If the lead engineer moves on, good luck maintaining all that. In many cases it might be easier for their successor to start over rather than learn how everything was initially set up.
System level visibility is also problematic. Without a centralized data ingest point, comprehensive logging and metrics need to be manually integrated and managed across the whole hodgepodge of services, further compounding complexity.
Putting It into Practice

Here’s an example of what this looks like in Tempest: the actual recipe we use to deploy frontend code at the company. At Tempest, we use another web framework, Svelte, running on Google Cloud, rather than Next.js running on AWS like Vercel. But the first party integrations are similar, so you could make a recipe built to manage Next.js, or React, or Vue, or anything else you wanted and it would be structured very much like this.
As you can see, this is much simpler than the OpenNext example. There’s 3 main components, all built with our first party integrations in Tempest.
A GitHub Repository resource, which defines which code repository the recipe should work from. Users can either bring their own existing repository, or Tempest will create a new one.
A Build Trigger resource, which builds the Dockerfile in the repository when new code is pushed.
A Run Service resource which deploys the built application to Google Cloud Run.
In this setup, we have 3 build triggers to handle different parts of the development process, which trigger automatically based on actions taken in the code repository (or manually in response to an explicit command to push to production, in the case of the Production environment build trigger).
From the ops team side, this is all built using native Tempest functionality, so there’s very little scripting or coding required. The hardest bit is the dockerfile, but even that isn’t very heavyweight (ours is about 15 lines of code).
From the developer side, the user experience couldn’t be more elegant. When they want to create a new project, they just go to a form which only requires a single variable, the project name.

This will create a new GitHub repository for them to work from, which they can use to start coding immediately. Whenever they make a pull request to this repository, it triggers the preview build trigger, which will automatically build a preview environment and deploy it to Google Cloud, so they can see their code running immediately and iterate on it. When the code is ready for wider testing, making a commit to the repository automatically triggers the sandbox build trigger, which deploys the code into our staging environment. Once it’s undergone extensive QA on stage, it’s pushed into production by activating the production build trigger explicitly in Tempest. This is entirely self-serve for the developers from start to finish, with no need for further involvement from platform engineers once the recipe is deployed.
How Tempest Makes Building Frontend Platforms Easier
Tempest eliminates many of the difficulties traditionally associated with creating your own frontend deployment platform. With Tempest:
Manage off-the-shelf components effortlessly: Native Tempest functionality allows straightforward management and integration of common cloud services.
Deploy serverless functions seamlessly: Serverless functions can be containerized using Docker and easily deployed as internal apps within Tempest.
Enjoy Infrastructure-agnostic orchestration: While initial setups might commonly utilize Amazon Web Services, Tempest itself is completely infrastructure-agnostic. It can orchestrate platforms across any cloud provider, multiple clouds, or even on-premise infrastructure.
Gain unified visibility and control: Tempest provides a single source of truth, logging basic activity by default. Advanced analytics, error tracking, and security monitoring are easy to integrate with solutions like DataDog or Sentry using native integrations or your own custom apps.
Extend and evolve as your needs evolve: Rather than being constrained by rigid frameworks, Tempest enables you to add as many custom steps as needed in your deployment workflows, allowing complete customization to fit your unique requirements.
Conclusion
Tempest offers a powerful, practical path forward for teams that previously found themselves unable to access streamlined frontend deployment. By dramatically simplifying orchestration, enhancing visibility, and providing infrastructure flexibility, Tempest empowers even lean engineering teams to quickly build and easily maintain an internal platform comparable to Vercel. Instead of being locked into restrictive or costly external services, teams can leverage Tempest to achieve tailored, robust deployment solutions that grow and evolve alongside their unique organizational needs. Tempest changes the game for how platforms like this are built and deployed, and that puts Vercel-like agility within reach for more organizations than ever before.
Share
