Hvis du kom hit på jakt etter @astrojs/db-integrasjonsdokumentasjon, må du i 2026 vite dette først: Astro DB ble lansert som offisiell integrasjon i mars 2024, gikk i omtrent atten måneder på Astro Studio (en libSQL/Turso-fork) og ble avviklet da Astro Studio stengte våren 2025. Pakken @astrojs/db lar seg fortsatt installere, men det hostede Studio-backendet finnes ikke lenger. Astro 6 leverer det ikke lenger som standard add-on. Det hybride mønsteret denne guiden beskriver er fortsatt gyldig; databaselaget er nå hvilken som helst ekstern SQL-tjeneste du kobler opp selv.
Guiden går gjennom WordPress + edge SQL-mønsteret med runtime-store norske team faktisk kjører i 2026: Turso (libSQL-forken som overlevde Studio), Cloudflare D1, Neon Postgres og Supabase. WordPress blir værende som redaksjonelt backend, en ekstern database holder runtime-data frontenden trenger på edge.
Hvis du bare trenger en raskere WordPress-frontend er dette feil guide. Object cache pluss CDN gir en typisk side TTFB under 200 ms uten en andre database. Hybridmønsteret tjener på sin kompleksitet når innholdsproduksjon og runtime-data faktisk har forskjellig form, eller når WP REST cache-invalidering blir en målbar redaksjonell klage.
Personvern på edge: hvorfor DPIA-en bør komme før koden
I norsk kontekst er valget mellom Turso, D1, Neon og Supabase ofte underordnet personvernrettslig vurdering. Personopplysninger i Astro DB eller en av etterfølgerne betyr: databehandleravtale, Schrems II-vurdering, dokumenterte tekniske og organisatoriske tiltak, og ved usikkerhet en Transfer Impact Assessment.
Datatilsynet i Norge legger seg tett opp mot tysk og europeisk praksis. Bruk av Cloudflare-tjenester (Workers, D1, Pages) er mulig, men krever signert Cloudflare DPA, valg av EU-region, og en aktiv DPIA hvis runtime-data inkluderer kommentarer med klarnavn, skjemainnsendinger fra innloggede brukere eller medlemskapsstatus. CLOUD Act-eksponeringen til amerikanske leverandører er reell og må dokumenteres, ikke vekkforklares.
Praktisk vei norske byråer går i 2026:
- WordPress på en norsk eller nordisk managed-host (DigiPlex, Domeneshop, eller en EU-region hos Loopia eller One.com). Redaksjonelle data ligger i EØS.
- Runtime-data uten personidentifikasjon (varelager, telleverk, caches): Cloudflare D1 eller Turso, EU-region, signert DPA.
- Runtime-data med personidentifikasjon (kommentarer, skjemaer, medlemsstatus): Neon EU-region, Supabase EU-region, eller Postgres på en nordisk leverandør, fordi DPIA da krever vesentlig mindre risikodokumentasjon.
Astro DB-migrasjonen til en ekstern store er i Schrems II-perspektiv også en mulighet: byttet tvinger en inventar over hvilke data som faktisk ligger hvor. Det er rett øyeblikk å skrive DPIA fra bunnen av i stedet for å kopiere den.
Hva Astro DB faktisk var, og hva som erstattet det
Astro DB var et tynt TypeScript-lag over libSQL med en Drizzle-aktig skjemadefinisjon (db/config.ts med defineDb, defineTable, column). Studio-backendet ga en hostet libSQL-instans med gratisnivå på 1 GB lagring og rundt en milliard rad-lesinger i måneden. Lokal utvikling kjørte mot en SQLite-fil, produksjon mot Studio.
Da Studio stengte var den offisielle migrasjonen: behold db/config.ts-skjemaet, bytt Studio-tilkoblingsstrengen mot en selvhostet libSQL- eller Turso-URL, oppdater adapteren. I Astro 6 er ikke astro:db-virtuelmodulen lenger dokumentert som en førsteklasses funksjon. Fire realistiske erstatninger for 2026:
- Turso (libSQL, distribuert SQLite). Nærmest opprinnelig Astro DB-ergonomi. Gratisnivået dekker små sider, replikerte lesinger på edge.
- Cloudflare D1. SQLite på Workers. 1 MB radstørrelsesgrense, 10 GB per database på betalt plan. Naturlig hvis du allerede deployer på Cloudflare Pages eller Workers.
- Neon. Serverless Postgres med branch-per-PR. Gratis-compute pauser automatisk, som betyr 2 til 4 sekunder cold start på første request etter idle.
- Supabase. Postgres med Row Level Security og hostet REST/GraphQL-lag. Tyngre enn D1 eller Turso, men gir auth ut av boksen.
Kodeeksemplene beholder den opprinnelige astro:db-formen fordi det fortsatt er den reneste mentale modellen. Der runtime-forskjellen betyr noe blir valget eksplisitt benevnt.
Når hybridmønsteret tjener på sin kompleksitet
De fleste WordPress-sider bør ikke adoptere dette. En monolittisk WP-installasjon med object cache, statisk cache-lag og CDN bærer opp til rundt 500 000 sidevisninger i måneden før edge-rendering merkbart endrer brukeropplevelsen. Under den terskelen overgår den operasjonelle kostnaden av en andre database, et synkroniseringslag og to deploy-pipelines latens-gevinsten.
Mønsteret tjener på seg selv når minst ett av disse stemmer:
- Frontenden trenger strukturerte data som ikke naturlig hører hjemme i
wp_postsellerwp_postmeta: per-bruker-state, sanntidslager, beregnede leaderboards, stemmeteller, skjemainnsendinger som ikke skal rundtur til WP-databasen. - LCP- eller TTFB-mål krever edge-rendering, og redaksjonen vil ikke forlate WP-admin.
- WP REST cache-invalidering (object cache TTL på 300 til 600 sekunder er default på de fleste managed-hostene) er en tilbakevendende redaksjonell klage, og en andre store du kontrollerer ende til ende er nødvendig.
- Siden har krysset bygge-tid-smerteterskelen: 5000+ poster trukket fra WP REST ved bygging kan dra Astro SSG til 20 til 30 minutter uten en inkrementell strategi.
Arkitekturoversikt: Hvordan Astro DB + WordPress Fungerer
Forståelse av det arkitektoniske grunnlaget muliggjør informerte beslutninger om implementerings tilnærminger og optimaliseringsstrategier.
Det Hybride CMS-Paradigmet
Tradisjonelt monolittisk WordPress kobler innholdsstyring med presentasjon. Headless WordPress skiller disse bekymringene og eksponerer innhold via API-er. Astro DB hybridarkitektur legger til et tredje lag - edge-residente databaser som cacher og forbedrer WordPress-innhold.
Viktige Arkitekturkomponenter
| Komponent | Formål | Teknologi |
|---|---|---|
| WordPress Backend | Innholdsoppretting, brukerhåndtering, media | Tradisjonell WordPress |
| Synkroniseringslag | Datatransformasjon og propagering | Webhooks, REST API eller GraphQL |
| Astro DB | Edge-cached strukturerte data | LibSQL/Turso |
| Astro Frontend | Statisk generering + dynamiske øyer | Astro Framework |
| CDN | Global innholdslevering | Cloudflare, Vercel Edge, etc. |
Dataflyt-arkitektur
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ WordPress │────▶│ Synk-lag │────▶│ Astro DB │
│ (Innhold) │ │ (Transform) │ │ (Edge-Cache) │
└─────────────────┘ └──────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Statisk HTML │◀────│ Astro │◀────│ Edge-spørring │
│ (CDN Cache) │ │ (Build) │ │ (Runtime) │
└─────────────────┘ └──────────────┘ └─────────────────┘
Denne arkitekturen eliminerer direkte WordPress-databasekall fra frontend, dramatisk forbedrer responstider mens innholdsferskhet opprettholdes gjennom strategisk revalidering.
Implementeringsguide: Bygge Ditt Hybride System
Denne seksjonen gir omfattende, produksjonsklare implementeringsveiledninger for å koble Astro DB med WordPress.
Fase 1: WordPress Backend-konfigurasjon
Trinn 1: Installer Nødvendige Plugins
Installer plugins som eksponerer strukturert innhold via REST API med støtte for egendefinerte felt:
# Installer Advanced Custom Fields Pro for strukturert innhold
wp plugin install advanced-custom-fields --activate
# Installer WP GraphQL for effektiv datahenting (valgfritt men anbefalt)
wp plugin install wp-graphql --activate
Trinn 2: Konfigurer Egendefinerte Posttyper
Definer innholdsstrukturer optimalisert for Astro DB-synkronisering:
// functions.php - Registrer egendefinert posttype for Astro-synk
function register_astro_content_type() {
register_post_type('astro_content', array(
'labels' => array(
'name' => 'Astro-innhold',
'singular_name' => 'Astro-innholdselement'
),
'public' => true,
'show_in_rest' => true,
'rest_base' => 'astro-content',
'supports' => array('title', 'editor', 'custom-fields', 'thumbnail'),
'menu_icon' => 'dashicons-database'
));
}
add_action('init', 'register_astro_content_type');
Trinn 3: Sett Opp Webhook-triggere
Konfigurer WordPress til å varsle synkroniseringstjenesten din når innhold endres:
// Utløs synkronisering ved lagring av innlegg
function trigger_astro_sync($post_id) {
if (wp_is_post_revision($post_id)) return;
$post = get_post($post_id);
$webhook_url = getenv('ASTRO_SYNC_WEBHOOK');
wp_remote_post($webhook_url, array(
'body' => json_encode(array(
'post_id' => $post_id,
'post_type' => $post->post_type,
'action' => 'update'
)),
'headers' => array('Content-Type' => 'application/json')
));
}
add_action('save_post', 'trigger_astro_sync');
Fase 2: Astro DB-oppsett
Trinn 1: Initialiser Astro DB
# Opprett nytt Astro-prosjekt med DB
npm create astro@latest min-hybrid-side
cd min-hybrid-side
npx astro add db
Trinn 2: Definer Databaseskjema
Opprett db/config.ts med tabeller som samsvarer med din WordPress-innholdsstruktur:
import { defineDb, defineTable, column } from 'astro:db';
const Posts = defineTable({
columns: {
id: column.number({ primaryKey: true }),
wpId: column.number({ unique: true }),
slug: columntext-unique-true
title: column.text(),
content: column.text(),
excerpt: column.text({ optional: true }),
featuredImage: column.text({ optional: true }),
author: column.text(),
publishedAt: column.date(),
modifiedAt: column.date(),
categories: column.json(),
tags: column.json(),
meta: column.json({ optional: true }),
}
});
const Authors = defineTable({
columns: {
id: column.number({ primaryKey: true }),
wpId: column.number({ unique: true }),
name: column.text(),
email: column.text(),
avatar: column.text({ optional: true }),
bio: column.text({ optional: true }),
socialLinks: column.json({ optional: true }),
}
});
export default defineDb({
tables: { Posts, Authors }
});
Trinn 3: Konfigurer Databaseforbindelse
For produksjon, koble til Turso for edge-distribusjon:
# Installer Turso CLI
curl -sSfL https://get.tur.so/install.sh | bash
# Opprett database
turso db create wordpress-astro-hybrid
# Hent tilkoblings-URL
turso db show wordpress-astro-hybrid
# Sett miljøvariabler
export TURSO_DATABASE_URL="libsql://din-db.turso.io"
export TURSO_AUTH_TOKEN="din-token"
Fase 3: Implementering av Synkroniseringslag
Opprett en serverless-funksjon som synkroniserer WordPress-innhold til Astro DB:
// src/pages/api/sync.ts
import type { APIRoute } from 'astro';
import { db, Posts, Authors } from 'astro:db';
export const POST: APIRoute = async ({ request }) => {
const { post_id, post_type } = await request.json();
// Hent fra WordPress REST API
const wpResponse = await fetch(
`${import.meta.env.WP_API_URL}/wp-json/wp/v2/${post_type}/${post_id}`
);
const wpPost = await wpResponse.json();
// Transformer og sett inn i Astro DB
await db.insert(Posts).values({
wpId: wpPost.id,
slug: wppostslug
title: wpPost.title.rendered,
content: wpPost.content.rendered,
excerpt: wpPost.excerpt?.rendered,
featuredImage: wpPost.featured_media ?
await getFeaturedImage(wpPost.featured_media) : null,
author: wpPost.author,
publishedAt: new Date(wpPost.date),
modifiedAt: new Date(wpPost.modified),
categories: wpPost.categories,
tags: wpPost.tags,
}).onConflictDoUpdate({
target: Posts.wpId,
set: {
title: wpPost.title.rendered,
content: wpPost.content.rendered,
modifiedAt: new Date(wpPost.modified),
}
});
return new Response(JSON.stringify({ success: true }), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
};
Fase 4: Frontend-implementering
Statisk Sidegenerering med Dynamiske Øyer
---
// src/pages/blog/[slug].astro
import { db, Posts, eq } from 'astro:db';
import CommentSection from '../../components/CommentSection.jsx';
export async function getStaticPaths() {
const posts = await db.select().from(Posts);
return posts.map(post => ({
params: '{ slug: post.slug },'
props: { post }
}));
}
const { post } = Astro.props;
---
<article>
<header>
<h1>{post.title}</h1>
<time datetime={post.publishedAt.toISOString()}>
{post.publishedAt.toLocaleDateString('nb-NO')}
</time>
</header>
<div class="content" set:html={post.content} />
<!-- Dynamisk øy for kommentarer -->
<CommentSection postId={post.wpId} client:visible />
</article>
Komponent for Dynamisk Datahenting
// src/components/CommentSection.jsx
import { useState, useEffect } from 'react';
export default function CommentSection({ postId }) {
const [comments, setComments] = useState([]);
useEffect(() => {
// Hent fra Astro DB edge-funksjon
fetch(`/api/comments?postId=${postId}`)
.then(r => r.json())
.then(setComments);
}, [postId]);
return (
<section className="comments">
<h3>Kommentarer ({comments.length})</h3>
{comments.map(comment => (
<article key={comment.id}>
<strong>{comment.author}</strong>
<p>{comment.content}</p>
</article>
))}
</section>
);
}
Ytelsesoptimaliseringsstrategier
Edge-caching-konfigurasjon
Konfigurer CDN-et ditt for optimal Astro DB-hybrid ytelse:
| Cache-type | Varighet | Strategi |
|---|---|---|
| Statisk HTML | 1 år | Uforanderlig med hash |
| Astro DB-forespørsler | 60 sekunder | Stale-while-revalidate |
| WordPress-media | 1 år | Langsiktig med cache-busting |
| API-responser | 5 minutter | Dynamisk basert på innholdstype |
Databaseforespørselsoptimalisering
// Bruk indekser for vanlige forespørsler
// db/config.ts
const Posts = defineTable({
columns: {
// ... kolonner
},
indexes: {
slugIdx: { on: ['slug'], unique: true },
publishedIdx: { on: ['publishedAt'] },
categoryIdx: { on: ['categories'] },
}
});
Inkrementell Statisk Regenerering (ISR)
Implementer ISR for innhold som endres ofte:
// astro.config.mjs
export default defineConfig({
output: 'hybrid',
adapter: vercel(),
experimental: {
isr: {
// Regenerer sider hvert 60. sekund
expiration: 60,
// Omgå cache for innloggede brukere
bypassToken: process.env.BYPASS_TOKEN,
}
}
});
Feilmoduser vi faktisk har sett
Før seierhistoriene, skaderegisteret. Det er formene smerten tar i ekte migrasjoner, ikke hva-om-hypoteser.
WP REST cache-invalidering. WordPress object cache (Redis eller Memcached) er på de fleste managed-hostene satt til TTL på 300 til 600 sekunder. Hvis synkroniseringslaget leser /wp-json/wp/v2/posts rett etter at redaksjonen publiserer, kan utdatert tilstand ende i Astro DB i opptil ti minutter. Botemidlet er å invalidere object cache fra publish-hooken før synkroniseringen skyter, som krever hosting som lar deg kalle wp_cache_flush_group programmatisk.
Bygge-tid-eksplosjon på skala. En side med 20 000 poster som trekker alt fra WP REST ved SSG-bygging bruker 18 til 25 minutter alene på nettverks-rundturer. To veier ut: pre-stage data inn i runtime-store (Turso/D1/Neon) på publish-webhook og la Astro lese fra den lokale storen ved bygging, eller flytt til Astros inkrementelle bygging med output: 'server' og on-demand-rendering for long-tail. Refleksen “alt SSG, alltid” knekker på skala.
Cloudflare D1 radstørrelsesgrense. D1 begrenser enkeltrader til 1 MB. WordPress-poster med serialiserte postmeta eller renderet Gutenberg-blokk-JSON kan krysse den linjen. Botemidlet er å lagre serialisert payload i R2 (eller annen object store) og holde bare en referanse i D1. Å oppdage det fredag ettermiddag når en lang post feiler ved synk, er ubehagelig.
Neon cold start. Neons gratisnivå (og det rimeligste betalte) pauser compute etter idle. Første query etter pause koster 2 til 4 sekunder. For en edge function som kjører på hver request betyr det: første bruker etter 5 minutters stillhet ser et flash av treghet. Enten betal for always-on compute, eller aksepter cold start og cache aggressivt på edge.
En konkret migrasjon: 20k poster, 50k kommentarer, 18-minutters bygging
En norsk B2B-fagpublikasjon kjørte en single-server WP-installasjon, rundt 20 000 poster og 50 000 brukerkommentarer akkumulert over et tiår. Redaksjonen ville ikke flytte fra WordPress; ingeniørteamet trengte TTFB under 100 ms fra Oslo og Bergen og var lei av å bekjempe plugin-bloat.
Formen de endte på:
- WordPress som headless CMS hostet på Domeneshop, innhold trekkes via WP REST ved publisering, ikke ved bygging. En liten webhook-lytter invaliderer object cache, så skriver normaliserte post-records inn i Cloudflare D1 (EU-region).
- Kommentarer flyttet helt til D1. WP-kommentartabellen ble stående for arkiv, men nye kommentarer treffer det edge-rendrede kommentarendepunktet, persisteres i D1, og en nattlig jobb speiler dem tilbake til WP for redaksjonell moderering og spam-sjekk.
- Astro deployet til Cloudflare Pages med
output: 'server'og aggressive cache-regler. De fleste sidene rendres på edge fra D1 i 30 til 80 ms. - Bygge-tid gikk fra 18 minutter (full SSG med WP REST) til rundt 3 minutter (Astro bygger den statiske skallet, dynamisk innhold lastes fra D1 ved første request og caches på edge).
Trade-offene de aksepterte: en andre deploy-pipeline, et synkroniseringsskript som av og til trenger barnepass når WP REST returnerer ødelagte featured-image-URL-er, og D1-radstørrelsesbegrensningen som tvinger truncating eller eksternalisering av en håndfull patologisk lange poster. Cloudflare DPA ble signert, en TIA for D1 EU-regionen ble dokumentert.
Sammenligning: monolittisk WP mot hybridmønsteret
Sammenligningen er en kompetent konfigurert monolittisk WordPress-installasjon mot hybridmønsteret. Den monolittiske siden er ikke en stråmann: object cache, page cache, CDN, moderne PHP, anstendig host. Tallene er båndet du bør forvente, ikke en garanti.
| Dimensjon | Monolittisk WordPress (godt konfigurert) | Hybrid (WP + edge SQL) |
|---|---|---|
| TTFB ved origin | typisk 150 til 400 ms | 30 til 100 ms fra edge |
| Tid til første bygge-deploy | minutter (ingen byggesteg) | 3 til 30 minutter avhengig av strategi |
| Redaksjonell publish-til-live | sekunder (cache-flush) | 10 til 90 s (webhook + synk + cache-invalidering) |
| Operasjonell overflate | én stack | to stacker, ett synk-lag |
| Personvernarbeid | lavt på nordisk host | DPA + TIA + DPIA for ekstern edge-store |
| Kostnadsform | hosting-regning skalerer med trafikk | hosting + edge DB + båndbredde, individuelt tilbud |
| Best egnet | opp til ~500 000 sidevisninger/måned | innhold + runtime-data divergerer, edge-rendering som hardt krav |
| Verst egnet | sider som trenger per-bruker runtime-state på skala | små innholds-sider med forutsigbar trafikk |
Sikkerhetshensyn
Dataisolasjon
- WordPress admin-panel bak VPN eller IP-restriksjon
- Astro DB bruker separate legitimasjon fra WordPress
- Ingen direkte databaseforbindelser fra frontend
API-sikkerhet
// Implementer rate limiting på synkroniseringsendepunkter
import { RateLimiter } from 'limiter';
const limiter = new RateLimiter({
tokensPerInterval: 10,
interval: 'minute'
});
export const POST: APIRoute = async ({ request }) => {
if (!await limiter.tryRemoveTokens(1)) {
return new Response('Rate limit overskredet', { status: 429 });
}
// ... synkroniseringslogikk
};
Innholdsvalidering
Alltid rens WordPress-innhold før lagring i Astro DB:
import DOMPurify from 'isomorphic-dompurify';
const cleanContent = DOMPurify.sanitize(wpPost.content.rendered, {
ALLOWED_TAGS: ['p', 'br', 'strong', 'em', 'h2', 'h3', 'ul', 'ol', 'li', 'a'],
ALLOWED_ATTR: ['href', 'title', 'alt']
});
Feilsøking av Vanlige Problemer
Synkroniseringsfeil
| Symptom | Årsak | Løsning |
|---|---|---|
| Innhold oppdateres ikke | Webhook fyres ikke | Sjekk WordPress-feillogger |
| Delvis datasynkronisering | API-timeout | Implementer batch-behandling |
| Schema-mismatch | Kolonnetypekonflikt | Versjoner synkroniseringslaget |
| Dupliserte oppføringer | Race condition | Bruk unike begrensninger |
Ytelsesdegradering
Overvåk disse målingene for å identifisere flaskehalser:
// Legg til ytelsesovervåking
const start = performance.now();
const posts = await db.select().from(Posts);
console.log(`Forespørsel tok ${performance.now() - start}ms`);
Relaterte Artikler
- Headless WordPress vs Traditional: ROI-analyse 2026
- Moderne WordPress-verktøy: Vite vs Webpack 2026
- WordPress REST API vs GraphQL 2026
- CI/CD WordPress-automatisering Guide 2026
- Green Web & Digital Bærekraft
LLM-vennlige Strukturerte Data
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Astro DB + WordPress: Den Ultimate Hybride Arkitekturen",
"description": "Kombiner WordPress innholdsstyring med Astro DB for edge-ytelse og SQL-muligheter i 2026.",
"author": {
"@type": "Organization",
"name": "WPPoland"
},
"datePublished": "2026-01-29",
"dateModified": "2026-01-29",
"articleSection": "Web Development",
"keywords": ["Astro DB", "WordPress", "Headless CMS", "Edge Database", "Hybrid Architecture"],
"about": {
"@type": "Thing",
"name": "Astro DB WordPress Integration"
}
}
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Hvordan implementere Astro DB + WordPress Hybrid Arkitektur",
"description": "Steg-for-steg guide til å bygge en høytytende hybrid CMS ved hjelp av Astro DB og WordPress",
"totalTime": "PT4H",
"supply": ["WordPress-installasjon", "Astro-rammeverk", "Turso-konto"],
"tool": ["Node.js", "TypeScript", "SQLite"],
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "Konfigurer WordPress Backend",
"text": "Installer nødvendige plugins og konfigurer egendefinerte posttyper for strukturert innhold."
},
{
"@type": "HowToStep",
"position": 2,
"name": "Sett opp Astro DB",
"text": "Initialiser Astro DB med skjema som samsvarer med WordPress-innholdsstrukturen."
},
{
"@type": "HowToStep",
"position": 3,
"name": "Implementer synkroniseringslag",
"text": "Opprett webhook-handlere for å synkronisere WordPress-innhold til Astro DB."
},
{
"@type": "HowToStep",
"position": 4,
"name": "Bygg frontend",
"text": "Utvikle Astro-komponenter med statisk generering og dynamiske øyer."
},
{
"@type": "HowToStep",
"position": 5,
"name": "Optimaliser ytelse",
"text": "Konfigurer edge-caching, databaseindekser og inkrementell statisk regenerering."
}
]
}
Når du ikke skal gjøre dette
Å hoppe over hybridmønsteret er det rette valget oftere enn å adoptere det. Hvis du driver en innholds-side, trafikken ligger under en halv million sidevisninger per måned, og redaksjonen er fornøyd med WordPress-admin: bli på monolitten. Object cache, en page cache-plugin og Cloudflare foran gir deg 90 prosent av ytelses-gevinsten uten en andre database, et synk-lag eller on-call-byrden av to systemer. På en nordisk managed-host er også personvern-spørsmålet ute av spillet.
Hybridmønsteret tjener på seg selv når innholdsproduksjon og runtime-data faktisk har forskjellig form (stemmer, innsendinger, per-bruker-state, sanntidslager) eller når LCP- og TTFB-mål krever edge-rendering og redaksjonen ikke flytter seg. Hvis du adopterer det: velg runtime-store etter deploy-mål. Turso for nærmest opprinnelig Astro DB-ergonomi, Cloudflare D1 hvis du allerede deployer på Workers, Neon hvis dataformen krever Postgres, Supabase hvis du også trenger auth og RLS. Ved personopplysninger: DPIA først, kode etterpå. Astro DB som hostet produkt er ikke et valg du kan ta i 2026.
For implementeringshjelp, samarbeid med en Astro-utvikler som også argumenterer deg ut av arkitekturen hvis den ikke passer. Kontakt WPPoland for en avgrenset vurdering; pris individuelt.
Sist oppdatert: 2026-04-01.



