Currently accepting new projects | Book a consultation

About
Webmaster, not a website factory

I help small-business owners get off page-builders onto architecture that does not need constant upkeep — and then I keep it running securely month to month.

1.

Who I am

I'm James Dennis. I build and maintain websites for a living — but not in the way most people mean when they say that.

I am not a website factory. I do not run an agency. I do not sub-contract. When you work with me, you are working with me — from the first call to the migration to the monthly report six months later. There is no account manager in between, no off-shoring, no "let me check with the team."

I live in Italy. I work with clients in any country. The work is delivered in English.

2.

Why I repositioned

For a while I offered the standard freelance web developer slate: I'll build you a website, whatever the brief, however you want it. The work was fine. The problem was what happened after.

Every site was experiencing the same issues... AI crawlers arrived in volume, hungry for training data, and never really left. Ordinary search engine crawlers kept up their constant rounds. And scrapers — human or automated — harvested content wholesale so that AI could spin it into "new" pages somewhere else. Plagiarism on a grand scale, running continuously, and there was nothing the site owner could do about it.

That traffic met a WordPress / Wix / Squarespace install that was never built for it: resource-hungry, dependent on a stack of plugins, running on shared hosting with a fixed CPU budget. The two things — constant bot load and brittle architecture — made every site a minefield. Plugins went out of date and became vulnerabilities. PHP and WordPress needed updating, then the plugins needed updating again, then one of them broke the layout. The free tiers on the premium plugins were just enough to make you buy the full version, and the full versions were not cheap.

I could see the pattern clearly across every site I managed, an analytical look at visitor logs and I could also see that there was no plugin or hosting plan that solved it. The bots and scrapers need stopped before they hit the website's server...not after. The fix was not "manage it better." The fix was to move the site off the architecture that had the problem.

3.

The problem I now solve

Headless architecture removed every failure point I had been fighting.

Pages are served statically from a global CDN, so there is no origin server chewing through CPU for every request. Bots — legitimate crawlers and malicious scrapers alike — are filtered at the edge by Cloudflare before they touch the application at all. SSL comes free and renews itself. Deployment is quick and repeatable. And there is no plugin layer: the features a typical business site needs are either built into the framework or handled at the edge, which means no monthly plugin licences, no free-tier-versus-paid-tier upsell, no update roulette, and no third-party dependency to inherit the vulnerabilities of.

What that changes for a site owner:

  • Hosting cost drops to roughly the price of the domain. No shared-hosting plan, no CPU surcharges, no throttling notices.
  • No plugin subscriptions. The features those plugins provided are built in or handled at the edge, natively.
  • No PHP, WordPress, or plugin updates to manage. There is nothing to patch in the application layer because there is no application layer to patch.
  • No vulnerability surface from abandoned or outdated plugins. That entire category of risk is gone.
  • Edge security and edge caching included. WAF, bot filtering, and static caching come with the architecture, not as a paid add-on.
  • Faster sites on cleaner infrastructure. Static pages from a CDN load faster than a PHP page rendering on demand from a shared server, and there is no database to bloat.

This is what I now do for clients. I migrate their sites off the page-builders and shared hosting onto that architecture. Then, if they want, I keep them running — the monthly report, the WAF tuning, the dependency updates, the small content changes — so the site stays off their plate, and stays off the architecture that caused the problem in the first place.

4.

What that looks like in practice

There are four service levels, and they scale in commitment:

  • Refactor only — one-time migration. You own the site after handover. No ongoing relationship.
  • Refactor + Security — migration plus the edge security layer set up and documented. You own it after handover; it runs itself.
  • Refactor + Security + Monthly Report — the retainer. I keep it tuned, monitor it, and send you a monthly report in plain English.
  • Full Webmaster — everything above, plus a monthly allocation of development hours for content changes, fixes, and small features.

Most of my clients end up on the retainer. Not because I push it, but because once the site is on the new stack and running well, the ongoing cost of keeping it there is small — and the alternative is going back to plugin roulette. The retainer is the sensible resting state.

5.

Proof: KetoBible.net

The clearest example of what this work does is a site I own, KetoBible.net.

It was on WordPress, monetised through AdSense, and had been targeted by automated traffic to the point where roughly 95% of its visitors were bots. AdSense revenue was near zero but visitor logs showed thousands of visitors each day — but these were not real visitors, no ad clicks. The hosting provider started threatening to throttle the site because of the resource load. That is a fairly common endgame for a content site on shared hosting.

I migrated it to a headless stack — Next.js on Vercel, behind Cloudflare, with WAF rules and bot fingerprinting doing the filtering at the edge. The outcome:

  • Bot traffic filtered at the edge... before it reaches the application.
  • Hosting cost reduced to ZERO... just the price of the domain name registration itself, (once a year at most).
  • Free SSL via Cloudflare, with no certificate management to maintain.
  • Page load times improved because pages are static and cached globally.
  • No more throttling notices, no more plugin maintenance, no more late-night outage emails.

The same architecture and the same filtering logic are what I now offer to clients. The KetoBible site is the case study — a full write-up is coming.

6.

How I work

Projects are scoped in writing before anything begins. A short statement of work covers deliverables, timeline, price, and what happens if things change. Nothing runs on a handshake; nothing is left ambiguous.

Migrations happen in stages: audit, then content migration, then security layer, then cutover. You see the new site on a staging URL before it goes live. Redirects preserve your SEO. You get the repo, the Vercel project, and the Cloudflare account at handover — there is no lock-in.

Retainers are month to month, cancel with 30 days' notice. The report tells you what happened, what was blocked, what changed, and what's next. If something needs your input, it's flagged at the top.

7.

What I'm not

I am not an SEO consultancy. The architecture I build improves the technical side of SEO — speed, clean markup, static pages, correct and complete meta/schema — and I'll set up the fundamentals. But I do not run content strategy or keyword campaigns.

I am not a 24/7 emergency service. I respond to retainer clients within agreed timescales; I do not sit by a phone waiting for outages. For sites that genuinely need 24/7 cover, I can recommend people who do that properly.

And I am not the right fit if you want to keep the page-builder and just need someone to patch it. That is a legitimate choice, but it is not what I offer. For those clients I recommend a WordPress specialist and I mean it — you want someone who does the work you actually need.

(I can do it...but I have an agency that I pass this work to.)

8.

Where I work and how to reach me

I am based in Italy and work remotely with clients anywhere. My working hours overlap comfortably with Europe and the UK, and I make time for calls in US and Asia-Pacific hours when a project needs it.

To get in touch, see the contact page. If you want a proper conversation, you can book a 30-minute call. If you know what you need and want to send the details, the full enquiry form is on the Book Me page.

9.

What happens next

If any of this reads like the situation you're in — a site that has gotten expensive to maintain, a host that complains about your traffic, a monthly bill that keeps climbing without the site getting better — get in touch. A short call is usually enough to tell whether the migration is worth doing, and I'll say so honestly if it isn't.

If you're not sure, the pricing page shows what the tiers cost and what each one includes. If you want to read the terms first, they are here.

If this sounds like the right fit, I'd like to hear about your site.

Get in touch