diff --git a/src/content/docs/whp/add-ons/archival-email.mdx b/src/content/docs/whp/add-ons/archival-email.mdx
new file mode 100644
index 0000000..b76c32b
--- /dev/null
+++ b/src/content/docs/whp/add-ons/archival-email.mdx
@@ -0,0 +1,58 @@
+---
+title: Archival email
+description: Long-term, searchable archive of your mailbox content, separate from the live mailbox.
+sidebar:
+ order: 3
+---
+
+import PaidAddon from '~/content/partials/paid-addon-callout.mdx';
+import Support from '~/content/partials/support-link.mdx';
+
+
+
+## What it does
+
+Archival email keeps a long-term, searchable copy of your mail **outside** the live mailbox. It's useful when:
+
+- You need to retain mail beyond your live mailbox's storage cap.
+- Compliance or policy requires you keep email for a fixed window.
+- You want a recovery option for mail you accidentally delete from the live mailbox.
+
+## How it's different from backups
+
+| | Backups | Archival email |
+|---|---|---|
+| **Type** | Point-in-time snapshots | Continuous mailbox copy |
+| **Granularity** | Restore the whole mailbox to a moment in time | Search and retrieve individual messages |
+| **Best for** | Recovering from a known event ("the mailbox was hacked yesterday") | Long-term retention, occasional message lookup |
+
+You can use both — they cover different problems.
+
+## What's included
+
+- **Per-mailbox archive** — enable on the mailboxes that need it, not the whole account.
+- **14-day quick-restore window** — accidentally deleted mail is recoverable without staff help.
+- **Configurable longer retention** — set retention to match your policy.
+- **Independent password reset** on the archive without touching the live mailbox — so you can grant audit access without disturbing the user.
+
+## How to enable
+
+From the [client portal](https://secure.anhonesthost.com/clientarea.php), open **Add-ons** under your hosting service and pick Archival email. Billing is per archived mailbox.
+
+## How to search archived mail
+
+In WHP, go to the sidebar: **Email → Archive**. Pick the mailbox, then search by date range, sender, subject, or body content.
+
+
+
+Click a result to view the message in place; click **Restore to mailbox** to send it back to the live mailbox.
+
+## Related
+
+- [Create an email account](/whp/how-to/create-an-email-account/)
+- [Backups](/whp/how-to/backups/)
+- [Email upgrades](/whp/add-ons/email-upgrades/)
+
+## Still stuck?
+
+
diff --git a/src/content/docs/whp/add-ons/email-upgrades.mdx b/src/content/docs/whp/add-ons/email-upgrades.mdx
new file mode 100644
index 0000000..24603b5
--- /dev/null
+++ b/src/content/docs/whp/add-ons/email-upgrades.mdx
@@ -0,0 +1,40 @@
+---
+title: Email upgrades
+description: Add mailboxes or bump per-mailbox storage on your plan.
+sidebar:
+ order: 5
+---
+
+import PaidAddon from '~/content/partials/paid-addon-callout.mdx';
+import Support from '~/content/partials/support-link.mdx';
+
+
+
+## What it does
+
+Add **more mailboxes** than your plan includes, or **bump the per-mailbox storage cap** so individual mailboxes can hold more mail.
+
+## What you can upgrade
+
+- **Mailbox count** — extra accounts beyond your plan's included number.
+- **Per-mailbox size** — raise the storage cap on individual mailboxes (extra GB).
+- **Shared email pool** — if your plan uses a shared storage pool across all mailboxes, you can increase the pool size.
+
+## When you might need this
+
+- **Hiring more staff** and you've used up your included mailboxes.
+- **A mailbox is approaching its storage cap.** First consider whether [archival email](/whp/add-ons/archival-email/) is the better fit — if the issue is *old* mail you rarely need, archiving is cheaper and keeps the live mailbox responsive.
+- **A domain that sends newsletters** and needs many sending aliases.
+
+## How to enable
+
+From the [client portal](https://secure.anhonesthost.com/clientarea.php), open your hosting service → **Upgrade/Downgrade** → pick the email option. WHP applies it immediately.
+
+## Related
+
+- [Create an email account](/whp/how-to/create-an-email-account/)
+- [Archival email](/whp/add-ons/archival-email/)
+
+## Still stuck?
+
+
diff --git a/src/content/docs/whp/add-ons/monitoring.mdx b/src/content/docs/whp/add-ons/monitoring.mdx
new file mode 100644
index 0000000..c8cdcc5
--- /dev/null
+++ b/src/content/docs/whp/add-ons/monitoring.mdx
@@ -0,0 +1,51 @@
+---
+title: Monitoring (AI Monitor)
+description: Proactive alerts for site errors, brute-force attempts, and exploit signatures.
+sidebar:
+ order: 2
+---
+
+import PaidAddon from '~/content/partials/paid-addon-callout.mdx';
+import Support from '~/content/partials/support-link.mdx';
+
+
+
+## What it does
+
+AI Monitor watches your site's logs, error rates, and access patterns in the background. If something looks unusual — a sustained spike in 500 errors, a brute-force pattern against a login page, a request matching a known exploit signature — you get an alert.
+
+By default alerts go to the contact email on your account; SMS is available for critical-severity events if you opt in.
+
+## What's included
+
+- **Real-time log scanning** across PHP, Apache, and access logs.
+- **Brute-force detection** on auth endpoints (WordPress wp-login.php, generic /login, mail auth, SFTP).
+- **Exploit-signature alerts** with severity grading (informational, warning, critical).
+- **Per-rule ignore lists** so you can mute things you've already triaged or know are harmless for your site.
+- **SMS notifications** for critical-severity alerts (configurable; off by default).
+
+## How to enable
+
+From the [client portal](https://secure.anhonesthost.com/clientarea.php), go to your hosting service → **Upgrade/Downgrade** → pick Monitoring.
+
+## Where it lives in WHP
+
+Once enabled, find it in the sidebar: **Security → AI Monitor**.
+
+
+
+You'll see a feed of events, severity badges, and counts. Click an event for the full log context.
+
+## Tuning false positives
+
+Some signatures are noisier than others — for example, a security scanner you run yourself will trip every exploit-signature rule. Open the rule from the event detail and click **Ignore** to mute it for your account; the rule stays active for everyone else.
+
+If you find yourself muting a rule frequently, [open a ticket](https://secure.anhonesthost.com/submitticket.php) — we may be able to tune the underlying rule for everyone instead of you suppressing each instance.
+
+## Related
+
+- [Add-ons overview](/whp/add-ons/overview/)
+
+## Still stuck?
+
+
diff --git a/src/content/docs/whp/add-ons/overview.mdx b/src/content/docs/whp/add-ons/overview.mdx
new file mode 100644
index 0000000..ee39ecd
--- /dev/null
+++ b/src/content/docs/whp/add-ons/overview.mdx
@@ -0,0 +1,39 @@
+---
+title: Add-ons overview
+description: Optional features you can layer on your hosting plan — monitoring, archival email, resource upgrades, and more.
+sidebar:
+ order: 1
+---
+
+import { Aside } from '@astrojs/starlight/components';
+import Support from '~/content/partials/support-link.mdx';
+
+Add-ons are **optional extras** you can layer onto your base hosting plan. Each is billed separately and can be enabled or removed from your client portal at any time.
+
+
+
+## What's available
+
+- **[Monitoring (AI Monitor)](/whp/add-ons/monitoring/)** — proactive alerts when something looks wrong (error spikes, brute-force attempts, exploit signatures).
+- **[Archival email](/whp/add-ons/archival-email/)** — long-term, searchable retention of your mail outside the live mailbox.
+- **[Resource upgrades](/whp/add-ons/resource-upgrades/)** — extra CPU, RAM, or storage without changing plans.
+- **[Email upgrades](/whp/add-ons/email-upgrades/)** — extra mailboxes or larger per-mailbox storage caps.
+
+## How billing works
+
+Add-ons are **pro-rated** to align with your base plan's billing cycle and appear as separate line items on your next invoice. Cancelling an add-on stops it from the next cycle — you keep access through the end of the period you've already paid for.
+
+## How to enable an add-on
+
+1. Sign in to the [client portal](https://secure.anhonesthost.com/clientarea.php).
+2. Go to **Services → My Services** and pick your hosting plan.
+3. Click **Upgrade/Downgrade** (sometimes called **Add-ons** depending on the add-on).
+4. Pick the add-on, review the price, and confirm.
+
+WHP applies the change usually within a few minutes — no downtime for any of the add-ons listed here.
+
+## Still stuck?
+
+
diff --git a/src/content/docs/whp/add-ons/resource-upgrades.mdx b/src/content/docs/whp/add-ons/resource-upgrades.mdx
new file mode 100644
index 0000000..fec42d6
--- /dev/null
+++ b/src/content/docs/whp/add-ons/resource-upgrades.mdx
@@ -0,0 +1,50 @@
+---
+title: Resource upgrades
+description: Add CPU, RAM, or disk to your container without migrating to a different plan.
+sidebar:
+ order: 4
+---
+
+import PaidAddon from '~/content/partials/paid-addon-callout.mdx';
+import Support from '~/content/partials/support-link.mdx';
+
+
+
+## What it does
+
+Boost your container's **CPU**, **RAM**, or **persistent disk** without migrating to a new plan. Useful when you've outgrown your base allocation but the next plan tier up is more than you actually need.
+
+## What you can upgrade
+
+Each resource is independent — upgrade only what you need.
+
+- **CPU cores** — add cores for sustained-compute workloads.
+- **RAM** — for memory-hungry apps (caches, large WordPress sites with many plugins, Node apps holding big in-memory state).
+- **Persistent disk** — for sites that store a lot of files (media libraries, user uploads, backups outside our managed backup).
+
+## When you might need this
+
+- **High CPU on busy days.** Your **Overview → Resource usage** chart consistently hits the cap during peak hours.
+- **"Out of memory" errors** in your app log or `dmesg`.
+- **Disk usage approaching 80%** of your allocation — get ahead of it; full disks cause backup failures and uploads to fail.
+
+## How to enable
+
+From the [client portal](https://secure.anhonesthost.com/clientarea.php), open your hosting service → **Upgrade/Downgrade** → pick the resource amount. WHP applies the change usually within a minute, no downtime.
+
+## See your current usage
+
+In WHP, sidebar: **Overview → Resource usage**.
+
+
+
+The chart shows CPU, RAM, and disk over the last 24 hours and 7 days. If you're consistently above 80% of any line, that's the one to upgrade.
+
+## Related
+
+- [Monitoring (AI Monitor)](/whp/add-ons/monitoring/) — catches resource saturation before customers complain.
+- [Add-ons overview](/whp/add-ons/overview/)
+
+## Still stuck?
+
+
diff --git a/src/content/docs/whp/reference/service-hostnames.mdx b/src/content/docs/whp/reference/service-hostnames.mdx
new file mode 100644
index 0000000..707ab72
--- /dev/null
+++ b/src/content/docs/whp/reference/service-hostnames.mdx
@@ -0,0 +1,40 @@
+---
+title: Service hostnames
+description: Quick reference for connecting to MySQL, PostgreSQL, Memcached, Redis, and SMTP from inside your container.
+sidebar:
+ order: 1
+---
+
+import Hostnames from '~/content/partials/service-hostnames.mdx';
+import Support from '~/content/partials/support-link.mdx';
+
+Use these hostnames from inside your WHP container — they resolve to the internal services your site can talk to. They don't work from your laptop; see the note below.
+
+
+
+## Where do I get credentials?
+
+Each service's credentials live in a different section of the WHP panel:
+
+- **MySQL** → **Databases → MySQL → Users**
+- **PostgreSQL** → **Databases → PostgreSQL** (if enabled on your plan)
+- **Redis** → **Caching → Redis**
+- **Memcached** — no auth required; the service is isolated per container.
+- **SMTP** — use any mailbox you've created and its password.
+
+## Connecting from your laptop
+
+Direct external connections to these internal services are not exposed for security reasons. Use the panel's tools instead:
+
+- **MySQL** — **phpMyAdmin** in the panel for ad-hoc queries.
+- **PostgreSQL** — **Adminer** in the panel.
+- **Redis / Memcached** — use the **Caching** section's built-in CLI panel.
+- **SSH tunneling** — if your plan includes SSH (see the plan page), you can tunnel from your laptop through your site container to the internal service.
+
+## Related
+
+- [Create a site](/whp/how-to/create-a-site/)
+
+## Still stuck?
+
+
diff --git a/src/env.d.ts b/src/env.d.ts
new file mode 100644
index 0000000..244817c
--- /dev/null
+++ b/src/env.d.ts
@@ -0,0 +1,5 @@
+///
+
+// Side-effect imports of CSS shipped by @fontsource-variable packages
+declare module '@fontsource-variable/*';
+declare module '@fontsource/*';