<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Spontaneous Productivity : Newsletters]]></title><description><![CDATA[Newsletters]]></description><link>https://blog.nestful.app/s/newsletters</link><image><url>https://substackcdn.com/image/fetch/$s_!aZOI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13336315-f7a5-451b-ae0a-2cf7a1f81850_1024x1024.png</url><title>Spontaneous Productivity : Newsletters</title><link>https://blog.nestful.app/s/newsletters</link></image><generator>Substack</generator><lastBuildDate>Tue, 14 Apr 2026 08:26:11 GMT</lastBuildDate><atom:link href="https://blog.nestful.app/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Nestful]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[nestful@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[nestful@substack.com]]></itunes:email><itunes:name><![CDATA[Nestful]]></itunes:name></itunes:owner><itunes:author><![CDATA[Nestful]]></itunes:author><googleplay:owner><![CDATA[nestful@substack.com]]></googleplay:owner><googleplay:email><![CDATA[nestful@substack.com]]></googleplay:email><googleplay:author><![CDATA[Nestful]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[How Nestful syncs without a backend, plus a mindset shift for better work]]></title><description><![CDATA[Explore the offline-first architecture behind Nestful&#8217;s sync system, and a reframe that turns productivity into play]]></description><link>https://blog.nestful.app/p/how-nestful-syncs-without-a-backend</link><guid isPermaLink="false">https://blog.nestful.app/p/how-nestful-syncs-without-a-backend</guid><dc:creator><![CDATA[Nestful]]></dc:creator><pubDate>Wed, 16 Apr 2025 12:04:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aZOI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13336315-f7a5-451b-ae0a-2cf7a1f81850_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Two posts this week - one technical, one personal - but both grounded in the same principle: making things work better with less effort.</p><p>The first is a deep dive into how Nestful pulls off offline-first syncing using CRDTs, Yjs, and object storage, without relying on a traditional backend. It&#8217;s a practical look at keeping data consistent across devices while staying lightweight and low-maintenance.</p><p>The second is a reflection on what happens when productivity stops feeling like a chore. By approaching tasks with curiosity and playfulness instead of pressure, it becomes easier to get into flow and actually enjoy the work.</p><p>For anyone building tools or habits that reduce friction and invite momentum, both posts might resonate.</p><div><hr></div><h2>How Nestful uses CRDTs to sync your data with (almost) no backend</h2><p>Nestful has quite the interesting use case &#8211; it is an offline first app, yet it supports cross-device sync. This means it should somehow consolidate data even if it&#8217;s the result of multiple different offline sessions coming back online at different times.</p><p>Most of you are already aware that the most common way to do this today is Conflict-free Replicated Data Types (CRDTs). As their name suggests, they are replicated data structures that can be combined, with algorithms guaranteeing that the data will eventually converge.</p><p>Nestful uses Yjs, a fast JavaScript CRDT. Yjs is truly a magnificent piece of software. Each user has its own Yjs Document where most data is stored. For local persistence that data is synced into IndexedDB, the in-browser database, using y-indexeddb, which is part of Yjs&#8217; <em>provider</em> ecosystem.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.nestful.app/p/how-nestful-uses-crdts-to-sync-your&quot;,&quot;text&quot;:&quot;Continue reading&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.nestful.app/p/how-nestful-uses-crdts-to-sync-your"><span>Continue reading</span></a></p><div><hr></div><h2>How to reframe productivity as play, not work</h2><p>Last week I turned avoiding my quarterly content calendar into an Olympic sport. The task sat there in my to-do app, glaring at me. Instead of starting, I spent 30 minutes reorganizing my task list. Classic avoidance behavior.</p><p>It wasn't until I reframed the problem &#8211;"let's experiment with content themes that might resonate" &#8211; that I finally dove in. Three hours disappeared in a flash. The difference? I'd accidentally turned work into play.</p><h3>Why productivity feels like a chore</h3><p>You know the feeling when you open your task manager and a long list (of things you don&#8217;t want to do) stares back at you. <em>Where do I start? What's most important? Why does this feel overwhelming before I even begin?</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.nestful.app/p/how-to-reframe-productivity-as-play&quot;,&quot;text&quot;:&quot;Continue reading&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.nestful.app/p/how-to-reframe-productivity-as-play"><span>Continue reading</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://nestful.app/&quot;,&quot;text&quot;:&quot;Try Nestful&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://nestful.app/"><span>Try Nestful</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.nestful.app/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Spontaneous Productivity! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>