Craft

How to synchronize expo local-first apps with remote database

You've see so many template and boilerplat, but are they necessary?How to synchronize expo local-first apps with remote database

Last edited: Sun May 26 2024

https://expo.dev/blog/from-idea-to-google-play-store-in-100-days https://expo.dev/blog/how-to-synchronize-reactive-local-first-apps-with-tinybase

Hello

We've seen countless boilerplates and templates for everything from SASS to AI wrappers. But are they really necessary? No.

The mobile app world moves fast, with new paradigms popping up constantly. This can make it tricky to create an up-to-date architecture.

That's why many developers turn to starter kits or boilerplates for a quick setup.

But here's the thing: to build a great app, you need to focus on its core features, not just the initial setup.

Start with a solid foundation - a strong tech stack and smart and lean architecture. This means staying current with the latest technology trends that'll serve you well in the long run.

Once you've launched your app, it's all about keeping that foundation fresh and updated.

Over-Engineered

When it comes to small mobile app that don't require native features, let's keep things simple. You don't need to go all out with a native mobile app or spend hours setting store listings.

Instead, why not stick with the basics? Build web app first and than focus on native apps.

They give you a clean, decent-looking UI, all the essential features, and a smooth workflow for deploy your feature.

Why Starter Kit for Expo ?

Now you may wonder, why major services have equivalent of PWA for their native mobile app ?

Of course, Usually using things like GitHub Wiki is adequate, but it is not always true. Let's take Component Library for example, you cannot showcase your components with Markdown. You will constantly find an ordinary Markdown document lacks of capability and flexibility.

Universal Apps with Expo aim to solve this problem, with the ability to write the code once and adapte for native, libraries like Tailwind, helps a lot for the UI. Good examples are Vitepress, Mintlify and Nextra - They made writing a docs more convenient and effective, while offering a better, dedicated experience to readers.

For anything more than a simple library or API service, it is worth a try.

Reinvent the Wheels

I would never recommend building a "native mobile app" on your own, without a proper framework. Despite the Don't re-invent the wheels principle, your hand-made mobile app actually takes way more efforts to make it descent.

  1. Architecture
  2. A user-friendly navigation experience
  3. Authentification
  4. API / Database connection
  5. SEO

Implementing them properly already sounds nerve-racking, right?

The docs itself, is definitely not your first priority. Never should you spend your precious time re-inventing the wheels - it isn't worth.

From my perspective, I'd rather create a Web app than re-inventing the wheels. Why don't pick a descent solution? It saves your indispensable time, and help reducing the shitty mobile apps on the internet.

What we focus at ExpoStarter?

I personally value simple and lean archicture more than a fancy eye-catching UI. You may notice, we do not have Firebase, Supabase or any other external and we avoided vendor lock, code should be deployable anywhere.

Navigation elements are helpers to browse your site, never should they take up too much space on the screen.

One thing I hated the most is the design of two sidebars, it is confusing and meaningless. You can just organize all items to a single, clean sidebar, but people instead added two hamburger buttons to the navbar.

My favourite docs site is still Linear docs, looks good and simple.

Conclusion

  1. You don't need a native app to build a mobile app
  2. Don't make a docs site on your own, use a proper docs framework
  3. ExpoStarter focuses on lean archicture and less dependencies
  4. You should focus on shipping your app.

Authors

Younes

Share