Blog post

Spot: a video sharing app built with Flutter

2021-07-27

5 minute read

Spot: a video sharing app built with Flutter

Learn why Tyler decided Flutter and Supabase are the perfect tech-stack shipping innovative ideas fast.

Tyler Shukert is an indie developer who has been building websites and applications for seven years. Tyler is a Firebase & Flutter expert who recently discovered Supabase. After falling in love with Supabase, Tyler decided to launch his latest app. Spot is a geolocation-based video-sharing app with some social networking features.

NoSQL doesn't mean No Schema

Tyler loves how easy it is to create high-quality web and mobile applications with Firebase. For the past few years he has honed his Flutter, Angular, and Firebase skills to quickly ship mobile and web apps. But the more his development expertise grew, the more he understood the limitations of Firebase.

Before starting a project, Tyler is never sure if the project will grow. It could be an overnight success, or it might need to pivot in a different direction. He finds this is particularly difficult with Firebase as he faces a denormalization dilemma. Denormalization means combining the data into a single table to make data retrieval faster. Google promotes denormalization as best practice for a snappier app experience. Denormalisation in Firebase takes work and requires additional development time. For new projects, it is often unclear if they will reach a scale justifying the effort denormalization requires. In relational databases like Postgres, data is normalized, meaning reduced data redundancy with maintained data integrity.

Read a full comparison of Firebase vs Supabase

Supabase + Flutter: a match made in heaven

When Tyler discovered Supabase on Twitter, he was intrigued by the promise of Postgres with Firebase-like features. He wanted the benefits of SQL and Relational schemas, and decided to build an app to test Supabase.

Tyler had been thinking about building Spot, a mobile app for sharing geo-based video content. When he previously planned Spot, he felt like hacking around Firebase would be too much effort. After researching the PostGIS extension for geospatial data, he realized Supabase was the perfect fit. As an avid Flutter fan, Supabase's Dart library was a bonus. Tyler loves the open-source nature of Supabase and immediately began contributing to the Dart library to enable functionality that he needed.

Tyler decided that Spot would be perfect to showcase the power of Supabase and Flutter. Since he's active in the open-source community, he decided to open-source the whole project, making Spot one of the most interesting Supabase examples.

Spot screenshots.

Comparing Firebase to Supabase

Although Spot seems simple, it has a lot of complicated components. Implementing social "Likes" requires count functionality, which is notoriously tricky in Firebase. In Supabase, because it's just Postgres under the hood, count is implemented using a simple SQL count query.

Supabase has Row-Level Security, which Tyler uses as a filter - something he can't do with Firebase.

Spot uses Supabase Storage for managing large video files. Firebase Storage has a reputation for slowness until it is public, which was a privacy concern for Tyler. With Supabase Storage, this wasn't an issue - storage is performant and secure.

The Firebase API pricing model makes it is difficult to predict pricing upfront for new projects. With Supabase, Tyler doesn't need to worry about how many API calls his project makes.

Supabase gives Spot speed, performance, and predictable pricing.

As of today, Tyler has around 3000 installs for Spot and is getting ready to add new functionality. He is confident Supabase, Postgres, and his data structure will enable future development.

As soon as I saw Supabase I knew it was the perfect technology to use alongside Flutter to build apps faster than ever. For apps like Spot where we handle user submitted files, it is very easy to manage them securely.

Supabaseを最初発見した時にこれとFlutterを組み合わせれば今まで以上に爆速でアプリ開発ができるだろうと思いました。 Spotのようにユーザーがファイルを投稿するアプリの場合でもセキュアに取り扱うのが簡単で本当に助かります。

Tyler Shukert, creator of Spot. avatar

Tyler Shukert, creator of Spot.

Spot is Open Source

With Supabase, Tyler can use Flutter to build a performant app quickly at a low cost. Tyler is a massive fan of the Supabase experience and has even joined the SupaSquad.

Update: After being part of the SupaSquad, Tyler joined Supabase full time as part of the DevRel squad, focusing on Flutter. This is some of his latest work: Flutter Tutorial: building a Flutter chat app and Flutter Authentication and Authorization with RLS.

You can download and install spot for iOS and Android to see just how snappy his setup is. Tyler has fully open-sourced his example - you can clone the repo and use it as the basis of your next big idea.

Share this article

Last post

Supabase Storage now in Beta

27 July 2021

Next post

Supabase is now on Postgres 13.3

26 July 2021

Related articles

Supabase Auth: SSO, Mobile, and Server-side support

Supabase Storage v3: Resumable Uploads with support for 50GB files

Supabase Edge Runtime: Self-hosted Deno Functions

Supabase Logs: open source logging server

Supabase Beta March 2023

Build in a weekend, scale to millions