Hello there!
Hello there! I’m Simon, and I’m excited to be joining the PowerSync team.
Some of you might know me better under my GitHub handle, @simolus3. I created (and continue to maintain) some popular database packages in the Dart and Flutter ecosystem, like drift and the sqlite3 package which provides FFI and WebAssembly bindings to SQLite.
In this blog post, I’ll share my motivation for joining PowerSync and what this means for the Flutter SQLite ecosystem.
I’ve been fascinated by developer tools and databases for a long time. While still a student, I created the drift project: a database library for Dart and Flutter apps that makes it easier to access SQLite databases in a typesafe and reliable way. As I explored newer technologies that emerged after I created drift (like dart:ffi and WebAssembly), I was inspired to create the sqlite3 package which provides direct access to SQLite on all Dart platforms.
Last year I finally finished my Master’s degree (even my thesis was about optimizing database engines). I also first got in touch with the PowerSync team last year, initially as an independent contractor working on open-source packages that make it easier to access sqlite3 on the web with Dart and Flutter.
During the almost six years that I’ve now spent developing drift, I’ve added countless features to make working with SQLite databases in Flutter apps easy. I think SQLite is an excellent database choice for mobile apps, and my goal has always been to make drift an obvious solution when using SQLite in Flutter apps.
While SQLite itself is a great component for mobile apps, its boundaries can be a source of friction during development. And while I hope I’ve managed to lower the boundary between the database and the UI with drift, a common challenge I’ve heard about is related to keeping the local state in SQLite up-to-date with the backend. This is why I’m really excited to join PowerSync’s mission of making SQLite even more powerful through their impressive sync engine! In addition to their synchronization technology, PowerSync’s approach of plugging into existing libraries both on the frontend and the backend puts it into a position that’s uniquely easy to adopt. So by joining the team at PowerSync, our contributions to the PowerSync SDK for Dart and Flutter will make SQLite an even better database for Flutter apps, without forcing developers to give up any control over their data.
For users of my Dart database projects like drift and package:sqlite3, nothing will change! I will continue to maintain them as independent projects. As a matter of fact, I will actually have even more time for them as PowerSync generously allows me to work on the drift and sqlite3 packages as part of my role. While some of the upcoming work will be most useful to PowerSync users, everyone will benefit from new features, changes to keep up with the ecosystem (like adopting macros and native assets) and bug fixes. So I hope you’re as excited as I am for what’s happening with databases in Dart and Flutter thanks to PowerSync!