[{"data":1,"prerenderedAt":535},["ShallowReactive",2],{"categories-init":3,"stack-supabase-flutter":4},true,{"stack_id":5,"slug":6,"name":7,"tagline":8,"long_description":9,"key_features":10,"use_cases":17,"pros":23,"cons":28,"cover_image_url":32,"scores":33,"options":41,"additions":90,"option_groups":277,"multi_select_option_types":278,"tools_by_category":279,"related_stacks":417,"faqs":495,"pricing":511,"system_requirements":32,"experience_level":440,"project_type":424,"stack_type_slug":425,"stack_type_icon_url":426,"published_date":156,"last_updated_date":32,"seo_meta":531},86,"supabase-flutter","Supabase + Flutter","Flutter cross-platform app with Supabase for open-source PostgreSQL backend and auth.","Flutter with Supabase combines Flutter's cross-platform mobile development with Supabase's **open-source alternative to Firebase**. Supabase provides a PostgreSQL database with a real-time listener layer, Supabase Auth for user management, and Supabase Storage for file uploads, all accessible from Flutter via the supabase_flutter SDK.\n\nThe key difference from the Firebase stack is the database model: Supabase uses **relational PostgreSQL** rather than Firestore's document model, making it far better suited for apps with complex relational data structures. SQL queries, joins, and foreign key constraints are all available. Row-level security policies handle per-user data access without application-layer filtering.\n\nThis stack appeals to developers who are familiar with SQL and relational data modeling, or who have outgrown Firebase's document model and want to migrate to a stack where the backend data is **a proper relational database** they control.",[11,12,13,14,15,16],"Flutter cross-platform development targeting iOS and Android from one codebase","Supabase PostgreSQL with real-time listeners via the supabase_flutter SDK","Supabase Auth with email, OAuth, and magic link sign-in","Row-level security enforced at the database layer for per-user data access","Supabase Storage for user file uploads integrated with the Flutter app","Dart type-safe queries via supabase_flutter Postgrest client",[18,19,20,21,22],"Mobile apps with complex relational data structures unsuitable for Firestore","Apps where portability matters and avoiding Firebase vendor lock-in is a priority","Developers familiar with SQL who prefer relational modeling over document stores","Teams that want to run the same backend stack for both a mobile app and a web app","Apps in regions or industries where data sovereignty requires non-Google infrastructure",[24,25,26,27],"PostgreSQL relational model handles complex data structures better than Firestore","Open-source and self-hostable, which removes vendor lock-in","Supabase row-level security is more expressive than Firebase security rules","Same Supabase backend works for web (React\u002FVue) and mobile (Flutter) simultaneously",[29,30,31],"Smaller Flutter ecosystem than Firebase, with fewer ready-made UI kits and tutorials","Supabase real-time is less mature than Firestore real-time for complex subscription patterns","PostgreSQL schema migrations require more planning than Firestore's schemaless evolution",null,{"popularity":34,"learning_curve":36,"flexibility":38,"performance":39,"portability":40},{"score":35,"reasoning":32},4,{"score":37,"reasoning":32},2,{"score":35,"reasoning":32},{"score":35,"reasoning":32},{"score":35,"reasoning":32},{"database":42,"orm":46,"authentication":50,"analytics":54,"coding_agent":58,"llm":62,"language":66,"frontend_framework":70,"cms":74,"hosting":78,"reverse_proxy":82,"self_hosted_paas":86},{"tools":43,"descriptions":44,"aliases":45,"see_all":32},[],{},{},{"tools":47,"descriptions":48,"aliases":49,"see_all":32},[],{},{},{"tools":51,"descriptions":52,"aliases":53,"see_all":32},[],{},{},{"tools":55,"descriptions":56,"aliases":57,"see_all":32},[],{},{},{"tools":59,"descriptions":60,"aliases":61,"see_all":32},[],{},{},{"tools":63,"descriptions":64,"aliases":65,"see_all":32},[],{},{},{"tools":67,"descriptions":68,"aliases":69,"see_all":32},[],{},{},{"tools":71,"descriptions":72,"aliases":73,"see_all":32},[],{},{},{"tools":75,"descriptions":76,"aliases":77,"see_all":32},[],{},{},{"tools":79,"descriptions":80,"aliases":81,"see_all":32},[],{},{},{"tools":83,"descriptions":84,"aliases":85,"see_all":32},[],{},{},{"tools":87,"descriptions":88,"aliases":89,"see_all":32},[],{},{},{"ci_cd":91,"payments":195,"analytics":239},{"tools":92,"descriptions":187,"aliases":190,"preface":191,"see_all":192},[93,157],{"tool_id":94,"name":95,"slug":96,"tooltip_description":97,"logo_url":98,"logo_bg":99,"pricing_model":100,"learning_curve_score":104,"popularity_score":105,"hosting_assignment_type":32,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":107,"subcategory":111,"categories":115,"subcategories":118,"flexibility_score":105,"performance_score":35,"portability_score":35,"is_featured":120,"tags":121,"score_reasonings":149,"published_date":155,"last_updated_date":156},164,"GitHub Actions","github-actions","GitHub's integrated CI\u002FCD platform that automates build, test, and deployment workflows using YAML-based configurations. Runs on GitHub-hosted or self-hosted runners with a rich marketplace of pre-built integrations.","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fgithub-actions.svg","white",{"slug":101,"display_name":102,"description":103},"freemium","Freemium","A free tier is available; additional features, usage limits, or managed hosting require a paid plan.",3,5,"open",{"category_id":108,"name":109,"slug":110},12,"DevOps & CI\u002FCD","devops-cicd",{"subcategory_id":112,"name":113,"slug":114},34,"CI\u002FCD Pipelines","cicd-pipelines",[116],{"category_id":108,"name":109,"slug":110,"is_primary":3,"display_order":117},0,[119],{"subcategory_id":112,"name":113,"slug":114,"category_id":108,"is_primary":3,"display_order":117},false,[122,127,130,135,140,144],{"tag_id":123,"name":124,"slug":125,"tag_type":126},13,"Free Tier","free-tier","feature",{"tag_id":108,"name":128,"slug":129,"tag_type":126},"Self-hostable","self-hostable",{"tag_id":131,"name":132,"slug":133,"tag_type":134},40,"Web","web","platform",{"tag_id":136,"name":137,"slug":138,"tag_type":139},36,"CI\u002FCD","ci-cd","use_case",{"tag_id":141,"name":142,"slug":143,"tag_type":126},24,"Docker Compatible","docker-compatible",{"tag_id":145,"name":146,"slug":147,"tag_type":148},45,"Declarative","declarative","paradigm",{"flexibility":150,"learning_curve":151,"performance":152,"popularity":153,"portability":154},"Self-hosted runner support across any OS or cloud, custom labels, matrix builds, Kubernetes scaling via Actions Runner Controller, and a marketplace of thousands of community-built actions give teams virtually unlimited configuration options for any workflow or environment.","Basic single-job workflows are accessible to any developer comfortable with YAML, and GitHub's documentation lowers the barrier further. However, advanced patterns — composite actions, reusable workflows, OIDC-based cloud auth, and conditional matrix strategies — involve non-obvious syntax and a complex permission model that requires meaningful time to master.","The platform handles massive scale reliably, but GitHub-hosted runner performance can vary between runs, making consistent benchmarking difficult. Teams running on self-hosted or larger hosted runners achieve stable, high throughput; the managed offering trades predictable latency for zero infrastructure overhead.","GitHub Actions is the dominant CI\u002FCD platform with tens of millions of repositories using it, thousands of marketplace actions, and widespread enterprise adoption. It is cited as the most-used CI\u002FCD solution in multiple developer surveys.","Self-hosted runners can run on any cloud or on-premises infrastructure, and the YAML workflow model is readable and auditable. The main constraint is tight coupling to GitHub events and APIs — moving workflows to another CI\u002FCD platform requires meaningful rewriting rather than a simple lift-and-shift.","2026-05-29","2026-09-27",{"tool_id":158,"name":159,"slug":160,"tooltip_description":161,"logo_url":162,"logo_bg":99,"pricing_model":163,"learning_curve_score":104,"popularity_score":35,"hosting_assignment_type":32,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":164,"subcategory":165,"categories":166,"subcategories":168,"flexibility_score":105,"performance_score":104,"portability_score":104,"is_featured":120,"tags":170,"score_reasonings":181,"published_date":155,"last_updated_date":156},165,"GitLab CI\u002FCD","gitlab-cicd","GitLab's built-in CI\u002FCD system configured through .gitlab-ci.yml files stored in your repository. Supports both GitLab-hosted and self-hosted runners for flexible pipeline execution across diverse environments.","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fgitlab.svg",{"slug":101,"display_name":102,"description":103},{"category_id":108,"name":109,"slug":110},{"subcategory_id":112,"name":113,"slug":114},[167],{"category_id":108,"name":109,"slug":110,"is_primary":3,"display_order":117},[169],{"subcategory_id":112,"name":113,"slug":114,"category_id":108,"is_primary":3,"display_order":117},[171,172,173,174,175,179,180],{"tag_id":123,"name":124,"slug":125,"tag_type":126},{"tag_id":108,"name":128,"slug":129,"tag_type":126},{"tag_id":131,"name":132,"slug":133,"tag_type":134},{"tag_id":136,"name":137,"slug":138,"tag_type":139},{"tag_id":176,"name":177,"slug":178,"tag_type":126},11,"Open Source","open-source",{"tag_id":141,"name":142,"slug":143,"tag_type":126},{"tag_id":145,"name":146,"slug":147,"tag_type":148},{"learning_curve":182,"flexibility":183,"performance":184,"popularity":185,"portability":186},"The core .gitlab-ci.yml syntax is approachable for developers with YAML and Linux fundamentals, and GitLab's documentation is thorough. However, the platform's breadth — runner executors, pipeline inheritance, CI\u002FCD Catalog, merge trains, and security scanning configuration — creates a long tail of advanced concepts that teams discover gradually over months.","Multiple runner executor types (Docker, Kubernetes, Shell, machine), unlimited self-hosted runner capacity, parent-child pipelines, reusable CI\u002FCD Components, and the ability to self-host the entire platform give teams complete control over their pipeline environment and infrastructure.","Pipeline performance depends heavily on runner configuration and caching strategy. Shared GitLab-hosted runners can experience queue delays during peak periods, and Docker+machine executors add startup overhead. Teams running optimized self-hosted Kubernetes runners with effective caching achieve significantly faster pipelines, but the default shared experience is average for the CI\u002FCD category.","GitLab CI\u002FCD is used by over 100,000 organizations and is particularly strong among enterprises and security-conscious DevOps teams. It consistently ranks among the top CI\u002FCD platforms in developer surveys, though GitHub Actions has overtaken it in raw adoption volume — especially among open-source and smaller team segments.","GitLab CE is fully open source and self-hostable on any infrastructure, which is a strong portability advantage. However, .gitlab-ci.yml pipelines are tightly coupled to GitLab's API and runner ecosystem — migrating pipeline definitions to another CI\u002FCD system (GitHub Actions, CircleCI, etc.) requires substantial rewriting rather than a simple port.",{"github-actions":188,"gitlab-cicd":189},"Runs Dart analysis and `flutter test` on every push, directly from the same GitHub repo the code already lives in. Pair with a separate mobile build service (Codemagic, EAS-style pipelines) for the actual store-build and submission steps; GitHub Actions itself doesn't handle native app packaging or store submission.","GitLab's built-in CI\u002FCD system, configured via .gitlab-ci.yml, the natural pick if the project's code lives on GitLab rather than GitHub, with the same \"runs analysis\u002Ftests, doesn't replace a mobile build service\" scope as the GitHub Actions option.",{},"Add CI\u002FCD when you want a dedicated pipeline for running tests, linting, or multi-stage builds before a deploy goes out. Many hosting platforms already redeploy automatically on every push on their own — a CI\u002FCD tool adds the most value on top of that by gating the deploy on a passing test suite, and matters even more when the hosting choice does not auto-deploy at all, such as a self-hosted server.",{"kind":193,"slug":114,"name":113,"href":194},"subcategory","\u002Ftools\u002Fcategories\u002Fdevops-cicd\u002Fcicd-pipelines",{"tools":196,"descriptions":235,"aliases":237,"preface":238,"see_all":32},[197],{"tool_id":198,"name":199,"slug":200,"tooltip_description":201,"logo_url":202,"logo_bg":203,"pricing_model":204,"learning_curve_score":37,"popularity_score":105,"hosting_assignment_type":32,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":208,"subcategory":211,"categories":215,"subcategories":217,"flexibility_score":105,"performance_score":105,"portability_score":104,"is_featured":120,"tags":219,"score_reasonings":229,"published_date":155,"last_updated_date":156},70,"Stripe","stripe","Stripe is a developer-focused payment processing platform that enables businesses to accept online payments, manage subscriptions, and handle invoicing through a powerful API suite.","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fstripe.svg","dark",{"slug":205,"display_name":206,"description":207},"usage_based","Usage-Based","Pricing scales with consumption: API calls, data volume, compute time, or similar metered units.",{"category_id":176,"name":209,"slug":210},"APIs & Infrastructure","apis-infrastructure",{"subcategory_id":212,"name":213,"slug":214},15,"Payment Processors","payment-processors",[216],{"category_id":176,"name":209,"slug":210,"is_primary":3,"display_order":117},[218],{"subcategory_id":212,"name":213,"slug":214,"category_id":176,"is_primary":3,"display_order":117},[220,221,225],{"tag_id":123,"name":124,"slug":125,"tag_type":126},{"tag_id":222,"name":223,"slug":224,"tag_type":139},30,"API Development","api-development",{"tag_id":226,"name":227,"slug":228,"tag_type":139},31,"E-commerce","e-commerce",{"learning_curve":230,"performance":231,"portability":232,"flexibility":233,"popularity":234},"Excellent documentation; prebuilt Elements and Checkout reduce integration effort significantly.","Sub-100ms API responses; globally distributed and built for financial transaction throughput.","Comprehensive API; switching is technically possible but requires significant rework.","Every payment flow is configurable; webhooks, Radar rules, and billing extensions compose freely.","The dominant payment processing platform for online businesses globally.",{"stripe":236},"Adds native payment UI via Stripe's official flutter_stripe SDK: PaymentSheet, Apple Pay, and Google Pay. Best suited for physical goods, services, or subscriptions billed outside Apple\u002FGoogle's own in-app-purchase rules; digital goods sold inside an iOS app still need Apple's StoreKit.",{},"Add payments when the product is ready to charge for subscriptions or one-time purchases.",{"tools":240,"descriptions":271,"aliases":273,"preface":274,"see_all":275},[241],{"tool_id":242,"name":243,"slug":244,"tooltip_description":245,"logo_url":246,"logo_bg":203,"pricing_model":247,"learning_curve_score":104,"popularity_score":35,"hosting_assignment_type":248,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":249,"subcategory":253,"categories":257,"subcategories":259,"flexibility_score":105,"performance_score":35,"portability_score":105,"is_featured":120,"tags":261,"score_reasonings":265,"published_date":155,"last_updated_date":156},170,"PostHog","posthog","All-in-one developer platform combining product analytics, session replay, feature flags, A\u002FB testing, and error tracking — deployable as cloud or self-hosted.","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fposthog.svg",{"slug":101,"display_name":102,"description":103},"self_hostable",{"category_id":250,"name":251,"slug":252},18,"Observability & Monitoring","observability-monitoring",{"subcategory_id":254,"name":255,"slug":256},54,"Web & Product Analytics","web-product-analytics",[258],{"category_id":250,"name":251,"slug":252,"is_primary":3,"display_order":117},[260],{"subcategory_id":254,"name":255,"slug":256,"category_id":250,"is_primary":3,"display_order":117},[262,263,264],{"tag_id":123,"name":124,"slug":125,"tag_type":126},{"tag_id":108,"name":128,"slug":129,"tag_type":126},{"tag_id":131,"name":132,"slug":133,"tag_type":134},{"learning_curve":266,"flexibility":267,"performance":268,"popularity":269,"portability":270},"PostHog's quickstart and autocapture make initial setup straightforward for developers, and prebuilt dashboards reduce the barrier to first insights. However, unlocking advanced analytics requires learning HogQL (a SQL dialect), and the breadth of features — analytics, flags, replays, experiments, pipelines — creates a steep ramp for teams that want to use the platform fully. Non-technical product managers often find the interface complex and require hand-holding from engineers.","PostHog exposes SQL-based querying, unlimited custom events, extensive SDK coverage, 60+ data pipeline integrations, a public API, and full self-hosting support. Teams can build custom dashboards, define complex cohorts, and join PostHog data with external sources in the built-in data warehouse. The platform functions as a composable data stack rather than a fixed-schema SaaS tool.","Cloud deployments handle millions of events per month with fast query response times and reliable uptime. Real-time alerting and dashboard refresh rates are responsive for typical production workloads. Self-hosted deployments are recommended only up to ~100K events\u002Fmonth on hobby setups, beyond which cloud is more appropriate. Some users report occasional query slowdowns on very large datasets.","PostHog has over 34,000 GitHub stars and a rapidly growing community of engineering-led teams. It is frequently cited in developer communities (Hacker News, Reddit) as the de-facto open-source alternative to Amplitude and Mixpanel. Strong Y Combinator backing and active open-source contributions signal broad adoption, though enterprise penetration is still growing relative to legacy analytics vendors.","Released under the MIT license with a fully self-hostable architecture, PostHog gives teams complete ownership of their event data. Migration paths exist for moving between cloud and self-hosted deployments, and data can be exported via the warehouse or pipeline integrations. No proprietary data formats or API lock-in — teams can switch tooling without losing historical data.",{"posthog":272},"PostHog's official posthog_flutter SDK adds event tracking, session replay, and feature flags to the app.",{},"Add analytics when you want to measure traffic, track visitor behavior, or understand how people actually use the product.",{"kind":193,"slug":256,"name":255,"href":276},"\u002Ftools\u002Fcategories\u002Fobservability-monitoring\u002Fweb-product-analytics",{},[],{"Frontend Frameworks":280,"Programming Languages":336,"Databases":358,"Authentication":396},[281],{"tool_id":282,"name":283,"slug":284,"tooltip_description":285,"logo_url":286,"logo_bg":203,"pricing_model":287,"learning_curve_score":104,"popularity_score":35,"hosting_assignment_type":32,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":290,"subcategory":294,"categories":298,"subcategories":300,"flexibility_score":105,"performance_score":105,"portability_score":37,"is_featured":120,"tags":302,"score_reasonings":330,"published_date":155,"last_updated_date":156},108,"Flutter","flutter","Google's UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fflutter.svg",{"slug":288,"display_name":177,"description":289},"open_source","Source code is publicly available and free to use, modify, and distribute. No paid plans from the project itself.",{"category_id":291,"name":292,"slug":293},1,"Frontend Frameworks","frontend-frameworks",{"subcategory_id":295,"name":296,"slug":297},8,"Mobile Frontend Frameworks","mobile-frontend-frameworks",[299],{"category_id":291,"name":292,"slug":293,"is_primary":3,"display_order":117},[301],{"subcategory_id":295,"name":296,"slug":297,"category_id":291,"is_primary":3,"display_order":117},[303,308,309,310,314,318,322,326],{"tag_id":304,"name":305,"slug":306,"tag_type":307},9,"Dart","dart","technology",{"tag_id":176,"name":177,"slug":178,"tag_type":126},{"tag_id":123,"name":124,"slug":125,"tag_type":126},{"tag_id":311,"name":312,"slug":313,"tag_type":139},28,"Web Development","web-development",{"tag_id":315,"name":316,"slug":317,"tag_type":139},29,"Mobile Development","mobile-development",{"tag_id":319,"name":320,"slug":321,"tag_type":134},41,"iOS","ios",{"tag_id":323,"name":324,"slug":325,"tag_type":134},42,"Android","android",{"tag_id":327,"name":328,"slug":329,"tag_type":134},43,"Cross-platform","cross-platform",{"learning_curve":331,"flexibility":332,"performance":333,"popularity":334,"portability":335},"Dart is learnable, but Widget composition and stateful architecture take practice.","Widget composition model is unlimited; full access to native platform APIs via method channels.","Compiled to native ARM; GPU-rendered Skia and Impeller engine delivers very smooth UI.","Google-backed; the second most popular cross-platform mobile framework.","Dart is effectively Flutter-only; Widget tree model does not translate to other frameworks.",[337],{"tool_id":338,"name":305,"slug":306,"tooltip_description":339,"logo_url":340,"logo_bg":203,"pricing_model":341,"learning_curve_score":37,"popularity_score":37,"hosting_assignment_type":32,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":342,"subcategory":32,"categories":345,"subcategories":347,"flexibility_score":104,"performance_score":35,"portability_score":35,"is_featured":120,"tags":348,"score_reasonings":352,"published_date":155,"last_updated_date":156},142,"Dart is a statically typed, open-source language created by Google that compiles to native ARM\u002Fx64 code, JavaScript, and WebAssembly. It is the language Flutter is built on, enabling a single codebase to target iOS, Android, web, and desktop.","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fdart.svg",{"slug":288,"display_name":177,"description":289},{"category_id":104,"name":343,"slug":344},"Programming Languages","programming-languages",[346],{"category_id":104,"name":343,"slug":344,"is_primary":3,"display_order":117},[],[349,350,351],{"tag_id":304,"name":305,"slug":306,"tag_type":307},{"tag_id":176,"name":177,"slug":178,"tag_type":126},{"tag_id":131,"name":132,"slug":133,"tag_type":134},{"popularity":353,"learning_curve":354,"flexibility":355,"performance":356,"portability":357},"Widely known through Flutter but niche outside of it; low GitHub stars relative to mainstream languages, sparse job market outside Flutter-specific roles, and underrepresented in StackOverflow surveys.","C-style syntax is familiar to developers from Java, Kotlin, Swift, or JavaScript; sound null safety and strong typing add guardrails for beginners. Most developers are productive within a few weeks.","Supports object-oriented, functional, and imperative styles with extension methods and mixins, but the language is opinionated on null safety and static typing — dynamic escape hatches exist but are discouraged.","AOT compilation to native ARM\u002Fx64 gives Flutter apps smooth 60–120fps rendering with no JavaScript bridge overhead; server-side Dart performs well for I\u002FO-bound workloads via async isolates.","A single Dart codebase targets iOS, Android, web (via JS\u002FWasm), and desktop natively; the language is open-source and skills transfer to any platform Flutter supports, though the ecosystem outside Flutter is thin.",[359],{"tool_id":291,"name":360,"slug":361,"tooltip_description":362,"logo_url":363,"logo_bg":203,"pricing_model":364,"learning_curve_score":104,"popularity_score":35,"hosting_assignment_type":248,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":365,"subcategory":368,"categories":371,"subcategories":373,"flexibility_score":35,"performance_score":35,"portability_score":104,"is_featured":120,"tags":375,"score_reasonings":390,"published_date":155,"last_updated_date":156},"Supabase","supabase","Open-source Firebase alternative built on PostgreSQL. Provides a full backend stack with database, authentication, real-time subscriptions, file storage, and edge functions — deployable on Supabase Cloud or self-hosted.","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fsupabase.svg",{"slug":101,"display_name":102,"description":103},{"category_id":35,"name":366,"slug":367},"Databases","databases",{"subcategory_id":291,"name":369,"slug":370},"Backend as a Service","baas",[372],{"category_id":35,"name":366,"slug":367,"is_primary":3,"display_order":117},[374],{"subcategory_id":291,"name":369,"slug":370,"category_id":35,"is_primary":3,"display_order":117},[376,379,380,381,382,385,386,387],{"tag_id":35,"name":377,"slug":378,"tag_type":307},"SQL","sql",{"tag_id":176,"name":177,"slug":178,"tag_type":126},{"tag_id":108,"name":128,"slug":129,"tag_type":126},{"tag_id":123,"name":124,"slug":125,"tag_type":126},{"tag_id":212,"name":383,"slug":384,"tag_type":126},"Real-time","real-time",{"tag_id":311,"name":312,"slug":313,"tag_type":139},{"tag_id":222,"name":223,"slug":224,"tag_type":139},{"tag_id":112,"name":388,"slug":389,"tag_type":139},"Authentication","authentication",{"learning_curve":391,"flexibility":392,"performance":393,"popularity":394,"portability":395},"SQL and REST are familiar; realtime subscriptions and RLS policies need dedicated study.","PostgreSQL underneath supports any SQL; the Supabase client SDK nudges toward specific patterns.","PostgreSQL query performance is solid; edge functions are fast; realtime runs via Postgres LISTEN\u002FNOTIFY.","One of the most popular open-source BaaS platforms; rapidly growing developer community.","PostgreSQL underneath is open, but the Supabase SDK and realtime layer create meaningful lock-in.",[397],{"tool_id":398,"name":399,"slug":400,"tooltip_description":401,"logo_url":363,"logo_bg":203,"pricing_model":402,"learning_curve_score":104,"popularity_score":104,"hosting_assignment_type":32,"hosting_provider_restriction":106,"hosting_target_restriction":106,"hosting_compatible_tool_ids":32,"parent_tool_id":32,"category":403,"subcategory":32,"categories":404,"subcategories":406,"flexibility_score":105,"performance_score":35,"portability_score":104,"is_featured":120,"tags":407,"score_reasonings":411,"published_date":155,"last_updated_date":156},68,"Supabase Auth","supabase-auth","Supabase Auth is the open-source authentication service built into Supabase, tied to PostgreSQL Row Level Security so the signed-in user's identity drives database access rules.",{"slug":101,"display_name":102,"description":103},{"category_id":304,"name":388,"slug":389},[405],{"category_id":304,"name":388,"slug":389,"is_primary":3,"display_order":117},[],[408,409,410],{"tag_id":176,"name":177,"slug":178,"tag_type":126},{"tag_id":108,"name":128,"slug":129,"tag_type":126},{"tag_id":112,"name":388,"slug":389,"tag_type":139},{"learning_curve":412,"performance":413,"portability":414,"flexibility":415,"popularity":416},"Row-level security policies and JWT configuration require solid backend experience.","GoTrue is a lightweight Go service; fast token verification and session management.","Based on open standards like JWT and OAuth with a Supabase wrapper; partially portable.","Row-level security, custom JWT claims, and auth hooks provide deep control over auth logic.","Popular within the Supabase ecosystem; growing alongside Supabase's adoption.",[418,435,458,480],{"stack_id":419,"slug":420,"name":421,"tagline":422,"experience_level":423,"project_type":424,"stack_type_slug":425,"stack_type_icon_url":426,"score_popularity":104,"score_learning_curve":37,"catalog_display_order":32,"published_date":32,"last_updated_date":32,"core_tool_previews":427},65,"flutter-sqlite","Flutter + SQLite","Flutter app with SQLite for offline-first local data storage without a backend.","intermediate","mobile_app","project","https:\u002F\u002Fassets.tekyous.dev\u002Ficons\u002Fstack-types\u002Fproject.svg",[428,429,430],{"tool_id":282,"slug":284,"name":283,"logo_url":286,"logo_bg":203},{"tool_id":338,"slug":306,"name":305,"logo_url":340,"logo_bg":203},{"tool_id":431,"slug":432,"name":433,"logo_url":434,"logo_bg":99},124,"sqlite","SQLite","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fsqlite.svg",{"stack_id":436,"slug":437,"name":438,"tagline":439,"experience_level":440,"project_type":424,"stack_type_slug":425,"stack_type_icon_url":426,"score_popularity":104,"score_learning_curve":291,"catalog_display_order":32,"published_date":32,"last_updated_date":32,"core_tool_previews":441},83,"flutterflow-firebase","FlutterFlow + Firebase","FlutterFlow visual app builder generating Flutter code, backed by Firebase.","beginner",[442,443,444,449,454],{"tool_id":282,"slug":284,"name":283,"logo_url":286,"logo_bg":203},{"tool_id":338,"slug":306,"name":305,"logo_url":340,"logo_bg":203},{"tool_id":445,"slug":446,"name":447,"logo_url":448,"logo_bg":203},106,"firebase","Firebase","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Ffirebase.svg",{"tool_id":450,"slug":451,"name":452,"logo_url":453,"logo_bg":99},123,"flutterflow","FlutterFlow","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fflutterflow.svg",{"tool_id":455,"slug":456,"name":457,"logo_url":448,"logo_bg":203},69,"firebase-auth","Firebase Auth",{"stack_id":431,"slug":459,"name":460,"tagline":461,"experience_level":440,"project_type":462,"stack_type_slug":425,"stack_type_icon_url":426,"score_popularity":104,"score_learning_curve":37,"catalog_display_order":32,"published_date":32,"last_updated_date":32,"core_tool_previews":463},"sveltekit-supabase","SvelteKit + Supabase","SvelteKit full-stack with Supabase: minimal JavaScript output, modern full-stack TypeScript.","web_app",[464,469,474,479],{"tool_id":465,"slug":466,"name":467,"logo_url":468,"logo_bg":203},138,"sveltekit","SvelteKit","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fsveltekit.svg",{"tool_id":470,"slug":471,"name":472,"logo_url":473,"logo_bg":203},20,"svelte","Svelte","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fsvelte.svg",{"tool_id":475,"slug":476,"name":477,"logo_url":478,"logo_bg":203},103,"typescript","TypeScript","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Ftypescript.svg",{"tool_id":291,"slug":361,"name":360,"logo_url":363,"logo_bg":203},{"stack_id":481,"slug":482,"name":483,"tagline":484,"experience_level":423,"project_type":462,"stack_type_slug":485,"stack_type_icon_url":486,"score_popularity":35,"score_learning_curve":35,"catalog_display_order":32,"published_date":32,"last_updated_date":32,"core_tool_previews":487},192,"supabase-self-hosted","Supabase Self-Hosted","Self-host the Supabase platform: PostgreSQL, Auth, Storage, Realtime, and Studio on your own server with Docker.","infrastructure","https:\u002F\u002Fassets.tekyous.dev\u002Ficons\u002Fstack-types\u002Finfrastructure.svg",[488,489,490],{"tool_id":291,"slug":361,"name":360,"logo_url":363,"logo_bg":203},{"tool_id":398,"slug":400,"name":399,"logo_url":363,"logo_bg":203},{"tool_id":491,"slug":492,"name":493,"logo_url":494,"logo_bg":203},72,"docker","Docker","https:\u002F\u002Fassets.tekyous.dev\u002Flogos\u002Ftools\u002Fdocker.svg",[496,499,502,505,508],{"question":497,"answer":498},"How is this different from the Flutter + Firebase stack?","The frontend is the same Flutter app; the backend philosophy is the opposite. Firebase's Firestore is a document database: schemaless, with real-time sync built in, but no joins and no SQL, and costs that scale with document reads. Supabase is PostgreSQL: full relational queries, joins, and foreign keys, row-level security policies that run inside the database, and pricing that scales on database size and traffic rather than per-read. Supabase is also open source, so the same stack can be self-hosted or moved to another Postgres host later; Firebase is Google's managed platform. Choose Supabase when the data model is relational or portability matters; choose Firebase when offline-first document sync is the core feature.",{"question":500,"answer":501},"When do you outgrow Supabase's free tier?","The free plan carries 50,000 monthly active users on auth, 500 MB of database space, and 1 GB of file storage, and pauses projects after a week of inactivity, which makes it fine for development and small pilots. The walls arrive in a predictable order: file storage first for apps with uploads, database size next for anything that logs events, then auth users for consumer apps with real traffic. The Pro plan at $25 a month lifts all of those (8 GB database, 100,000 monthly active users, 100 GB storage) and adds daily backups; beyond Pro, the numbers that grow are compute size and egress, both billed per unit. For most apps the honest jump is $0 to $25, and it arrives around launch rather than years later.",{"question":503,"answer":504},"Can I self-host Supabase or move away from it later?","Yes, and this is the stack's main strategic advantage over Firebase. Supabase is open source (PostgreSQL plus its own auth, storage, and realtime layers), and the platform publishes a self-hosting setup you can run with Docker on any server, so the managed service is a convenience rather than a dependency. The data itself is a plain PostgreSQL database: pg_dump produces a standard dump any Postgres host accepts, and the Flutter app talks to Supabase through its generated APIs, so switching to self-hosted is mostly repointing the project at a new URL. The honest caveat is operational: the managed service handles backups, updates, and realtime infrastructure, and taking those on yourself is real work. The escape route exists; whether to use it is a trade-off, not a lock-in.",{"question":506,"answer":507},"Do I really need row-level security policies on every table?","Yes, on any table the Flutter app can touch. The supabase_flutter SDK reaches the database through Supabase's auto-generated REST API using an anon key that ships inside the app, so without a policy a table is readable by anyone holding that key, which is anyone who extracts it from the app. A row-level security policy is what turns that open door into per-user access, checked inside PostgreSQL against the authenticated user. The classic mistake is developing with the service key, which bypasses RLS and makes everything work, then shipping the app with the anon key and watching queries return empty rows. Enable RLS first, write policies against auth.uid(), and develop with the anon key from the start.",{"question":509,"answer":510},"Can I use the Stripe add-on for in-app purchases?","Only for the purchases Apple and Google allow outside their own systems. Stripe's flutter_stripe SDK handles physical goods, services fulfilled outside the app (a booking, a delivery, a course consumed on the web), and subscriptions to real-world services; Apple's and Google's rules require digital goods consumed inside the app itself (premium features, digital content, in-app currency) to go through StoreKit on iOS and Google Play Billing on Android, with their 15 to 30 percent cut. The practical split used by most apps: Stripe for anything with a real-world component, the platform's in-app purchase system for digital unlocks. Subscriptions are the edge case to check carefully, since the rules differ between platforms and both companies enforce them at review time.",{"summary":512,"starting_cost_label":513,"has_free_tier":3,"line_items":514},"Flutter is free and open source, so the entire bill is Supabase, and only if you use the managed service: the free tier covers development with 500 MB of database space, 50,000 auth users, and 1 GB of file storage, and production realistically starts at the Pro plan's $25 a month. Self-hosting Supabase is free software, trading the subscription for server and ops work. The optional additions are free to start: PostHog's analytics free tier and Stripe's per-transaction pricing only cost money as the app generates usage.","Free to start",[515,519,523,527],{"label":516,"cost":517,"note":518},"Core framework (Flutter)","Free (open source)","Flutter and Dart are free to use, including for commercial iOS and Android apps.",{"label":520,"cost":521,"note":522},"Backend (Supabase)","Free–$25\u002Fmo","Free tier includes 500 MB database, 50,000 auth users, and 1 GB storage; Pro is $25 a month with larger allowances and daily backups. Self-hosting is free software.",{"label":524,"cost":525,"note":526},"Analytics (optional)","Free–usage-based","PostHog's free tier covers early usage; pay-as-you-go above it.",{"label":528,"cost":529,"note":530},"Payments (optional)","Transaction fees","Stripe charges 2.9% + $0.30 per successful card transaction on the standard plan, with no monthly fee.",{"title":532,"description":533,"og_image":32,"canonical":534},"Supabase + Flutter: Tools, Pricing & How to Deploy | Tekyous","Flutter cross-platform app with Supabase for open-source PostgreSQL backend and auth. Compare Supabase + Flutter tools, pricing & how to deploy on Tekyous.","https:\u002F\u002Ftekyous.dev\u002Fstacks\u002Fsupabase-flutter",1790518941959]