A decision brief for leadership · July 2026

A website that can't crash.

Today, innova.co is fast and online largely because Cloudflare already sits in front of itand carries most of the load — while a single aging server quietly does the one job that keeps the site fragile and holds the team back. This is the case for finishing that move ontoAstro + Cloudflare: a site with no server to crash, built with AI, that gives the team its hours back for growth. Every claim below is backed by a real number from our own systems.

The page you're reading is itself built on the proposed stack — static, served from the edge, no server.
01

Where we are today

innova.co is WordPress on a single rented server, with Cloudflare in front smoothing it over. That one design is the root of nearly everything fragile and high-maintenance about it.

Every visit
A page rebuilt from scratch
page builder + ~40 plugins + a database query, per uncached request
36%
Requests still hit the server
of ~2.2M/mo — Cloudflare already answers the other 64%
3 in 1
Sites that share one fate
three sites, one server — if one breaks, it can take the others down
~40
Add-ons to keep patched
third-party code that can crack open any time — endless patching
The core problem

One design choice drives it all: an always-on machine that rebuilds pages on demand, for a site whose pages barely change. Remove the machine, remove the fragility.

02

The uncomfortable truth about speed

The site feels fast — but only because Cloudflare hands out a saved copy. Behind that copy, the server is slow. We timed the same pages both ways:

Cloudflare's saved copy
37 ms
Home, from the server
975 ms
Contact, from the server
1,514 ms
Docs, from the server
3,522 ms

When the saved copy isn't ready — a new page, an edit, a form — a real buyer waits on that slow server. We pay to keep it alive just so Cloudflare has something to copy.

Remove the server, and the fast copy is all that's left — instant, every time.
03

We're already two-thirds on Cloudflare

The pivot of the whole argument: we're not adopting a new platform — we're finishing a move that's already most of the way done.

64% · Cloudflare
36% · server
Served from the edge — never touches our serverThe fragile part that's left
64%
Already served by Cloudflare
of ~2.2M requests a month never touch our server
140,193
Attacks blocked in 30 days
6.4% of all traffic, every day — Cloudflare already stops them
Just the server
Still not on Cloudflare
the one piece left — and the only one that crashes and gets attacked

The fast part and the safe part already live on Cloudflare. Only the page-building server is left — the part that crashes, gets attacked, and costs us. Move it over, and there's nothing left to babysit.

"Why Cloudflare and not somewhere else?"

Delivery is a network problem, not horsepower — so the question is "which edge network," and we're already on Cloudflare: it caches our pages, guards them, and runs our brochure viewer today.

04

Security in the age of AI

The argument that matters most — and it's forward-looking: the target keeps growing, attacks are automated, and we can't predict what's next.

11,334
New WordPress holes in 2025
up 42% in a year — the patch list never stops growing
~92%
Aimed at plugins & themes
of WordPress attacks target add-ons — we run ~40
140,193/mo
Automated attacks on us
bots scanning us non-stop — wp-login/xmlrpc guessing, PHP-file probes
Unknown
The next threat
AI launches new attacks faster than anyone can patch — can't pre-fix the unknown

Today we stay safe by patching — racing to close each hole before a bot finds it. AI makes that race worse: attackers now exploit weaknesses at machine speed, for almost nothing. Winning it every day, forever, isn't a strategy — it's a standing risk.

The only defense that doesn't depend on winning the race is not having the holes at all.

On the new setup, what attackers hunt for isn't there: no WordPress, no plugins, no database, no login. What's left is static files behind a network that already blocks 140,000 attacks a month.Holes to exploit: effectively zero.

05

Who visits — and why the stakes are high

Not a high-volume consumer site — a considered-purchase B2B site: fewer visitors, each one worth a great deal, and the audience is growing fast.

756
1,629
3,128
1,359
5,668
12,701*
JanFebMarAprMayJun

Monthly pageviews, 2026 (GA4) — traffic is climbing fast: the last three months drew 3.6× the pageviews of the three before.

* Note: June includes a one-day bot spike. It inflated the visitor count, not the pageviews shown (added ~530 of 12,701), so the trend is real. Tracking began Jan 2026 — no prior-year comparison.

~4,500
Real visitors last quarter
GA4, Apr–Jun 2026, one bot day set aside
4m 22s
Average time on the site
studying products, not glancing
72%
On a desktop
research-the-purchase, work-computer — classic B2B

The expensive event here isn't a lost click — it's the site stalling or breaking while a serious buyer is evaluating us. And buyers land on the slowest pages: the 3.5-second docs page drew 584 visits last quarter, contact pages over 1,200. As traffic climbs, so does the cost of staying fragile.

06

What we'd build instead

Build every page once, ahead of time, and serve the finished pages from Cloudflare's edge — with no origin server in the middle.

Today
Visitor
Cloudflare
hands out a saved copy — and hides the problem
One server
rebuilds every page on demand · runs all 3 sites · single point of failure · 1–3.5s
The new setup
Visitor
Cloudflare edge
prebuilt pages, served instantly from 330+ cities
No server
each site is its own files, delivered independently — nothing to crash or patch

Same content, no origin server. Each site stands on its own — one site's spike can't drag the others down.

Every kind of content, on the right home

Each content type goes where it's cheapest and fastest — all on Cloudflare, no origin server:

ContentWhere it livesWhy
Text pagesCloudflare Pages (built by Astro)Trivial — this is what static delivery is best at
ImagesCloudflare Pages, auto-optimizedAstro converts them to modern, lighter formats at build time
Small docs & datasheetsConverted to native web pagesFaster, searchable, and indexed by Google — unlike a PDF
VideoCloudflare Stream (embedded)Purpose-built for video delivery, still no server of ours
Heavy brochures / PDFsCloudflare storage + the brochure viewerThe exact system we already run in production today
Forms & redirectsTiny edge functionsRun only on submit, cost pennies, scale to zero

