About Services Consulting Workshop Events Work Blog Links Contact 🇵🇦 Español Book 10 free minutes →
← All resources Skill

How to build a landing page and publish it on your domain

A landing page that loads fast on a phone, invents nothing about your business and lives on your domain without breaking your email. Here is how I build it.

How to build a landing page and publish it on your domain

Free, in exchange for knowing who you are

Download it free

You get the whole thing at no cost. I only ask for your email so I can write later and ask how it went: if something did not work for you, I want to know. No spam.

One confirmation email and that is it. You can leave whenever you want.

The problem with most small business websites

When I review a business website, I keep finding the same things: it looks like a template, it is slow to open on a phone, and the title says "Welcome" instead of what people actually type into Google. And the day the owner connects the domain on their own, sometimes their email stops working and nobody knows why.

None of that is hard to get right. The problem is that nobody tells you the order, and AI with no rules builds exactly that: a generic template with invented testimonials and numbers.

That is why I built this skill for Claude Code. It takes you from zero to a published landing page or website on your own domain in about 90 minutes, with the same rules I follow.

What the skill does

It builds the page with you, not for you. You decide and approve; Claude writes the code, explains each step in a sentence or two and shows you the result before moving on. Eight phases, each with its own checkpoint:

  1. Intake: eight questions in a single message. If you do not know something, you write "not sure" and it proposes a value.
  2. Structure and copy: you approve headings and buttons before a single line of HTML gets written.
  3. Design: hand-written HTML and CSS, no frameworks, designed for a 360 px phone first.
  4. Images and contact: optimized photos and a form that opens WhatsApp with the message ready, or sends to your email.
  5. On-page SEO: title, description, Open Graph, structured data, sitemap and robots, plus a script that checks everything before publishing.
  6. Publish to a Cloudflare test URL you open on your phone.
  7. Your domain without breaking your email, the part it guards most closely.
  8. Checklists for before and after publishing, plus your list of pending items.

What sets it apart from asking any AI to "make me a website" is its fixed rules. Nothing invented: no testimonials, no numbers like "500+ happy clients", no client logos; if something is missing, it gets marked as pending and that section stays out. The title carries the real search ("[service] in [city]"), not a slogan. One action, with the same label across the whole site. And a list of what gives away AI-made design (the purple gradient, three identical cards with an icon on top, emojis as icons) so you do not fall into it.

Three real structures to guide you

The skill includes structures for five kinds of business (service, company, professional practice, restaurant and school) and uses three real sites as reference:

  • bbrtek.com: B2B company site. What they build, products, services, process, FAQ and a single action: book a call. In English and Spanish.
  • chiragx.com: full personal brand. Blog, resources, events, podcast and an About page that tells Google who I am.
  • xytask.com: product landing page. A single page with anchors per module, views of the dashboard and one main button to open the app.

If your site will need a blog or a panel to edit it, that is a different skill: how to add a blog to your website without WordPress.

Step 1. Install the skill

You need Node.js LTS (node -v tells you whether you have it), a free Cloudflare account you create yourself, access to the panel where you bought your domain and your real photos in a folder.

Download the file, unzip it and copy the folder into your skills:

~/.claude/skills/pagina-web-y-landing/

On Windows it is C:\Users\YOUR-USERNAME\.claude\skills\, with SKILL.md directly inside the folder. In a new Claude Code session it kicks in on its own when you ask for a website.

Heads-up: the skill is written in Spanish, templates and file names included. Claude reads it fine and works with you in English; your site comes out in whatever language you ask for. Not using Claude Code? It is all Markdown: read it as a manual, commands included.

Step 2. Paste this first prompt

Open Claude Code in an empty folder, replace what is in brackets and paste it:

Use the pagina-web-y-landing skill. I want to publish my business website today and
connect it to my domain.

My business: [name], [what we do in one sentence].
Clients: [who they are and what they are looking for].
City or area: [where I work, and the address if I have a location].
Services: [3 to 5].
Main action: [WhatsApp to my number, a form to my email, or booking].
Brand: [colors, logo folder, a site I like as a reference].
Photos: [I have real photos in fotos-originales/, or I have none].
Domain and email: [mydomain.com, where I bought it and who provides my email, or none yet].

Work with me step by step: first ask me whatever is missing, show me the structure and
the headings before writing code, and ask my permission before publishing or touching
the DNS. Do not invent testimonials, numbers or client logos.

