Past the Fundamentals — DB, Content Layer Power Tools, and Beyond
Going Further
A map of features and integrations that build on what you've learned — Astro DB, content loaders, image services, edge runtime.
What you'll learn
- Know what exists beyond the basics
- Pick what to learn next based on your project
You’ve covered the fundamentals. Here’s a map of what to explore next, with rough complexity rankings.
Astro DB
A first-party SQLite + Drizzle integration with seed data and type-safe queries.
npx astro add db Define tables in db/config.ts, query with db.select() from
pages and actions. Great fit for small content/auth/comments
features without bringing a separate database service.
Custom Content Loaders
Beyond glob and file, you can write your own loader to pull
content from a CMS (Sanity, Contentful), a database, or an API —
with full type safety. The pattern: a function that returns
{ id, data } entries.
const cmsLoader = defineCollection({
loader: async () => {
const posts = await cms.posts.findAll();
return posts.map(p => ({ id: p.slug, ...p }));
},
schema: z.object({ /* ... */ }),
}); Image Services
The default image service is Sharp at build time. For dynamic remote images at scale, plug in Cloudinary, Imgix, or a custom service.
Streaming and Suspense
Astro 4+ supports server streaming. Slow data sources render last;
fast parts of the page render first. Pair with React <Suspense>
for islands that wait for data.
View Transitions Deep Dive
The basic <ClientRouter /> is just the start. You can:
- Per-element animations with
transition:nameandtransition:animate - Persistent islands across pages with
transition:persist - Listen to
astro:before-preparation/astro:after-swapto hook into navigation
More to Explore
| Topic | Where to look |
|---|---|
| Astro Server Islands | New as of Astro 5 — dynamic chunks in static pages |
| Content layer with remote sources | Custom loaders |
| Internationalized routing | astro:i18n |
| First-party Studio (auth, DB UI) | astro.studio |
| Web Vitals | @astrojs/web-vitals |
| Robots.txt and sitemap | @astrojs/sitemap, static robots.txt |
| Markdoc | @astrojs/markdoc — Markdown with tags |
Course Complete
You’ve gone from the .astro file format to deploying a real site
with content, islands, and server-rendered pages. The next step is
to build — pick a project, ship it, learn what you actually
need next.