Community: Join Discord
Choose Flutter or NextJS
- Choose Flutter if you plan to build or expand into cross-platform apps (e.g. Duolingo, Fitbit, Spotify, Tinder, etc.)
- Choose NextJS if SEO, page load speeds, and web-specific libraries are integral to your app (e.g. Shopify, Medium, etc.)
Additionally, it's also possible to start with one-platform and move onto the next one depending on your needs. For example, start with Next.JS and then move to Flutter when a mobile app is needed. Both are configured to work straight out of the box.
Backend (Supabase)
- Authentication
- Email + PW
- SSO (Google, Github, etc.)
- Fully configured for local development from day one
- ๐ง backend tests ๐ง
Analytics (Posthog)
- Unified analytics across frontend and backend based on
user_id
- Frontend analytics comes pre-installed for iOS, Android, Web, and MacOS
- Backend analytics installed and linked to frontend analytics
- Basic events captured:
user signs in
user signs up
user deletes account
user starts checkout
user opens billing portal
user completes checkout
Payments (Stripe)
- Stripe fully setup and works with one-time payments and subscriptions
stripe
table to storestripe_customer_id
and currentactive_products
- Stripe webhook to sync user subscriptions from stripe to supabase
- Deno function to retrieve the billing portal url or a checkout session url which works with the
payments_screen
Release (Github Actions)
- Script to
bumpversion.sh
following semantic versioning - Deploys a web preview on Netlify for every PR
- Publishing pipeline to publish to Netlify and to publish supabase functions
- ๐ง Workflow to create signed releases for Android and iOS ๐ง
Emails (Postmark)
- Send transactional emails
- DNS setup to avoid spam folder (DKIM, DMARC, SPF in subdomain)
- Simplify email updates by using postmark templates
๐ง Error Monitoring (Sentry) ๐ง
TODO: based on demand.