# PowerSync Update: December 2024

> We expect 2025 to be a breakout year for sync engines, driven by growing demand for zero-latency apps and simpler state management. We have some exciting plans to share, but first, let’s look at how PowerSync evolved this past month.

- Published: 2025-01-08
- Author: Kobie Botha
- Category: Product Update
- Source: https://powersync.com/blog/powersync-update-december-2024

---

We expect 2025 to be a breakout year for sync engines, driven by growing demand for zero-latency apps and simpler state management. We have some exciting plans to share, but first, let’s look at how PowerSync evolved this past month.

## New Sync Rules Functions

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-73c73dad4f.png)

In November, we released three new Sync Rules functions, `substring(text, start, length)`, `json_each(data)` and `json_keys(data)`. In December, community member **Jorge S (@hyperion)** also added two additional functions:

  * `uuid_blob`: converts a UUID string to bytes. The ID can then be transformed to base64 (e.g. `base64(uuid_blob(id))`) for more performant querying on clients.
  * `iif(x,y,z)`: adds if/else support that returns y if x is true, otherwise returns z.

Thank you, Jorge!

[Read the docs](https://docs.powersync.com/usage/sync-rules/operators-and-functions)

## MongoDB Connector in Beta

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-7a278b59df.png)

**MongoDB** is by far the most popular NoSQL database [[1](https://db-engines.com/en/ranking/document+store)], so supporting it has been key to our vision of prioritizing developer choice as a backend database-agnostic sync engine. In December, we advanced our MongoDB connector to Beta status, meaning that it’s **now ready for production use**.

[Read the announcement post](https://powersync.com/blog/powersync-mongodb-connector-module-now-in-beta)

## Swift Client SDK in Beta

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-1c30752604.png)

This Beta release introduces a Swift-native wrapper around the core of our Swift SDK generated from our Kotlin Multiplatform SDK. This delivers a more intuitive, Swift-friendly interface with improved type-safety. Other challenges were also addressed, such as introducing multi-threading support for transactions.

[Read the release notes](https://releases.powersync.com/announcements/beta-release-of-the-powersync-swift-sdk)

## SolidJS Hooks for PowerSync Queries

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-ebf6126664.png)

Community member **Joakim C** kindly shared his `powersync-solid` project that implements PowerSync hooks for SolidJS. We’ve added this project under the _Notable Community Projects_ section in our docs. Thanks, Joakim!

[Visit the repo](https://github.com/aboviq/powersync-solid)

## New Tutorial Section In Docs

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-32865336fa.gif)

We've released a new _Tutorials_ section in our docs, which already contains some helpful guides, such as:

### New Tutorial: Improve Supabase Connector Performance

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-1aa6db86fb.png)

The demos in our `powersync-js` monorepo provide a minimal working example but are not necessarily optimized for performance, and can therefore be improved.

This tutorial demonstrates how to improve the Supabase backend connector’s performance by implementing two batching strategies that reduce the number of database operations for processing uploads to Supabase.

[See the tutorial](https://docs.powersync.com/tutorials/client/performance/supabase-connector-performance)

### New Tutorial: Use AWS S3 for Attachment Storage

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-cf67b622a9.png)

This tutorial covers how to use AWS S3 for handling attachments in our **React Native To-Do List** example app.

[See the tutorial](https://docs.powersync.com/tutorials/client/attachments-and-files/aws-s3-storage-adapter)

### New Tutorial: Using our Attachment Helper for PDF Attachments

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-da8e9ccf88.png)

The current version of our **React Native To-Do List** example app implements a `PhotoAttachmentQueue` class which enables photo attachments (specifically JPEG) to be synced. This tutorial will guide you on the changes needed to support PDF attachments instead.

[See the tutorial](https://docs.powersync.com/tutorials/client/attachments-and-files/pdf-attachment)

### New Tutorial: How to Perform a Cascading Delete

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-240e2b30d3.png)

Since PowerSync utilizes SQLite views on the client-side instead of standard tables, SQLite features like constraints, foreign keys, or cascading deletes are not available. Currently, there is no direct support for cascading deletes on the client. However, you can achieve this in two different ways, one of which is covered in this tutorial.

[See the tutorial](https://docs.powersync.com/tutorials/client/data/cascading-delete)

### New Tutorial: Generating Development Tokens for Self-Hosted Instances

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-8cc6e89f95.png)

Development tokens are useful for:

  * Getting started quickly without implementing full authentication configuration
  * Sanity-checking your Sync Rules configuration (whether they were applied correctly)
  * Temporarily impersonating a specific user to debug specific issues

This tutorial shows how.

[See the tutorial](https://docs.powersync.com/tutorials/self-host/generate-dev-token)

## Community Focus

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-4905b2f26e.png)

### Contributions

Thank you to these contributors!

  * **js2702** for [2x new Sync Rules functions](https://docs.powersync.com/usage/sync-rules/operators-and-functions), 
  * **joakimbeng** for [SolidJS hooks](https://github.com/aboviq/powersync-solid),
  * **mkieselmann** for [adding missing healthcheck endpoints to the PowerSync Service](https://github.com/powersync-ja/powersync-service/pull/143), and
  * **LucDeCaf** for adding support for [EdDSA](https://github.com/powersync-ja/powersync-service/pull/142) and [ECDSA](https://github.com/powersync-ja/powersync-service/pull/158) signing algorithms when generating custom JWTs.

![](https://powersync.com/images/blog/powersync-update-december-2024-inline-ac9658b795.png)

### Developer Case Study: Aspen Square

**Chris Primavera** joined us to discuss how Aspen Square uses PowerSync in their property operations management app.

[Read the developer case study](https://powersync.com/blog/developer-case-study-chris-primavera-aspen-square)

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