James Pearce
@jamespearce.bsky.social
Hacker, sailor, TinyBase. Previously Engineering Director at Meta: data infra, dev tools, open source, and platforms.
Unable to attend this week's awesome-looking @syncconf.bsky.social, I've decided instead to offer a tribute in the only form I know how: a new open source project. 👐
I believe sync is a fundamental part of modern app development. Hopefully I can help make it easier.
Please follow along!
I believe sync is a fundamental part of modern app development. Hopefully I can help make it easier.
Please follow along!
November 10, 2025 at 6:11 PM
Unable to attend this week's awesome-looking @syncconf.bsky.social, I've decided instead to offer a tribute in the only form I know how: a new open source project. 👐
I believe sync is a fundamental part of modern app development. Hopefully I can help make it easier.
Please follow along!
I believe sync is a fundamental part of modern app development. Hopefully I can help make it easier.
Please follow along!
Why do I have to opt-OUT of things like Tailwind (for example) when using AI coding tools?
Surely it should default to use more low-level and efficient primitives than abstractions that were often only designed for human DX.
Surely it should default to use more low-level and efficient primitives than abstractions that were often only designed for human DX.
May 20, 2025 at 8:48 PM
Why do I have to opt-OUT of things like Tailwind (for example) when using AI coding tools?
Surely it should default to use more low-level and efficient primitives than abstractions that were often only designed for human DX.
Surely it should default to use more low-level and efficient primitives than abstractions that were often only designed for human DX.
There's a lot more to a local-first app than just a sync engine.
For example, as I experimented building more complex apps, I soon realized I also needed to manage background tasks more intelligently: `setTimeout` and yolo just isn't good enough!
So now we have TinyTick 🤣
For example, as I experimented building more complex apps, I soon realized I also needed to manage background tasks more intelligently: `setTimeout` and yolo just isn't good enough!
So now we have TinyTick 🤣
🎉 Welcome to our new sister project: TinyTick!
Most intelligent and local-first web applications need background tasks like fetching, syncing, and cache eviction.
But managing them - with scheduling, failure handling, retries, and so on - can be a pain.
Most intelligent and local-first web applications need background tasks like fetching, syncing, and cache eviction.
But managing them - with scheduling, failure handling, retries, and so on - can be a pain.
March 13, 2025 at 7:47 PM
There's a lot more to a local-first app than just a sync engine.
For example, as I experimented building more complex apps, I soon realized I also needed to manage background tasks more intelligently: `setTimeout` and yolo just isn't good enough!
So now we have TinyTick 🤣
For example, as I experimented building more complex apps, I soon realized I also needed to manage background tasks more intelligently: `setTimeout` and yolo just isn't good enough!
So now we have TinyTick 🤣
So many new followers. Happy new year everyone and make sure to check out @tinybase.bsky.social too! 🙏
January 8, 2025 at 12:43 AM
So many new followers. Happy new year everyone and make sure to check out @tinybase.bsky.social too! 🙏
Reposted by James Pearce
This podcast was released 5 months ago, but I just listened. Wow, so many insights and inspirations!
TinyBase - The reactive data store for local-first apps by James Pearce @jamespearce.bsky.social
TinyBase - The reactive data store for local-first apps by James Pearce @jamespearce.bsky.social
#12 – James Pearce: Tinybase - localfirst.fm
A podcast about local-first software development.
www.localfirst.fm
December 25, 2024 at 4:02 PM
This podcast was released 5 months ago, but I just listened. Wow, so many insights and inspirations!
TinyBase - The reactive data store for local-first apps by James Pearce @jamespearce.bsky.social
TinyBase - The reactive data store for local-first apps by James Pearce @jamespearce.bsky.social
Reposted by James Pearce
🎨 OKLCH Cheatsheet
The highest C (chroma) values for a given L (lightness %) that let you display any H (hue) on a P3 display without fallback:
L=20% C=0.04
L=30% C=0.06
L=40% C=0.09
L=50% C=0.11
L=60% C=0.13
L=70% C=0.15
L=80% C=0.1
L=90% C=0.05
(Thanks @evilmartians.com! 🚀)
The highest C (chroma) values for a given L (lightness %) that let you display any H (hue) on a P3 display without fallback:
L=20% C=0.04
L=30% C=0.06
L=40% C=0.09
L=50% C=0.11
L=60% C=0.13
L=70% C=0.15
L=80% C=0.1
L=90% C=0.05
(Thanks @evilmartians.com! 🚀)
November 28, 2024 at 1:05 PM
🎨 OKLCH Cheatsheet
The highest C (chroma) values for a given L (lightness %) that let you display any H (hue) on a P3 display without fallback:
L=20% C=0.04
L=30% C=0.06
L=40% C=0.09
L=50% C=0.11
L=60% C=0.13
L=70% C=0.15
L=80% C=0.1
L=90% C=0.05
(Thanks @evilmartians.com! 🚀)
The highest C (chroma) values for a given L (lightness %) that let you display any H (hue) on a P3 display without fallback:
L=20% C=0.04
L=30% C=0.06
L=40% C=0.09
L=50% C=0.11
L=60% C=0.13
L=70% C=0.15
L=80% C=0.1
L=90% C=0.05
(Thanks @evilmartians.com! 🚀)
Certainly more excited about this launch than the fact that Bluesky doesn't render the animated GIF that goes with it! 😢
🎉 TinyBase v5.4 is here!
@cloudflare.social Durable Objects are a perfect cloud companion for TinyBase, with web socket sync & strongly consistent storage.
We want this to be the easiest way to build local-first apps, anywhere.
And we couldn't be more excited to let you try it! 👇
@cloudflare.social Durable Objects are a perfect cloud companion for TinyBase, with web socket sync & strongly consistent storage.
We want this to be the easiest way to build local-first apps, anywhere.
And we couldn't be more excited to let you try it! 👇
November 26, 2024 at 3:56 AM
Certainly more excited about this launch than the fact that Bluesky doesn't render the animated GIF that goes with it! 😢
Reposted by James Pearce
📑 New 'Architectural Options' guide.
We had feedback that it's hard to understand all the different ways that TinyBase can be used!
So... our new guide runs through many of the ways you can persist & synchronize data - both natively and with other platforms.
Link below! 👇
We had feedback that it's hard to understand all the different ways that TinyBase can be used!
So... our new guide runs through many of the ways you can persist & synchronize data - both natively and with other platforms.
Link below! 👇
November 25, 2024 at 12:31 AM
📑 New 'Architectural Options' guide.
We had feedback that it's hard to understand all the different ways that TinyBase can be used!
So... our new guide runs through many of the ways you can persist & synchronize data - both natively and with other platforms.
Link below! 👇
We had feedback that it's hard to understand all the different ways that TinyBase can be used!
So... our new guide runs through many of the ways you can persist & synchronize data - both natively and with other platforms.
Link below! 👇
I think it's going to be a fun local-first week.
We think you're going to like the new @cloudflare.social integration.
Fully synced real-time clients, with Durable Objects as a server source of truth?
This is the entire server code:
Fully synced real-time clients, with Durable Objects as a server source of truth?
This is the entire server code:
November 18, 2024 at 4:23 AM
I think it's going to be a fun local-first week.
I'd love to be at the Monday morning standup when this web team reviews their weekend traffic.
November 18, 2024 at 2:39 AM
I'd love to be at the Monday morning standup when this web team reviews their weekend traffic.
Alright, I think we need a JavaScript library starter pack.
Please help by nominating other accounts to add! 🙏
go.bsky.app/B3kfK2C
Please help by nominating other accounts to add! 🙏
go.bsky.app/B3kfK2C
November 17, 2024 at 11:44 PM
Alright, I think we need a JavaScript library starter pack.
Please help by nominating other accounts to add! 🙏
go.bsky.app/B3kfK2C
Please help by nominating other accounts to add! 🙏
go.bsky.app/B3kfK2C
That feeling when the app data syncs faster than the CSS loads.
TinyBase v5.4 is going to be fun!
TinyBase v5.4 is going to be fun!
November 17, 2024 at 8:36 PM
That feeling when the app data syncs faster than the CSS loads.
TinyBase v5.4 is going to be fun!
TinyBase v5.4 is going to be fun!
When not hacking.
November 17, 2024 at 8:00 PM
When not hacking.
Tweet 905463 from user 54893.
November 17, 2024 at 2:41 PM
Tweet 905463 from user 54893.
Awesome to see all the local-first fans on here already.
Like for a follow if I haven’t found you yet!
Like for a follow if I haven’t found you yet!
November 16, 2024 at 8:49 PM
Awesome to see all the local-first fans on here already.
Like for a follow if I haven’t found you yet!
Like for a follow if I haven’t found you yet!
Reposted by James Pearce
📍TinyBase is built for a local-first world.
In this blog post from the seafaring father of TinyBase, James Pearce, you will learn how to use TinyBase in your Expo app to build local-first apps and enable data synchronization with other devices and users.
🔗 expo.dev/blog/how-to-...
In this blog post from the seafaring father of TinyBase, James Pearce, you will learn how to use TinyBase in your Expo app to build local-first apps and enable data synchronization with other devices and users.
🔗 expo.dev/blog/how-to-...
How to synchronize reactive local-first apps with TinyBase
Start using TinyBase in your Expo app to build local-first apps and enable data synchronization with other devices and users.
expo.dev
October 1, 2024 at 4:26 PM
📍TinyBase is built for a local-first world.
In this blog post from the seafaring father of TinyBase, James Pearce, you will learn how to use TinyBase in your Expo app to build local-first apps and enable data synchronization with other devices and users.
🔗 expo.dev/blog/how-to-...
In this blog post from the seafaring father of TinyBase, James Pearce, you will learn how to use TinyBase in your Expo app to build local-first apps and enable data synchronization with other devices and users.
🔗 expo.dev/blog/how-to-...