Blog
Read our latest posts to learn more about technology and market trends, plus technical deep dives and useful tutorials.
![Cross-Platform Development with Flutter Just Got Better](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F411d29de8dc07e18e40e4226c5f51c4eadd955b4-2560x1440.jpg&w=3840&q=100)
Cross-Platform Development with Flutter Just Got Better
Ryan RatnerJuly 25th, 2024
![New ATAK Plugin Unlocks Serverless Peer-to-Peer Sync at the Edge](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Ffd96a1bd9f581801c6391aff0bd834d08633574d-2560x1440.jpg&w=3840&q=100)
New ATAK Plugin Unlocks Serverless Peer-to-Peer Sync at the Edge
Brian YoungJuly 12th, 2024
![Announcing Ditto Support for Apple Vision Pro, Now in Beta](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F8cb6971fe428f1e3a86ae54c92e0ffbc6b96bb60-2560x1440.jpg&w=3840&q=100)
Announcing Ditto Support for Apple Vision Pro, Now in Beta
Ryan RatnerJune 20th, 2024
![Bridging React Native and Rust via JSI](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F919c705a1225a285d9ba573b24da95574b2b7fe5-2560x1440.jpg&w=3840&q=100)
Bridging React Native and Rust via JSI
Teodor CiuraruJune 14th, 2024
![ANA Elevates Onboard Passenger Experience with Ditto](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F5eec4ce38e4497698dd6477062a9f990e1a85fca-1120x748.jpg&w=3840&q=100)
ANA Elevates Onboard Passenger Experience with Ditto
Ryan RatnerJune 5th, 2024
![Unlocking the Power of Local-First Apps with Bluetooth Low Energy](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Fc3f30b20a7ba1bd8ab352e982fd7038188149bc6-2560x1440.jpg&w=3840&q=100)
Unlocking the Power of Local-First Apps with Bluetooth Low Energy
Tom KarpiniecMay 20th, 2024
![Ditto Version 4.7.0 Increases Visibility and Security in Your Local Mesh](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F655807090ba94ec8485e251750d5fa707adfe2a4-2560x1440.jpg&w=3840&q=100)
Ditto Version 4.7.0 Increases Visibility and Security in Your Local Mesh
Ryan Ratner, Skyler JokielApril 9th, 2024
![Scaling the Big Peer Store](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F349df51ba39c91bac4907e9075c2458a6df50750-750x422.webp&w=3840&q=100)
Scaling the Big Peer Store
Russell BrownMarch 18th, 2024
![Key technology trends to look out for at MURTEC 2024](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F1b09db2149dec3934ff3880b6c4a71456e873be2-1920x1080.jpg&w=3840&q=100)
Key technology trends to look out for at MURTEC 2024
Ryan RatnerMarch 4th, 2024
![ShareMy.Health Uses Ditto to Support Child Nutrition Programs in Developing Nations](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F548edfdd1d94a2c870ddc90df000b5776b6b734e-1280x720.jpg&w=3840&q=100)
ShareMy.Health Uses Ditto to Support Child Nutrition Programs in Developing Nations
Ryan RatnerFebruary 14th, 2024
![Running a React Web App in an Android App](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Fb93e1b245f71128c9174193d7fb19f2aebdea6e7-1920x1080.png&w=3840&q=100)
Running a React Web App in an Android App
Ben Chatelain , Max AlexanderDecember 29th, 2023
![Offline peer to peer sync using JavaScript, React, and Auth0](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F664293dce5c6cb39b76cead53381bbd071bbd30c-640x427.webp&w=3840&q=100)
Offline peer to peer sync using JavaScript, React, and Auth0
Marina KuksoNovember 30th, 2023
![Building an airline seat map in SwiftUI](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F24412fae11e882673bdf95a6c35270337d64130a-640x446.webp&w=3840&q=100)
Building an airline seat map in SwiftUI
Max AlexanderNovember 22nd, 2023
![Omnichannel retail - Building your own platform](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F340272e6d883122d7edc9f1f910be6d8b9647d1c-640x360.webp&w=3840&q=100)
Omnichannel retail - Building your own platform
Max AlexanderOctober 10th, 2023
![An inside look at Ditto's Delta State CRDTs](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F032b0e866b6d8d7cb78b44cbdc141d1529f157ef-640x360.webp&w=3840&q=100)
An inside look at Ditto's Delta State CRDTs
Russell BrownSeptember 19th, 2023
![Getting started with Electron, TypeScript, Vite, and Ditto](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F44c95984e085b5405c2102b6807696ca05f5dffa-640x360.webp&w=3840&q=100)
Getting started with Electron, TypeScript, Vite, and Ditto
Max AlexanderSeptember 6th, 2023
![The road to good bluetooth permissions on mobile](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Ffea0658c7479128c9359a70e134a532d8b28763b-640x363.webp&w=3840&q=100)
The road to good bluetooth permissions on mobile
Tom KarpiniecAugust 29th, 2023
![Running a React web app in an iOS app](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F32361b0daf9be77ed1ccdb65313e2ff07e2581c4-640x360.webp&w=3840&q=100)
Running a React web app in an iOS app
Max AlexanderAugust 23rd, 2023
![Omnichannel retail - Choosing the right platform for your business](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F9edc0a38d0a9174f92f863602e283470ea198fc2-640x319.webp&w=3840&q=100)
Omnichannel retail - Choosing the right platform for your business
Max AlexanderAugust 8th, 2023
![Chick-fil-A point-of-sale system goes cloud-optional with Ditto](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Fa48fb4f50b9adabbe0f171f80435e04fc4fe4a5b-640x361.webp&w=3840&q=100)
Chick-fil-A point-of-sale system goes cloud-optional with Ditto
Ryan RatnerAugust 1st, 2023
![Omnichannel retail - From problem to strategy](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F141b54c15358b0ddf81445b4b645d47e7c08cbb9-640x360.webp&w=3840&q=100)
Omnichannel retail - From problem to strategy
Max AlexanderJuly 25th, 2023
![Getting started with Bluetooth File Sync](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F09f5ad3bdf9f34b36eaed1eec873f06469e03c73-640x363.webp&w=3840&q=100)
Getting started with Bluetooth File Sync
Rae McKelveyJune 28th, 2023
![Ditto version 4: AddWins for the Win](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F02927b487ffc98ba564ed2be9bd1e27701666af0-640x360.webp&w=3840&q=100)
Ditto version 4: AddWins for the Win
Rae McKelveyApril 17th, 2023
![Converting HEX strings to UIColor and Color for UIKit and SwiftUI](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F6e9774227c20f3c169f73ffd3c76b179b34defc3-640x360.webp&w=3840&q=100)
Converting HEX strings to UIColor and Color for UIKit and SwiftUI
Max AlexanderApril 14th, 2023
![Say goodbye to Objective-C, and hello to Swift success](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F4d7f43b56ff40093dc7f6346be7c00496c67d1a2-640x360.webp&w=3840&q=100)
Say goodbye to Objective-C, and hello to Swift success
Ryan Ratner, Konstantin BenderMarch 22nd, 2023
![Streamline your iOS debugging with DittoSwiftTools](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F82e7be595d0909caeb38ff3694f9f632baac9c4a-640x467.webp&w=3840&q=100)
Streamline your iOS debugging with DittoSwiftTools
Walker EreksonFebruary 7th, 2023
![How to Sync Couchbase over Bluetooth and peer-to-peer Wi-Fi](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F36e03d34dd82a088fc8e0e509c0cb208b6a96bec-640x368.webp&w=3840&q=100)
How to Sync Couchbase over Bluetooth and peer-to-peer Wi-Fi
Walker EreksonDecember 6th, 2022
![Ditto unlocks the mesh of things: enable peer-to-peer on Raspberry Pi](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Fe1fb181f0d55dc262a05b258f85fb527153429ad-640x360.webp&w=3840&q=100)
Ditto unlocks the mesh of things: enable peer-to-peer on Raspberry Pi
Ryan RatnerAugust 10th, 2022
![The future of the cloud? Make it optional](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Fc8a12dbf744faea23b8d6b305ce8cb4f39c9cc79-1080x516.webp&w=3840&q=100)
The future of the cloud? Make it optional
Rae McKelveyJuly 13th, 2022
![Testing CRDTs in Rust, from theory to practice](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F0aabecd6510a92fb906fd01729a8f6bf564f8137-1080x665.webp&w=3840&q=100)
Testing CRDTs in Rust, from theory to practice
Russell BrownApril 5th, 2022
![Introducing combine support in Ditto](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Fb5d7d6665b84a5b30b9fd33bc8effc154cf90c5c-1080x608.webp&w=3840&q=100)
Introducing combine support in Ditto
Max AlexanderMarch 7th, 2022
![Mocking time in Async Rust](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F9099164bba219986876fbcad02636fe8355e59ef-1080x608.webp&w=3840&q=100)
Mocking time in Async Rust
Tom KarpiniecFebruary 9th, 2022
![Using Ditto as a local database](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F85f167f7294609f35627c8a67c8bdae5740a5acc-1080x608.webp&w=3840&q=100)
Using Ditto as a local database
Max AlexanderFebruary 8th, 2022
![Coming soon - Unlocking extreme speed with Ditto Bus](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F5ee332f82a92a85bb270e5fab5432faca1b76177-1080x608.webp&w=3840&q=100)
Coming soon - Unlocking extreme speed with Ditto Bus
Max AlexanderJanuary 12th, 2022
![Introducing v1.0.4 for Android, 10× faster](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F922510a7b1efaaa892cedd771ec28fe2676fb91c-640x360.webp&w=3840&q=100)
Introducing v1.0.4 for Android, 10× faster
Tom KarpiniecJuly 6th, 2021
![Introducing v1.0.3 for iOS, now 5.56 times faster](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F170a80c96945de96d10e880cbeb7bc241820b3b5-640x427.webp&w=3840&q=100)
Introducing v1.0.3 for iOS, now 5.56 times faster
Tom KarpiniecMay 26th, 2021
![[翻訳] Bluetooth ClassicとBluetooth Low Energyの違いとは?](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F83fe23f405f1b28840f3e632cad7db5db45053ca-1080x720.webp&w=3840&q=100)
[翻訳] Bluetooth ClassicとBluetooth Low Energyの違いとは?
Ryan Ratner, Shunsuke KondoApril 19th, 2021
![USPTO approves Ditto patent in less than 3 months](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F13650d09734f3cc92ce40f76be0091ef5c5816cd-800x450.webp&w=3840&q=100)
USPTO approves Ditto patent in less than 3 months
Ryan RatnerMarch 4th, 2021
![[翻訳] 初めてのCore Bluetooth](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F84bb642cc5e1f21bd355e022f9236b35ff40464e-1080x608.webp&w=3840&q=100)
[翻訳] 初めてのCore Bluetooth
Tim Oliver, Shunsuke KondoMarch 3rd, 2021
![An Explanation of the Ditto Presence Viewer](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Fb5de5627bc3f258db28a0788e8e231c00d7e83b6-1080x608.webp&w=3840&q=100)
An Explanation of the Ditto Presence Viewer
Neil BallardMarch 2nd, 2021
![The New Network Multiplexer](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F110a56cff105257fe2dbf53913ba3fbe17134234-1080x608.webp&w=3840&q=100)
The New Network Multiplexer
Tom KarpiniecFebruary 22nd, 2021
![4 long term changes to the restaurant industry](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F83b341ad03d8fa051f257d687c701d3d74154fb0-800x451.webp&w=3840&q=100)
4 long term changes to the restaurant industry
Ryan RatnerFebruary 18th, 2021
![Does my Android phone support Wi-Fi aware?](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Ff706d92889b9da34d659aabf246b49304c37c409-1080x608.webp&w=3840&q=100)
Does my Android phone support Wi-Fi aware?
Max AlexanderDecember 29th, 2020
![What's the difference between Bluetooth Classic and Bluetooth Low Energy?](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F83fe23f405f1b28840f3e632cad7db5db45053ca-1080x720.webp&w=3840&q=100)
What's the difference between Bluetooth Classic and Bluetooth Low Energy?
Ryan RatnerSeptember 24th, 2020
![Getting started with Core Bluetooth](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F84bb642cc5e1f21bd355e022f9236b35ff40464e-1080x608.webp&w=3840&q=100)
Getting started with Core Bluetooth
Tim OliverJuly 7th, 2020
![Introducing Safer FFI](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2Ffc4a86edfcb5f2a4d047fad1a5156528010f4f1b-1080x608.webp&w=3840&q=100)
Introducing Safer FFI
Daniel Henry-MantillaJune 8th, 2020
![Why did we attach a database to our peer-to-peer sync solution?](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F26495632afe7ca2db2a827d174722e2666f3c377-1080x608.webp&w=3840&q=100)
Why did we attach a database to our peer-to-peer sync solution?
Max AlexanderDecember 2nd, 2019
![We couldn't get Bitcode and Rust to play nice, until we did](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F0a3863b81887a475d8f400baf7bb4a7e3ce14304-1080x608.webp&w=3840&q=100)
We couldn't get Bitcode and Rust to play nice, until we did
Tom KarpiniecOctober 10th, 2019
![Our journey to making Android Bluetooth "Behave"](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F489bec55697934c25d2ee949fb902ca290b88fb6-1080x608.webp&w=3840&q=100)
Our journey to making Android Bluetooth "Behave"
Max AlexanderOctober 7th, 2019
![Ditto v2 now has 3 times the bluetooth distance](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F470a08c30865d8bdd6dc24a48864664b21ed002c-1080x608.webp&w=3840&q=100)
Ditto v2 now has 3 times the bluetooth distance
Max AlexanderOctober 3rd, 2019
![Post Covid-19 aircraft cabin changes](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ftm01zr3t%2Fproduction%2F9b73f4422f47f497c6b0ebbbe3473cde359b1ec2-1080x608.webp&w=3840&q=100)
Post Covid-19 aircraft cabin changes
Max AlexanderMay 1st, 2019