15
25 Comments

Highly recommend Supabase for your MVP backend

probably post-mvp backend too: https://supabase.com

not affiliated with them in any way, just a huge fan after using it for the first time. perfect for someone who knows enough SQL/backend stuff to be dangerous, but doesn't want to go through the trouble of setting everything up manually.

they bill themselves as the "open source" firebase. apparently that's controversial but personally i don't care. their interface is much nicer to use, and you can do everything postgres can under the hood.

i spun up https://nomadicplace.com in a few days using supabase, vercel, and next. this would've taken me much, much longer if i'd gone with laravel/rails (backend frameworks i'm most familiar with). in fact, i don't even think i would've gone through with it since it's been so long since i've coded.

since i was just hacking away, i didn't cover everything i would in a "real" app (request throttling, caching, performance optimizations, etc.). but supabase made it easy to cover the 80% with things like row-level security, an easy to use js client, and so on. again, all stuff that would have taken so much longer with boilerplate crud code.

honorable mentions:

react-maps-gl, maps-libre
the last time i looked at react-maps-gl was .. 2018? 2019? i don't remember exactly, but at the time everything felt a bit "early" and things didn't always work as expected. also, i'm pretty sure maps-libre (open source fork of mapbox) didn't exist back then.

well, they both exist now and work great! i was able to get maps working in an hour, and i don't have to deal with google/mapbox keys. you still need a key for the map tiles (unless you want to self-host, which i obviously do not), and maptiler.com was good for that. much cheaper than mapbox/google too.

stitches, radix-ui
i know css-in-js is falling out of fashion nowadays, and i was this close to giving up and learning tailwind. then i discovered stitches! it's relatively light-weight and plays well with radix ui, which is a super light-weight component library (they provide the accessibility-ready components, you provide the styles).

this worked well for this project because i wanted a minimal design without the bloat of a massive component library. this article was helpful in getting set up.

