Brandon Williams
mbrandonw.bsky.social
Brandon Williams
@mbrandonw.bsky.social
Subterranean homesick mathematician. Co-host of @pointfree.co.

https://www.fewbutripe.com
This gives you the benefits of “single-table inheritance” for SQLite tables without the pain of actual class inheritance! 😂 It lets you fully use Swift's powerful domain modeling tools for you database, such as structs and enums.
It is even possible to group mutually exclusive data into a Swift enum for your SQLite tables! This allows you to mimic what “single-table inheritance” gives you without the pain of reference types and class inheritance.
October 3, 2025 at 6:37 PM
Reposted by Brandon Williams
Our most recent library, SQLiteData, embodies this principle.

It pre-supposes: what if I don't want to massively refactor my codebase just because at some point I need to write a bit of code outside of a SwiftUI view 🤪

github.com/pointfreeco/...
GitHub - pointfreeco/sqlite-data: A fast, lightweight replacement for SwiftData, powered by SQL and supporting CloudKit synchronization.
A fast, lightweight replacement for SwiftData, powered by SQL and supporting CloudKit synchronization. - pointfreeco/sqlite-data
github.com
September 29, 2025 at 7:27 PM
Reposted by Brandon Williams
Tired of the “To MVVM or not to MVVM” discussions that plague our community? Us too 😅

That’s why we build tools that work in SwiftUI views, @‌Observable models, UIKit, AppKit, Linux, and more! You should build your app in the way that makes the most sense for you and your team.
September 29, 2025 at 7:27 PM
Reposted by Brandon Williams
It’s finally here: SQLiteData 1.0: a fast, lightweight replacement for SwiftData with full CloudKit support.
www.pointfree.co/blog/posts/1...
SQLiteData 1.0: An alternative to SwiftData with CloudKit sync and sharing
Announcing SQLiteData 1.0: A fast, lightweight alternative to SwiftData with full support for CloudKit synchronization and data sharing.
www.pointfree.co
September 17, 2025 at 4:46 PM
SwiftData offers a promise of simple persistence with easy synchronization. We feel it currently falls short of that goal, but in the fullness of time it may achieve it.

But, for the present, we are working on tools that achieve SwiftData's promise, and honestly a lot more.
It takes only these few lines of code to immediately unlock CloudKit synchronization to our local-only reminders app. It just works™, and it's only the tip of the iceberg.

Check it out for yourself!
👉 github.com/pointfreeco/...
August 5, 2025 at 5:20 PM
Reposted by Brandon Williams
Next week: We are hosting a live stream where we will preview some fantastic new features coming to our SQLite persistence library, including CloudKit sync and sharing, and answer your questions!

Submit your questions *today* 👇

www.pointfree.co/blog/posts/1...
Upcoming live stream: A vision for modern persistence
We are hosting a live stream on June 25th to unveil our vision for modern persistence. Learn how to seamlessly synchronize your app’s data across many devices, including sharing data with other iCloud...
www.pointfree.co
June 17, 2025 at 6:33 PM
Reposted by Brandon Williams
That's right. You can have the best of both worlds. You get unfettered access to SQLite, a fantastic technology that has stood the test of time, while behind the scenes every change is synchronized across devices using CloudKit.

Seems almost too good to be true!
May 22, 2025 at 2:32 PM
Reposted by Brandon Williams
We've had a major breakthrough in the most requested feature of our SwiftData alternative: SharingGRDB.

More details coming soon... 👀
May 21, 2025 at 4:07 PM
Reposted by Brandon Williams
We finish the lists feature of our Apple's Reminders app rebuild. We introduce advanced queries including counts and custom data types. And we show how “drafts” allow us to create and update lists using the same view while keeping the domain as precise as possible.

www.pointfree.co/episodes/ep3...
May 19, 2025 at 4:36 PM
Reposted by Brandon Williams
Announcing a toolkit that provides a SwiftData-like experience to SQLite: SharingGRDB with StructuredQueries.

www.pointfree.co/blog/posts/1...
A fast, lightweight replacement for SwiftData
Replace SwiftData with a fast, ergonomic and lightweight suite of tools powered by SQL. It provides APIs similar to @Model, @Query and #Predicate, but is tuned for direct access to the underlying data...
www.pointfree.co
April 22, 2025 at 5:55 PM
Reposted by Brandon Williams
Don't miss out on our exciting series that designs this SQL building library from scratch! We explore many advanced topics of Swift along the way, as well as a crash course in SQL and databases!

www.pointfree.co/collections/...
SQLite › SQL Building
SQL is one of the most powerful and concise programming languages ever invented, but it is usually written as a raw string in some other language, such as Swift, Javascript, Ruby, and so on. In this s...
www.pointfree.co
March 26, 2025 at 4:52 PM
This query is traversing a recursive one-to-many relationship in SQL (Category belongs to parent Category) to print out the hierarchy of categories.

Why do this work in application code when SQL can knock it out efficiently in just a few lines??
Common Table Expressions (CTEs) are incredibly powerful, and will be fully supported in our upcoming SQL building library.

