Showcase
September 26, 2024
September 26, 2024
(updated)

Developer Case Study: Andy Geers / PrayerMate

Background

Andy Geers joined us to discuss PrayerMate, a prayer organizing app. We spoke to Andy about the PrayerMate stack, why they decided to follow a local-first architecture, how they’ve implemented encryption, and what lies ahead.

App details

App name PrayerMate
Platform(s) Mobile
App framework Flutter
Backend API PostgREST with Firebase Auth
Backend database AWS RDS Postgres

Interview

PowerSync

Why was having a local-first architecture a priority for your team?

Andy

Offline functionality is crucial for us. Many users access the app in places without internet connectivity, like on subways, and some users are very privacy-conscious. They don’t want their data synced to the cloud, so ensuring full offline usability is a major priority.

PowerSync

Was latency or speed also a factor in this decision, or was it purely about offline functionality?

Andy

Latency does play a role, though it wasn’t the main consideration. It’s more of an additional benefit. But yes, having the app function offline reduces reliance on the cloud, which can improve responsiveness.

PowerSync

You also mentioned concerns about privacy. Are you implementing any encryption for the data when it is synced to the cloud?

Andy 

Yes, we encrypt the data on the device before it’s synced, and it remains encrypted on the server. This approach allows us to ensure we can’t read sensitive user data.

PowerSync 

Did you evaluate other options, and if you did, could you share why you chose PowerSync over those alternatives?

Andy 

We initially used Firebase Realtime Database, but it wasn’t suited to our needs. We needed something more reliable, especially when handling offline-first synchronization. Firebase Cloud Firestore, while better, would have been prohibitively expensive due to the way they charge per read and write operation. PowerSync provided a more cost-effective and robust offline-first solution, which was exactly what we needed.

PowerSync 

Can you tell us a bit more about the tech stack you’re using?

Andy

Our app originally had two native codebases, but we’ve moved the user interface to Flutter. Now, as we implement PowerSync, we’re also transitioning the entire backend logic to Flutter. We use a Postgres database on AWS, and Firebase handles our authentication.

PowerSync

What led you to choose PowerSync, and what aspects of it make it stand out compared to other alternatives?

Andy

The main reason we chose PowerSync is that it perfectly fits our need for an offline-first architecture. Before discovering it, we hadn’t come across any other solutions that offered a robust offline-first sync option. Offline functionality was our top priority, and PowerSync was built with that in mind. 

Additionally, the fact that PowerSync supports Flutter, which we use for our app, was a huge advantage. It also provides the reliability we need for syncing data without the complexities and potential costs of other solutions like Firebase Cloud Firestore. Overall, PowerSync just aligns with our requirements better than anything else we’ve found.

PowerSync

Our goal is to make local-first or offline-first architecture so simple that it’s easier to use than cloud-first systems. With local-first, you get fast offline access, real-time collaboration through built-in syncing, simpler state management, and less reliance on the backend. All of these benefits make local-first architecture appealing. If it were even easier to implement than cloud-first, we believe more developers would adopt it from the start. With this vision in mind, do you have any suggestions for making PowerSync easier to use?

Andy 

The initial setup could be made easier, especially around provisioning a Postgres database. For newer developers, this might be a bit daunting. But overall, it’s been much simpler than building custom solutions.

PowerSync

If you were building a new app, would you go with a local-first architecture again?

Andy

That’s a tough question. There’s a simplicity to having everything server-based, but the offline capabilities and cost savings from not constantly querying the cloud are appealing. Ask me again after I launch my next app!

PowerSync

Great feedback, thank you. Any final thoughts?

Andy 

Just that we’re really happy with PowerSync. It’s the perfect fit for what we’re trying to achieve, and we appreciate the support from your team.

Subscribe to receive updates

Thank you! Your submission has been received.
Oops! Something went wrong while submitting the form. Please try again.