Tools

Deploying an AI-built website on Vercel: the complete tutorial

The first deployment takes a minute. The domain name and the plan choice take the rest of the day.

Louis Graffeuil
Founder Tandem
Published
7 minread
Pale clay browser window lifting off a round pad, linked by a coral cable to a small dark server block

Deploying a site on Vercel takes about a minute once the code sits on GitHub. The rest of going live takes half a day, and it happens elsewhere. The domain name, the records at your domain host, the plan choice and the region your code runs in make up the real list of things to settle.

This tutorial follows on from our account of building the Tandem website with Claude. That article covers how the site was designed and coded. This one explains only how to make it public, step by step, without assuming you are a developer.

Vercel is a hosting and deployment platform for websites and web applications. It reads your code on GitHub, builds it and serves it to visitors. You manage no server and you touch no command line.

Diagram of the four steps of going live, from the local machine to GitHub, Vercel and then the domain name
The first three steps are free and fast. The fourth is the one that costs people entire days.

What to have ready before you start

Three things are enough, and none of them calls for particular technical skill. Allow twenty minutes to gather them before you open anything.

  • The site code on your machine. If you built it with a coding assistant, it already lives in a folder on your computer.
  • A GitHub account. Free, created in two minutes, this is where the code will be stored and versioned.
  • Your domain name, and above all the credentials for the account where you bought it. OVHcloud, Gandi, Namecheap or another, it hardly matters, but you need to be able to log in.

That last point blocks projects more often than the other two. Many companies bought their domain eight years ago through a supplier who has since moved on. Recovering access can take several days, so start there.

Step 1, send the code to GitHub

GitHub stores the code online and keeps the full version history. Every change is tracked and reversible, which matters the day an edit breaks a page.

If you work with a command line coding assistant, this step can be asked in plain English. « Create a repository and push the site code to it » is enough. The assistant asks for authentication once, then handles the rest. Our Claude Code guide for non-developers covers this mechanism if the terminal is still unfamiliar.

Step 2, import the repository and run the first deployment

Create your Vercel account by signing in with GitHub. The two accounts then talk to each other directly and you avoid a manual setup.

  1. In the dashboard, choose to create a project and select your repository.
  2. The platform recognises the technology on its own and fills in the build settings.
  3. Run the deployment. About sixty seconds later, the site answers on a vercel.app address.

That address is public and shareable straight away. I often use it to get a redesign approved before touching the real domain. I summarised this journey in six steps in my LinkedIn post on the Tandem website rebuild, and it really is the last one that concentrates the difficulties.

Last two steps of my website creation diagram, visual inspiration then the final deployed result
One-click deployment is real. It covers neither the domain, nor the records, nor the plan choice.

If the build fails, the log shows the offending line. Copy that message to your coding assistant, fix it locally, send the code again. The platform restarts the build on its own with every push.

Step 3, connect your domain name

This step happens in two places. You declare the domain on the Vercel side, in the project settings. Then you create two records at the registrar where you bought the domain, meaning OVHcloud, Gandi or an equivalent.

A DNS record is a line telling the internet which machine to send your address visitors to. You need two, one for the bare domain and one for the www version.

Table of the two DNS records to create, an A record for the bare domain and a CNAME for the www subdomain
The value is read from your own project. Verification expects that exact record and nothing else.

Here is the point almost every tutorial misses. They give one single network address to copy, the one that served everybody for years. The publisher's knowledge base now says something else. Recent projects receive a value drawn from a pool, and the documentation states that each project has its own CNAME. Copy what your own screen displays, verification expects that precise value.

The mistake that cuts company email

Vercel offers a second method, changing the nameservers. It looks simpler because it replaces the two records with a single setting. It is also the one that causes the most expensive outage.

Changing nameservers hands over management of your whole zone. Your email addresses depend on it, through records called MX. If you switch without copying them over first, company email stops dead, and nobody connects it to the website.

The publisher's documentation states the warning in plain words. Its troubleshooting table even lists the symptom as such, mail stopped arriving after a nameserver change. On a company domain, prefer the two records. They touch only web traffic and leave email intact.

The free plan is reserved for personal use

Here is the point most often left unsaid, including in my own content. The publisher's fair use policy restricts the free plan to non-commercial personal use. Any commercial usage requires a paid plan.

The definition is broader than it looks. The fair use guidelines describe as commercial any deployment serving the financial gain of anyone involved in its production. An employee or a consultant paid to write the code falls under that definition. They also cite advertising a product or a service for sale. A small company brochure site ticks both boxes, even with no online payment.