That last paragraph sets the rules from the first message: ask before building, and ask before publishing or touching the DNS.

Images: real ones first, the rest with xyCloser

Real photos of your business sell better than anything else. The skill converts them to AVIF and WebP in several sizes, sets width and height so nothing jumps while loading and gives priority to the main image.

AI-generated images are for ambiance only: textures, objects, scenes with no identifiable people. Never to fake clients, a team or work that does not exist. For those I use xyCloser, my platform, connected to Claude Code through MCP just once:

claude mcp add --transport http xycloser https://xycloser.com/mcp

Then you type /mcp, pick xycloser, sign in with your account and ask: "With xyCloser, generate a 16:9 image for the services section, no text, and download it into my project folder". The MCP connection comes with the xyCloser Pro and Agency plans; with the free account you generate the images on the web and download them. How to create the account and what each image costs is in the AI flyers guide.

Your domain, without breaking your email

Connecting a domain does not touch your email by itself. Email breaks when a record it depends on gets lost or changed along the way. That is why the skill starts with a before snapshot: saving what your DNS looks like today.

nslookup -type=ns mydomain.com 1.1.1.1
nslookup -type=mx mydomain.com 1.1.1.1
nslookup -type=txt mydomain.com 1.1.1.1
nslookup -type=txt _dmarc.mydomain.com 1.1.1.1

With that snapshot in hand:

  1. The domain moves to Cloudflare record by record, because the automatic scan does not find them all.
  2. Everything that belongs to email stays as "DNS only". If your email lives on your old hosting, that hosting does not get canceled.
  3. Your domain gets connected to the site, Cloudflare issues the certificate and www redirects to the main address.
  4. After snapshot: compared against the before, plus one test email in and another one out.

You do what is yours: you create the account, authorize access, change the nameservers and type any key. Claude does not touch your DNS without your confirmation. And if the change takes a while (it can take up to 24 hours), the site lives on workers.dev today and the domain gets finished later. That is a good result, not a failure.

What you get at the end

  • Your site on workers.dev and, once DNS finishes, on your own domain with the padlock.
  • A page that is fast on a phone. The PageSpeed goal: LCP under 2.5 seconds and CLS under 0.1.
  • Title, description, structured data, sitemap and the right preview when someone shares your link on WhatsApp.
  • The form or the WhatsApp button tested with a real message.
  • Your list of pending items (testimonials, photos, reviews) and npx wrangler rollback in case something goes wrong.

The only thing you pay for is the domain (plus anything else you decide to hire): on Cloudflare, serving static files is free, with no limit on visits.

Common mistakes, and how they get fixed

  • The workers.dev URL stopped working after adding the domain. With routes, workers_dev turns false: you set workers_dev = true before [assets].
  • An image loads on your computer but not online. On the server, Hero.avif and hero.avif are different files. File names always in lowercase.
  • You changed a photo and the old one still shows. Images are cached for a long time: the new one gets a new name.
  • Email stopped arriving. An MX or TXT record was not copied, or mail ended up proxied. It gets restored from the before snapshot.
  • WhatsApp does not open the right chat. The number goes with the country code and without + or spaces: https://wa.me/507XXXXXXXX for Panama.
  • The shared link shows no image. The og:image must be an absolute URL to a light 1200x630 JPG.

Who it is for

Business owners and professionals who do not code and want their website live today, on their own domain and done right. People with a template site who want to rebuild it with structure, honest copy and SEO from day one. And anyone who just needs to connect a domain without losing email: that section alone is worth the download.

It is not for an online store with a cart and payments. And once your site is live, the next step is getting found on Google: see how to improve your website SEO.

If you would rather do it with someone

This is one of the skills we use at the in-person workshop: everyone builds the site for their own business and I correct along the way. And if you want us to look at it for your company, book a conversation.

Free, in exchange for knowing who you are

Download it free

You get the whole thing at no cost. I only ask for your email so I can write later and ask how it went: if something did not work for you, I want to know. No spam.

One confirmation email and that is it. You can leave whenever you want.

Stuck on a step?

Write me and we look at it

The resource takes you from zero to a hundred on its own, but some steps land better in a conversation. If you got that far and something is off, send me your site and I will tell you what is going on.

Book a call →

Website · Landing page · Cloudflare · Custom domain · Claude Code