Blog: oct release (#3793)

* Adds blog skeleton

* running fresh npm install

* add .env for www

* Updates this month's blog post

* Adds final images

* Add type for DateTimeFormatOptions

* Adds youtube video

* Update the name of launch week

* Adds a date and the RSS feed

* Documents the new fetch implementation

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
This commit is contained in:
authored and GitHub committed 2021-11-08 21:14:20 +08:00
1 parent c2d191cee9
commit 9fef6857a8
22 files changed
+9462 -8106

No files matched your search

+3654 -3054
View File
File diff suppressed because it is too large. Load diff
+147 -123
View File
@@ -4805,9 +4805,11 @@
}
],
"type": {
"type": "intrinsic",
"name": "any"
}
"type": "reference",
"id": 186,
"name": "ApiError"
},
"defaultValue": "e as ApiError"
}
],
"groups": [
@@ -4981,15 +4983,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 498,
"character": 19
"line": 491,
"character": 39
}
],
"type": {
"type": "reference",
"id": 50,
"name": "Session"
}
"type": "intrinsic",
"name": "null"
},
"defaultValue": "null"
},
{
"id": 495,
@@ -5002,15 +5004,24 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 498,
"character": 58
"line": 491,
"character": 79
}
],
"type": {
"type": "intrinsic",
"name": "null"
},
"defaultValue": "null"
"type": "union",
"types": [
{
"type": "intrinsic",
"name": "null"
},
{
"type": "reference",
"id": 186,
"name": "ApiError"
}
]
}
},
{
"id": 494,
@@ -5023,16 +5034,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 498,
"character": 45
"line": 491,
"character": 66
}
],
"type": {
"type": "reference",
"id": 50,
"name": "Session"
"type": "intrinsic",
"name": "null"
},
"defaultValue": "data"
"defaultValue": "null"
},
{
"id": 493,
@@ -5045,25 +5055,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 498,
"character": 25
"line": 491,
"character": 51
}
],
"type": {
"type": "union",
"types": [
{
"type": "intrinsic",
"name": "null"
},
{
"type": "reference",
"id": 58,
"name": "User"
}
]
"type": "intrinsic",
"name": "null"
},
"defaultValue": "data.user"
"defaultValue": "null"
}
],
"groups": [
@@ -5102,15 +5102,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 500,
"line": 498,
"character": 19
}
],
"type": {
"type": "intrinsic",
"name": "null"
},
"defaultValue": "null"
"type": "reference",
"id": 50,
"name": "Session"
}
},
{
"id": 500,
@@ -5123,14 +5123,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 500,
"character": 59
"line": 498,
"character": 58
}
],
"type": {
"type": "intrinsic",
"name": "any"
}
"name": "null"
},
"defaultValue": "null"
},
{
"id": 499,
@@ -5143,15 +5144,16 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 500,
"character": 46
"line": 498,
"character": 45
}
],
"type": {
"type": "intrinsic",
"name": "null"
"type": "reference",
"id": 50,
"name": "Session"
},
"defaultValue": "null"
"defaultValue": "data"
},
{
"id": 498,
@@ -5164,15 +5166,25 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 500,
"character": 31
"line": 498,
"character": 25
}
],
"type": {
"type": "intrinsic",
"name": "null"
"type": "union",
"types": [
{
"type": "intrinsic",
"name": "null"
},
{
"type": "reference",
"id": 58,
"name": "User"
}
]
},
"defaultValue": "null"
"defaultValue": "data.user"
}
],
"groups": [
@@ -5278,15 +5290,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 514,
"character": 19
"line": 507,
"character": 39
}
],
"type": {
"type": "reference",
"id": 50,
"name": "Session"
}
"type": "intrinsic",
"name": "null"
},
"defaultValue": "null"
},
{
"id": 509,
@@ -5299,15 +5311,24 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 514,
"character": 58
"line": 507,
"character": 79
}
],
"type": {
"type": "intrinsic",
"name": "null"
},
"defaultValue": "null"
"type": "union",
"types": [
{
"type": "intrinsic",
"name": "null"
},
{
"type": "reference",
"id": 186,
"name": "ApiError"
}
]
}
},
{
"id": 508,
@@ -5320,16 +5341,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 514,
"character": 45
"line": 507,
"character": 66
}
],
"type": {
"type": "reference",
"id": 50,
"name": "Session"
"type": "intrinsic",
"name": "null"
},
"defaultValue": "data"
"defaultValue": "null"
},
{
"id": 507,
@@ -5342,25 +5362,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 514,
"character": 25
"line": 507,
"character": 51
}
],
"type": {
"type": "union",
"types": [
{
"type": "intrinsic",
"name": "null"
},
{
"type": "reference",
"id": 58,
"name": "User"
}
]
"type": "intrinsic",
"name": "null"
},
"defaultValue": "data.user"
"defaultValue": "null"
}
],
"groups": [
@@ -5399,15 +5409,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 516,
"line": 514,
"character": 19
}
],
"type": {
"type": "intrinsic",
"name": "null"
},
"defaultValue": "null"
"type": "reference",
"id": 50,
"name": "Session"
}
},
{
"id": 514,
@@ -5420,14 +5430,15 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 516,
"character": 59
"line": 514,
"character": 58
}
],
"type": {
"type": "intrinsic",
"name": "any"
}
"name": "null"
},
"defaultValue": "null"
},
{
"id": 513,
@@ -5440,15 +5451,16 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 516,
"character": 46
"line": 514,
"character": 45
}
],
"type": {
"type": "intrinsic",
"name": "null"
"type": "reference",
"id": 50,
"name": "Session"
},
"defaultValue": "null"
"defaultValue": "data"
},
{
"id": 512,
@@ -5461,15 +5473,25 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 516,
"character": 31
"line": 514,
"character": 25
}
],
"type": {
"type": "intrinsic",
"name": "null"
"type": "union",
"types": [
{
"type": "intrinsic",
"name": "null"
},
{
"type": "reference",
"id": 58,
"name": "User"
}
]
},
"defaultValue": "null"
"defaultValue": "data.user"
}
],
"groups": [
@@ -5840,9 +5862,11 @@
}
],
"type": {
"type": "intrinsic",
"name": "any"
}
"type": "reference",
"id": 186,
"name": "ApiError"
},
"defaultValue": "e as ApiError"
},
{
"id": 532,
@@ -6550,8 +6574,8 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 461,
"character": 13
"line": 460,
"character": 29
}
]
}
@@ -6580,8 +6604,8 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 462,
"character": 11
"line": 461,
"character": 8
}
],
"type": {
@@ -6611,7 +6635,7 @@
{
"fileName": "GoTrueClient.ts",
"line": 462,
"character": 39
"character": 9
}
],
"type": {
@@ -6643,8 +6667,8 @@
"sources": [
{
"fileName": "GoTrueClient.ts",
"line": 462,
"character": 4
"line": 460,
"character": 89
}
]
}
@@ -9923,7 +9947,7 @@
"sources": [
{
"fileName": "lib/cookies.ts",
"line": 164,
"line": 165,
"character": 28
}
]
@@ -9966,7 +9990,7 @@
"sources": [
{
"fileName": "lib/cookies.ts",
"line": 112,
"line": 113,
"character": 28
}
]
@@ -10242,7 +10266,7 @@
"sources": [
{
"fileName": "lib/cookies.ts",
"line": 129,
"line": 130,
"character": 24
}
]
@@ -10318,7 +10342,7 @@
"sources": [
{
"fileName": "lib/cookies.ts",
"line": 160,
"line": 161,
"character": 25
}
]
@@ -10400,7 +10424,7 @@
"sources": [
{
"fileName": "lib/cookies.ts",
"line": 144,
"line": 145,
"character": 26
}
]
@@ -11519,7 +11543,7 @@
"sources": [
{
"fileName": "lib/polyfills.ts",
"line": 6,
"line": 4,
"character": 34
}
]
+1138 -862
View File
File diff suppressed because it is too large. Load diff
+1668 -1417
View File
File diff suppressed because it is too large. Load diff
+701 -652
View File
File diff suppressed because it is too large. Load diff
+18 -2
View File
@@ -177,14 +177,30 @@ pages:
```js
import { createClient } from '@supabase/supabase-js'
const options = { schema: 'other_schema' }
const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key', options)
// Provide a custom schema. Defaults to "public".
const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key', {
schema: 'other_schema'
})
```
By default the API server points to the `public` schema. You can enable others database schemas within the Dashboard.
Go to `Settings > API > Schema` and add the schema which you want to expose to on the API.
Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema.
- name: Custom `fetch` implementation
js: |
```js
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key', {
fetch: fetch
})
```
`supabase-js` uses the [`cross-fetch`](https://www.npmjs.com/package/cross-fetch) library to make HTTP requests,
but an alternative `fetch` implementation can be provided as an option.
This is most useful in environments where `cross-fetch` is not compatible (for instance Cloudflare Workers).
Generating Types:
description: |
Supabase will soon release native type generators that dump your database types for various languages. For now, we support TypeScript through a third-party tool.
+4
View File
@@ -0,0 +1,4 @@
# Replace this URL with the URL of your blog app
NEXT_PUBLIC_URL="https://localhost:3000"
NEXT_PUBLIC_DOCS_URL="http://localhost:3005"
NEXT_PUBLIC_STUDIO_URL="https://localhost:8082"
@@ -133,7 +133,7 @@ If you want to keep up to date, make sure you [subscribe to our YouTube channel]
Security, stability, performance ... and Functions.
### Get started
## 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)
@@ -156,7 +156,7 @@ Last December we [moved from Alpha to Beta](/beta), with a focus on Security, Pe
By the time we're done, Supabase will be production-ready for all use cases.
### Get started
## 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)
@@ -122,7 +122,7 @@ We're Hiring [SREs](https://about.supabase.com/careers/sre). We're fully remote
We're warming up for another Launch Week! Last time was "[Launch Week II: the SQL](/blog/2021/07/22/supabase-launch-week-sql)". We're going to need another month to come up with a good pun again, so we'll aim for November.
### Get started
## 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)**
@@ -0,0 +1,189 @@
---
title: Supabase Beta October 2021
description: Three new Auth providers, multi-schema support, and we're gearing up for another Launch Week.
author: paul_copplestone
author_url: https://github.com/kiwicopple
author_image_url: https://github.com/kiwicopple.png
authorURL: https://github.com/kiwicopple
image: 2021-oct/release-oct-2021.jpg
thumb: 2021-oct/release-oct-2021-cover.jpg
tags:
- release-notes
date: '2021-11-07'
toc_depth: 3
---
We released three new Auth providers, multi-schema support, and we're gearing up for another Launch Week.
### Quick recap
Watch a recap of this month's release.
<iframe
className="w-full video-with-border"
width="640"
height="385"
src="https://www.youtube-nocookie.com/embed/yL5WbAKAKjE"
frameBorder="1"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
## Slack, Spotify, and MessageBird logins
Thanks to [`@HarryET`](https://github.com/supabase/gotrue/pull/245) and our friends at [MessageBird](https://github.com/supabase/gotrue/pull/210)
we have 3 new Auth providers this month:
[Slack](https://supabase.io/docs/guides/auth/auth-slack),
[Spotify](https://supabase.io/docs/guides/auth/auth-spotify), and
[MessageBird](https://supabase.io/docs/guides/auth/auth-messagebird) phone logins.
![Supabase Auth: Login with Slack](/images/blog/2021-oct/supabase-auth-slack.png)
## Multi-schema support
### Dashboard
Browse data in any database schema using the Schema switcher in the Dashbaord.
![Multi-schema support](/images/blog/2021-oct/multi-schema.png)
### API
You can access any schema with your API, after enabling access in the Dashboard.
[Docs](https://supabase.io/docs/reference/javascript/initializing#api-schemas).
![Multi-schema support (API)](/images/blog/2021-oct/supabase-multi-schema-support.png)
## Fresh Docs and Guides
We have a TON of new guides, with videos too.
### Database Functions
Learn about PostgreSQL Functions. [Docs](http://supabase.io/docs/guides/database/functions).
<iframe
className="w-full video-with-border"
width="640"
height="385"
src="https://www.youtube-nocookie.com/embed/MJZCCpCYEqk"
frameBorder="1"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
### Auth Overview
Learn about all the exciting feature of Auth within Supabase. [Docs](https://supabase.io/docs/guides/auth/intro).
<iframe
className="w-full video-with-border"
width="640"
height="385"
src="https://www.youtube-nocookie.com/embed/6ow_jW4epf8"
frameBorder="1"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
### API Features
Learn more about the power of PostgREST for RESTful APIs. [Docs](https://supabase.io/docs/guides/api#restful-api).
<iframe
className="w-full video-with-border"
width="640"
height="385"
src="https://www.youtube-nocookie.com/embed/rPAJJFdtPw0"
frameBorder="1"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
### And more
- Redwood Quickstart: [https://supabase.io/docs/guides/with-redwoodjs](https://supabase.io/docs/guides/with-redwoodjs)
- Expanded Self-hosting: [https://supabase.io/docs/guides/hosting/overview](https://supabase.io/docs/guides/hosting/overview)
- Expanded Auth Reference docs with [serverside functions](https://supabase.io/docs/reference/javascript/auth-api-deleteuser).
- "Before you launch" checklist: [https://supabase.io/docs/going-into-prod](https://supabase.io/docs/going-into-prod)
!["Before you launch" checklist](/images/blog/2021-oct/launch-ckecklist.png)
## Community
There was a lot of activity this month.
### Supabase at Jamstack conf
Supabase attended the Jamstack conf. Watch us catch up with Matt, the cofounder of Netlify (minute 8).
<iframe
className="w-full video-with-border"
width="640"
height="385"
src="https://www.youtube-nocookie.com/embed/phC14xfwvjc"
frameBorder="1"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
### Supabase at Next.js conf
And [Jon](https://twitter.com/_dijonmusters) made a guest appearance at this year's amazing [Next.js Conf](https://nextjs.org/conf).
<iframe
className="w-full video-with-border"
width="640"
height="385"
src="https://www.youtube-nocookie.com/embed/GpXEMB1pDRE"
frameBorder="1"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
### Community Highlights
- Vue 3 | Workout Tracker App - John Komarnicki [video](https://www.youtube.com/watch?v=3tF0fGkd4ho)
- Adalo + Supabase - Flywheel Media [video](https://www.youtube.com/watch?v=YGP1LXctLk4)
- Nuxt 3 Beta + Supabase - BenCodeZen [video](https://www.youtube.com/watch?v=5vB120atiaU)
- Made With Supabase (now on Nuxt 3) - Zernonia [site](https://www.madewithsupabase.com/)
- Nuxt 3 + Tailwind + Supabase - Ekene Eze [video](https://www.youtube.com/watch?v=xbE11CfZpNQ)
- SQL Functions - Răzvan Stătescu [article](https://dev.to/razvanstatescu/how-to-run-custom-sql-queries-using-functions-in-supabase-2nna)
- `supabase-py v0.0.3` released - [repo](https://github.com/supabase-community/supabase-py/releases/tag/v0.0.3)
- `nuxt-supabase v2.2.1` released - [repo](https://github.com/supabase-community/nuxt-supabase)
- `vue-supabase v2.2.3` released - [repo](https://github.com/supabase-community/vue-supabase)
### GitHub
We hit 20K stars!! 21,268 to be exact: [github.com/supabase/supabase](http://github.com/supabase/supabase)
![GitHub](/images/blog/2021-oct/stars.png)
Source: [repository.surf/supabase](https://repository.surf/supabase)
Check out some of our other community stats in our latest [Series A Blog Post](/blog/2021/10/28/supabase-series-a).
## Coming Next: Launch Week III
We had Launch Week [numero uno](https://supabase.io/blog/2021/03/25/launch-week) in March, and the sequel "[Launch Week II: the SQL](https://supabase.io/blog/2021/07/22/supabase-launch-week-sql)" in July.
Now we're going even bigger with the third installment: `Launch Week III: The Trilogy`. Join us on 29th November on our [Discord](https://discord.supabase.com).
![Launch Week III](/images/blog/2021-oct/og-launchweek-3.jpg)
## 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)**
- Subscribe to our **[YouTube channel](https://www.youtube.com/channel/UCNTVzV1InxHV-YR0fSajqPQ)**
- Become a **[sponsor](https://github.com/sponsors/supabase)**
+1 -1
View File
@@ -24,7 +24,7 @@ export const getSortedPosts = (limit?: number, tags?: any) => {
const fileContents = fs.readFileSync(fullPath, 'utf8')
const { data, content } = matter(fileContents)
const options = { month: 'long', day: 'numeric', year: 'numeric' }
const options: Intl.DateTimeFormatOptions = { month: 'long', day: 'numeric', year: 'numeric' }
const formattedDate = new Date(data.date).toLocaleDateString('en-IN', options)
const readingTime = generateReadingTime(content)
+1930 -1991
View File
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 523 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

+9 -1
View File
@@ -5,9 +5,17 @@
<link>https://supabase.io</link>
<description>Latest news from Supabase</description>
<language>en</language>
<lastBuildDate>Wed, 27 Oct 2021 16:00:00 GMT</lastBuildDate>
<lastBuildDate>Sat, 06 Nov 2021 16:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.io/blog/rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.io/blog/2021/11/05/supabase-beta-october-2021</guid>
<title>Supabase Beta October 2021</title>
<link>https://supabase.io/blog/2021/11/05/supabase-beta-october-2021</link>
<description>Three new Auth providers, multi-schema support, and we're gearing up for another Launch Week.</description>
<pubDate>Sat, 06 Nov 2021 16:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.io/blog/2021/10/28/supabase-series-a</guid>
<title>Supabase $30m Series A</title>