The benefits of building local-first software  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏
href.email

This is issue 002 of href.email, your dose of interesting links about tech, dev and design.

We've seen a lot of local-first content fly by in the past weeks. But what is local-first? In short, software that works without an internet connection and syncs with the internet when it gets the chance. Nikita Prokopov has a longer short explanation that does the concept more justice.

Linear is admired for its responsive UI. They haven't found a way to send data over the wire faster than the speed of light (as far as we know). Instead, they've built a local-first app. Tuomas Artman, co-founder of Linear, has a talk online on the unexpected benefits of going local-first.

Looking at a traditional app that makes a POST request on every button press, local-first sounds like a huge amount of overhead. A local-first app has an optimistic UI by definition. User clicks button, app marks action as succesful, app makes network call. Depending on the network call result, roll back. Building an optimistic UI is trickier than building a traditional synchronous one that never needs to deal with data that is marked invalid after the fact. With local-first, it's different. Your app doesn't care about the network at all. It manages local data, while a separate sync engine is ensuring your data is fresh and your actions are persisted. This decouples your UI code from the network, which is conceptually much simpler.

From Jim Nielsen: "With localfirst, all logic and data lives on one computer: yours (the client). The second computer (the server) is an optional enhancement to the application that provides data backup as well as sharing functionality. Sync engines tackle the complex problem of coordination across two computers. […] Rather than requiring execution and coordination to work in conjunction across space and time, you split up the execution and coordination into different problems solved by separate solutions. Coordination builds on top of execution, but is not necessarily a required dependency."

The sponsor of this issue

This issue of href.email is sponsored by Mailcoach, a flexible, privacy-friendly email platform for writers, creators, and more. Pay for what you send, not your subscriber count. Use coupon HREF for 3 months free.

Interesting links
  • useEffect is simultaneously critical and frustrating to use. But we have good news: you don't need it as often as you think! The React team maintains a dedicated page in the documentation on when you shouldn't resort to the sneaky hook.

  • On the other side, Vue is still going strong and just released Tengen Toppa Gurren Lagann (*) more commonly known as v3.5. The release announcement lists reactivity optimizations, reactive props destructuring, SSR improvements and more as the main highlights.

  • When you have a Godzilla-dressed hog parading on your homepage you're making a statement. PostHog wants to teach us how to brand our startups so they aren't boring.

  • The Vercel design engineering team has figured out how to keep recruiters at bay when you're looking for talent. (And it runs on any platform.)

  • Aaron Francis makes a compelling argument for logging off. "At the very center of this small circle is the one thing that I have control over, which is myself. Just me! That's it. My thoughts, attitude, perspective, actions. That's the only thing I really control. (And sometimes it feels like I barely control that.)" Concentric circle explanations are our second favorite kind of explanations (right after Venn diagrams).

That’s it for this week! Thank you for reading href.email. If you enjoyed this issue, feel free to share it with your friends.

Brought to you by Spatie

Unsubscribe