A reactive data store & sync engine.

In your JavaScript app.
Hey @syntaxfm, @stolinski, and @wesbos - thank you so much for featuring TinyBase on the show! 😍 You were looking for non-React usage… check out the first demos & Vite templates for examples. The sync and server story is also developing quickly… your feedback is well taken!
14
1,400
Head to the beta site for release notes and updated API docs: beta.tinybase.org/guides/rel… And install with `npm install tinybase@beta` Have fun!
3
397
🎉 TinyBase v5.1 beta - with server persistence! This release lets you persist data on a web-socket server that's synchronizing local-first clients. It's the first beta, so there might be some rough edges. Please give the tires a kick and let us know how it goes!
3
4
51
3,647
🎉 TinyBase v5.0.4 Oops, we messed up. One of our peer dependencies wasn't marked `optional`, and was getting installed. Please upgrade to tinybase@5.0.4, clean your lock file and node_modules folder - and get back to zero-dependency heaven before the weekend!
1
13
1,526
We’d like to say “of course it works” but we’re also saying “thank goodness it does” 😅
Replying to @tinybasejs
@tinybasejs also works on the backend 🤯🤯
36
2,019
TinyBase v5.0.3... ...has a final tiny breaking change before the working week starts. In the new WsServer, PathIdsListener and ClientIdsListener functions now get the changing path/client Id directly, rather than a clumsy callback. Sorry for violating semver. Just this once!
11
788
🎉 TinyBase v5.0.2! A few minor weekend improvements to the hooks API: 1/ Callbacks are now stable when GetId functions are used. 2/ useDel* hooks can use GetId functions to delete specific data based on events. Thanks @cnakazawa for identifying these improvements! 😍
2
19
1,368
A quick bump for this one - the template has been updated to TinyBase v5.0! Your syncing adventures are just moments away! 😍
🎉 New TinyBase v5.0 template just dropped 😎 In less than 60 seconds, get up and running with CRDT-based synchronization between disparate browser windows, featuring @typescript, @reactjs and @vite_js. All you need at: github.com/tinyplex/vite-tin… Enjoy!
1
37
4,053
I have an idea.
Introducing Charts. A collection of chart components that you can copy and paste into your apps. Built on top of Recharts. Beautifully designed. Open Source.
1
3
126
40,954
Read the full release notes at tinybase.org/guides/releases… - and install now with `npm install tinybase`!
3
7
3,315
🎉 TinyBase v5.0 🎉 We are thrilled to unveil this major new release - "The One You Can Sync" - and a whole load of exciting new local-first opportunities as a result. CRDTs for the rest of us 😎
12
40
440
61,849
That was even easier than expected.
1
9
1,151
Friends! We have decided to push back the TinyBase v5 release by a few hours... ...just enough time to add synchronization over the browser's BroadcastChannel so you can sync your front-end data store to service workers. 🤯
1
3
28
2,279
TinyBase v5 ETA? This week. (Exciting! But please check out the beta and release notes so you know what’s coming… 🤓)
2
13
1,520
Local Mode with @tinybasejs: Another huge feature just shipped. While Athena Crisis is designed as an online experience, blurring the lines between single and multiplayer, sometimes you might be offline, like on an airplane, a cabin in the woods or simply when you have a poor connection. With Local Mode, you can play official Athena Crisis maps and campaigns on device, offline, and without syncing your save state automatically to other devices. The implementation required changing/writing about 10,000 lines of code, and took 4 working days of 7-10 hours each. Athena Crisis uses GraphQL and Relay, but from the beginning the game was designed to work with any data layer. That's why the game can be open source, without publishing the backend or primary frontend! The reason it took 10k changed lines is because I tied some features like campaign mode too much to GraphQL/Relay. I had to separate some entry points into higher-order data fetching components (going back to RelayGraphQLMixin in React.createClass, for those who remember!) and move some backend logic around so it can run on the client. As a data layer, I used @tinybasejs because who wouldn't want to support a former favorite engineering director who turned into a sailor. It was quick to get started, even though the choice of persistence layers and browser behaviors drove me mad for about half a day. I like the reactive hooks it provides which I could wrap elegantly to slot into existing higher order components to drive gameplay. For caching assets, and I'm honestly surprised at how well it works, I'm using vite-plugin-pwa with service workers. Previously, local games were only available without persistence in the map editor, and the AI ran in-process. Thanks to a community contribution we moved the heavy algorithm work to a web-worker, making local mode work almost exactly like regular gameplay: Actions are dispatched to a "remote" location, either a server or worker process, and the game waits for action responses that can be applied to the game state. Maybe, as a next step, we should put the Athena Crisis AI on a smart fridge?
1
6
42
4,236
Think you're going to love v5.
oh, just instantly syncing TinyBase between browsers and React Native apps using native CRDTs 🔥
9
1,169
Working on an @expo + TinyBase weekend project? The TinyBase v4.8.14 release dials back the peer React requirements so it installs cleanly with `create-expo-app`. And TinyBase v5.0@beta now works perfectly with Expo v51 and above. Go build something cool!
7
33
5,918
🚨 TinyBase v5.0 beta 23; a breaking change. Previously TinyBase previously supported @expo-sqlite v13. In v5.0, the persister-expo-sqlite module will only support v14 and later. It's an important improvement! More release notes: github.com/tinyplex/tinybase…
1
10
1,784
Just posted this on the TinyBase Discord. Is this YOU? 😍 Let me help!
3
19
2,035