diff --git a/vercel.json b/vercel.json
index 89c2b76b2b8..b5ce5303a16 100644
--- a/vercel.json
+++ b/vercel.json
@@ -24,10 +24,16 @@
},
{ "source": "/rss", "destination": "https://www-internal.supabase.io/new/rss.xml" },
{ "source": "/rss.xml", "destination": "https://www-internal.supabase.io/new/rss.xml" },
+ { "source": "/blog/rss.xml", "destination": "https://www-internal.supabase.io/new/rss.xml" },
+ { "source": "/blog/rss", "destination": "https://www-internal.supabase.io/new/rss.xml" },
{ "source": "/beta", "destination": "https://www-internal.supabase.io/new/beta" },
{ "source": "/:match*", "destination": "https://docs-rose.vercel.app/:match*" }
],
"redirects": [
+ {
+ "source": "/blog/2021/03/08/toad-a-link-shorterner-with-simple-apis-for-low-coders",
+ "destination": "/blog/2021/03/08/toad-a-link-shortener-with-simple-apis-for-low-coders"
+ },
{
"source": "/blog/2020/07/10/surviving-hacker-news",
"destination": "/blog/2020/07/10/alpha-launch-postmortem"
diff --git a/web/docs/guides/auth.mdx b/web/docs/guides/auth.mdx
index 6dcf73a89ef..07dd70f09c2 100644
--- a/web/docs/guides/auth.mdx
+++ b/web/docs/guides/auth.mdx
@@ -104,9 +104,183 @@ where auth.uid() = todos.user_id; -- Policy is implicitly added.
5. The user's UID can be used in Policies to restrict access to rows.
Supabase provides a special function in Postgres, `auth.uid()`, which extracts the user's UID from the JWT. This is especially useful when creating Policies.
-
+
+## Policy Examples
+
+Here are some examples to show you the power of PostgreSQL's Row Level Security. Each policy is attached to a table, and the policy is executed
+every time a the table is accessed.
+
+### Allow read access
+
+```sql
+-- 1. Create table
+create table profiles (
+ id uuid references auth.users,
+ avatar_url text
+);
+
+-- 2. Enable RLS
+alter table profiles
+ enable row level security;
+
+-- 3. Create Policy
+create policy "Public profiles are viewable by everyone."
+ on profiles for select using (
+ true
+ );
+```
+
+1. Creates a table called `profiles` in the public schema (default schema)
+2. Enables Row Level Security
+3. Creates a Policy which allows all `select` queries to run.
+
+
+### Restrict updates
+
+```sql
+-- 1. Create table
+create table profiles (
+ id uuid references auth.users,
+ avatar_url text
+);
+
+-- 2. Enable RLS
+alter table profiles
+ enable row level security;
+
+-- 3. Create Policy
+create policy "Users can update their own profiles."
+ on profiles for update using (
+ auth.uid() = id
+ );
+```
+
+1. Creates a table called `profiles` in the public schema (default schema)
+2. Enables Row Level Security
+3. Creates a Policy which allows logged in users to update their own data.
+
+
+### Policies with joins
+
+Policies can even include table joins. This example shows how you can query "external" tables to build more advanced rules.
+
+```sql
+create table teams (
+ id serial primary key,
+ name text
+);
+
+-- 2. Create many to many join
+create table members (
+ team_id bigint references teams,
+ user_id uuid references auth.users
+);
+
+-- 3. Enable RLS
+alter table teams
+ enable row level security;
+
+-- 4. Create Policy
+create policy "Team members can update team details if they belong to the team."
+ on teams
+ for update using (
+ auth.uid() in (
+ select user_id from members
+ where team_id = id
+ )
+ );
+```
+
+### Verifying email domains
+
+Postgres has a function `right(string, n)` that returns the rightmost n characters of a string.
+You could use this to match staff member's email domains.
+
+```sql
+-- 1. Create table
+create table leaderboard (
+ id uuid references auth.users,
+ high_score bigint
+);
+
+-- 2. Enable RLS
+alter table leaderboard
+ enable row level security;
+
+-- 3. Create Policy
+create policy "Only Blizzard staff can update leaderboard"
+ on leaderboard
+ for update using (
+ right(auth.email(), 13) = '@blizzard.com'
+ );
+```
+
+### Advanced Policies
+
+Use the full power of SQL to build extremely advanced rules.
+
+In this example we will create a `posts` and `comments` database and then create a policy that depends on another policy.
+(In this case the comments policy depends on the posts policy.)
+
+```sql
+create table posts (
+ id serial primary key,
+ creator_id uuid not null references auth.users(id),
+ title text not null,
+ body text not null,
+ publish_date date not null default now(),
+ audience uuid[] null -- many to many table ommited for brevity
+);
+
+create table comments (
+ id serial primary key,
+ post_id int not null references posts(id) on delete cascade,
+ user_id uuid not null references auth.users(id),
+ body text not null,
+ comment_date date not null default now()
+);
+
+create policy "Creator can see thier own posts"
+on posts
+for select
+using (
+ auth.uid() = posts.creator_id
+);
+
+create policy "Logged in users can see the posts if they belong to the post 'audience'."
+on posts
+for select
+using (
+ auth.uid() = any (posts.audience)
+);
+
+create policy "Users can see all comments for posts they have access to."
+on comments
+for select
+using (
+ exists (
+ select 1 from posts
+ where posts.id = comments.post_id
+ )
+);
+```
+
+
## Tips
+### You don't have to use Policies
+
+You can also put your authorization rules in your middleware,
+similar to how you would create security rules with any other `backend <-> middleware <-> frontend` architecture.
+
+Policies are a tool. In the case of "serverless/Jastack" setups, they are especially effective because you don't have to deploy any middleware at all.
+
+However if you want to use another Authorization method for your applications, that's also fine. Supabase is "just Postgres", so if your application
+works with Postgres, then it also works with Supabase.
+
+Tip: make sure to enable Row Level Security for all your tables, so that your tables are inaccessible. Then use the "Service" which we provide.
+"Service" are designed to bypass RLS.
+
### Check authentication settings on Supabase
Navigate to Authentication > Settings on [app.supabase.io](https://app.supabase.io), and you'll be able to change settings for things like:
diff --git a/web/docs/learn/auth-deep-dive/google-oauth.md b/web/docs/learn/auth-deep-dive/google-oauth.md
index 237c84f2607..7830ab9ece4 100644
--- a/web/docs/learn/auth-deep-dive/google-oauth.md
+++ b/web/docs/learn/auth-deep-dive/google-oauth.md
@@ -12,6 +12,71 @@ How to add Google OAuth Logins to your Supabase Application.
+### Logging in with external OAuth providers
+
+Connecting social logins such as Google, Github, or Facebook couldn't be easier. In this guide we'll walk you through the process of connecting Google, but the process is basically the same for all of the providers which includes: azure, bitbucket, github, gitlab, facebook, and google.
+
+First you'll need to create a google project inside their [cloud console](https://console.cloud.google.com/home/dashboard), in other providers they may refer to this as an "app" and is usually available on the company's developer portal.
+
+
+
+Once you have a project, type "OAuth" into the search bar and open up "OAuth Consent Screen"
+
+
+
+Select 'External' and proceed to fill out the rest of the form fields
+
+
+
+Next open up Credentials page on the left
+
+
+
+And click to create a new set of credentials, select OAuth client ID as the option
+
+
+
+Now choose Web Application (assuming you're creating a web app) and in the Authorized redirect URI section you need to add: `https:///supabase.co/auth/v1/callback`. You can find your Supabase URL in Settings > API inside the Supabase dashboard.
+
+
+
+Now you can grab the client ID and secret from the pop up, and insert them into the google section inside the Supabase dashboard in Auth > Settings:
+
+
+
+
+
+Hit save. Now you should be able to navigate in the browser to:
+
+```
+https://.supabase.co/auth/v1/authorize?provider=google
+```
+
+And log in to your service using any google or gmail account.
+
+You can additionally add a query parameter `redirect_to=` to the end of the URL for example:
+
+```
+https://.supabase.co/auth/v1/authorize?provider=google&redirect_to=http://localhost:3000/welcome
+```
+
+But make sure any URL you enter here is on the same host as the site url that you have entered on the Auth > Settings page on the Supabase dashboard. (There is additional functionality coming soon, where you'll be able to add additional URLs to the allow list).
+
+If you want to redirect the user to a specific page in your website or app after a successful authentication.
+
+You also have the option of requesting additional scopes from the oauth provider. Let's say for example you want the ability to send emails on behalf of the user's gmail account. You can do this by adding the query parameter `scopes`, like:
+
+```
+https://.supabase.co/auth/v1/authorize?provider=google&https://www.googleapis.com/auth/gmail.send
+```
+
+Note however that your app will usually have to be verified by Google before you can request advanced scopes such as this.
+
+The only thing left to implement is the UI, but if you prefer to use something pre-built, we have a handy [Auth Widget](https://github.com/supabase/ui/#using-supabase-ui-auth), where you can enable/disable whichever auth providers you want to support.
+
+For any support please get in touch at beta at supabase.io or for feature requests open an issue in the [backend](https://github.com/supabase/gotrue) or [frontend](https://github.com/supabase/gotrue-js) repos.
+
+
### Resources
- JWT debugger: https://jwt.io/
diff --git a/web/static/img/auth-5-1.png b/web/static/img/auth-5-1.png
new file mode 100644
index 00000000000..e90534de2d6
Binary files /dev/null and b/web/static/img/auth-5-1.png differ
diff --git a/web/static/img/auth-5-2.png b/web/static/img/auth-5-2.png
new file mode 100644
index 00000000000..125dbb44a2c
Binary files /dev/null and b/web/static/img/auth-5-2.png differ
diff --git a/web/static/img/auth-5-3.png b/web/static/img/auth-5-3.png
new file mode 100644
index 00000000000..143e520df0d
Binary files /dev/null and b/web/static/img/auth-5-3.png differ
diff --git a/web/static/img/auth-5-4.png b/web/static/img/auth-5-4.png
new file mode 100644
index 00000000000..767dadd0c78
Binary files /dev/null and b/web/static/img/auth-5-4.png differ
diff --git a/web/static/img/auth-5-5.png b/web/static/img/auth-5-5.png
new file mode 100644
index 00000000000..feb332dbe6b
Binary files /dev/null and b/web/static/img/auth-5-5.png differ
diff --git a/web/static/img/auth-5-6.png b/web/static/img/auth-5-6.png
new file mode 100644
index 00000000000..c90310a4c06
Binary files /dev/null and b/web/static/img/auth-5-6.png differ
diff --git a/web/static/img/auth-5-7.png b/web/static/img/auth-5-7.png
new file mode 100644
index 00000000000..a3f259be06e
Binary files /dev/null and b/web/static/img/auth-5-7.png differ
diff --git a/web/static/img/auth-5-8.png b/web/static/img/auth-5-8.png
new file mode 100644
index 00000000000..a114192d358
Binary files /dev/null and b/web/static/img/auth-5-8.png differ
diff --git a/www/_blog/2021-03-08-toad-a-link-shorterner-with-simple-apis-for-low-coders.mdx b/www/_blog/2021-03-08-toad-a-link-shortener-with-simple-apis-for-low-coders.mdx
similarity index 97%
rename from www/_blog/2021-03-08-toad-a-link-shorterner-with-simple-apis-for-low-coders.mdx
rename to www/_blog/2021-03-08-toad-a-link-shortener-with-simple-apis-for-low-coders.mdx
index f5910d56f8a..a87778aaeb0 100644
--- a/www/_blog/2021-03-08-toad-a-link-shorterner-with-simple-apis-for-low-coders.mdx
+++ b/www/_blog/2021-03-08-toad-a-link-shortener-with-simple-apis-for-low-coders.mdx
@@ -1,5 +1,5 @@
---
-title: Toad, a link shorterner with simple APIs for low-coders
+title: Toad, a link shortener with simple APIs for low-coders
description: An easy-to-use link shortening tool with simple APIs
author: rory_wilding
author_title: Supabase
diff --git a/www/lib/rss.tsx b/www/lib/rss.tsx
index 4061ec57ef6..1ea6f62644e 100644
--- a/www/lib/rss.tsx
+++ b/www/lib/rss.tsx
@@ -1,8 +1,8 @@
const generateRssItem = (post: any): string => `
- https://supabase.io/blog/${post.slug}
+ https://supabase.io/blog/${post.url}${post.title}
- https://supabase.io/blog/${post.slug}
+ https://supabase.io/blog/${post.url}
${post.description}${new Date(post.date).toUTCString()}
diff --git a/www/public/rss.xml b/www/public/rss.xml
index 46568679b34..824e56f1e37 100644
--- a/www/public/rss.xml
+++ b/www/public/rss.xml
@@ -5,269 +5,253 @@
https://supabase.io
Latest news from Supabaseen
- Wed, 24 Mar 2021 16:00:00 GMT
+ Sun, 21 Mar 2021 16:00:00 GMT
- https://supabase.io/blog/2021-03-25-launch-week
- Launch week
- https://supabase.io/blog/2021-03-25-launch-week
- Five days of Supabase.
- Wed, 24 Mar 2021 16:00:00 GMT
-
-
-
- https://supabase.io/blog/2021-03-25-angels-of-supabase
- Angels of Supabase
- https://supabase.io/blog/2021-03-25-angels-of-supabase
- Meet the investors of Supabase.
- Wed, 24 Mar 2021 16:00:00 GMT
-
-
-
- https://supabase.io/blog/2021-03-22-In-The-Loop
+ https://supabase.io/blog/2021/03/22/In-The-LoopDevelopers stay up to date with intheloop.dev
- https://supabase.io/blog/2021-03-22-In-The-Loop
+ https://supabase.io/blog/2021/03/22/In-The-Loop
Learn why Kevin is building intheloop.dev with SupabaseSun, 21 Mar 2021 16:00:00 GMT
- https://supabase.io/blog/2021-03-11-using-supabase-replit
+ https://supabase.io/blog/2021/03/11/using-supabase-replitUsing Supabase in Replit
- https://supabase.io/blog/2021-03-11-using-supabase-replit
+ https://supabase.io/blog/2021/03/11/using-supabase-replit
Free hosted relational database from within your node.js replWed, 10 Mar 2021 16:00:00 GMT
- https://supabase.io/blog/2021-03-08-toad-a-link-shorterner-with-simple-apis-for-low-coders
+ https://supabase.io/blog/2021/03/08/toad-a-link-shorterner-with-simple-apis-for-low-codersToad, a link shorterner with simple APIs for low-coders
- https://supabase.io/blog/2021-03-08-toad-a-link-shorterner-with-simple-apis-for-low-coders
+ https://supabase.io/blog/2021/03/08/toad-a-link-shorterner-with-simple-apis-for-low-coders
An easy-to-use link shortening tool with simple APIsSun, 07 Mar 2021 16:00:00 GMT
- https://supabase.io/blog/2021-03-05-postgres-as-a-cron-server
+ https://supabase.io/blog/2021/03/05/postgres-as-a-cron-serverPostgres as a CRON Server
- https://supabase.io/blog/2021-03-05-postgres-as-a-cron-server
+ https://supabase.io/blog/2021/03/05/postgres-as-a-cron-server
Running repetitive tasks with your Postgres database.Thu, 04 Mar 2021 16:00:00 GMT
- https://supabase.io/blog/2021-03-02-supabase-beta-february-2021
+ https://supabase.io/blog/2021/03/02/supabase-beta-february-2021Supabase Beta February 2021
- https://supabase.io/blog/2021-03-02-supabase-beta-february-2021
+ https://supabase.io/blog/2021/03/02/supabase-beta-february-2021
One year of building.Mon, 01 Mar 2021 16:00:00 GMT
- https://supabase.io/blog/2021-02-27-cracking-postgres-interview
+ https://supabase.io/blog/2021/02/27/cracking-postgres-interviewCracking PostgreSQL Interview Questions
- https://supabase.io/blog/2021-02-27-cracking-postgres-interview
+ https://supabase.io/blog/2021/02/27/cracking-postgres-interview
Understand the top PostgreSQL Interview QuestionsFri, 26 Feb 2021 16:00:00 GMT
- https://supabase.io/blog/2021-02-09-case-study-roboflow
+ https://supabase.io/blog/2021/02/09/case-study-roboflowRoboflow.com choose Supabase to power Paint.wtf leaderboard
- https://supabase.io/blog/2021-02-09-case-study-roboflow
+ https://supabase.io/blog/2021/02/09/case-study-roboflow
Learn how Roboflow.com used Supabase to build their Paint.wtf leaderboardMon, 08 Feb 2021 16:00:00 GMT
- https://supabase.io/blog/2021-02-02-supabase-beta-january-2021
+ https://supabase.io/blog/2021/02/02/supabase-beta-january-2021Supabase Beta January 2021
- https://supabase.io/blog/2021-02-02-supabase-beta-january-2021
+ https://supabase.io/blog/2021/02/02/supabase-beta-january-2021
Eleven months of building.Mon, 01 Feb 2021 16:00:00 GMT
- https://supabase.io/blog/2021-01-02-supabase-beta-december-2020
+ https://supabase.io/blog/2021/01/02/supabase-beta-december-2020Supabase Beta December 2020
- https://supabase.io/blog/2021-01-02-supabase-beta-december-2020
+ https://supabase.io/blog/2021/01/02/supabase-beta-december-2020
Ten months of building.Fri, 01 Jan 2021 16:00:00 GMT
- https://supabase.io/blog/2020-12-13-supabase-dashboard-performance
+ https://supabase.io/blog/2020/12/13/supabase-dashboard-performanceMaking the Supabase Dashboard Supa-fast
- https://supabase.io/blog/2020-12-13-supabase-dashboard-performance
+ https://supabase.io/blog/2020/12/13/supabase-dashboard-performance
Improving the performance of the Supabase dashboardSat, 12 Dec 2020 16:00:00 GMT
- https://supabase.io/blog/2020-12-02-supabase-striveschool
+ https://supabase.io/blog/2020/12/02/supabase-striveschoolSupabase Partners With Strive School To Help Teach Open Source
- https://supabase.io/blog/2020-12-02-supabase-striveschool
+ https://supabase.io/blog/2020/12/02/supabase-striveschool
Supabase Partners With Strive School To Help Teach Open Source To The Next Generation Of DevelopersTue, 01 Dec 2020 16:00:00 GMT
- https://supabase.io/blog/2020-12-02-case-study-xendit
+ https://supabase.io/blog/2020/12/02/case-study-xenditXendit Built a Counter-Fraud Watchlist for the Fintech Industry
- https://supabase.io/blog/2020-12-02-case-study-xendit
+ https://supabase.io/blog/2020/12/02/case-study-xendit
See how Xendit use Supabase to build a full-text search engine.Tue, 01 Dec 2020 16:00:00 GMT
- https://supabase.io/blog/2020-12-02-case-study-tayfa
+ https://supabase.io/blog/2020/12/02/case-study-tayfaTAYFA Built a No-Code Website Builder in Seven Days
- https://supabase.io/blog/2020-12-02-case-study-tayfa
+ https://supabase.io/blog/2020/12/02/case-study-tayfa
See how Tayfa went from idea to paying customer in less than 30 days.Tue, 01 Dec 2020 16:00:00 GMT
- https://supabase.io/blog/2020-12-02-case-study-monitoro
+ https://supabase.io/blog/2020/12/02/case-study-monitoroMonitoro Built a Web Crawler Handling Millions of API Requests
- https://supabase.io/blog/2020-12-02-case-study-monitoro
+ https://supabase.io/blog/2020/12/02/case-study-monitoro
See how Monitoro built an automated scraping platform using Supabase.Tue, 01 Dec 2020 16:00:00 GMT
- https://supabase.io/blog/2020-12-01-supabase-alpha-november-2020
+ https://supabase.io/blog/2020/12/01/supabase-alpha-november-2020Supabase Alpha November 2020
- https://supabase.io/blog/2020-12-01-supabase-alpha-november-2020
+ https://supabase.io/blog/2020/12/01/supabase-alpha-november-2020
Nine months of building.Mon, 30 Nov 2020 16:00:00 GMT
- https://supabase.io/blog/2020-11-18-postgresql-views
+ https://supabase.io/blog/2020/11/18/postgresql-viewsPostgres Views
- https://supabase.io/blog/2020-11-18-postgresql-views
+ https://supabase.io/blog/2020/11/18/postgresql-views
Creating and using a view in PostgreSQL.Tue, 17 Nov 2020 16:00:00 GMT
- https://supabase.io/blog/2020-11-02-supabase-alpha-october-2020
+ https://supabase.io/blog/2020/11/02/supabase-alpha-october-2020Supabase Alpha October 2020
- https://supabase.io/blog/2020-11-02-supabase-alpha-october-2020
+ https://supabase.io/blog/2020/11/02/supabase-alpha-october-2020
Eight months of building.Sun, 01 Nov 2020 16:00:00 GMT
- https://supabase.io/blog/2020-10-30-improved-dx
+ https://supabase.io/blog/2020/10/30/improved-dxSupabase.js 1.0
- https://supabase.io/blog/2020-10-30-improved-dx
+ https://supabase.io/blog/2020/10/30/improved-dx
We're releasing a new version of our Supabase client with some awesome new improvements.Thu, 29 Oct 2020 16:00:00 GMT
- https://supabase.io/blog/2020-10-03-supabase-alpha-september-2020
+ https://supabase.io/blog/2020/10/03/supabase-alpha-september-2020Supabase Alpha September 2020
- https://supabase.io/blog/2020-10-03-supabase-alpha-september-2020
+ https://supabase.io/blog/2020/10/03/supabase-alpha-september-2020
Seven months of building.Fri, 02 Oct 2020 16:00:00 GMT
- https://supabase.io/blog/2020-09-11-supabase-hacktoberfest-2020
+ https://supabase.io/blog/2020/09/11/supabase-hacktoberfest-2020Supabase Hacktoberfest 2020
- https://supabase.io/blog/2020-09-11-supabase-hacktoberfest-2020
+ https://supabase.io/blog/2020/09/11/supabase-hacktoberfest-2020
Join us for a celebration of open source software and learn how to contribute to Supabase.Thu, 10 Sep 2020 16:00:00 GMT
- https://supabase.io/blog/2020-09-03-supabase-alpha-august-2020
+ https://supabase.io/blog/2020/09/03/supabase-alpha-august-2020Supabase Alpha August 2020
- https://supabase.io/blog/2020-09-03-supabase-alpha-august-2020
+ https://supabase.io/blog/2020/09/03/supabase-alpha-august-2020
Six months of buildingWed, 02 Sep 2020 16:00:00 GMT
- https://supabase.io/blog/2020-08-05-supabase-auth
+ https://supabase.io/blog/2020/08/05/supabase-authSupabase Auth
- https://supabase.io/blog/2020-08-05-supabase-auth
+ https://supabase.io/blog/2020/08/05/supabase-auth
Authenticate and authorize your users with Supabase AuthTue, 04 Aug 2020 16:00:00 GMT
- https://supabase.io/blog/2020-08-02-supabase-alpha-july-2020
+ https://supabase.io/blog/2020/08/02/supabase-alpha-july-2020Supabase Alpha July 2020
- https://supabase.io/blog/2020-08-02-supabase-alpha-july-2020
+ https://supabase.io/blog/2020/08/02/supabase-alpha-july-2020
Five months of buildingSat, 01 Aug 2020 16:00:00 GMT
- https://supabase.io/blog/2020-08-02-continuous-postgresql-backup-walg
+ https://supabase.io/blog/2020/08/02/continuous-postgresql-backup-walgContinuous PostgreSQL Backups using WAL-G
- https://supabase.io/blog/2020-08-02-continuous-postgresql-backup-walg
+ https://supabase.io/blog/2020/08/02/continuous-postgresql-backup-walg
Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G.Sat, 01 Aug 2020 16:00:00 GMT
- https://supabase.io/blog/2020-07-10-alpha-launch-postmortem
+ https://supabase.io/blog/2020/07/10/alpha-launch-postmortemAlpha Launch Postmortem
- https://supabase.io/blog/2020-07-10-alpha-launch-postmortem
+ https://supabase.io/blog/2020/07/10/alpha-launch-postmortem
Everything that went wrong with Supabase's launchThu, 09 Jul 2020 16:00:00 GMT
- https://supabase.io/blog/2020-07-09-postgresql-templates
+ https://supabase.io/blog/2020/07/09/postgresql-templatesWhat are PostgreSQL Templates?
- https://supabase.io/blog/2020-07-09-postgresql-templates
+ https://supabase.io/blog/2020/07/09/postgresql-templates
What are PostgreSQL templates and what are they used for?Wed, 08 Jul 2020 16:00:00 GMT
- https://supabase.io/blog/2020-07-17-postgresql-physical-logical-backups
+ https://supabase.io/blog/2020/07/17/postgresql-physical-logical-backupsPhysical vs Logical Backups in PostgreSQL
- https://supabase.io/blog/2020-07-17-postgresql-physical-logical-backups
+ https://supabase.io/blog/2020/07/17/postgresql-physical-logical-backups
What are physical and logical backups in Postgres?Mon, 06 Jul 2020 16:00:00 GMT
- https://supabase.io/blog/2020-07-01-supabase-alpha-june-2020
+ https://supabase.io/blog/2020/07/01/supabase-alpha-june-2020Supabase Alpha June 2020
- https://supabase.io/blog/2020-07-01-supabase-alpha-june-2020
+ https://supabase.io/blog/2020/07/01/supabase-alpha-june-2020
Four months of buildingTue, 30 Jun 2020 16:00:00 GMT
- https://supabase.io/blog/2020-06-15-supabase-steve-chavez
+ https://supabase.io/blog/2020/06/15/supabase-steve-chavezSteve Chavez has joined Supabase
- https://supabase.io/blog/2020-06-15-supabase-steve-chavez
+ https://supabase.io/blog/2020/06/15/supabase-steve-chavez
Steve joins Supabase to help build Auth.Sun, 14 Jun 2020 16:00:00 GMT
- https://supabase.io/blog/2020-06-01-supabase-alpha-may-2020
+ https://supabase.io/blog/2020/06/01/supabase-alpha-may-2020Supabase Alpha May 2020
- https://supabase.io/blog/2020-06-01-supabase-alpha-may-2020
+ https://supabase.io/blog/2020/06/01/supabase-alpha-may-2020
Three months of buildingSun, 31 May 2020 16:00:00 GMT
- https://supabase.io/blog/2020-05-01-supabase-alpha-april-2020
+ https://supabase.io/blog/2020/05/01/supabase-alpha-april-2020Supabase Alpha April 2020
- https://supabase.io/blog/2020-05-01-supabase-alpha-april-2020
+ https://supabase.io/blog/2020/05/01/supabase-alpha-april-2020
Two months of buildingSun, 31 May 2020 16:00:00 GMT