Where does the content come from?

Content becomes files in one place, not an admin panel. Word/Drive docs convert over automatically — Drive and Word stay for writing. Want a friendly editor? We add one on top; the output stays 100% static.

"But don't we need a server for the dynamic parts?"

Almost never. The question isn't "do we have a backend" but "does the public site need an always-on machine?" Forms, a locator, a calculator run only on click, then stop — what edge functions do best, at no idle cost. A real server is only for things innova.co doesn't do (live accounts, heavy processing).

And the future — puzzles & games

None of it brings a server back. Puzzles and games run in the visitor's browser, not on our machine. If a game saves a score, those few kilobytes go to Cloudflare's edge — pennies, still no server. We keep that door open by design.

07

The hours we get back

The biggest win isn't money — it's the team's time. Today a real share of it just keeps the server alive: patching WordPress and ~40 plugins, chasing the next vulnerability. On the new setup, most of that disappears.

The reframe

Those hours don't become a "savings" line — they get pointed at growth: image and product work, conversion, new pages, the games. Same team, aimed at growing instead of keeping the lights on.

08

The money

It isn't zero — a Cloudflare plan and domains still cost something. But the server bill collapses from a fleet of machines to a small flat fee.

Today — DigitalOcean alone
~$4,700/yr
New — full stack (est.)
~$360/yr

DigitalOcean: $391/mo (real May invoice) = ~$4,700/yr — prod + replica + staging + backups + IPs. On top: Bluehost hosting ($359.64/3 yr + $22/yr domain), a Jetserver, licenses, domains. New stack estimated below.

TodayNew setup — Cloudflare
Servers (DigitalOcean)~$4,700/yr ($391/mo, real May invoice) — prod + replica + staging + backups$0 — no servers
WordPress hosting (Bluehost)~$120/yr hosting + ~$22/yr domain (real invoices)$0 — no WordPress
JetserverOn top — not counted above$0
Software licenses~$400–700/yr (page builder, security)$0 — none needed
MaintenanceOngoing hours + incident riskMinimal — nothing to patch

What the new stack actually costs — an honest estimate

New-stack itemEstimated / year
The sites — Cloudflare Pages$0 (free tier)
Cloudflare plan (WAF, analytics)~$240
Workers — brochure viewer + forms~$60
R2 storage — the PDFs~$12
Stream — video, only if used~$60–180
Domainsrenewals — the same on any stack
Estimated total~$300–500 / yr

Not zero — but the server side drops from over $5,000 a year across three vendorsto a few hundred. And the real case is still the hours reclaimed and therisk removed — the bill is just the easiest part to see.

09

The honest trade-offs

A pitch with no downsides is a sales pitch. Here are the real trade-offs — each small, each already solved.

Publishing goes through a quick build step, not instant live editing.
Seconds, automatic. In exchange: history, review, safe teamwork, instant undo — what a tripled team needs.
Non-technical editors lose the familiar WordPress admin.
We add a friendly editor on top, so marketers still self-serve — and the output stays 100% static.
We own a few things plugins used to handle (sitemaps, redirects, SEO).
Set up once, correctly, then they just work — versus plugins patched forever.
A future logged-in feature (accounts, live pricing) needs more than static pages.
Even then it's serverless-with-storage on the same edge, not a server we patch. Designed in from day one.

10

Appendix — where every number comes from

Nothing here is a guess. Sources, so any number can be checked.

The numbers

  • Traffic & audience (~19,700 pageviews · ~4,500 real visitors · 3.6× prior-quarter pageviews · 4m22s avg · 72% desktop · 584 doc-page views): Google Analytics 4, innova.co property, quarter Apr–Jun 2026, pulled 2026-07-02. Growth is quarter-over-quarter within 2026 on the pageview metric (~19,700 vs ~5,500) — the metric the one-day Jun-22 bot spike did not inflate; tracking began Jan 2026, so no prior-year comparison is claimed, and the bot day is excluded from the visitor count.
  • Speed (37 ms cached vs. ~1s / 1.5s / 3.5s from the server): live measurement of innova.co on 2026-07-02 — cached responses vs. the same pages forced to the origin server.
  • Cloudflare: 64% served from cache · 140,193 attacks blocked in 30 days (266,596 in 90) · 6.4% of traffic daily · 2.2M requests/mo: Cloudflare analytics for the innova.co zone, pulled 2026-07-02.
  • Security treadmill (11,334 new WordPress vulnerabilities in 2025, +42% · ~92% target plugins/themes · ~40 add-ons): published 2025 industry vulnerability data + our own site's plugin count.
  • Cost ($391 DigitalOcean, May 2026 — prod + replica + staging + backups + reserved IPs · plus Bluehost WordPress hosting, a Jetserver, and domains · ~$400–700/yr licenses): real DigitalOcean invoice #546276003; Bluehost invoice #95323646 (WordPress Basic Hosting $359.64 / 3 yr + $21.99/yr .com domain). The new-stack figures (~$240/yr plan · ~$60 Workers · ~$12 R2 · Stream if used → ~$300–500/yr) are estimates from published Cloudflare pricing, not a bill.
  • Brochure viewer: runs on Cloudflare (Workers + R2) in production today — confirmed live 2026-07-02 against the production viewer.

Rebuilding innova.co — decision brief, July 2026. Built in Astro, served as a static site on Cloudflare — the same stack it recommends. The medium is part of the argument.