This demonstrates a type-safe way to traverse a tree in a depth-first manner. Our builder is 20% fewer characters than the equivalent SQL, and 100% safer!
March 26, 2025 at 6:48 PM
Reposted by Brandon Williams
We add sorting to our SQL builder, which will give us a powerful, succinct syntax for controlling the order of results. We will start small but build up to parameter packs and even a custom result builder to get the most flexibility out of our API.

www.pointfree.co/episodes/ep3...
March 24, 2025 at 6:10 PM
Even in a Swift query builder scares you, there is nothing stopping you from writing raw SQL with a static description of your database schema!
Some have expressed skepticism over using our upcoming query builder vs. writing raw SQL. Well our library lets you pick your poison!

Both options are schema-safe and safe from SQL injection, but one is further type-safe and guaranteed to generate valid SQL:
March 20, 2025 at 2:11 PM
Reposted by Brandon Williams
Some have expressed skepticism over using our upcoming query builder vs. writing raw SQL. Well our library lets you pick your poison!

Both options are schema-safe and safe from SQL injection, but one is further type-safe and guaranteed to generate valid SQL:
March 19, 2025 at 7:21 PM
Reposted by Brandon Williams
We now have a type-safe syntax for generating SELECT statements using key paths, but we can do better. Let’s introduce a more advanced syntax that leverages variadic generics and supports more complex query expressions.

www.pointfree.co/episodes/ep3...
March 17, 2025 at 3:28 PM
Reposted by Brandon Williams
While building our SQL building library we have created a state-of-the-art testing tool that allows us to simultaneously snapshot the SQL generated by the library, and the results fetched from the database.
March 13, 2025 at 4:32 PM
Reposted by Brandon Williams
Imagine a SQL building library for which it is easy to define query fragment helpers that can be pieced together in all kinds of interesting ways.

That is exactly what we are building, and this week we give a sneak peek of the library: www.pointfree.co/episodes/ep3...
March 4, 2025 at 5:11 PM
Reposted by Brandon Williams
A tricky part to domain modeling with SQLite is how to handle auto incrementing primary keys. You are forced to use optional IDs, but that leaks complexity throughout your app and complicates Identifiable conformances.

Our @Table macro handily fixes this by generating a Draft type with no ID.
March 6, 2025 at 5:39 PM
Reposted by Brandon Williams
Swift 6.1 brings meta type key paths to the language, and that unlocks a new level of composability in our SQL building library. You can chain together multiple static helpers to build complex queries.

Watch us do this live in this week's episode:
👉 www.pointfree.co/episodes/ep3...
March 5, 2025 at 5:06 PM
This is an incredibly powerful library that simply would not have been possible to build in Swift from a year ago. We are very excited to dive deep into this in our next series of episodes!
On last week’s livestream we demo’d a powerful SQL query building library we are developing. It’s type safe, composable, constructs valid SQL and leverages some of Swift's most powerful features, such as key paths, macros and variadic generics.
February 20, 2025 at 7:57 PM
Reposted by Brandon Williams
Watch us live code a complex query to fetch all reminders that are high priority, or flagged, or has the tag "#kids" associated with it. This requires a complex subquery that is not easily accomplishable in SwiftData.

Get all the details here: www.pointfree.co/clips/105827...
Powering state with a complex SQL query
Watch us live write a complex SQL query to load "really important reminders", and seamlessly integrate that state in our app. The database will automatically be observed for changes so that we can re-...
www.pointfree.co
February 19, 2025 at 4:47 PM
Reposted by Brandon Williams
Our livestream is now up!

• We discuss advanced uses of our Sharing library: Firebase and Wasm
• We release a brand new library: SharingGRDB, an alternative to SwiftData
• We preview a new library: StructuredQueries
• And we answer dozens of viewer questions!

👉 www.pointfree.co/episodes/ep3...
February 17, 2025 at 5:28 PM
Reposted by Brandon Williams
In today's livestream we announced a brand new open source library: SharingGRDB.

It's an alternative to SwiftData that gives you direct access to SQLite, works in UIKit, @​Observable models and SwiftUI views.

Oh, and it back deploys to iOS 13 😲

www.pointfree.co/blog/posts/1...
SharingGRDB: A SwiftData Alternative
We are excited to announce a new open source library that can serve as a SwiftData alternative for many types of apps out there today. It provides tools that work in SwiftUI views, @Observable models,...
www.pointfree.co
February 14, 2025 at 7:23 PM
Reposted by Brandon Williams
Reminder that we are going live in a few hours! We'll be discussing:

🤯 Advanced topics of our new Sharing library
🎉 Announcing a brand new open source library
👀 Sneak peek at our next episode series
🙋 Questions from our viewers

www.pointfree.co/live
🔴 Point-Free Live
Point-Free Live is a periodic livestream where we discuss topics from episodes, explore our open source libraries, and take questions from our viewers.
www.pointfree.co
February 14, 2025 at 2:48 PM