This is a demo app built to showcase how to use PowerSync to built an offline-first React Native app. The app is built with Expo/React Native, and uses Supabase as the backend. The following video gives an overview of the implemented functionality:
PowerChat.Public.Demo.4K.mp4
Here are some steps to keep in mind when building/deploying your own version of this app:
-
Deploy a Supabase backend based on the configuration and migrations contained in the supabase folder. The API URL and public API Key from your Supabase project need to be replaced in the .env file.
-
Create a PowerSync instance using the PowerSync dashboard and connect the instance to your Supabase backend. Copy the Sync Rules from the sync-rules.yml of this repository into the sync-rules.yaml within the PowerSync dashboard. Copy the PowerSync instance URL from the dashboard and replace it in the .env file.
-
Create an Expo project and replace the EAS project id in the .env file.
Please note: If you leave the values within the .env file as they are (none of them are sensitive secret's btw), you can try the app with the demo backend without spinning up your own Supabase backend and PowerSync instance (as long at the demo backend is around, at least).
Here are some helpful links: