Live data from Hacker News

Storage is now available in Supabase (YC S20)

supabase.io

1–10 of 82 posts

Re: Storage is now available in Supabase (YC S20)

#2
Hey HN, Supabase is an open source Firebase alternative. We're building the features of Firebase using enterprise-grade open source tools. We're particularly focused on scalability. We take proven tools like Postgres, and we make them as easy to use as Firebase.

Today Supabase is releasing Storage. This is our second launch of Launch Week[1]. The linked blog post goes into depth around the technical implementation, so I’ll just give a recap for the people who jump straight to comments (like me).

Backend:

We are using S3 as a File store. Since most storage platforms have an S3-compatible API, this made the most sense. We will add more providers (like Backblaze) in the future.

Middleware:

This is the key part. We assessed a lot of tools including Ceph, Swift, Minio and Zenko. These are all awesome, but they aren’t tightly integrated with Postgres. The tooling in Supabase is centered around Postgres: the APIs use PostgREST[2], the Realtime engine hooks into Postgres’ WAL[3] and we use GoTrue[4] + Postgres Row Level Security[5] for Auth.

Since we already use RLS for Auth, we decided to leverage the same functionality for managing access to Files. We created an API [6] which wraps everything up into a nice interface. This obviously goes against our philosophy of “support existing tools” - the linked blog post describes our rationale more thoroughly.

Future:

This is very much an “alpha” release of Storage. We have a lot of great features planned for a CDN, automatic resizing, optimizations, and since it’s using Postgres there potentially are a few neat things we can do with Full Text Search and Data Loading. A few of the team will be here to answer any questions - my cofounder @awalias and @steve-chavez from PostgREST, @inian, and @1_over_n

[1] Launch week: https://supabase.io/new/blog/2021/03/25/launch-week

[2] PostgREST: http://postgrest.org/

[3] Realtime: https://github.com/supabase/realtime

[4] GoTrue: https://github.com/supabase/supabase/tree/master/docker

[5] RLS: https://www.postgresql.org/docs/current/ddl-rowsecurity.html

[6] Storage API: https://github.com/supabase/storage-api

Re: Storage is now available in Supabase (YC S20)

#3
A shoutout to Fastify[1] here. It has lived up to its claim of being one of the fastest Node frameworks from our initial benchmarking. We plan to add the benchmarking scripts to our benchmarking repo[2] soon.

The entire Fastify ecosystem (and associated modules like pino) has a focus on performance which is great. For example, the file-handling middleware[3] uses Node streams by default, instead of buffering files in memory. This made it easy to use streams across our entire codebase. Besides performance, this keeps the footprint small which ensures consistent performance even for users on our smallest server configuration.

[1] https://www.fastify.io/

[2] https://github.com/supabase/benchmarks

[3] https://github.com/fastify/fastify-multipart

Re: Storage is now available in Supabase (YC S20)

#4
congrats gang! this is a huge release and its only Tuesday. one step further toward becoming a full Open Source Firebase™.

as a frontend dev i was naturally drawn to the Frontend piece of this launch - doing both columns and lists and rich previews is very thoughtful! makes it a joy to use.

you've probably thought about this but i didnt see it addressed in the blogpost or docs - i'd love for TTL or soft deletes to be built in to the Storage API. i could of course model that myself with a backing table and some scheduled functions but... it'd be nice to just have it built in :)

Re: Storage is now available in Supabase (YC S20)

#5
post #4

congrats gang! this is a huge release and its only Tuesday. one step further toward becoming a full Open Source Firebase™. as a frontend dev i was naturally drawn to the Frontend piece of this launch - doing both columns and lists and rich previews is very thoughtful! makes it a joy to use. you've probably thought about this but i didnt see it addressed in the blogpost or docs - i'd love for TTL or soft deletes to be…

Thanks. The front end was an area which we knew we could improve over existing services. Simple actions like multi-folder selects/deletes are impossible with most services. Miller columns are an easy solution to this. We still have a long way to go on the UI - command bars, keyboard navigation, and accessibility are still getting built.

> TTL or soft deletes

This is a great idea, and won't be a problem (adding some dates into the Postgres schema). I'll make sure it's on the roadmap for the team to discuss

Re: Storage is now available in Supabase (YC S20)

#7

Is there any bandwidth restrictions here using Supabase's storage?

ah, very key. i'd highlight Werner Vogels' recent interview here on lessons learned from setting up S3 itself: https://cacm.acm.org/magazines/2021/3/250706-a-second-conver...

"Here is another interesting example with S3. It's probably the only time we changed our pricing strategy. When we launched S3, we were charging only for data transfer and data storage. It turned out that we had quite a few customers who were storing millions and millions of thumbnails of products they were selling on eBay. There was not much storage because these thumbnails were really small, and there wasn't much data transfer either, but there were enormous numbers of requests. It made us learn, for example, when you design interfaces, and definitely those you charge for, you want to charge for what is driving your own cost. One of the costs that we didn't anticipate was the number of requests, and request handling. We added this later to the payment model in S3, but it was clearly something we didn't anticipate. Services that came after S3 have been able to learn the lessons from S3 itself."

Re: Storage is now available in Supabase (YC S20)

#8
post #4

congrats gang! this is a huge release and its only Tuesday. one step further toward becoming a full Open Source Firebase™. as a frontend dev i was naturally drawn to the Frontend piece of this launch - doing both columns and lists and rich previews is very thoughtful! makes it a joy to use. you've probably thought about this but i didnt see it addressed in the blogpost or docs - i'd love for TTL or soft deletes to be…

Thanks. The front end was an area which we knew we could improve over existing services. Simple actions like multi-folder selects/deletes are impossible with most services. Miller columns are an easy solution to this. We still have a long way to go on the UI - command bars, keyboard navigation, and accessibility are still getting built. > TTL or soft deletes This is a great idea, and won't be a problem (adding some d…

TIL about Miller columns... https://en.wikipedia.org/wiki/Miller_columns

cool name drop! i see now its in the blogpost but i missed it in the initial read

Re: Storage is now available in Supabase (YC S20)

#9

Is there any bandwidth restrictions here using Supabase's storage?

There are no restrictions, however we just released our [Pricing](https://supabase.io/pricing) yesterday.

TLDR: for the free tier there is a limit of 1GB storage, and 2GB egress/month, pro tier: 100GB storage, and 200 egress/month, and after that it's Pay as you Go.

Post reply on HN