|
min. read

PowerSync Update: October 2024

Kobie Botha

After seeing our user base double from July through September, momentum has continued with another record for new users in October. To support this growth, we’ve created a new team of exceptional engineers focused on developer success, headed up by Mike Barnes. Last week, the team was joined by Hein von Stein — welcome Hein! We’ve been hard at work shipping too, with multiple releases every week in October. Let’s look at the highlights:

MongoDB Now Supported In PowerSync Cloud

After initially releasing support for MongoDB to our self-hosted Open Edition, we’ve added the ability to connect PowerSync Cloud instances to MongoDB through the PowerSync Dashboard. PowerSync Cloud can connect to either MongoDB Atlas or self-hosted MongoDB environments. It’s an important milestone for our partnership with MongoDB, which was also announced in October. 

The short turnaround of this release was made possible because of the new modular architecture of the PowerSync Service.

Read the blog post

MySQL Now Supported As Source Database

The modular architecture of the PowerSync Service also paved the way for us to implement support for MySQL as a source database. Although recently less prominent than Postgres, MySQL is still a wildly popular database, and we’re excited about the increased flexibility this additional option will give developers.

MySQL support is in alpha and available in PowerSync Cloud as well as self-hosted PowerSync (Open Edition & Enterprise Self-Hosted Edition).

Read the release notes

A Gentler Introduction To Sync Rules

Dominic Bauer wrote a helpful introduction: Sync Rules from First Principles: Partial Replication to SQLite. This is a great starting point for understanding their purpose, structure and operation. Thanks Dom!

Read the post

Major Client-Side Performance Improvements

As part of a multi-month project to boost performance across our entire stack, we released version 0.3.0 of our %%powersync-sqlite-core%% extension, which addresses performance bottlenecks during incremental sync. 

Previously, incremental sync had overhead proportional to the number of synced rows, which typically caused noticeable latency when syncing around 10k-100k+ rows. Now, clients can effectively sync an "unlimited" number of rows without any overhead. Of course, the local storage used and the time for initial sync will still be proportional to the number of rows synced to the client.

This has been released to all client SDKs: upgrade to the latest version to receive this update.

See the release message on the PowerSync Discord

New Docs Site Live

We know how important high-quality documentation is to overall developer experience, so we’ve been investing in upgrading our docs site. It recently went live and we think there’s a lot to love, including:

  • Tabs for easily navigating higher-level topics
  • Faster loading times 
  • Syntax highlighting is back!
  • Light/dark mode 
  • (Good) AI-enabled search
  • Better styling

See new docs site

Introducing Advanced Instance Monitoring And Alerting

We announced major new monitoring and alerting features for PowerSync Cloud users:

Instance logs are now available for all plans, accessible in the PowerSync Dashboard header. 

Fully configurable issue and metric alerting is also available on the Team and Enterprise plans, and issue alerts for fatal issues will come to the Pro plan soon. Webhooks are currently available for wiring up alert notifications to external systems, while support for email alert notifications is planned.

Read the release notes

OP-SQLite Supported in React Native SDK, Enabling Client-Side Encryption

We’re excited to add OP-SQLite to our React Native SDK because it allows developers to set up encryption through SQLCipher.

We’re excited to announce support for OP-SQLite in our React Native SDK as an alternative to the %%react-native-quick-sqlite%% package. OP-SQLite has become our preferred SQLite library for React Native.

The support for OP-SQLite also allowed us to implement support for SQLCipher on React Native, enabling client-side database encryption. Support for SQLCipher in our Flutter/Dart client SDK is coming soon.

See the package README to get started

Support for Suspense in React Client SDK

We’ve added support for React Suspense which allows you to suspend rendering parts of an app until a particular condition is met (such as waiting for data to load). 

Specifically, the %%useSuspenseQuery%% hook allows you to access the results of a watched query, but its loading and fetching states are handled through %%<Suspense>%%, which, for example, allows you to display a fallback until data has finished loading.

See the React package README

TanStack Query Integration Now Available (Alpha)

In addition to supporting React Suspense, we also implemented an integration with TanStack Query, enabling developers to use its powerful asynchronous state management features for React and React Native, including query caching.

Read the release notes

Swift Package Manager Now Supported

We’ve released a version of our %%powersync-sqlite-core%% package that’s compatible with Swift Package Manager (SPM), meaning Swift developers are no longer required to use the Cocoapods version and can remove that reference from their applications.

Include it in your Swift projects with this GitHub URL: 

https://github.com/powersync-ja/powersync-sqlite-core-swift

Community Focus

High-fives to community members Omnicpie  and LucDeCaf who contributed with PRs this month. We had pull requests adding the ability to set client parameters to our diagnostics app and updating the schema generated by the diagnostics app to use the latest Schema and Table syntax. Both are super useful!

Developer Case Study: Blueprint / Friend

Kei Otani joined us to discuss his AI-enabled app for people in Japan who want to practice English.

Developer Case Study: Portable PPB

Ben Clark and Campbell Kilgour joined us to discuss their infield gold detection app.

Developer Case Study: Octologs

Ben Mahr joined us to discuss his scuba diving experiences logging app, Octologs.

Developer Case Study: Xiroi.cat

Guillem Puche joined us to discuss his app for saving and managing inspirational quotes.

That's it for the October update, happy coding!

Subscribe to receive updates

Thank you! Your submission has been received.
Oops! Something went wrong while submitting the form. Please try again.