SurfBored
Under the hood:
Tech Stack
Flutter
Bloc
Supabase
Twilio
Deno
Postgres
SQLite
Frontend 🔥
The entire frontend is written in Dart using the Flutter framework.
Flutter allows us to effectively create a cross-platform application, bringing our app to users faster!
We used a local first approach so the user gets the data as fast as possible.
Thanks to HiveDB we are able to cache incoming data to allow for a better user experience
Handling Data and State 💾
To improve the end-user experience, the app uses Cubits to handle state alongside backend processes.
Basic Structure: UI ⇆ Cubit ⇆ Repository
- UI: the user's interface
- Cubit: manages and emits state changes
- Repository: handles API requests and responses
Data fetched from our PostgreSQL database is temporarly stored in Hive and synced using PowerSync
Backend 🔒
For the backend, we chose Twilio to handle authentication and Supabase for storage, and edge functions, enabling us to ship our app quickly.
To help cache data, we implemented cloud functions using deno and typescript.
For full-text search, we took advatage of Supabase's textsearch queries.