hope this helps you kickstart your next project! there's so much new tooling out there i think i'll start coding more myself.

  1. 4

    I disagree and do not recommend it for most cases! Just evaluated it recently for my side project. Truly terrible - it didn't meet any of my expectations - things that were claimed in their marketing stuff simply not working.

    It's good if it fits your use case perfectly. But truly perfectly. Make sure things work that you will use. Nothing feels fully baked, things are still changing rapidly. I have my own report written in notes, should I publish it to IH as a response to this post?

    1. 3

      Not necessarily as a response to this post but would be nice if you could share your feedback in a post. I was thinking of using it, I'd like to learn more about it.

      1. 3

        Here is a non-edited version of my problems. Note: all of them have workarounds, so it's still suitable for some projects. I will definitely keep an eye open on further developments of Supabase.

        Hope formatting will be okay.

        1. Self hosted doesn’t really work ← So it’s really a paid service

          • Auth is not implemented
          • Storage I think doesn’t work
          • Settings don’t work for a bunch of things
        2. Auth:

          • “auth” schema is separate to “public” schema requiring some weird workarounds, making clients like prisma barely usable for auth stuff
          • Cannot extend users table easily - at least it’s not recommended
          • RLS is not simple, lives separately, …
            • And it doesn’t work with Prisma out of the box
        3. OAuth is strictly authentication

          • You need to handle provider_token & provider_refresh_token yourself (making deep integrations almost equally complex as building your flow)
        4. Still feels like “firebase” alternative - easy to get started, complicated to do enterprise stuff

          • Cloud functions - logging, error reporting, tooling and other stuff is downgraded
          • Jobs - some weird SQL querying URLs
          • I would not recommend firebase for anything beyond MVP where use cases are obvious
        5. Weird integration with SSR apps

          • Extra latency
            • You will probably deploy your app separate to your database
        6. Development environment sucks

          • You can’t use self hosted so you need to replicate the environment manually
        7. Realtime support seems to be pretty bad

          • Security works with RLS so it’s impossible to do some complex scenarios (for example allowing anonymous to join any room with link, but not them list all the rooms)
        1. 2

          supabase ceo, jumping in here. Thanks for the solid feedback @meznaricnet

          On self-hosting - I wouldn't necessarily say that it "doesn't work" because we support people who are self hosting. Nonetheless, we want it to be as easy as the platform. Some of the systems are a bit harder to offer with "docker compose up". For example - storage absolutely works, but you need to provide your own s3 keys. This is because you can't really "host" S3 - it's an AWS service. We need to make that clearer in our self-hosting docs. Settings are all configured in the docker-compose, rather than the dashboard (because it's a bit difficult for a dashboard to handle a self-hosted config file, restart services etc).

          I can't comment much on any of the Prisma elements - I think the responsibility is probably on the Prisma team to work with our Auth system (because it's set up to be secure). I know they are working on multi-schema and RLS support, so I suspect that's coming soon.

          I will definitely keep an eye open on further developments of Supabase.

          Thanks for the patience here. We're still working hard on the full, integrated experience. Hopefully we can deliver on a few of your feedback items immediately. There are some developments around logs coming to the self-hosted stack that I think you'll enjoy

          1. 1

            Reading my original post I realise I came across really negative, sorry for that! It's just that I've been burned by other technologies in the past and really wanted to caution others to be careful.

            I planned to share feedback with you guys soon but felt like I needed to put more structure to it, but glad I don't need to, now that you've read it.

            Thanks for response and extra clarification, Supabase is definitely the product that came closest to what I want and I don't doubt you will iron out the quirks. Let me know if I can help in any way, I'm really passionate about dev tools.

            1. 1

              no probs! Often the best feedback is the most direct

        2. 2

          Would it make more sense to use a framework like Rails, Laravel, etc. that gives you more control for your use cases?

        3. 1

          Thanks @meznaricnet, it's worth creating an article for this! Also I think it would be nice if you could share it with Supabase team as a feedback.

        4. 1

          What alternative would you recommend?

          1. 1

            I'm not sure. Evaluate requirements before choosing a technology, and if you have questions make sure to get answers before building any other substantial parts of the codebase with those dependencies.

            So I don't have a clear alternative but this is what I am doing now if you are interested:

            • KISS - Postgres + some node framework that you already know
            • Containerize your stuff
            • Deploy however you want, even docker-compose will get you really far, however last year I spent a couple of months working with kubernetes and now I use that to deploy my applications. Worth learning kubernetes? Not really. Focus on shipping.
            • Reuse things between projects and improve them

            I generally don't advise on using firebase and similar stuff, because I've seen developers hit a wall too soon too often... all while it's supposed to "scale".

    2. 2

      I've been using supabase for a few side projects and haven't hit into anything serious. Yeah some parts could be improved, but they are actively improving the platform. Other than that, I like the fact they use postgres and allow you to export it if you want to move somewhere else. What are things that didn't work for you?

  2. 2

    We're using Supabase a lot for prototypes, it works great.

    Also I recommend to check Napkin for simple API backends (I'm not affiliated, just love the tool)

  3. 1

    Cool website! Do nomadicplace.com intend to return any income? If so, how?

  4. 1

    I am going to check out Supabase for my next project.

  5. 1

    I'm actively working on a Supabase kit for makerkit.dev, and the only real gripe I have with it is the realtime features.

    Maybe it's because I was used to Firebase, where getting live data is seamless, but with Supabase is too limited. You can make a query and get data streamed with its new value; it will notify updates/deletes/inserts, and then it's up to you to update the local state.

    I do hope they can come up with a way like Firebase.

  6. 1

    I was just thinking about using them for a project, would it be easy to migrate if needed for any reason?

    1. 1

      One of the reasons I went with supabase is the fact you can just simply migrate to your own solution if wish to do so. They basically just us a postgres db.

    2. 1

      i think so, as it is just postgres under the hood. haven't had a chance to try myself yet.

  7. 1

    I’ve used Supabase as an alternative to Google Firebase and liked it.

    I have to say, when I first used NextJS and Vercel, I was a bit surprised that Vervel doesn’t offer a simple backend (lambda functions and a database for example).

    1. 2

      They don't have a DB afaik but Next api routes create Lambas under the hood.

    2. 1

      Is there any reason you picked Supabase over Firebase? Was it just concerns over vendor lock-in or were there other motivations?

      1. 2

        Firebase is collecting a lot of data for its own purposes that you don't have good visibility on as a developer. Currently, it also has serious problems with GDPR compliance, but even before that, I wanted to make the switch to a service that monetizes by charging me, instead of using my user data.

        1. 1

          This GDPR issue is news to me. Can you point me to any source?

          1. 1

            It's complicated because Firebase has a host of tools and you don't need to use all of them. Some collect more data than others, and some can be considered necessary to make an app work, while others (analytics, crashlytics, remote config) need explicit user consent (ePrivacy is important here next to GDPR), and then still you can't be sure it's all compliant (see recent GA lawsuit: https://iapp.org/news/a/far-reaching-implications-anticipated-with-austrian-dpas-google-analytics-decision/)

            I'm not saying you can't use Firebase in a compliant way, but I liked the idea of a Firebase alternative that's built primarily for developers, and not for its data.

Trending on Indie Hackers
Passed $7k 💵 in a month with my boring directory of job boards 56 comments Reaching $100k MRR Organically in 12 months 35 comments How I got 1,000+ sign-ups in less than a month with social media alone 20 comments 87.7% of entrepreneurs struggle with at least one mental health issue 14 comments How to Secure #1 on Product Hunt: DO’s and DON'Ts / Experience from PitchBob – AI Pitch Deck Generator & Founders Co-Pilot 12 comments Competing with a substitute? 📌 Here are 4 ad examples you can use [from TOP to BOTTOM of funnel] 10 comments