4 August 2026

How I built a personal site without paid hosting

I built this site over a weekend. The articles live in ordinary text files and I don’t pay for hosting. Apart from my AI tool subscription, running it costs me a domain, roughly 300 CZK a year.

I wanted a site I could edit myself, with files I’d keep even if I changed the tool I used to work on them. Here’s how I built it, including a prompt you can copy.

I chose AI that writes directly to files

I considered three ways of working:

Approach What the tool does What you handle
A site builder such as Lovable or Bolt Creates a site and offers hosting on its platform The plan, editing options, and any export
An agent that works with files, such as Claude Code or Cursor Writes and edits project files on your disk The brief, checking results, and choosing hosting
A chat you copy code from Writes suggested code in the conversation Saving it in the right files and keeping them up to date

I picked the middle option. The AI can see the whole project, edit files, and check whether they build into a working site. I don’t have to copy code out of a chat after every correction.

What mattered to me was being able to open the folder in another editor. With a hosted builder, I’d first check what I could export and what I’d need to replace if I left.

Articles are files, and changes have a history

Each article is a Markdown file: plain text with simple notation for headings and links. There’s no database or CMS, the kind of content management system with a browser-based editing interface.

I save changes in git, which keeps their history. In the first two weeks, I had over thirty versions of the site. If I break something, I can return to an earlier one.

I host the site on Cloudflare Pages. Sending changes to GitHub triggers an automatic build and deployment. I use the free plan; check its current limits against the site you’re planning.

What to prepare

  • A GitHub account to store the project and its versions.
  • A Cloudflare account for hosting.
  • Claude Code, Cursor, or another tool that can work with files and run commands. Its subscription or usage is a separate cost.
  • A domain, if you want your own. Otherwise, you can use an address such as something.pages.dev.

You don’t need to write the code from scratch. You do need to paste a command into a terminal occasionally and check what the AI has made.

How I built the site

1. Ask AI to create the basic site

Open Claude Code or Cursor in an empty folder. Change the first three items in this prompt:

Build me a personal site. Details:
- name: [YOUR NAME]
- what I do: [ONE SENTENCE]
- languages: English (default) + Czech

Technical brief:
- Astro, static output, no CMS and no database
- content in markdown under src/content, not hard-coded in HTML
- pages: home, about, blog (list + post detail)
- keep copy in one data file as {en, cs} pairs
  so the languages do not drift apart
- colours and fonts as CSS variables in one place
- no external UI libraries, we write our own CSS
- responsive, works on mobile

Work like this:
1. scaffold the project and show me the folder structure before writing content
2. then write the pages with sample content
3. at the end run the build and fix what breaks

Ask if you are missing something. Do not invent facts about me -
where you lack information, leave a placeholder.

Keep the final paragraph. The AI should mark missing information so it doesn’t fill your site with an invented CV.

2. Open a preview

Once the project has been created and its dependencies installed, run this in the site folder:

npm run dev

Open the address it prints. Then ask for changes in plain language: “The opening section is too tall”, “Swap the section order”, “Use a different colour here”. The AI can edit the files directly, and you can see the changes in the preview.

3. Show it what the site should look like

We went through three rounds of discussion about the design before I put together a page myself in a design tool and sent it as a reference. Having an image made it much easier to agree on a direction.

You can also use a screenshot of a site you like. Add this:

Take only colours, fonts, and shapes from this mockup - not the content.
Save them as CSS variables in one place so they can change centrally.

4. Save the project on GitHub

In the new project folder, create the first saved version:

git init
git add -A
git commit -m "first version"

Then create a repository on GitHub, connect it to your local folder, and push the changes. The AI can prepare those steps. The repository can be private; you’ll need to give Cloudflare access when you connect it.

5. Connect GitHub to Cloudflare Pages

In Cloudflare, open Workers & Pages, create a Pages project, and connect the repository. For a static Astro site, use:

  • Framework: Astro
  • Build command: npm run build
  • Output directory: dist

Cloudflare’s Astro deployment guide has the full steps.

After the first successful deployment, your site appears at something.pages.dev. Further changes go live when you push to the repository’s configured production branch.

6. Connect your domain

Open Custom domains in the Pages project and add your domain. For an apex domain, such as myname.com, Cloudflare also needs to manage its DNS. DNS records tell the domain where to send web and email traffic.

Add the domain to Cloudflare first and check the imported DNS records, including those for email. Then change the nameservers at your registrar, handing over management of those records. This helps you account for services already running on the domain. A subdomain can use a simpler setup; the custom domain guide covers both options.

What I pay and what to expect

Item Cost in my setup
Cloudflare Pages hosting 0 CZK on the free plan
GitHub repository 0 CZK
Domain Roughly 300 CZK a year
AI tool Separate subscription or usage charges

If you already pay for an AI tool, the main additional cost in a similar setup is the domain. Free hosting has conditions, and domain prices depend on the extension and registrar.

A new article means a new file. That suits me because I write in an editor. If you want to manage content through a form in your browser, you’ll need to add a CMS or choose another approach.

The initial setup also takes time. I had to work out the design, GitHub, and the hosting connection. I occasionally needed the terminal, even though the AI did most of the file editing.

Now I have a site in a folder I can return to whenever I need it. If I change editors or AI tools, I keep the articles and source files. That made the slower first hour worthwhile for me.

← Back