From 368cacf5d80e186b5359bff549f2d11ec80b592a Mon Sep 17 00:00:00 2001
From: Nick Mazuk
Date: Mon, 29 Mar 2021 10:05:42 -0700
Subject: [PATCH 001/143] Add example to keep type definitions up-to-date
---
web/spec/supabase.yml | 51 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/web/spec/supabase.yml b/web/spec/supabase.yml
index 3c266937660..63167ca5f3f 100644
--- a/web/spec/supabase.yml
+++ b/web/spec/supabase.yml
@@ -200,6 +200,57 @@ pages:
res.status(200).json(allOnlineUsers);
};
```
+
+ ### Update types automatically with a GitHub Action
+
+ To keep your type definitions in sync with your database, you can setup a GitHub action that will update the type definitions on a schedule.
+
+ First, add a script to your package.json to generate the types.
+
+ ```
+ "update-types": "npx openapi-typescript https://your-project.supabase.co/rest/v1/?apikey=your-anon-key --output types/supabase.ts"
+ ```
+
+ Next, in your repo, create the file `.github/workflows/update-types.yml`. Then, add the following snippet into this file to define the action. This action will create updated types, then if there was an update, it will commit the change to your repo.
+
+ ```yml
+ name: Update database types
+
+ on:
+ schedule:
+ # sets the action to run daily. You can modify this to run the action more or less freqently
+ - cron: '0 0 * * *'
+
+ jobs:
+ update:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ persist-credentials: false
+ fetch-depth: 0
+ - uses: actions/setup-node@v2.1.5
+ with:
+ node-version: 14
+ - run: npm run update-database-types
+ - name: check for file changes
+ id: git_status
+ run: |
+ echo "::set-output name=status::$(git status -s)"
+ - name: Commit files
+ if: ${{contains(steps.git_status.outputs.status, ' ')}}
+ run: |
+ git add types/database/index.ts
+ git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
+ git config --local user.name "github-actions[bot]"
+ git commit -m "Update database types" -a
+ - name: Push changes
+ if: ${{contains(steps.git_status.outputs.status, ' ')}}
+ uses: ad-m/github-push-action@master
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ branch: ${{ github.ref }}
+ ```
auth.signUp():
$ref: '@supabase/gotrue-js."GoTrueClient".GoTrueClient.signUp'
From 35a3164647d35d1dde50ae0fce52864c288a3f11 Mon Sep 17 00:00:00 2001
From: Gaurav Singh
Date: Thu, 29 Apr 2021 21:16:24 +0530
Subject: [PATCH 002/143] Fix #1304 , Define the defualt behavior of signUp
- Updated auth example to handle this.
- signUp function now gives error if the user is already registered.
- signIn function gives error when invalid email or password is entered.
---
examples/javascript-auth/index.js | 21 +++++++++------------
web/docs/guides/client-libraries.mdx | 2 +-
2 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/examples/javascript-auth/index.js b/examples/javascript-auth/index.js
index 480acb7afa5..0387054d2c7 100644
--- a/examples/javascript-auth/index.js
+++ b/examples/javascript-auth/index.js
@@ -1,4 +1,3 @@
-
var SUPABASE_URL = 'https://ernhobnpmmupjnmxpfbt.supabase.co'
var SUPABASE_KEY =
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYxMzA5ODU0NCwiZXhwIjoxOTI4Njc0NTQ0fQ.Z9bRrfaL2oGhSuyBckFcdcnRIJDelWJ1II98OnEtLO0'
@@ -26,11 +25,9 @@ const signUpSubmitted = (event) => {
const password = event.target[1].value
supabase.auth
- .signUp({email, password})
+ .signUp({ email, password })
.then((response) => {
- document.querySelector('#access-token').value = response.data.access_token
- document.querySelector('#refresh-token').value = response.data.refresh_token
- alert("Logged in as " + response.user.email)
+ response.error ? alert(response.error.message) : alert('Confirmation Email Sent')
})
.catch((err) => {
alert(err.response.text)
@@ -43,12 +40,13 @@ const logInSubmitted = (event) => {
const password = event.target[1].value
supabase.auth
- .signIn({email, password})
+ .signIn({ email, password })
.then((response) => {
- document.querySelector('#access-token').value = response.data.access_token
+ response.error
+ ? alert(response.error.message)
+ : (document.querySelector('#access-token').value = response.data.access_token)
document.querySelector('#refresh-token').value = response.data.refresh_token
- // response.error ?
- alert("Logged in as " + response.user.email)
+ alert('Logged in as ' + response.user.email)
})
.catch((err) => {
alert(err.response.text)
@@ -56,10 +54,9 @@ const logInSubmitted = (event) => {
}
const fetchUserDetails = () => {
- alert(JSON.stringify(supabase.auth.user()))
+ alert(JSON.stringify(supabase.auth.user()))
}
-
const logoutSubmitted = (event) => {
event.preventDefault()
@@ -68,7 +65,7 @@ const logoutSubmitted = (event) => {
.then((response) => {
document.querySelector('#access-token').value = ''
document.querySelector('#refresh-token').value = ''
- alert("Logout successful")
+ alert('Logout successful')
})
.catch((err) => {
alert(err.response.text)
diff --git a/web/docs/guides/client-libraries.mdx b/web/docs/guides/client-libraries.mdx
index f028b1f5e32..c6f7b68b7a1 100755
--- a/web/docs/guides/client-libraries.mdx
+++ b/web/docs/guides/client-libraries.mdx
@@ -14,7 +14,7 @@ The [Supabase Client](/docs/reference/javascript/supabase-client) makes it simpl
## Auth
-Create new users using [`signUp()`](/docs/reference/javascript/auth-signup).
+Create new users using [`signUp()`](/docs/reference/javascript/auth-signup). By default, the user will need to verify their email address before logging in.
Date: Sun, 2 May 2021 11:34:30 +0100
Subject: [PATCH 003/143] Update README.pt.md
---
i18n/README.pt.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/i18n/README.pt.md b/i18n/README.pt.md
index bfcef58f2d4..d1c3b604ced 100644
--- a/i18n/README.pt.md
+++ b/i18n/README.pt.md
@@ -6,7 +6,7 @@
# Supabase
-[Supabase](https://supabase.io) é uma alternativa al Forebase de código aberto. Estamos reproduzindo as funcionalidades do Firebase usando ferramentas de código aberto de nivel empresarial.
+[Supabase](https://supabase.io) é uma alternativa de código aberto ao Firebase. Estamos reproduzindo as funcionalidades do Firebase usando ferramentas de código aberto de nível empresarial.
- [x] Banco de dados hospedado Postgres
- [x] Subscrições em tempo real
@@ -34,7 +34,7 @@ Para ver a documentação completa, visite [supabase.io/docs](https://supabase.i
- [x] Beta público: estável o suficiente para a maioria dos casos de uso não empresariais
- [ ] Público: pronto para produção
-Estamos atualmente em Beta Público. Assista aos "releases" deste repositório para ser notificado sobre as principais atualizações.
+Estamos atualmente em Beta Público. Assista aos lançamentos deste repositório para ser notificado sobre as principais atualizações.
From 90f424629fd6baf6d0ba0d4fdfc1aace39871fa7 Mon Sep 17 00:00:00 2001
From: Gaurav Singh
Date: Sun, 2 May 2021 19:25:35 +0530
Subject: [PATCH 004/143] Update commit based on feedback
---
examples/javascript-auth/index.js | 18 ++++++++++++------
web/docs/guides/client-libraries.mdx | 3 ++-
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/examples/javascript-auth/index.js b/examples/javascript-auth/index.js
index 0387054d2c7..efc0e7442b4 100644
--- a/examples/javascript-auth/index.js
+++ b/examples/javascript-auth/index.js
@@ -27,7 +27,7 @@ const signUpSubmitted = (event) => {
supabase.auth
.signUp({ email, password })
.then((response) => {
- response.error ? alert(response.error.message) : alert('Confirmation Email Sent')
+ response.error ? alert(response.error.message) : setToken(response)
})
.catch((err) => {
alert(err.response.text)
@@ -42,11 +42,7 @@ const logInSubmitted = (event) => {
supabase.auth
.signIn({ email, password })
.then((response) => {
- response.error
- ? alert(response.error.message)
- : (document.querySelector('#access-token').value = response.data.access_token)
- document.querySelector('#refresh-token').value = response.data.refresh_token
- alert('Logged in as ' + response.user.email)
+ response.error ? alert(response.error.message) : setToken(response)
})
.catch((err) => {
alert(err.response.text)
@@ -71,3 +67,13 @@ const logoutSubmitted = (event) => {
alert(err.response.text)
})
}
+
+function setToken(response) {
+ if (response.data.confirmation_sent_at && !response.data.access_token) {
+ alert('Confirmation Email Sent')
+ } else {
+ document.querySelector('#access-token').value = response.data.access_token
+ document.querySelector('#refresh-token').value = response.data.refresh_token
+ alert('Logged in as ' + response.user.email)
+ }
+}
diff --git a/web/docs/guides/client-libraries.mdx b/web/docs/guides/client-libraries.mdx
index c6f7b68b7a1..5dbd781a9ba 100755
--- a/web/docs/guides/client-libraries.mdx
+++ b/web/docs/guides/client-libraries.mdx
@@ -14,7 +14,8 @@ The [Supabase Client](/docs/reference/javascript/supabase-client) makes it simpl
## Auth
-Create new users using [`signUp()`](/docs/reference/javascript/auth-signup). By default, the user will need to verify their email address before logging in.
+Create new users using [`signUp()`](/docs/reference/javascript/auth-signup). By default, the user will need to verify their email address before logging in.
+If confirmations are disabled the response will contain an access token and also a confirmed_at value, otherwise it will just contain a confirmation_sent_at attribute.
Date: Mon, 3 May 2021 13:10:14 +0200
Subject: [PATCH 005/143] Modernized and simplified translation
---
i18n/README.nb-no.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/i18n/README.nb-no.md b/i18n/README.nb-no.md
index 39dfeace19e..99d9cb8a3d8 100644
--- a/i18n/README.nb-no.md
+++ b/i18n/README.nb-no.md
@@ -6,7 +6,7 @@
# Supabase
-[Supabase](https://supabase.io) er et åpent kildekode-alternativ til Firebase. Vi bygger funksjonaliteten til Firebase ved hjelp av enterprise-nivå åpen kildekode-verktøy.
+[Supabase](https://supabase.io) er et open source-alternativ til Firebase. Vi bygger funksjonaliteten til Firebase ved hjelp av enterprise-klare open source-verktøy.
- [x] Hostet Postgres-database
- [x] Sanntidsabonnementer
@@ -22,14 +22,14 @@ Besøk [supabase.io/docs](https://supabase.io/docs) for full dokumentasjon.
## Community & support
-- [Community-forum](https://github.com/supabase/supabase/discussions). Egnet for: hjelp med utvikling, diskusjon rundt database-best practices.
-- [GitHub Issues](https://github.com/supabase/supabase/issues). Egnet for: bugs og feil du måtte møte på med Supabase.
-- [Support på e-post](https://supabase.io/docs/support#business-support). Best for: problemer med databasen din eller infrastruktur.
+- [Community-forum](https://github.com/supabase/supabase/discussions). Egnet for: hjelp med utvikling, best practices-diskusjoner.
+- [GitHub Issues](https://github.com/supabase/supabase/issues). Egnet for: bugs og feil du opplever med Supabase.
+- [Support på e-post](https://supabase.io/docs/support#business-support). Egnet for: problemer med databasen din eller infrastruktur.
## Status
- [x] Alpha: Vi tester Supabase med en lukket gruppe kunder
-- [x] Offentlig Alpha: Hvem som helst kan registrere seg på [app.supabase.io](https://app.supabase.io). Men være forberedt på at ikke alle småfeil er luket ut enda.
+- [x] Offentlig Alpha: Hvem som helst kan registrere seg på [app.supabase.io](https://app.supabase.io). Merk at Men være forberedt på at ikke alle småfeil er luket ut enda.
- [x] Offentlig Beta: Stabilt nok for de fleste ikke-enterprise-bruksområder
- [ ] Offentlig: Produksjonsklar
@@ -41,7 +41,7 @@ Vi er for øyeblikket i Offentlig Beta. Følg med på "releases" til dette repoe
## Slik fungerer det
-Supabase er en samling av åpen kildekode-verktøy. Vi bygger funksjonaliteten til Firebase ved hjelp av enterprise-nivå åpen kildekode-produkter. Dersom et eksisterende verktøy har et community rundt seg og en MIT, APache 2 eller tilsvarende åpen lisens, kommer vi til å bruke og støtte det. Hvis verktøyet ikke eksisterer, bygger vi det selv og gjøre kildekoden tilgjengelig. Supabase er ikke en 1-til-1-mapping av Firebase. Målet vårt er å gi utviklere en Firebase-lignende utvikleropplevelse ved hjelp av åpen kildekode-verktøy.
+Supabase er en samling av open source-verktøy. Vi bygger funksjonaliteten til Firebase ved hjelp av enterprise-klare open source-produkter. Dersom et eksisterende verktøy har et community rundt seg og en MIT, APache 2 eller tilsvarende åpen lisens, kommer vi til å bruke og støtte det. Hvis verktøyet ikke eksisterer, bygger vi det selv og gjøre kildekoden tilgjengelig. Supabase er ikke en 1-til-1-mapping av Firebase. Målet vårt er å gi utviklere en Firebase-lignende utvikleropplevelse ved hjelp av open source-verktøy.
**Nåværende arkitektur**
From 3c547bbac78ce2fdd55e93623c0fd37dbfe78f01 Mon Sep 17 00:00:00 2001
From: Jon Eide Johnsen
Date: Mon, 3 May 2021 13:18:11 +0200
Subject: [PATCH 006/143] Updated wording
---
i18n/README.nb-no.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/i18n/README.nb-no.md b/i18n/README.nb-no.md
index 99d9cb8a3d8..50c7303c1a1 100644
--- a/i18n/README.nb-no.md
+++ b/i18n/README.nb-no.md
@@ -29,7 +29,7 @@ Besøk [supabase.io/docs](https://supabase.io/docs) for full dokumentasjon.
## Status
- [x] Alpha: Vi tester Supabase med en lukket gruppe kunder
-- [x] Offentlig Alpha: Hvem som helst kan registrere seg på [app.supabase.io](https://app.supabase.io). Merk at Men være forberedt på at ikke alle småfeil er luket ut enda.
+- [x] Offentlig Alpha: Hvem som helst kan registrere seg på [app.supabase.io](https://app.supabase.io). Merk at enkelte feil og quirks kan forekomme.
- [x] Offentlig Beta: Stabilt nok for de fleste ikke-enterprise-bruksområder
- [ ] Offentlig: Produksjonsklar
From fb8fbd6706093cce89d772011110b09fcdaa03f8 Mon Sep 17 00:00:00 2001
From: Carlos Stenzel
Date: Mon, 3 May 2021 11:13:01 -0300
Subject: [PATCH 007/143] reviewing readme pt-br
---
i18n/README.pt-br.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/i18n/README.pt-br.md b/i18n/README.pt-br.md
index 9358f5b951a..a9e5fac3618 100644
--- a/i18n/README.pt-br.md
+++ b/i18n/README.pt-br.md
@@ -23,7 +23,7 @@ Para documentação completa, visite [supabase.io/docs](https://supabase.io/docs
## Comunidade & Suporte
- [Fórum da comunidade](https://github.com/supabase/supabase/discussions). Melhor para: ajuda com a construção, discussões sobre melhores práticas em banco de dados.
-- [GitHub Issues](https://github.com/supabase/supabase/issues). Melhor para: problemas ou erros que você encontrar usando Supabase.
+- [GitHub Issues](https://github.com/supabase/supabase/issues). Melhor para: problemas ou erros que você encontrar usando o Supabase.
- [Suporte por E-mail](https://supabase.io/docs/support#business-support). Melhor para: problemas com o seu banco de dados ou infraestrutura.
## Status
@@ -33,7 +33,7 @@ Para documentação completa, visite [supabase.io/docs](https://supabase.io/docs
- [x] Beta Público: Estável o suficiente para a maioria dos casos não empresariais.
- [ ] Público: Pronto para produção.
-Estamos atualmente na fase Beta Público. Siga as "entregas" (_releases_) deste repositório para receber uma notificação quando houver atualizações grandes (_major releases_).
+Estamos atualmente na fase Beta Público. Siga as "entregas" (_releases_) deste repositório para receber uma notificação quando houver uma grande atualização (_major releases_).
From c792f7ea3f2d074265218359aa9a63dc52a920af Mon Sep 17 00:00:00 2001
From: Carlos Stenzel
Date: Mon, 3 May 2021 12:02:05 -0300
Subject: [PATCH 008/143] upgrade dependencies
---
examples/nextjs-with-supabase-auth/package.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/examples/nextjs-with-supabase-auth/package.json b/examples/nextjs-with-supabase-auth/package.json
index b05bb8417e8..b471437ac1e 100644
--- a/examples/nextjs-with-supabase-auth/package.json
+++ b/examples/nextjs-with-supabase-auth/package.json
@@ -7,12 +7,12 @@
"start": "next start"
},
"dependencies": {
- "@supabase/supabase-js": "^1.2.1",
- "@supabase/ui": "^0.6.1",
- "next": "latest",
- "react": "^16.13.1",
- "react-dom": "^16.13.1",
- "swr": "0.2.3"
+ "@supabase/supabase-js": "^1.11.9",
+ "@supabase/ui": "^0.24.2",
+ "next": "10.2.0",
+ "react": "17.0.2",
+ "react-dom": "17.0.2",
+ "swr": "^0.5.5"
},
"license": "MIT"
}
From 92a3987cd60d80fc04e3013a140487f430a424cb Mon Sep 17 00:00:00 2001
From: MohammadReza Iranmanesh
Date: Tue, 4 May 2021 01:35:00 +0430
Subject: [PATCH 009/143] doc: add farsi documention.
---
i18n/README.fa.md | 87 +++++++++++++++++++++++++++++++++++++++++++++++
i18n/languages.md | 1 +
2 files changed, 88 insertions(+)
create mode 100644 i18n/README.fa.md
diff --git a/i18n/README.fa.md b/i18n/README.fa.md
new file mode 100644
index 00000000000..cb5a237aeeb
--- /dev/null
+++ b/i18n/README.fa.md
@@ -0,0 +1,87 @@
+
+
+
+
+---
+
+# Supabase
+
+[Supabase](https://supabase.io) یک جایگزین اپنسورس برای Firebase است. ما در حال ساخت امکانات Firebase با استفاده ابزارهای اپنسورس و کلاس تجاری هستیم.
+
+- [x] دیتابیس Postgres میزبانیشده
+- [x] اتصال و ارتباط بلادرنگ
+- [x] احراز هویت و کنترل سطح دسترسی
+- [x] ساختن خودکار APIها
+- [x] پنل کاربری
+- [x] فضای ذخیرهسازی
+- [ ] توابع (به زودی)
+
+## مستندات
+
+برای مستندات کامل به [supabase.io/docs](https://supabase.io/docs) مراجعه کنید.
+
+## جامعه و پشتیبانی
+
+- [Community Forum](https://github.com/supabase/supabase/discussions). گزینه مناسب برای راهنمایی گرفتن در مورد توسعه و روش مناسب استفاده از دیتابیس میباشد.
+- [GitHub Issues](https://github.com/supabase/supabase/issues). گزینه مناسب برای خطاها و باگهایی که در استفاده از Supabase برمیخوردید.
+- [Email Support](https://supabase.io/docs/support#business-support). بهترین گزینه برای مشکلات مرتبط با دیتابیس و زیرساخت است.
+
+## وضعیت
+
+- [x] آلفا: در حال تست Supabase با گروه محدود از کاربران هستیم.
+- [x] آلفای عمومی: همه میتواند برای استفاده از طریق [app.supabase.io](https://app.supabase.io) ثبتنام کنند. اما سخت نگیرید، ممکن است مشکلات معدودی وجود داشته باشد.
+- [x] بتای عمومی: قابل اتکا برای اکثر استفادههای غیر-تجاری میباشد.
+- [ ] عمومی: آماده برای استفاده تجاری.
+
+در حال حاظر در مرحله بتای عمومی هستیم. "releases" این مخزن را دنبال کنید تا در جریان بهروزسانیها قرار بگیرید.
+
+
+
+---
+
+## چطور کار میکند
+
+
+Supabase ترکیبی از ابزارهای اپنسورس است. ما امکانات Firebase را با استفاده از محصولات اپنسورس و کلاس تجاری میسازیم. اگر ابزار و جامعهی آن وجود داشته باشد، با استفاده از گواهینامه MIT, Apache 2 یا هر گواهینامهی معادلی، ما از آن ابزار استفاده و پشتیبانی میکنیم. اگر ابزاری وجود نداشته باشد، ما خودمان آن را میسازیم و اپنسورس میکنیم. Supabase یک محصول دقیقا شبیه و معادل یکبهیک Firebase نیست. ما سعی داریم با استفاده از ابزارهای اپنسورس تجربه شبیه به Firebase به توسعهدهندگان ارائه دهیم.
+
+**معماری فعلی**
+
+Supabase یک [پلتفرم میزبانیشده](https://app.supabase.io) است. شما میتوانید بدون نصب چیزی، ثبتنام و شروع به استفاده از Supabase کنید. ما هنوز در حال ساختن تجربهی توسعه local هستیم - این تمرکز اصلی فعلی ما علاوه بر اتکاپذیری است.
+
+
+
+- [PostgreSQL](https://www.postgresql.org/) یک سیستم دیتابیس object-relational با بیش از ۳۰سال سابقه توسعه میباشد که اعتبار زیادی بابت اتکاپذیری، امکانات قوی و سرعت کسب کرده است.
+- [Realtime](https://github.com/supabase/realtime) یک سرور Elixir است که اجازه میدهد به اضافه کردن، بهروز کردن و حذف کردنهای PostgreSQL با استفاده از websockets گوش دهید. Supabase به عملکرد داخلی PostgreSQL برای replication گوش میدهد، replication byte stream را به JSON تبدیل میکند و JSON را از طریق websock به خارج broadcast میکند.
+- [PostgREST](http://postgrest.org/) یک وب سرور است که دیتابیس PostgreSQL را به صورت مستقیم به RESTful API تبدیل میکند.
+- [Storage](https://github.com/supabase/storage-api) یک رابط RESTful برای مدیریت فایلهای ذخیره شده در S3 با استفاده از Postgres برای مدیریت دسترسیها فراهم میکند.
+- [postgres-meta](https://github.com/supabase/postgres-meta) یک RESTful API برای مدیریت Postgres، دریافت جدولهای داده، اضافه کردن roleها و اجرای queryها و غیره میباشد.
+- [GoTrue](https://github.com/netlify/gotrue) یک API بر پایهی SWT برای مدیریت کاربران و صدور توکن احراز هویت است.
+- [Kong](https://github.com/Kong/kong) یک gateway ابری-بومی میباشد.
+
+#### کتابخانههای کلاینت
+کتابخانهی کلاینت ما چند-تیکه است. هر زیر-کتابخانه یک پیادهسازی جداگانه برای یک سیستم خارجی واحد دارد. این یکی از روشهای ما برای پشتیانی از ابزارهای موجود است.
+
+
+- **`supabase-{lang}`**: کتابخانهها را ترکیب میکند و تکمیلتر خواهد بود.
+ - `postgrest-{lang}`: کتابخانه کلاینت برای کارکردن با [PostgREST](https://github.com/postgrest/postgrest)
+ - `realtime-{lang}`: کتابخانه کلاینت برای کارکردن با [Realtime](https://github.com/supabase/realtime)
+ - `gotrue-{lang}`: کتابخانه کلاینت برای کارکردن با [GoTrue](https://github.com/netlify/gotrue)
+
+| مخزن | رسمی | جامعه |
+| --------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **`supabase-{lang}`** | [`JS`](https://github.com/supabase/supabase-js) | [`C#`](https://github.com/supabase/supabase-csharp) \| [`Dart`](https://github.com/supabase/supabase-dart) \| [`Python`](https://github.com/supabase/supabase-py) \| `Rust` |
+| `postgrest-{lang}` | [`JS`](https://github.com/supabase/postgrest-js) | [`C#`](https://github.com/supabase/postgrest-csharp) \| [`Dart`](https://github.com/supabase/postgrest-dart) \| [`Python`](https://github.com/supabase/postgrest-py) \| [`Rust`](https://github.com/supabase/postgrest-rs) |
+| `realtime-{lang}` | [`JS`](https://github.com/supabase/realtime-js) | [`C#`](https://github.com/supabase/realtime-csharp) \| [`Dart`](https://github.com/supabase/realtime-dart) \| [`Python`](https://github.com/supabase/realtime-py) \| `Rust` |
+| `gotrue-{lang}` | [`JS`](https://github.com/supabase/gotrue-js) | [`C#`](https://github.com/supabase/gotrue-csharp) \| [`Dart`](https://github.com/supabase/gotrue-dart) \| [`Python`](https://github.com/supabase/gotrue-py) \| `Rust` |
+
+
+## ترجمهها
+
+
+- [لیست ترجمهها](/i18n/languages.md)
+
+---
+
+## اسپانسرها
+
+[](https://github.com/sponsors/supabase)
diff --git a/i18n/languages.md b/i18n/languages.md
index 84763cb0619..a5615892d20 100644
--- a/i18n/languages.md
+++ b/i18n/languages.md
@@ -9,6 +9,7 @@
- [Italiano / Italian](/i18n/README.it.md)
- [Japanese / 日本語](/i18n/README.jp.md)
- [Norwegian (Bokmål) / Norsk (Bokmål)](/i18n/README.nb-no.md)
+- [Persian / فارسی](/i18n/README.fa.md)
- [Polish / Polski](/i18n/README.pl.md)
- [Portuguese / Portuguese](/i18n/README.pt.md)
- [Portuguese (Brazilian) / Português Brasileiro](/i18n/README.pt-br.md)
From 4062563ee823dec9c95e8f38613b9396b5ef368a Mon Sep 17 00:00:00 2001
From: MohammadReza
Date: Tue, 4 May 2021 01:47:45 +0430
Subject: [PATCH 010/143] fix: RTL direction
---
i18n/README.fa.md | 48 ++++++++++++++++++++++++-----------------------
1 file changed, 25 insertions(+), 23 deletions(-)
diff --git a/i18n/README.fa.md b/i18n/README.fa.md
index cb5a237aeeb..557fee49313 100644
--- a/i18n/README.fa.md
+++ b/i18n/README.fa.md
@@ -6,34 +6,34 @@
# Supabase
-[Supabase](https://supabase.io) یک جایگزین اپنسورس برای Firebase است. ما در حال ساخت امکانات Firebase با استفاده ابزارهای اپنسورس و کلاس تجاری هستیم.
+[Supabase](https://supabase.io) یک جایگزین اپنسورس برای Firebase است. ما در حال ساخت امکانات Firebase با استفاده ابزارهای اپنسورس و کلاس تجاری هستیم.
-- [x] دیتابیس Postgres میزبانیشده
+- [x] دیتابیس Postgres میزبانیشده
- [x] اتصال و ارتباط بلادرنگ
- [x] احراز هویت و کنترل سطح دسترسی
-- [x] ساختن خودکار APIها
+- [x] ساختن خودکار APIها
- [x] پنل کاربری
- [x] فضای ذخیرهسازی
- [ ] توابع (به زودی)
## مستندات
-برای مستندات کامل به [supabase.io/docs](https://supabase.io/docs) مراجعه کنید.
+برای مستندات کامل به [supabase.io/docs](https://supabase.io/docs) مراجعه کنید.
## جامعه و پشتیبانی
-- [Community Forum](https://github.com/supabase/supabase/discussions). گزینه مناسب برای راهنمایی گرفتن در مورد توسعه و روش مناسب استفاده از دیتابیس میباشد.
-- [GitHub Issues](https://github.com/supabase/supabase/issues). گزینه مناسب برای خطاها و باگهایی که در استفاده از Supabase برمیخوردید.
-- [Email Support](https://supabase.io/docs/support#business-support). بهترین گزینه برای مشکلات مرتبط با دیتابیس و زیرساخت است.
+- [Community Forum](https://github.com/supabase/supabase/discussions). گزینه مناسب برای راهنمایی گرفتن در مورد توسعه و روش مناسب استفاده از دیتابیس میباشد.
+- [GitHub Issues](https://github.com/supabase/supabase/issues). گزینه مناسب برای خطاها و باگهایی که در استفاده از Supabase برمیخوردید.
+- [Email Support](https://supabase.io/docs/support#business-support). بهترین گزینه برای مشکلات مرتبط با دیتابیس و زیرساخت است.
## وضعیت
-- [x] آلفا: در حال تست Supabase با گروه محدود از کاربران هستیم.
-- [x] آلفای عمومی: همه میتواند برای استفاده از طریق [app.supabase.io](https://app.supabase.io) ثبتنام کنند. اما سخت نگیرید، ممکن است مشکلات معدودی وجود داشته باشد.
+- [x] آلفا: در حال تست Supabase با گروه محدود از کاربران هستیم.
+- [x] آلفای عمومی: همه میتواند برای استفاده از طریق [app.supabase.io](https://app.supabase.io) ثبتنام کنند. اما سخت نگیرید، ممکن است مشکلات معدودی وجود داشته باشد.
- [x] بتای عمومی: قابل اتکا برای اکثر استفادههای غیر-تجاری میباشد.
- [ ] عمومی: آماده برای استفاده تجاری.
-در حال حاظر در مرحله بتای عمومی هستیم. "releases" این مخزن را دنبال کنید تا در جریان بهروزسانیها قرار بگیرید.
+در حال حاظر در مرحله بتای عمومی هستیم. "releases" این مخزن را دنبال کنید تا در جریان بهروزسانیها قرار بگیرید.
@@ -42,30 +42,30 @@
## چطور کار میکند
-Supabase ترکیبی از ابزارهای اپنسورس است. ما امکانات Firebase را با استفاده از محصولات اپنسورس و کلاس تجاری میسازیم. اگر ابزار و جامعهی آن وجود داشته باشد، با استفاده از گواهینامه MIT, Apache 2 یا هر گواهینامهی معادلی، ما از آن ابزار استفاده و پشتیبانی میکنیم. اگر ابزاری وجود نداشته باشد، ما خودمان آن را میسازیم و اپنسورس میکنیم. Supabase یک محصول دقیقا شبیه و معادل یکبهیک Firebase نیست. ما سعی داریم با استفاده از ابزارهای اپنسورس تجربه شبیه به Firebase به توسعهدهندگان ارائه دهیم.
+Supabase ترکیبی از ابزارهای اپنسورس است. ما امکانات Firebase را با استفاده از محصولات اپنسورس و کلاس تجاری میسازیم. اگر ابزار و جامعهی آن وجود داشته باشد، با استفاده از گواهینامه MIT, Apache 2 یا هر گواهینامهی معادلی، ما از آن ابزار استفاده و پشتیبانی میکنیم. اگر ابزاری وجود نداشته باشد، ما خودمان آن را میسازیم و اپنسورس میکنیم. Supabase یک محصول دقیقا شبیه و معادل یکبهیک Firebase نیست. ما سعی داریم با استفاده از ابزارهای اپنسورس تجربه شبیه به Firebase به توسعهدهندگان ارائه دهیم.
**معماری فعلی**
-Supabase یک [پلتفرم میزبانیشده](https://app.supabase.io) است. شما میتوانید بدون نصب چیزی، ثبتنام و شروع به استفاده از Supabase کنید. ما هنوز در حال ساختن تجربهی توسعه local هستیم - این تمرکز اصلی فعلی ما علاوه بر اتکاپذیری است.
+Supabase یک [پلتفرم میزبانیشده](https://app.supabase.io) است. شما میتوانید بدون نصب چیزی، ثبتنام و شروع به استفاده از Supabase کنید. ما هنوز در حال ساختن تجربهی توسعه local هستیم - این تمرکز اصلی فعلی ما علاوه بر اتکاپذیری است.

-- [PostgreSQL](https://www.postgresql.org/) یک سیستم دیتابیس object-relational با بیش از ۳۰سال سابقه توسعه میباشد که اعتبار زیادی بابت اتکاپذیری، امکانات قوی و سرعت کسب کرده است.
-- [Realtime](https://github.com/supabase/realtime) یک سرور Elixir است که اجازه میدهد به اضافه کردن، بهروز کردن و حذف کردنهای PostgreSQL با استفاده از websockets گوش دهید. Supabase به عملکرد داخلی PostgreSQL برای replication گوش میدهد، replication byte stream را به JSON تبدیل میکند و JSON را از طریق websock به خارج broadcast میکند.
-- [PostgREST](http://postgrest.org/) یک وب سرور است که دیتابیس PostgreSQL را به صورت مستقیم به RESTful API تبدیل میکند.
-- [Storage](https://github.com/supabase/storage-api) یک رابط RESTful برای مدیریت فایلهای ذخیره شده در S3 با استفاده از Postgres برای مدیریت دسترسیها فراهم میکند.
-- [postgres-meta](https://github.com/supabase/postgres-meta) یک RESTful API برای مدیریت Postgres، دریافت جدولهای داده، اضافه کردن roleها و اجرای queryها و غیره میباشد.
-- [GoTrue](https://github.com/netlify/gotrue) یک API بر پایهی SWT برای مدیریت کاربران و صدور توکن احراز هویت است.
-- [Kong](https://github.com/Kong/kong) یک gateway ابری-بومی میباشد.
+- [PostgreSQL](https://www.postgresql.org/) یک سیستم دیتابیس object-relational با بیش از ۳۰سال سابقه توسعه میباشد که اعتبار زیادی بابت اتکاپذیری، امکانات قوی و سرعت کسب کرده است.
+- [Realtime](https://github.com/supabase/realtime) یک سرور Elixir است که اجازه میدهد به اضافه کردن، بهروز کردن و حذف کردنهای PostgreSQL با استفاده از websockets گوش دهید. Supabase به عملکرد داخلی PostgreSQL برای replication گوش میدهد، replication byte stream را به JSON تبدیل میکند و JSON را از طریق websock به خارج broadcast میکند.
+- [PostgREST](http://postgrest.org/) یک وب سرور است که دیتابیس PostgreSQL را به صورت مستقیم به RESTful API تبدیل میکند.
+- [Storage](https://github.com/supabase/storage-api) یک رابط RESTful برای مدیریت فایلهای ذخیره شده در S3 با استفاده از Postgres برای مدیریت دسترسیها فراهم میکند.
+- [postgres-meta](https://github.com/supabase/postgres-meta) یک RESTful API برای مدیریت Postgres، دریافت جدولهای داده، اضافه کردن roleها و اجرای queryها و غیره میباشد.
+- [GoTrue](https://github.com/netlify/gotrue) یک API بر پایهی SWT برای مدیریت کاربران و صدور توکن احراز هویت است.
+- [Kong](https://github.com/Kong/kong) یک gateway ابری-بومی میباشد.
#### کتابخانههای کلاینت
کتابخانهی کلاینت ما چند-تیکه است. هر زیر-کتابخانه یک پیادهسازی جداگانه برای یک سیستم خارجی واحد دارد. این یکی از روشهای ما برای پشتیانی از ابزارهای موجود است.
-- **`supabase-{lang}`**: کتابخانهها را ترکیب میکند و تکمیلتر خواهد بود.
- - `postgrest-{lang}`: کتابخانه کلاینت برای کارکردن با [PostgREST](https://github.com/postgrest/postgrest)
- - `realtime-{lang}`: کتابخانه کلاینت برای کارکردن با [Realtime](https://github.com/supabase/realtime)
- - `gotrue-{lang}`: کتابخانه کلاینت برای کارکردن با [GoTrue](https://github.com/netlify/gotrue)
+- **`supabase-{lang}`**: کتابخانهها را ترکیب میکند و تکمیلتر خواهد بود.
+ - `postgrest-{lang}`: کتابخانه کلاینت برای کارکردن با [PostgREST](https://github.com/postgrest/postgrest)
+ - `realtime-{lang}`: کتابخانه کلاینت برای کارکردن با [Realtime](https://github.com/supabase/realtime)
+ - `gotrue-{lang}`: کتابخانه کلاینت برای کارکردن با [GoTrue](https://github.com/netlify/gotrue)
| مخزن | رسمی | جامعه |
| --------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -85,3 +85,5 @@ Supabase یک [پلتفرم میزبانیشده](https://app.supabase.io) ا
## اسپانسرها
[](https://github.com/sponsors/supabase)
+
+
From 40f7a45c026f016dfb811246a42810acda8e0fa0 Mon Sep 17 00:00:00 2001
From: Paul Copplestone
Date: Tue, 4 May 2021 08:32:32 +0800
Subject: [PATCH 011/143] copy march blog
---
.../2021-05-03-supabase-beta-april-2021.mdx | 123 ++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 www/_blog/2021-05-03-supabase-beta-april-2021.mdx
diff --git a/www/_blog/2021-05-03-supabase-beta-april-2021.mdx b/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
new file mode 100644
index 00000000000..6044216d67c
--- /dev/null
+++ b/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
@@ -0,0 +1,123 @@
+---
+title: Supabase Beta March 2021
+description: Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing.
+author: paul_copplestone
+author_url: https://github.com/kiwicopple
+author_image_url: https://github.com/kiwicopple.png
+authorURL: https://github.com/kiwicopple
+image: march-2021/release-mar-2021.jpg
+thumb: march-2021/release-mar-2021.jpg
+tags:
+ - release-notes
+date: '2021-04-06'
+---
+
+Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing. Here's what we released last month.
+
+### Quick demo
+
+Watch a full demo:
+
+
+
+
+## Supabase Storage
+
+Need to store images, audio, and video clips? Well now you can do it on [Supabase Storage](https://supabase.io/blog/2021/03/30/supabase-storage). It's backed by S3 and our new [OSS storage API](https://github.com/supabase/storage-api) written in Fastify and Typescript. Read the [full blog post](https://supabase.io/blog/2021/03/30/supabase-storage).
+
+
+
+## Connection Pooling
+
+The Supabase API already handles Connection Pooling, but if you're connecting to your database directly (for example, with Prisma) we now [bundle PgBouncer](https://supabase.io/blog/2021/04/02/supabase-pgbouncer). Read the [full blog post](https://supabase.io/blog/2021/04/02/supabase-pgbouncer).
+
+
+
+## React UI Component Library
+
+We open sourced our internal UI component library, so that anyone can use and contribute to the Supabase aesthetic. It lives at [ui.supabase.io](https://ui.supabase.io/) . It was also the #1 Product of the Day [on Product Hunt](https://www.producthunt.com/posts/supabase-ui).
+
+
+
+## CLI
+
+Now you can run Supabase locally in the terminal with `supabase start`. We have done some preliminary work on [diff-based schema migrations](https://supabase.io/blog/2021/03/31/supabase-cli#migrations), and added some new tooling for self-hosting Supabase with Docker. [Blog post here](https://supabase.io/new/blog/2021/03/31/supabase-cli).
+
+
+
+## Pricing
+
+Our most frequently asked question by far is "ok supabase is sweet, but how much is it going to cost?". TL;DR there's **Free Tier** up to 500mb + 10k auth users, a **Pro** **Tier** at $25/month for 8GB + 100k auth users, and anything additional is charged on a usage basis.
+
+See [Pricing Page](https://supabase.io/pricing) for full details and also our blog on why [pricing is hard](https://supabase.io/blog/2021/03/29/pricing).
+
+
+
+## NFT Platform
+
+Well... not really, but it made for a great [April Fools joke](https://supabase.io/blog/2021/04/01/supabase-nft-marketplace).
+
+
+
+## Supabase Dot Com
+
+We are now dot com! We'll be porting across over the next few weeks. Read the origin story behind the name [here](https://supabase.io/blog/2021/04/02/supabase-dot-com).
+
+
+
+## OAuth Scopes
+
+Thanks to a comunity contribution ([@_mateomorris](https://twitter.com/_mateomorris) and [@Beamanator](https://twitter.com/Beamanator)), Supabase Auth now includes OAuth scopes. These allow you to request elevated access during login. For example, you may want to request access to a list of Repositories when users log in with GitHub. Check out the [Documentation](https://supabase.io/docs/reference/javascript/auth-signup#sign-up-with-scopes).
+
+
+
+## Kaizen
+
+- You can now manage your PostgREST configuration inside the Dashboard.
+- Our website has been redesigned. Check out our new [Homepage](https://supabase.io/) and [Blog](https://supabase.io/blog), and our new [Database](https://supabase.io/database), [Auth](https://supabase.io/auth), and [Storage](https://supabase.io/storage) product pages.
+- We refactored some of our Filter methods to make them even easier to use. Check out the [Full Text Search](https://supabase.io/docs/reference/javascript/textsearch) refactor.
+- We have added several new sections to our Docs including: [Local Dev](https://supabase.io/docs/guides/local-development), [Self Hosting](https://supabase.io/docs/guides/self-hosting), and [Postgres Reference](https://supabase.io/docs/reference/postgres/getting-started) docs (all still under development).
+
+## Community
+
+- How to use Supabase inside Replit [[Video](https://www.youtube.com/watch?v=lQ5iIxaYduI)]
+- [Connecting Draftbit to Supabase](https://docs.draftbit.com/docs/supabase) by [@amanhimself](https://twitter.com/amanhimself)
+- [Creating Users in Next-js](https://t.co/IKcn3mgqW0?amp=1) by [@indigitalcolor](https://twitter.com/indigitalcolor)
+- [A Backend for IndieHackers](https://drew.tech/supabase-a-backend-for-indiehackers) by [@dbredvick](https://twitter.com/DBredvick)
+- The Firebase Alternative by [Simon Grimm](https://www.youtube.com/user/saimon1924) [[Video](https://www.youtube.com/watch?v=F6VyIXFQVtQ)]
+- Ionic Integration by [Simon Grimm](https://www.youtube.com/user/saimon1924) [[Video](https://www.youtube.com/watch?v=pl9XfIWutKE)]
+- Flutter Integration by [Aditya Thakur](https://www.youtube.com/channel/UChCAJNpMwoEUYCsE_eSyU4w) by [[Video](https://www.youtube.com/watch?v=fqfHEZvQPlY)]
+- Svelte Integration by [Khaerunnisa Isnaeni](https://www.youtube.com/channel/UCqNDj6eQeTLHuEwgEHWOGjw) [[Video](https://www.youtube.com/watch?v=odPYzJJyEJI)]
+- An [example app](https://github.com/supabase/supabase/tree/master/examples/nextjs-ts-user-management) for adding User Profiles to your Next.js app
+
+
+
+
+ Source: repository.surf/supabase
+
+
+If you want to keep up to date, make sure you [subscribe to our YouTube channel](https://www.youtube.com/channel/UCNTVzV1InxHV-YR0fSajqPQ) or [follow us on Twitter](https://twitter.com/supabase_io).
+
+## Coming Next
+
+Lets say for each new sign up, you want to trigger a slack alert, send them an email after 24 hours.
+
+For this we are working on our own [Workflow engine](https://supabase.io/blog/2021/04/02/supabase-workflows), it will eventually have a Zapier-like interface inside the dashboard. For now it's a state-machine interpreter (fully compatible with Amazon States Language) written in Elixir, [open source](https://github.com/supabase/workflows), and ready for community contributions.
+
+
+
+### Get started
+
+- Start using Supabase today: [app.supabase.io](https://app.supabase.io/)
+- Make sure to [star us on GitHub](https://github.com/supabase/supabase)
+- Follow us [on Twitter](https://twitter.com/supabase_io)
+- Subscribe to our [YouTube channel](https://www.youtube.com/channel/UCNTVzV1InxHV-YR0fSajqPQ)
+- Become a [sponsor](https://github.com/sponsors/supabase)
From be00b3439cd3da18282a64ca18bf058540c6089e Mon Sep 17 00:00:00 2001
From: Paul Copplestone
Date: Tue, 4 May 2021 16:09:08 +0800
Subject: [PATCH 012/143] Drafts up the montly blog post
---
.../2021-05-03-supabase-beta-april-2021.mdx | 134 +++++++++++-------
.../images/blog/april-2021/fireship.png | Bin 0 -> 279278 bytes
www/public/images/blog/april-2021/hiring.png | Bin 0 -> 224585 bytes
.../images/blog/april-2021/light-mode.mov | Bin 0 -> 1081728 bytes
.../images/blog/april-2021/light-mode.mp4 | Bin 0 -> 156202 bytes
www/public/images/blog/april-2021/map.png | Bin 0 -> 40815 bytes
.../blog/april-2021/release-apr-2021.jpg | Bin 0 -> 247251 bytes
.../images/blog/april-2021/stars-all.png | Bin 0 -> 24916 bytes
.../images/blog/april-2021/stars-realtime.png | Bin 0 -> 34837 bytes
.../images/blog/april-2021/stars-ui.png | Bin 0 -> 36155 bytes
.../blog/april-2021/storage-openapi.png | Bin 0 -> 228974 bytes
.../blog/april-2021/stripe-sync-engine.jpg | Bin 0 -> 345565 bytes
.../images/blog/april-2021/supascript.png | Bin 0 -> 131333 bytes
.../images/blog/april-2021/threaded-full.mov | Bin 0 -> 7622487 bytes
.../images/blog/april-2021/threaded-small.mp4 | Bin 0 -> 1713656 bytes
.../blog/april-2021/twitter-darkmode.png | Bin 0 -> 61371 bytes
www/public/rss.xml | 10 +-
17 files changed, 94 insertions(+), 50 deletions(-)
create mode 100644 www/public/images/blog/april-2021/fireship.png
create mode 100644 www/public/images/blog/april-2021/hiring.png
create mode 100644 www/public/images/blog/april-2021/light-mode.mov
create mode 100644 www/public/images/blog/april-2021/light-mode.mp4
create mode 100644 www/public/images/blog/april-2021/map.png
create mode 100644 www/public/images/blog/april-2021/release-apr-2021.jpg
create mode 100644 www/public/images/blog/april-2021/stars-all.png
create mode 100644 www/public/images/blog/april-2021/stars-realtime.png
create mode 100644 www/public/images/blog/april-2021/stars-ui.png
create mode 100644 www/public/images/blog/april-2021/storage-openapi.png
create mode 100644 www/public/images/blog/april-2021/stripe-sync-engine.jpg
create mode 100644 www/public/images/blog/april-2021/supascript.png
create mode 100644 www/public/images/blog/april-2021/threaded-full.mov
create mode 100644 www/public/images/blog/april-2021/threaded-small.mp4
create mode 100644 www/public/images/blog/april-2021/twitter-darkmode.png
diff --git a/www/_blog/2021-05-03-supabase-beta-april-2021.mdx b/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
index 6044216d67c..9b153684e23 100644
--- a/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
+++ b/www/_blog/2021-05-03-supabase-beta-april-2021.mdx
@@ -1,18 +1,19 @@
---
-title: Supabase Beta March 2021
-description: Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing.
+title: Supabase Beta April 2021
+description: Supabase "gardening" - stability, security, and community support.
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
authorURL: https://github.com/kiwicopple
-image: march-2021/release-mar-2021.jpg
-thumb: march-2021/release-mar-2021.jpg
+image: april-2021/release-apr-2021.jpg
+thumb: april-2021/release-apr-2021.jpg
tags:
- release-notes
-date: '2021-04-06'
+date: '2021-05-05'
---
-Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing. Here's what we released last month.
+This month was a "gardening" month for Supabase. The team focused on stability, security, and community support.
+Check out what we were working on below, as well as some incredible Community contributions.
### Quick demo
@@ -29,76 +30,105 @@ Watch a full demo:
>
-## Supabase Storage
+## Light Mode
-Need to store images, audio, and video clips? Well now you can do it on [Supabase Storage](https://supabase.io/blog/2021/03/30/supabase-storage). It's backed by S3 and our new [OSS storage API](https://github.com/supabase/storage-api) written in Fastify and Typescript. Read the [full blog post](https://supabase.io/blog/2021/03/30/supabase-storage).
+We're a developer tool, which means that Dark Mode is [extremely popular](https://twitter.com/supabase_io/status/1388131942919376904).
-
+
-## Connection Pooling
+Light Mode is important however: accessibility. Dark Mode is difficult to use for developers with astigmatisms, or even just working in brightly-lit environments.
-The Supabase API already handles Connection Pooling, but if you're connecting to your database directly (for example, with Prisma) we now [bundle PgBouncer](https://supabase.io/blog/2021/04/02/supabase-pgbouncer). Read the [full blog post](https://supabase.io/blog/2021/04/02/supabase-pgbouncer).
+So today we're shipping Light Mode.
-
+
-## React UI Component Library
-We open sourced our internal UI component library, so that anyone can use and contribute to the Supabase aesthetic. It lives at [ui.supabase.io](https://ui.supabase.io/) . It was also the #1 Product of the Day [on Product Hunt](https://www.producthunt.com/posts/supabase-ui).
+## Translations
-
+With the help of the community, we [started internationalizing](https://github.com/supabase/supabase/issues/1341) our main repository:
-## CLI
+- [Arabic | العربية](https://github.com/supabase/supabase/blob/master/i18n/README.ar.md)
+- [Chinese / 中文](https://github.com/supabase/supabase/blob/master/i18n/README.cn.md)
+- [Dutch / Nederlands](https://github.com/supabase/supabase/blob/master/i18n/README.nl.md)
+- [English](https://github.com/supabase/supabase)
+- [French / Français](https://github.com/supabase/supabase/blob/master/i18n/README.fr.md)
+- [German / Deutsch](https://github.com/supabase/supabase/blob/master/i18n/README.de.md)
+- [Hindi / हिंदी](https://github.com/supabase/supabase/blob/master/i18n/README.hi.md)
+- [Nepali / नेपाली](https://github.com/supabase/supabase/blob/master/i18n/README.ne.md)
+- [Italiano / Italian](https://github.com/supabase/supabase/blob/master/i18n/README.it.md)
+- [Japanese / 日本語](https://github.com/supabase/supabase/blob/master/i18n/README.jp.md)
+- [Norwegian (Bokmål) / Norsk (Bokmål)](https://github.com/supabase/supabase/blob/master/i18n/README.nb-no.md)
+- [Polish / Polski](https://github.com/supabase/supabase/blob/master/i18n/README.pl.md)
+- [Portuguese / Portuguese](https://github.com/supabase/supabase/blob/master/i18n/README.pt.md)
+- [Portuguese (Brazilian) / Português Brasileiro](https://github.com/supabase/supabase/blob/master/i18n/README.pt-br.md)
+- [Russian / Pусский](https://github.com/supabase/supabase/blob/master/i18n/README.ru.md)
+- [Spanish / Español](https://github.com/supabase/supabase/blob/master/i18n/README.es.md)
+- [Traditional Chinese / 正體中文](https://github.com/supabase/supabase/blob/master/i18n/README.zh-tw.md)
+- [Turkish / Türkçe](https://github.com/supabase/supabase/blob/master/i18n/README.tr.md)
+- [Ukrainian / Українська](https://github.com/supabase/supabase/blob/master/i18n/README.uk.md)
-Now you can run Supabase locally in the terminal with `supabase start`. We have done some preliminary work on [diff-based schema migrations](https://supabase.io/blog/2021/03/31/supabase-cli#migrations), and added some new tooling for self-hosting Supabase with Docker. [Blog post here](https://supabase.io/new/blog/2021/03/31/supabase-cli).
+
-
+## OpenAPI spec for Storage
-## Pricing
+We released [Storage Api docs](https://supabase.github.io/storage-api) built using OpenAPI (swagger).
-Our most frequently asked question by far is "ok supabase is sweet, but how much is it going to cost?". TL;DR there's **Free Tier** up to 500mb + 10k auth users, a **Pro** **Tier** at $25/month for 8GB + 100k auth users, and anything additional is charged on a usage basis.
+
-See [Pricing Page](https://supabase.io/pricing) for full details and also our blog on why [pricing is hard](https://supabase.io/blog/2021/03/29/pricing).
+## Stripe Sync Engine (Experimental)
-
+We have [open-sourced a server](https://github.com/supabase/stripe-sync-engine) which keeps any Postgres database in sync with a Stripe account. This is experimental only. We're evaluating other tools such as [Singer](https://www.singer.io/tap/stripe/postgresql/), which provide a more general solution (but are less "realtime"), and we're opening it up here to gather feedback.
-## NFT Platform
+
-Well... not really, but it made for a great [April Fools joke](https://supabase.io/blog/2021/04/01/supabase-nft-marketplace).
+## Community spotlight: Threaded comments
-
+One of the most powerful Postgres features is "recursive CTEs" which can be used for nested items (comments, pages, friend-graphs). [@lawrencecchen](https://twitter.com/lawrencecchen) has built a full [Threaded Comments demo](https://github.com/lawrencecchen/threaded-comments) which you can [Deploy with a single click](https://github.com/lawrencecchen/threaded-comments#instant-deploy). Want to add comments to your blog with [Full Text Search](https://supabase.io/docs/reference/javascript/textsearch)? Just use Postgres.
-## Supabase Dot Com
+
-We are now dot com! We'll be porting across over the next few weeks. Read the origin story behind the name [here](https://supabase.io/blog/2021/04/02/supabase-dot-com).
+## Community spotlight: SupaScript
-
+It looks like [@burggraf2](https://twitter.com/burggraf2) got tired of waiting for us to ship Functions, and decided to build a whole JS ecosystem within his Supabase database. If you want to write PG functions in JS, import remote libraries from the web, and console log to your browser, check out this [SupaScript repo](https://github.com/burggraf/SupaScript).
-## OAuth Scopes
+
-Thanks to a comunity contribution ([@_mateomorris](https://twitter.com/_mateomorris) and [@Beamanator](https://twitter.com/Beamanator)), Supabase Auth now includes OAuth scopes. These allow you to request elevated access during login. For example, you may want to request access to a list of Repositories when users log in with GitHub. Check out the [Documentation](https://supabase.io/docs/reference/javascript/auth-signup#sign-up-with-scopes).
+## Community spotlight: Fireship
-
+Fireship reviewed Supabase last week, and despite being a (self-proclaimed) Firebase fan-boy, the review was very impartial.
-## Kaizen
+
-- You can now manage your PostgREST configuration inside the Dashboard.
-- Our website has been redesigned. Check out our new [Homepage](https://supabase.io/) and [Blog](https://supabase.io/blog), and our new [Database](https://supabase.io/database), [Auth](https://supabase.io/auth), and [Storage](https://supabase.io/storage) product pages.
-- We refactored some of our Filter methods to make them even easier to use. Check out the [Full Text Search](https://supabase.io/docs/reference/javascript/textsearch) refactor.
-- We have added several new sections to our Docs including: [Local Dev](https://supabase.io/docs/guides/local-development), [Self Hosting](https://supabase.io/docs/guides/self-hosting), and [Postgres Reference](https://supabase.io/docs/reference/postgres/getting-started) docs (all still under development).
## Community
-- How to use Supabase inside Replit [[Video](https://www.youtube.com/watch?v=lQ5iIxaYduI)]
-- [Connecting Draftbit to Supabase](https://docs.draftbit.com/docs/supabase) by [@amanhimself](https://twitter.com/amanhimself)
-- [Creating Users in Next-js](https://t.co/IKcn3mgqW0?amp=1) by [@indigitalcolor](https://twitter.com/indigitalcolor)
-- [A Backend for IndieHackers](https://drew.tech/supabase-a-backend-for-indiehackers) by [@dbredvick](https://twitter.com/DBredvick)
-- The Firebase Alternative by [Simon Grimm](https://www.youtube.com/user/saimon1924) [[Video](https://www.youtube.com/watch?v=F6VyIXFQVtQ)]
-- Ionic Integration by [Simon Grimm](https://www.youtube.com/user/saimon1924) [[Video](https://www.youtube.com/watch?v=pl9XfIWutKE)]
-- Flutter Integration by [Aditya Thakur](https://www.youtube.com/channel/UChCAJNpMwoEUYCsE_eSyU4w) by [[Video](https://www.youtube.com/watch?v=fqfHEZvQPlY)]
-- Svelte Integration by [Khaerunnisa Isnaeni](https://www.youtube.com/channel/UCqNDj6eQeTLHuEwgEHWOGjw) [[Video](https://www.youtube.com/watch?v=odPYzJJyEJI)]
-- An [example app](https://github.com/supabase/supabase/tree/master/examples/nextjs-ts-user-management) for adding User Profiles to your Next.js app
+- Watch [@everConfusedGuy](https://twitter.com/everConfusedGuy)'s talk at DevX conf - Building Supabase Storage: [YouTube video](https://www.youtube.com/watch?v=YsUYOsq_o7g)
+- DuckDuckAbdaal by [@Nutlope](https://twitter.com/Nutlope) - a personalized search engine: [Twitter](https://twitter.com/Nutlope/status/1389082406477463557)
+- Supabase in 6 minutes by [Georges Duverger](https://www.youtube.com/channel/UCNERPJ-vs61KEsD_dRNWFIw): [YouTube video](https://www.youtube.com/watch?v=c8DNV9yl0mg)
+- Build a SaaS Platform with Stripe by [@__dijonmusters:](https://twitter.com/_dijonmusters) [DEV blog](https://dev.to/dijonmusters/series/12346)
+- Supabase & Sveltekit by Svelte Mastery: [YouTube video](https://www.youtube.com/watch?v=j4AV2Liojk0)
+- Firebase vs. Supabase - Draftbit Office Hours: [YouTube Livestream](https://www.youtube.com/watch?v=9Yg6i_zCuiM)
-
+
+**Supabase Github Star Growth**
+
+- Our [main GitHub repo](https://github.com/supabase/supabase) grew 60% (by stars) and we saw a flood of new contributors.
+- Our [UI Library](https://github.com/supabase/ui) grew 175%
+- Our [Realtime Server](https://github.com/supabase/realtime) grew 39% after landing on the [front page of Hacker News](https://news.ycombinator.com/item?id=26968449).
+
+
Source: repository.surf/supabase
@@ -108,11 +138,17 @@ If you want to keep up to date, make sure you [subscribe to our YouTube channel]
## Coming Next
-Lets say for each new sign up, you want to trigger a slack alert, send them an email after 24 hours.
+You might have noticed our Dashboard slowly changing (improving), as we migrate the components out to our [open source UI Library](https://github.com/supabase/ui). This progression is an important step towards offering a UI for [Local Development](https://supabase.io/docs/guides/local-development) and [Self Hosting](https://supabase.io/docs/guides/self-hosting).
-For this we are working on our own [Workflow engine](https://supabase.io/blog/2021/04/02/supabase-workflows), it will eventually have a Zapier-like interface inside the dashboard. For now it's a state-machine interpreter (fully compatible with Amazon States Language) written in Elixir, [open source](https://github.com/supabase/workflows), and ready for community contributions.
+We're also working on our [Workflows engine](https://supabase.io/blog/2021/04/02/supabase-workflows). This is quite a large task, but we're making progress and aiming to ship sometime in July.
-
+## One more thing
+
+[We started hiring](https://supabase.io/docs/careers).
+
+
+
+This month was a "gardening" month for Supabase. The team focused on stability, security, and community support. Check out what we were working on below, as well as some incredible Community contributions.
### Get started
diff --git a/www/public/images/blog/april-2021/fireship.png b/www/public/images/blog/april-2021/fireship.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e445a31bde200c1085ccc35ecc17e0c9810c3f4
GIT binary patch
literal 279278
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