Blog
How this website runs: static site, own servers, Cloudflare in front

This website is a static site built with Astro. We serve the finished files from our own servers in Windhoek, and Cloudflare sits in front for speed and protection. The contact form has spam protection and no database. Our visitor stats are cookieless. It is the same setup we offer, which is the point: we run what we sell.
Below is how each part works and why we chose it.
Why is the site static?
A static site is a folder of finished HTML, CSS and a little JavaScript. Nothing is built when you visit. The server just hands over a file.
That gives us four things:
- Speed. A file is the fastest thing a server can send.
- Small attack surface. No page code runs on the server, no admin login on the public site, no database to break into.
- Cheap to run. A small server handles a lot of visitors.
- Easy to recover. If the server dies, we rebuild it and copy the files back.
The trade-off is that anything dynamic needs a separate small service. We cover that below.
Why Astro?
Astro builds pages ahead of time and ships almost no JavaScript by default. For a content site that is what you want. Pages load fast on a slow mobile link and on fibre alike, and they work without JavaScript. Only the theme toggle and the form spam check need it.
Blog posts are plain Markdown files. We write, review and publish them the same way we handle code.
How does a change go live?
We keep the site source in our own Git server. When we push a change to the main branch, an automated runner builds the site and copies the output to the web server. There is no manual upload step.
The steps in plain terms:
- Edit a page or write a post.
- Push to the main branch.
- The runner builds the static files.
- The files are copied to the live server.
- We check the page.
If a build fails, the old version stays up. A bad change cannot take the site down.
Why our own servers in Windhoek?
Because we sell self-hosting, and we should do it ourselves. The site, the newsletter system, the stats and the contact form endpoint all run on infrastructure we own and look after. If we cannot run our own website well, you should not trust us with yours.
It also keeps data under our control. The few things we collect, such as a contact form message, stay on our servers.
Hosting from Namibia does not slow down visitors elsewhere, because of the next piece.

What does Cloudflare do for us?
Cloudflare is a content delivery network. Visitors connect to a nearby Cloudflare location, not to our server directly. It gives us:
- Caching. Static files are served from a location close to the visitor, wherever they are.
- Protection. It absorbs junk traffic and common attacks before they reach us.
- TLS. Encrypted connections, handled properly.
- A hidden origin. Our own servers do not need to be the first thing the internet sees.
We also keep our own firewall and web server rules in place behind it. Cloudflare is a layer, not a replacement for a sound setup.
How does the contact form work with no database?
The form posts to a small endpoint that checks the message and passes it on to us. It does not store submissions in a database. That means there is no table of visitor data to leak, back up or clean out.
Spam is the usual problem with forms. We use a privacy-friendly challenge from Cloudflare that runs in the background. Most real people never see it. Bots do not get through.
The form also works without any email address published in the page. Scrapers find nothing to harvest.
How do we measure visits without cookies?
We run a self-hosted analytics tool that does not use cookies and does not track people across sites. It counts page views, referrers and countries, in aggregate. Because it sets no cookies and stores no personal profile, we do not need a cookie banner.
We would rather know less and keep your trust.
What can you copy from this setup?
If you run a business site, a product page or documentation, this pattern works at any size:
| Part | What to do |
|---|---|
| Site | Static build from Markdown or a CMS export |
| Hosting | Your own server or a small rented one |
| Edge | A CDN in front for caching and protection |
| Forms | A small endpoint plus spam challenge, no database |
| Stats | Cookieless, self-hosted |
| Deploys | Push to Git, automatic build and copy |
It is cheap, fast and hard to break. Where a site needs logins, shops or a database, you add those as separate services and keep the public pages static.
Short answer
Is a static site good enough for a business? For most business sites, yes. Brochure pages, blogs, product pages and documentation all work well. Add small services for forms, search or bookings.
Do you need Cloudflare if you host yourself? You do not need it, but it helps. It gives you caching, protection and a hidden origin at low cost. We use it and still harden the servers behind it.
Can you host a site from a small country and still be fast? Yes. With a CDN in front and a static site, visitors get files from a nearby location. Where the origin sits matters much less.
Want this set up for your business? Ask for a quote.