Comparison of the free plan restricted to personal use and the paid plan required for any commercial use
Donations fall outside the rule. A nonprofit site asking for donations stays eligible for the free plan.

In my newsletter edition about the website rebuild, I wrote that both building blocks of going live were free. That holds for GitHub and for a personal project. For a company site, budget around twenty euros a month, publisher rate recorded in October 2026.

Two billing details deserve your attention. Prices are shown in dollars and before tax, so a French company's real invoice adds value added tax and a currency conversion. And the first-year free domain covers neither .fr nor .com, only a short list of technical extensions.

Where your site runs, and why the question matters

The static pages of your site are served from a global network, with more than 120 points of presence. For a French visitor, the page arrives from nearby. Nothing to set on that side.

Code running on the server side follows another rule. The regions documentation states that these functions run in Washington, in the United States, by default. A Paris region does exist, and a German one too. The default setting is therefore not the one most French companies expect.

RegionLocationWhat it changes
iad1Washington, United StatesThe default setting, outside the European Union
cdg1Paris, FranceProcessing in France, lowest latency for your visitors
fra1Frankfurt, GermanyProcessing inside the European Union, a common fallback
The regions relevant to a French website, recorded in October 2026

The question becomes concrete as soon as a contact form passes through that code. Details entered by a visitor are personal data, and where they are processed has to be documented. Switching the region to Paris takes one line of configuration, and your coding assistant knows how to write it.

If hosting location weighs heavily in your organisation, our article on running AI locally covers the underlying question, hardware included. This tutorial stops at the setting worth knowing.

Every change goes back online on its own

Here is the real comfort of this setup, and the reason half a day of investment pays off quickly. Once the wiring is done, you never come back to it.

You ask your assistant for a change, you ask it to send the changes, and the new version builds then publishes in about thirty seconds. No handling, no file transfer, no admin interface to reopen.

One last setting is worth the detour. Each working branch gets its own preview address, separate from the public site. You get a new page reviewed without anyone else seeing it. I detailed the full journey in my newsletter edition on the website rebuild, from mockup to going live.

Putting your site online on Vercel, the order that avoids outages

Take the steps in this order and going live fits in half a day. Recover access to your domain name first, because it is the only point that can take days. Send the code to GitHub, deploy, check the site on the temporary address.

Then choose your plan according to the real use of the site, before connecting the domain. Create the two records with the values displayed in your project. Leave the nameservers alone if email addresses depend on the domain. Finally set the execution region if your site handles visitor data.

This mechanism also applies to an internal business tool, not only to a brochure site. Our custom internal tools deploy in exactly the same way. And if you want to hold the chain yourself, from mockup to going live, our Claude Code training covers that journey end to end.

Frequently asked questions

Can you deploy a company website on Vercel for free?

No. The fair use policy restricts the free plan to non-commercial personal use, and describes as commercial any deployment serving the financial gain of anyone involved in its production. An employee or a consultant paid to write the code is enough to move the site into that category. Budget around twenty euros a month, rate recorded in October 2026.

How long does it take to put a site online on Vercel?

The first deployment takes about sixty seconds after the repository import. The domain name takes from ten minutes to twenty-four hours, the time for records to propagate. Allow half a day in total, and more if you first have to recover access to the account where the domain was bought.

Which DNS records do you need to create for a domain on Vercel?

Two records, created at the registrar and not at Vercel. An A record for the bare domain, and a CNAME for the www subdomain. The value to enter is the one shown in your project settings. Recent projects receive values of their own, different from those copied around by older tutorials.

Should you change your domain nameservers?

Not on a domain carrying live email addresses. That change hands over management of the whole zone, including the MX records email depends on. Switching without copying them first cuts company email. The two A and CNAME records touch only web traffic and leave email intact.

Is a site deployed on Vercel hosted in Europe?

Static pages are served from a global network, so from a point close to the visitor. Server-side code runs in Washington, in the United States, by default. A Paris region and a German region exist, and the choice is one line of configuration. The setting matters as soon as a form handles personal data.

Read next

All articles →
Tandem3D illustration of a monitor showing a dashboard with a small rocket taking off

We rebuilt our website with AI for zero subscription cost

By Louis Graffeuil
ToolsClaude Code without coding: illustration of a plain-language request turned into a deliverable

Claude Code without coding: from business need to deliverable

By Louis Graffeuil
ToolsEnvelope resting on a dark sorting block with three cables running out to three trays

n8n tutorial: automating inbound email triage in a small business

By Louis Graffeuil