WordPress
- ✗ PHP, a database, and plugins to keep patched
- ✗ Recurring hosting and backup cost
- ✗ A login panel and constant bot scanning
- ✗ Content locked in a database, hard to edit automatically
- ✗ Performance depends on cache and plugin quality
For a blog, company site, or landing page most content is static. A PHP runtime and a database are then a cost, not a feature.
The reasoning behind the stack is in choosing technology for a blog and company website in 2026, and the edge architecture in Cloudflare Workers and DNS.
Net prices, invoiced on acceptance. Each service can be ordered separately.
Up to 30 pages and posts, no shop and no user accounts.
One domain, Workers deployment, and configuration kept as Infrastructure as Code.
/wp-, .php, .env probeswrangler.jsonc in your repositoryBoth services: 1200 PLN. A second site in the same order: −20%. Each page above the limit: 15 PLN. Rush delivery within 48 h: +50%.
Paste this prompt into a coding agent running in an empty repository. Prepare a WordPress XML export and the wp-content/uploads directory first.
Build a production Astro 7 website and migrate my WordPress content into it.
Inputs:
- WordPress XML export: [PATH_TO_XML]
- media: [PATH_TO_WP_CONTENT_UPLOADS]
- current website: [URL]
Requirements:
1. First inventory every public URL, title, meta description, heading, canonical, media file, and internal link. Save the report and a redirect map.
2. Use Astro 7 in static output mode. Do not add React, Vue, hydrated islands, a CMS, or a database.
3. Move posts into a type-safe content collection as Markdown with frontmatter. Build pages with custom layouts as simple .astro components.
4. Use semantic HTML and Pico CSS. Preserve the visual identity and information hierarchy, but remove WordPress theme, builder, and plugin code.
5. Convert images to WebP and preserve meaningful names, alt text, width, and height. Do not generate new images without approval.
6. Preserve existing URL paths. Add a permanent 301 redirect for every changed path.
7. Add title, meta description, canonical, Open Graph, sitemap.xml, robots.txt, RSS, and structured data where supported by the content.
8. Add a contact form with no secrets in source code and clear environment-variable configuration.
9. Add content validation, astro check, build, and a test covering old URLs, redirects, internal links, and missing pages.
10. Add a README with install, development, post publishing, and build commands.
Work in stages: audit, plan, implementation, validation. Do not delete content or change URLs without explaining why. Show results and risks after each stage. Finally run tests and the production build, fix failures, and list everything that still needs manual review.
This prompt creates a minimal setup like ours: Astro static assets, a thin Worker, Wrangler, and OpenTofu.
Create a complete, minimal deployment stack in this repository for the existing static Astro website on Cloudflare.
Inputs:
- apex domain: [EXAMPLE.COM]
- optional www host: [WWW.EXAMPLE.COM]
- Cloudflare account ID will be supplied through CLOUDFLARE_ACCOUNT_ID
- tokens will only be supplied through CLOUDFLARE_API_TOKEN and TF_VAR_cloudflare_api_token
Requirements:
1. Configure Astro with output: "static" and Cloudflare Workers Static Assets. Do not add Pages or a Node server.
2. Add wrangler.jsonc with the Worker name, dist directory, ASSETS binding, and Custom Domain. The Worker must only perform necessary 301 redirects and pass every other request to env.ASSETS.fetch(request).
3. Add OpenTofu with pinned Cloudflare provider versions. Manage the zone, DNS records, Worker domain, www redirect, HTTPS/TLS, cache, and one custom WAF rule blocking /wp-, .php, and .env probes.
4. Inventory existing DNS records before changing anything. Never overwrite or proxy mail records. MX and hosts used by SPF, DKIM, and DMARC must remain DNS-only.
5. Never commit tokens, account ID, zone ID, tfstate, or secret .tfvars files. Add .gitignore and a value-free .env.example.
6. Use least-privilege token permissions and document them in README: Workers Scripts: Edit, DNS: Edit, and only when used WAF: Edit, Cache Settings: Edit, and Zone Settings: Edit.
7. Add commands for install, astro check, build, wrangler dev, wrangler deploy, tofu fmt, tofu validate, tofu plan, and tofu apply.
8. Document a safe rollout: staging, lower TTL, DNS backup, reviewed tofu plan, Worker deploy, nameserver switch, HTTPS/redirect/mail tests, and rollback.
9. Do not run tofu apply or change DNS without my explicit confirmation. You may run local validation and present a plan.
Inspect the existing files first and follow the repository's conventions. Then show a short plan, create the files, run validation, and fix failures. Finish with the created resources, required variables, token permissions, and manual cutover steps.
We work inside your account, so everything stays with you after handover. Two things are needed before we start.
| Token | Permission | Purpose |
|---|---|---|
| Wrangler deployment | Account Workers Scripts: Edit | upload and update the Worker |
| OpenTofu base | Zone DNS: Edit | manage DNS records |
| Custom Domain | Account Workers Scripts: Edit | bind the hostname to the Worker |
| optional WAF | Zone WAF: Edit | rules blocking probes and bots |
| optional cache and TLS | Zone Cache Settings: Edit, Zone Settings: Edit | cache and HTTPS policy |
Cloudflare defines Edit as CRUDL, so a separate Read permission adds nothing. We scope the token to a single zone, and after handover you can rotate or delete it in one click. Secrets never go into Git, tfvars, or shell history — they are passed as the CLOUDFLARE_API_TOKEN and TF_VAR_cloudflare_api_token environment variables.
You also keep registrar access for the nameserver change, and provide a WordPress export or a read-only WP account.
Typically five working days per site. The old site keeps serving traffic until the DNS switch.
wrangler deploy, then an approved tofu plan and tofu apply for DNS and the Custom Domain.We prefer to agree on boundaries up front rather than renegotiate mid-project.
WooCommerce, user accounts, payments, booking systems, and redesign. The migration reproduces the existing layout or uses a simple template. Those items are quoted separately.
The domain and any mailbox hosting. On the Workers Free plan static assets are unmetered, while the Worker has 100,000 requests per day and 10 ms CPU per invocation.
Dependency updates, monitoring, content changes, and further development, hourly or on a retainer, once the scope is agreed.
Send the address of your site. You get the page count, a redirect map, and a delivery date, usually within one working day.
Request a quote