Tech Stack
Let's review our tech stack to help you understand the tools we use and why we chose them.
Expo
Expo (opens in a new tab) is a framework and platform for universal React applications. We use it to build and deploy our mobile application across both iOS and Android platforms.
NativeWind & Tailwind CSS
NativeWind (opens in a new tab) is a universal styling system for React Native, powered by Tailwind CSS. It enables consistent styling across platforms, improving developer experience and code maintainability.
Tailwind CSS (opens in a new tab) is a utility-first CSS framework that we use through NativeWind to create a consistent design system for our application. It allows for rapid UI development without writing custom CSS.
GluestackUI
GlueStackUI (opens in a new tab) is an open-source library of customizable UI components for React, Next.js, and React Native. Similar to Radix UI and shadcn/ui, it offers a collection of accessible and composable components. GlueStackUI is based on NativeWind styling, allowing for easy customization and integration. Instead of being a pre-packaged dependency, it enables developers to copy-paste only the needed components directly into their projects, promoting flexibility and efficiency in UI development.
Supabase
Supabase (opens in a new tab) is an open-source Firebase alternative. We use it for several purposes:
- Authentication: Supabase Auth helps us manage user authentication and authorization in our application.
- Database: We use Supabase as our primary database, leveraging its PostgreSQL backend.
- Push Notifications: Supabase provides functionality for sending push notifications to our users.
- Storage: Supabase Storage allows us to easily store and serve user-generated content, files, and media assets.
- Functions: Supabase Edge Functions enable us to run serverless code for backend logic and API endpoints.
Additional Tools
Monitoring
Sentry (opens in a new tab): For error tracking and performance monitoring.
Analytics
- Posthog (opens in a new tab): For product analytics and user behavior tracking.
- UXCam (opens in a new tab): For user experience analysis and session replay.
Payments
RevenueCat (opens in a new tab): For managing in-app purchases and subscriptions.
Push Notifications
OneSignal (opens in a new tab) is our push notification service. We chose it for its:
- Simple UI for planning and scheduling notifications
- Cross-platform support
- Easy integration with our app