Another beta release is here, bringing significant improvements to the StudioCMS project. We’ve been hard at work not only enhancing StudioCMS but expanding its functionality to make it easier and better for everyone.
What’s New in 0.1.0-beta.31
Here’s a brief overview of the main changes:
- Complete database overhaul powered by Kysely (goodbye, Astro DB)
- Redesigned and simplified SDK for better developer experience
- Multi-database support including MySQL and PostgreSQL
- New system and database management utilities for easier administration
- Streamlined plugin system for better extensibility
- Built-in web vitals and analytics (optional feature)
Catching Up Since Beta.19
The last beta release blog post covered 0.1.0-beta.19 (the Effect update). Since then, we’ve shipped numerous improvements:
- Added multi-language (i18n) support for the dashboard UI
- Took over maintenance of the
@astrojs/web-vitalspackage, which previously used Astro DB for storage, now available as@studiocms/web-vitals - Implemented an Astro component registry (more details coming soon)
- Refactored the plugin system to introduce authentication, dashboard augments, and a streamlined rendering engine
- Reorganized the table schema, simplifying and merging single-row tables like config tables
- Released beta versions of
@studiocms/uifor its upcoming 1.0.0 release
Why We’re Replacing Astro DB and Drizzle with Kysely
This decision was heavily discussed by our core team, and we identified several key advantages to moving away from Drizzle’s architecture.
While both Astro DB and Drizzle are excellent products, Drizzle’s design has limitations for our goals. The main challenge: multi-dialect support. Drizzle’s API requires unique types for each dialect client (MySQL, PostgreSQL, libSQL), making dynamic querying across databases unnecessarily complex.
Enter Kysely
Kysely solves this with a unified client interface. You simply pass your chosen dialect into the constructor, keeping the API stable and consistent across all database types.
The downside? We had to rebuild our entire internal architecture for the new database client.
We’ve created two new packages:
@withstudiocms/kysely- Our main database client@withstudiocms/sdk- Our complete SDK core in its own package, enabling greater flexibility
Both packages provide a significantly improved API while expanding support to many more database dialects and simplifying custom migration handling.
Saying Goodbye to Astro DB
This change means parting ways with one of our primary tools from the beginning: @astrojs/db.
Starting with StudioCMS 0.1.0-beta.31, we will no longer support projects using Astro DB. While Astro DB has been instrumental in getting us to where we are today, we believe this change will have an overwhelmingly positive impact on the project. Plus, we now support far more than just libSQL databases!
Kysely Meets Effect
From the start, we wanted both Kysely and our SDK powered by Effect. After some trial and error, we developed an interface that works perfectly for our use case.
Our Kysely database client and tables utilize Effect patterns and Effect Schema to ensure table data converts properly across all dialects while maintaining simple column type options at the database level. In fact, we only use two column types: integer and text (each properly converted for their dialect by Kysely). These cover all basic value types, and anything else can be stored as JSON strings.
Custom Migration System
The next challenge was handling database schema migrations. Without Astro DB, we needed precise control over our database tables, so we built our own migration handling system. This system supports custom indexes and triggers during table creation or alteration, and integrates seamlessly with our ecosystem through the studiocms migrate command.
The Overhauled SDK
With @withstudiocms/kysely in place, we needed to completely overhaul our SDK. Rather than patching the existing (admittedly messy) SDK, we extracted and rewrote the majority of the handling and processing logic.
This allowed us to:
- Simplify the SDK significantly
- Implement a better caching system that maps all functions to a unified cache map
- Add tag-based tracking for easy category-based cache cleanup
- Prevent state inconsistencies between our SDK and REST API
The new @withstudiocms/sdk package creates a central point for SDK development without the complexity of our previous deeply nested solution. This opens possibilities for side projects—maybe even a dedicated REST API server someday. Have ideas? Join our Discord and share them!
System Management and Database Viewer
We’ve added powerful new tools to StudioCMS:
System Management Page
A dedicated page with debug information and a database viewer powered by Outerbase Studio. This production-ready viewer gives you direct access to your database tables through the StudioCMS dashboard.
CLI Debug Command
The new studiocms debug CLI command prints helpful debug information to your console during development. Similar to Astro’s astro info command, it displays version information for packages and plugins—useful when troubleshooting or seeking help.
Dev Toolbar Integration
We’ve built an all-new Astro dev-toolbar-app for database viewing in development mode. Access your database tables from any page, making debugging and testing new features much easier.
Web Vitals and Page Analytics
If you’re familiar with @astrojs/web-vitals (or its replacement @studiocms/web-vitals) and StudioCMS’s integration with Astro DB, you’ll be pleased to know this functionality is now built-in as an optional plugin.
This plugin allows you to track:
- Web vitals information (LCP, INP, CLS)
- Page view analytics
- Performance metrics powered by Google’s
web-vitalslibrary
While functionality is currently limited to web vital reports, it provides valuable insights into your site’s performance.
Getting Started
To enable web vitals tracking, set the features.webVitals option to true in your StudioCMS config file. This creates a new database table and begins collecting data as pages are viewed and interacted with.
What’s Next for StudioCMS
StudioCMS has come a long way from its initial release, and we’re excited about what’s ahead.
The Big Question: When Will Beta End?
We’re closer than you might think. There are only a few major features we want to complete before moving from beta to standard 0.x.x semver, and eventually to 1.x.x and beyond.
If everything goes smoothly and we avoid major breaking changes from dependencies (like Astro’s upcoming v6 update), we’re hoping to exit beta within a few months after the new year.
Ready to try StudioCMS beta.31? Check out our documentation to get started, or join our Discord community to connect with other users and the development team.
Adam Matthiesen
Published 12/17/2025Back to Blog