From 62d76763becfe6b9a0fc4399e3ebbd00f187ab8f Mon Sep 17 00:00:00 2001
From: FatumaA <67555014+FatumaA@users.noreply.github.com>
Date: Fri, 2 Jun 2023 16:55:14 +0300
Subject: [PATCH 01/65] chore: add flutter-auth-ui to nav and auth helpers
---
.../Navigation/NavigationMenu/NavigationMenu.constants.ts | 1 +
apps/docs/pages/guides/auth/auth-helpers.mdx | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
index 7720cbbe8b8..04137d68838 100644
--- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
+++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
@@ -472,6 +472,7 @@ export const auth = {
items: [
{ name: 'Overview', url: '/guides/auth/auth-helpers' },
{ name: 'Auth UI', url: '/guides/auth/auth-helpers/auth-ui' },
+ { name: 'Flutter Auth UI', url: '/guides/auth/auth-helpers/flutter-auth-ui' },
{
name: 'Next.js',
url: '/guides/auth/auth-helpers/nextjs',
diff --git a/apps/docs/pages/guides/auth/auth-helpers.mdx b/apps/docs/pages/guides/auth/auth-helpers.mdx
index b9573fd1609..26b798b820b 100644
--- a/apps/docs/pages/guides/auth/auth-helpers.mdx
+++ b/apps/docs/pages/guides/auth/auth-helpers.mdx
@@ -19,6 +19,14 @@ A collection of framework-specific Auth utilities for working with Supabase.
description={'A pre-built React component for authenticating users.'}
/>
+ {/* Flutter Auth UI */}
+
+
+
{/* Next.js */}
Date: Fri, 2 Jun 2023 16:55:51 +0300
Subject: [PATCH 02/65] feat: add draft docs for flutter auth ui
---
.../auth/auth-helpers/flutter-auth-ui.mdx | 121 ++++++++++++++++++
1 file changed, 121 insertions(+)
create mode 100644 apps/docs/pages/guides/auth/auth-helpers/flutter-auth-ui.mdx
diff --git a/apps/docs/pages/guides/auth/auth-helpers/flutter-auth-ui.mdx b/apps/docs/pages/guides/auth/auth-helpers/flutter-auth-ui.mdx
new file mode 100644
index 00000000000..a4e8d9ab2eb
--- /dev/null
+++ b/apps/docs/pages/guides/auth/auth-helpers/flutter-auth-ui.mdx
@@ -0,0 +1,121 @@
+import Layout from '~/layouts/DefaultGuideLayout'
+
+export const meta = {
+ id: 'flutter-auth-ui',
+ title: 'Flutter Auth UI',
+ description: 'Prebuilt, customizable Flutter widgets for authenticating users.',
+}
+
+Flutter Auth UI is a Flutter package containing pre-built widgets for authenticating users.
+It is unstyled and can match your brand and aesthetic.
+
+
+
+## Add Flutter Auth UI
+
+Add the latest version of the package [supabase-auth-ui](https://pub.dev/packages/supabase_auth_ui) to pubspec.yaml:
+
+```bash
+dependencies:
+ flutter:
+ sdk: flutter
+ supabase_auth_ui: ^0.1.0+2
+```
+
+### Initialize the Flutter Auth Package
+
+```bash
+import 'package:flutter/material.dart';
+import 'package:supabase_auth_ui/supabase_auth_ui.dart';
+
+void main() async {
+ await Supabase.initialize(
+ url: dotenv.get('SUPABASE_URL'),
+ anonKey: dotenv.get('SUPABASE_ANON_KEY'),
+ );
+
+ runApp(const MyApp());
+}
+```
+
+### Email Auth
+
+Use a SupaEmailAuth widget to create an email and password signin and signup form. It also contains a button to toggle to display a forgot password form.
+
+You can pass metadataFields to add additional fields to the form to pass as metadata to Supabase.
+
+```bash
+SupaEmailAuth(
+ redirectTo: kIsWeb ? null : 'io.mydomain.myapp://callback',
+ onSignInComplete: (response) {},
+ onSignUpComplete: (response) {},
+ metadataFields: [
+ MetaDataField(
+ prefixIcon: const Icon(Icons.person),
+ label: 'Username',
+ key: 'username',
+ validator: (val) {
+ if (val == null || val.isEmpty) {
+ return 'Please enter something';
+ }
+ return null;
+ },
+ ),
+ ],
+)
+```
+
+### Magic Link Auth
+
+Use SupaMagicAuth widget to create a magic link signIn form.
+
+```bash
+SupaMagicAuth(
+ redirectUrl: kIsWeb ? null : 'io.supabase.flutter://reset-callback/',
+ onSuccess: (Session response) {},
+ onError: (error) {},
+)
+```
+
+### Reset password
+
+Use SupaResetPassword to create a password reset form.
+
+```bash
+SupaResetPassword(
+ accessToken: supabase.auth.currentSession?.accessToken,
+ onSuccess: (UserResponse response) {},
+ onError: (error) {},
+)
+```
+
+### Phone Auth
+
+### Social Auth
+
+The package supports login with [official social providers](../../auth#providers).
+
+Use SupaSocialsAuth to create list of social login buttons.
+
+```bash
+SupaSocialsAuth(
+ socialProviders: [
+ SocialProviders.apple,
+ SocialProviders.google,
+ ],
+ colored: true,
+ redirectUrl: kIsWeb
+ ? null
+ : 'io.supabase.flutter://reset-callback/',
+ onSuccess: (Session response) {},
+ onError: (error) {},
+)
+```
+
+### Theming
+
+This package uses plain Flutter components allowing you to control the appearance of the components using your own theme.
+
+export const Page = ({ children }) =>
+
+export default Page
From eecce2eab724dca9c5329656c313a92ab7c7b80c Mon Sep 17 00:00:00 2001
From: Isaiah Hamilton <70828596+Isaiah-Hamilton@users.noreply.github.com>
Date: Mon, 5 Jun 2023 23:24:50 -0400
Subject: [PATCH 03/65] move code hike to shared config
---
apps/docs/lib/mdx/generateRefMarkdown.tsx | 2 +-
apps/docs/next.config.mjs | 2 +-
apps/docs/pages/_app.tsx | 2 +-
{apps/docs/styles => packages/config}/code-hike.scss | 2 +-
{apps/docs => packages/config}/code-hike.theme.json | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
rename {apps/docs/styles => packages/config}/code-hike.scss (99%)
rename {apps/docs => packages/config}/code-hike.theme.json (99%)
diff --git a/apps/docs/lib/mdx/generateRefMarkdown.tsx b/apps/docs/lib/mdx/generateRefMarkdown.tsx
index 790591280f7..6e71c0c2660 100644
--- a/apps/docs/lib/mdx/generateRefMarkdown.tsx
+++ b/apps/docs/lib/mdx/generateRefMarkdown.tsx
@@ -3,7 +3,7 @@ import fs from 'fs'
import { CodeHikeConfig, remarkCodeHike } from '@code-hike/mdx'
import matter from 'gray-matter'
import { serialize } from 'next-mdx-remote/serialize'
-import codeHikeTheme from '~/code-hike.theme.json' assert { type: 'json' }
+import codeHikeTheme from 'config/code-hike.theme.json' assert { type: 'json' }
import { ICommonMarkdown } from '~/components/reference/Reference.types'
async function generateRefMarkdown(sections: ICommonMarkdown[], slug: string) {
diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs
index 9ce1be8dbc8..03c64912fb4 100644
--- a/apps/docs/next.config.mjs
+++ b/apps/docs/next.config.mjs
@@ -8,7 +8,7 @@ import withTM from 'next-transpile-modules'
import withYaml from 'next-plugin-yaml'
import configureBundleAnalyzer from '@next/bundle-analyzer'
-import codeHikeTheme from './code-hike.theme.json' assert { type: 'json' }
+import codeHikeTheme from 'config/code-hike.theme.json' assert { type: 'json' }
const withBundleAnalyzer = configureBundleAnalyzer({
enabled: process.env.ANALYZE === 'true',
diff --git a/apps/docs/pages/_app.tsx b/apps/docs/pages/_app.tsx
index 2132434d66b..229131db7da 100644
--- a/apps/docs/pages/_app.tsx
+++ b/apps/docs/pages/_app.tsx
@@ -1,7 +1,7 @@
import '../../../packages/ui/build/css/themes/light.css'
import '../../../packages/ui/build/css/themes/dark.css'
-import '../styles/code-hike.scss'
+import 'config/code-hike.scss'
import '../styles/main.scss?v=1.0.0'
import '../styles/new-docs.scss'
import '../styles/prism-okaidia.scss'
diff --git a/apps/docs/styles/code-hike.scss b/packages/config/code-hike.scss
similarity index 99%
rename from apps/docs/styles/code-hike.scss
rename to packages/config/code-hike.scss
index abae362e750..7aa3b38a752 100644
--- a/apps/docs/styles/code-hike.scss
+++ b/packages/config/code-hike.scss
@@ -657,4 +657,4 @@
-webkit-text-decoration-style: dotted;
text-decoration-style: dotted;
color: inherit;
-}
+}
\ No newline at end of file
diff --git a/apps/docs/code-hike.theme.json b/packages/config/code-hike.theme.json
similarity index 99%
rename from apps/docs/code-hike.theme.json
rename to packages/config/code-hike.theme.json
index f5b66a261b0..9250ba8d0e0 100644
--- a/apps/docs/code-hike.theme.json
+++ b/packages/config/code-hike.theme.json
@@ -358,4 +358,4 @@
"list.hoverBackground": "var(--ch-25)",
"list.hoverForeground": "var(--ch-4)"
}
-}
+}
\ No newline at end of file
From a262ab93004e1940accf490777398502595575b8 Mon Sep 17 00:00:00 2001
From: Isaiah Hamilton <70828596+Isaiah-Hamilton@users.noreply.github.com>
Date: Tue, 6 Jun 2023 00:26:50 -0400
Subject: [PATCH 04/65] add code hike to www
---
apps/www/code-hike.d.ts | 6 ++++++
apps/www/lib/mdx/mdxComponents.tsx | 2 ++
apps/www/lib/mdx/mdxSerialize.ts | 16 +++++++++++++++-
apps/www/next.config.mjs | 15 ++++++++++++++-
apps/www/package.json | 1 +
apps/www/pages/_app.tsx | 3 +++
package-lock.json | 2 ++
7 files changed, 43 insertions(+), 2 deletions(-)
create mode 100644 apps/www/code-hike.d.ts
diff --git a/apps/www/code-hike.d.ts b/apps/www/code-hike.d.ts
new file mode 100644
index 00000000000..b5146eea172
--- /dev/null
+++ b/apps/www/code-hike.d.ts
@@ -0,0 +1,6 @@
+import { remarkCodeHike } from '@code-hike/mdx'
+
+declare module '@code-hike/mdx' {
+ export type CodeHikeRemarkPlugin = typeof remarkCodeHike
+ export type CodeHikeConfig = Parameters[0]
+}
\ No newline at end of file
diff --git a/apps/www/lib/mdx/mdxComponents.tsx b/apps/www/lib/mdx/mdxComponents.tsx
index 5652a9e13b3..0ff6f996a7d 100644
--- a/apps/www/lib/mdx/mdxComponents.tsx
+++ b/apps/www/lib/mdx/mdxComponents.tsx
@@ -1,6 +1,7 @@
import Image from 'next/image'
import Avatar from '~/components/Avatar'
import CodeBlock from '~/components/CodeBlock/CodeBlock'
+import { CH } from '@code-hike/mdx/components'
import ImageGrid from '~/components/ImageGrid'
import Quote from '~/components/Quote'
import Chart from '~/components/Charts/PGCharts'
@@ -28,6 +29,7 @@ const getCaptionAlign = (align?: 'left' | 'center' | 'right') => {
export default function mdxComponents(type?: 'blog' | 'lp' | undefined) {
const components = {
CodeBlock,
+ CH,
Badge,
Quote,
Avatar,
diff --git a/apps/www/lib/mdx/mdxSerialize.ts b/apps/www/lib/mdx/mdxSerialize.ts
index f5ed0ce9c9b..c959b7223a7 100644
--- a/apps/www/lib/mdx/mdxSerialize.ts
+++ b/apps/www/lib/mdx/mdxSerialize.ts
@@ -2,10 +2,24 @@ import { serialize } from 'next-mdx-remote/serialize'
import rehypeSlug from 'rehype-slug'
import remarkGfm from 'remark-gfm'
+import { CodeHikeConfig, remarkCodeHike } from '@code-hike/mdx'
+import codeHikeTheme from 'config/code-hike.theme.json' assert { type: 'json' }
+
export async function mdxSerialize(source: string) {
+ const codeHikeOptions: CodeHikeConfig = {
+ theme: codeHikeTheme,
+ lineNumbers: true,
+ showCopyButton: true,
+ skipLanguages: [],
+ autoImport: false,
+ }
+
const mdxSource: any = await serialize(source, {
+ scope: {
+ chCodeConfig: codeHikeOptions,
+ },
mdxOptions: {
- remarkPlugins: [remarkGfm],
+ remarkPlugins: [[remarkCodeHike, codeHikeOptions], remarkGfm],
rehypePlugins: [
// @ts-ignore
rehypeSlug, // add IDs to any h1-h6 tag that doesn't have one, using a slug made from its text
diff --git a/apps/www/next.config.mjs b/apps/www/next.config.mjs
index 599600fb9cd..0f5255b97bf 100644
--- a/apps/www/next.config.mjs
+++ b/apps/www/next.config.mjs
@@ -9,10 +9,23 @@ import redirects from './lib/redirects.js'
import withTM from 'next-transpile-modules'
+import { remarkCodeHike } from '@code-hike/mdx'
+import codeHikeTheme from 'config/code-hike.theme.json' assert { type: 'json' }
+
const withMDX = nextMdx({
extension: /\.mdx?$/,
options: {
- remarkPlugins: [remarkGfm],
+ remarkPlugins: [
+ [
+ remarkCodeHike,
+ {
+ theme: codeHikeTheme,
+ lineNumbers: true,
+ showCopyButton: true,
+ },
+ ],
+ remarkGfm,
+ ],
rehypePlugins: [rehypeSlug],
// This is required for `MDXProvider` component
providerImportSource: '@mdx-js/react',
diff --git a/apps/www/package.json b/apps/www/package.json
index cadcf99b872..96fcc2d8c2f 100644
--- a/apps/www/package.json
+++ b/apps/www/package.json
@@ -13,6 +13,7 @@
"postbuild": "node ./internals/generate-sitemap.mjs"
},
"dependencies": {
+ "@code-hike/mdx": "^0.8.3",
"@heroicons/react": "^1.0.6",
"@mdx-js/loader": "^2.1.5",
"@mdx-js/react": "^2.1.5",
diff --git a/apps/www/pages/_app.tsx b/apps/www/pages/_app.tsx
index a101101cbc0..61f657c3b5f 100644
--- a/apps/www/pages/_app.tsx
+++ b/apps/www/pages/_app.tsx
@@ -14,6 +14,9 @@ import { post } from '~/lib/fetchWrapper'
import { AuthProvider, ThemeProvider, useTelemetryProps } from 'common'
import Head from 'next/head'
+import "@code-hike/mdx/dist/index.css"
+import "config/code-hike.scss"
+
export default function MyApp({ Component, pageProps }: AppProps) {
const router = useRouter()
const telemetryProps = useTelemetryProps()
diff --git a/package-lock.json b/package-lock.json
index 60fdf7ee6f0..d3d2e4739c4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -722,6 +722,7 @@
"version": "0.0.3",
"license": "MIT",
"dependencies": {
+ "@code-hike/mdx": "^0.8.3",
"@heroicons/react": "^1.0.6",
"@mdx-js/loader": "^2.1.5",
"@mdx-js/react": "^2.1.5",
@@ -82775,6 +82776,7 @@
"www": {
"version": "file:apps/www",
"requires": {
+ "@code-hike/mdx": "^0.8.3",
"@heroicons/react": "^1.0.6",
"@mdx-js/loader": "^2.1.5",
"@mdx-js/react": "^2.1.5",
From 549eec4967f760e2b71bb32753d1e3f6a24e12c5 Mon Sep 17 00:00:00 2001
From: Isaiah Hamilton <70828596+Isaiah-Hamilton@users.noreply.github.com>
Date: Tue, 6 Jun 2023 01:03:57 -0400
Subject: [PATCH 05/65] update code-hike.theme.json path
---
apps/docs/pages/guides/ai/python/[slug].tsx | 2 +-
apps/docs/public/sitemap.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/docs/pages/guides/ai/python/[slug].tsx b/apps/docs/pages/guides/ai/python/[slug].tsx
index b52312424d7..fcbd53160c0 100644
--- a/apps/docs/pages/guides/ai/python/[slug].tsx
+++ b/apps/docs/pages/guides/ai/python/[slug].tsx
@@ -5,7 +5,7 @@ import { serialize } from 'next-mdx-remote/serialize'
import { relative } from 'path'
import rehypeSlug from 'rehype-slug'
import remarkGfm from 'remark-gfm'
-import codeHikeTheme from '~/code-hike.theme.json' assert { type: 'json' }
+import codeHikeTheme from 'config/code-hike.theme.json' assert { type: 'json' }
import components from '~/components'
import Layout from '~/layouts/DefaultGuideLayout'
import { UrlTransformFunction, linkTransform } from '~/lib/mdx/plugins/rehypeLinkTransform'
diff --git a/apps/docs/public/sitemap.xml b/apps/docs/public/sitemap.xml
index e3d783ddd46..f9adcec280a 100644
--- a/apps/docs/public/sitemap.xml
+++ b/apps/docs/public/sitemap.xml
@@ -4269,4 +4269,4 @@
weekly
0.5
-
+
\ No newline at end of file
From 36ea41d33858883eaf7f3734cef3cfa25838e1b1 Mon Sep 17 00:00:00 2001
From: Isaiah Hamilton <70828596+Isaiah-Hamilton@users.noreply.github.com>
Date: Tue, 6 Jun 2023 01:08:09 -0400
Subject: [PATCH 06/65] run prettier
---
apps/www/code-hike.d.ts | 2 +-
apps/www/pages/_app.tsx | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/apps/www/code-hike.d.ts b/apps/www/code-hike.d.ts
index b5146eea172..5d2ca4d54d0 100644
--- a/apps/www/code-hike.d.ts
+++ b/apps/www/code-hike.d.ts
@@ -3,4 +3,4 @@ import { remarkCodeHike } from '@code-hike/mdx'
declare module '@code-hike/mdx' {
export type CodeHikeRemarkPlugin = typeof remarkCodeHike
export type CodeHikeConfig = Parameters[0]
-}
\ No newline at end of file
+}
diff --git a/apps/www/pages/_app.tsx b/apps/www/pages/_app.tsx
index 61f657c3b5f..658cb055b4e 100644
--- a/apps/www/pages/_app.tsx
+++ b/apps/www/pages/_app.tsx
@@ -14,8 +14,8 @@ import { post } from '~/lib/fetchWrapper'
import { AuthProvider, ThemeProvider, useTelemetryProps } from 'common'
import Head from 'next/head'
-import "@code-hike/mdx/dist/index.css"
-import "config/code-hike.scss"
+import '@code-hike/mdx/dist/index.css'
+import 'config/code-hike.scss'
export default function MyApp({ Component, pageProps }: AppProps) {
const router = useRouter()
From 25ad4081b6e85fd9c6a9a8bf0348962f7718784e Mon Sep 17 00:00:00 2001
From: Estee Tey
Date: Tue, 6 Jun 2023 20:05:49 +0800
Subject: [PATCH 07/65] fix prettier formatting
---
i18n/README.ar.md | 2 +-
i18n/README.da.md | 8 ++++----
i18n/README.de.md | 4 ++--
i18n/README.fr.md | 6 +++---
i18n/README.id.md | 16 ++++++++--------
i18n/README.it.md | 2 +-
i18n/README.lt.md | 4 ++--
i18n/README.nb.md | 4 ++--
i18n/README.nl.md | 2 +-
i18n/README.pl.md | 2 +-
i18n/README.pt-PT.md | 4 ++--
i18n/README.pt-br.md | 8 ++++----
i18n/README.sl.md | 4 ++--
i18n/README.sv.md | 16 ++++++++--------
i18n/README.tr.md | 2 +-
i18n/README.uk.md | 12 ++++++------
i18n/README.zh-tw.md | 22 +++++++++++-----------
17 files changed, 59 insertions(+), 59 deletions(-)
diff --git a/i18n/README.ar.md b/i18n/README.ar.md
index eb708f5d4b5..c527ed5d2c1 100644
--- a/i18n/README.ar.md
+++ b/i18n/README.ar.md
@@ -35,7 +35,7 @@
## الحالة
- [x] طور الألفا: نحن نختبر Supabase مع مجموعة مغلقة من العملاء
-- [x] طور الألفا العام: يمكن لأي شخص الاشتراك في [app.supabase.com] (https://app.supabase.com). لكن تحلى بالصبر ، فهناك بعض العقد الصغيرة.
+- [x] طور الألفا العام: يمكن لأي شخص الاشتراك في [app.supabase.com](https://app.supabase.com). لكن تحلى بالصبر ، فهناك بعض العقد الصغيرة.
- [x] طور البيتا العام: مستقر بدرجة كافية لمعظم حالات الاستخدام غير المتعلقة بالمؤسسات
- [ ] الطور العام: جاهز للإنتاج
diff --git a/i18n/README.da.md b/i18n/README.da.md
index 34c6a5ff495..96d1bb41c49 100644
--- a/i18n/README.da.md
+++ b/i18n/README.da.md
@@ -7,7 +7,7 @@
# Supabase
-[Supabase] (https://supabase.com) er et Open Source Firebase-alternativ. Vi opbygger Firebase-funktionerne ved hjælp af open source-værktøjer i virksomhedskvalitet.
+[Supabase](https://supabase.com) er et Open Source Firebase-alternativ. Vi opbygger Firebase-funktionerne ved hjælp af open source-værktøjer i virksomhedskvalitet.
- [x] Hosted Postgres Database. [Docs](https://supabase.com/docs/guides/database)
- [x] Autentifikation og autorisering. [Docs](https://supabase.com/docs/guides/auth)
@@ -39,7 +39,7 @@ For at se, hvordan man bidrager, besøg [Getting Started](./DEVELOPERS.md)
## Status
- [x] Alpha: Vi tester Supabase med et lukket sæt af kunder
-- [x] Offentlig Alpha: Alle kan tilmelde sig på [app.supabase.com] (https://app.supabase.com). Men vær forsigtig med os, der er et par knuder
+- [x] Offentlig Alpha: Alle kan tilmelde sig på [app.supabase.com](https://app.supabase.com). Men vær forsigtig med os, der er et par knuder
- [x] Public Beta: Stabil nok til de fleste ikke-virksomhedsrelaterede brugssager
- [ ] Public: Public: Generel tilgængelighed [[status](https://supabase.com/docs/guides/getting-started/features#feature-status)]
@@ -55,14 +55,14 @@ Supabase er en kombination af open source-værktøjer. Vi opbygger funktionerne
**Arkitektur**
-Supabase er en [hosted platform] (https://app.supabase.com). Du kan tilmelde dig og begynde at bruge Supabase uden at installere noget.
+Supabase er en [hosted platform](https://app.supabase.com). Du kan tilmelde dig og begynde at bruge Supabase uden at installere noget.
Du kan også [selv hoste](https://supabase.com/docs/guides/hosting/overview) og [udvikle lokalt](https://supabase.com/docs/guides/local-development).

- [PostgreSQL](https://www.postgresql.org/) er et objektrelationelt databasesystem med over 30 års aktiv udvikling, der har givet det et godt ry for pålidelighed, robusthed og ydeevne.
- [Realtime](https://github.com/supabase/realtime) er en Elixir-server, der giver dig mulighed for at lytte til PostgreSQL-indsættelser, -opdateringer og -slettelser ved hjælp af websockets. Realtime spørger Postgres' indbyggede replikationsfunktionalitet efter databaseændringer, konverterer ændringer til JSON og sender derefter JSON'en over websockets til autoriserede klienter.
-- [PostgREST] (http://postgrest.org/) er en webserver, der forvandler din PostgreSQL-database direkte til et RESTful API
+- [PostgREST](http://postgrest.org/) er en webserver, der forvandler din PostgreSQL-database direkte til et RESTful API
- [pg_graphql](http://github.com/supabase/pg_graphql/) er en PostgreSQL-udvidelse, der eksponerer et GraphQL API
- [Storage](https://github.com/supabase/storage-api) giver en RESTful grænseflade til administration af filer gemt i S3, der bruger Postgres til at administrere tilladelser.
- [postgres-meta](https://github.com/supabase/postgres-meta) er et RESTful API til administration af din Postgres, så du kan hente tabeller, tilføje roller og køre forespørgsler osv.
diff --git a/i18n/README.de.md b/i18n/README.de.md
index 7160931117d..59b45286a59 100644
--- a/i18n/README.de.md
+++ b/i18n/README.de.md
@@ -55,8 +55,8 @@ Supabase ist eine Kombination aus Open-Source-Tools. Wir entwickeln die Funktion
**Architektur**
-Supabase ist eine [gehostete Plattform] (https://app.supabase.com). Sie können sich anmelden und Supabase verwenden, ohne etwas zu installieren.
-Sie können auch [selbst hosten] (https://supabase.com/docs/guides/hosting/overview) und [lokal entwickeln] (https://supabase.com/docs/guides/local-development).
+Supabase ist eine [gehostete Plattform](https://app.supabase.com). Sie können sich anmelden und Supabase verwenden, ohne etwas zu installieren.
+Sie können auch [selbst hosten](https://supabase.com/docs/guides/hosting/overview) und [lokal entwickeln](https://supabase.com/docs/guides/local-development).

diff --git a/i18n/README.fr.md b/i18n/README.fr.md
index 2d3356c4f72..97f95c2a9c8 100644
--- a/i18n/README.fr.md
+++ b/i18n/README.fr.md
@@ -39,7 +39,7 @@ Pour savoir comment contribuer, visitez [Getting Started](./DEVELOPERS.md)
## Statut
- [x] Alpha : Nous testons Supabase avec un groupe fermé de clients
-- [x] Alpha publique : Tout le monde peut s'inscrire sur [app.supabase.com] (https://app.supabase.com). Mais allez-y doucement, il y a quelques problèmes
+- [x] Alpha publique : Tout le monde peut s'inscrire sur [app.supabase.com](https://app.supabase.com). Mais allez-y doucement, il y a quelques problèmes
- [x] Bêta publique : Suffisamment stable pour la plupart des cas d'utilisation hors entreprise
- [ ] Public : Disponibilité générale [[status](https://supabase.com/docs/guides/getting-started/features#feature-status)]
@@ -55,14 +55,14 @@ Supabase est une combinaison d'outils open source. Nous construisons les fonctio
**Architecture**
-Supabase est une [plateforme hébergée] (https://app.supabase.com). Vous pouvez vous inscrire et commencer à utiliser Supabase sans rien installer.
+Supabase est une [plateforme hébergée](https://app.supabase.com). Vous pouvez vous inscrire et commencer à utiliser Supabase sans rien installer.
Vous pouvez également [auto-héberger](https://supabase.com/docs/guides/hosting/overview) et [développer localement](https://supabase.com/docs/guides/local-development).

- [PostgreSQL](https://www.postgresql.org/) est un système de base de données objet-relationnel avec plus de 30 ans de développement actif qui lui a valu une solide réputation de fiabilité, de robustesse et de performance.
- [Realtime](https://github.com/supabase/realtime) est un serveur Elixir qui vous permet d'écouter les insertions, les mises à jour et les suppressions de PostgreSQL en utilisant des websockets. Realtime interroge la fonctionnalité de réplication intégrée de Postgres pour les changements de base de données, convertit les changements en JSON, puis diffuse le JSON via des websockets aux clients autorisés.
-- [PostgREST] (http://postgrest.org/) est un serveur web qui transforme votre base de données PostgreSQL en une API RESTful
+- [PostgREST](http://postgrest.org/) est un serveur web qui transforme votre base de données PostgreSQL en une API RESTful
- [pg_graphql](http://github.com/supabase/pg_graphql/) est une extension de PostgreSQL qui expose une API GraphQL
- [Storage](https://github.com/supabase/storage-api) fournit une interface RESTful pour gérer les fichiers stockés dans S3, en utilisant Postgres pour gérer les permissions.
- [postgres-meta](https://github.com/supabase/postgres-meta) est une API RESTful pour gérer votre Postgres, vous permettant de récupérer des tables, d'ajouter des rôles, et d'exécuter des requêtes, etc.
diff --git a/i18n/README.id.md b/i18n/README.id.md
index 984154f2d82..4a3e5036797 100644
--- a/i18n/README.id.md
+++ b/i18n/README.id.md
@@ -7,7 +7,7 @@
# Supabase
-[Supabase] (https://supabase.com) adalah alternatif Firebase open source. Kami membangun fitur-fitur Firebase menggunakan alat bantu open source tingkat perusahaan.
+[Supabase](https://supabase.com) adalah alternatif Firebase open source. Kami membangun fitur-fitur Firebase menggunakan alat bantu open source tingkat perusahaan.
- [x] Basis Data Postgres yang dihosting. [Dokumen](https://supabase.com/docs/guides/database)
- [x] Otentikasi dan Otorisasi. [Dokumen](https://supabase.com/docs/guides/auth)
@@ -55,19 +55,19 @@ Supabase adalah kombinasi dari alat sumber terbuka. Kami membangun fitur-fitur F
**Arsitektur**
-Supabase adalah [platform yang di-host] (https://app.supabase.com). Anda bisa mendaftar dan mulai menggunakan Supabase tanpa menginstal apa pun.
+Supabase adalah [platform yang di-host](https://app.supabase.com). Anda bisa mendaftar dan mulai menggunakan Supabase tanpa menginstal apa pun.
Anda juga bisa [menghosting sendiri](https://supabase.com/docs/guides/hosting/overview) dan [mengembangkan secara lokal](https://supabase.com/docs/guides/local-development).

- [PostgreSQL](https://www.postgresql.org/) adalah sistem basis data relasional objek dengan lebih dari 30 tahun pengembangan aktif yang telah membuatnya memiliki reputasi yang kuat dalam hal keandalan, ketangguhan fitur, dan kinerja.
-- [Realtime] (https://github.com/supabase/realtime) adalah server Elixir yang memungkinkan Anda untuk mendengarkan penyisipan, pembaruan, dan penghapusan PostgreSQL menggunakan websocket. Realtime melakukan polling terhadap fungsionalitas replikasi bawaan Postgres untuk perubahan database, mengkonversi perubahan ke JSON, kemudian menyiarkan JSON melalui websockets ke klien yang berwenang.
-- [PostgREST] (http://postgrest.org/) adalah server web yang mengubah basis data PostgreSQL Anda secara langsung menjadi RESTful API
-- [pg_graphql] (http://github.com/supabase/pg_graphql/) ekstensi PostgreSQL yang mengekspos API GraphQL
+- [Realtime](https://github.com/supabase/realtime) adalah server Elixir yang memungkinkan Anda untuk mendengarkan penyisipan, pembaruan, dan penghapusan PostgreSQL menggunakan websocket. Realtime melakukan polling terhadap fungsionalitas replikasi bawaan Postgres untuk perubahan database, mengkonversi perubahan ke JSON, kemudian menyiarkan JSON melalui websockets ke klien yang berwenang.
+- [PostgREST](http://postgrest.org/) adalah server web yang mengubah basis data PostgreSQL Anda secara langsung menjadi RESTful API
+- [pg_graphql](http://github.com/supabase/pg_graphql/) ekstensi PostgreSQL yang mengekspos API GraphQL
- [Storage](https://github.com/supabase/storage-api) menyediakan antarmuka RESTful untuk mengelola File yang disimpan di S3, menggunakan Postgres untuk mengelola izin.
- [postgres-meta](https://github.com/supabase/postgres-meta) adalah API RESTful untuk mengelola Postgres Anda, yang memungkinkan Anda untuk mengambil tabel, menambahkan peran, dan menjalankan kueri, dll.
-- [GoTrue] (https://github.com/netlify/gotrue) adalah API berbasis SWT untuk mengelola pengguna dan menerbitkan token SWT.
-- [Kong] (https://github.com/Kong/kong) adalah gateway API asli cloud.
+- [GoTrue](https://github.com/netlify/gotrue) adalah API berbasis SWT untuk mengelola pengguna dan menerbitkan token SWT.
+- [Kong](https://github.com/Kong/kong) adalah gateway API asli cloud.
#### Perpustakaan klien
@@ -239,7 +239,7 @@ Pendekatan kami untuk pustaka klien bersifat modular. Setiap sub-pustaka adalah
- [Bahasa Polandia / Polski](/i18n/README.pl.md)
- [Bahasa Portugis / Português](/i18n/README.pt.md)
- [Portugis (Brasil) / Português Brasileiro](/i18n/README.pt-br.md)
-- [Bahasa Rumania / Rumania] (/i18n/README.ro.md)
+- [Bahasa Rumania / Rumania](/i18n/README.ro.md)
- [Bahasa Rusia / Pусский](/i18n/README.ru.md)
- [Bahasa Serbia / Srpski](/i18n/README.sr.md)
- [Sinhala / සිංහල](/i18n/README.si.md)
diff --git a/i18n/README.it.md b/i18n/README.it.md
index d35c45d9b19..0c0972fdeab 100644
--- a/i18n/README.it.md
+++ b/i18n/README.it.md
@@ -55,7 +55,7 @@ Supabase è una combinazione di strumenti open source. Stiamo costruendo le funz
**Architettura**
-Supabase è una [piattaforma ospitata] (https://app.supabase.com). È possibile registrarsi e iniziare a usare Supabase senza installare nulla.
+Supabase è una [piattaforma ospitata](https://app.supabase.com). È possibile registrarsi e iniziare a usare Supabase senza installare nulla.
È anche possibile [auto-ospitare](https://supabase.com/docs/guides/hosting/overview) e [sviluppare localmente](https://supabase.com/docs/guides/local-development).

diff --git a/i18n/README.lt.md b/i18n/README.lt.md
index ecf7c71d5e3..194c0630c76 100644
--- a/i18n/README.lt.md
+++ b/i18n/README.lt.md
@@ -32,14 +32,14 @@ Norėdami sužinoti, kaip prisidėti, apsilankykite [Getting Started](./DEVELOPE
## Bendruomenė ir palaikymas
- [Bendrijos forumas](https://github.com/supabase/supabase/discussions). Geriausiai tinka: pagalbai kuriant, diskusijoms apie geriausią duomenų bazių praktiką.
-- [GitHub Issues] (https://github.com/supabase/supabase/issues). Geriausia: klaidos ir klaidos, su kuriomis susiduriate naudodami "Supabase".
+- [GitHub Issues](https://github.com/supabase/supabase/issues). Geriausia: klaidos ir klaidos, su kuriomis susiduriate naudodami "Supabase".
- [Pagalba el. paštu](https://supabase.com/docs/support#business-support). Geriausiai tinka: problemoms, susijusioms su jūsų duomenų baze ar infrastruktūra, spręsti.
- [Discord](https://discord.supabase.com). Geriausiai tinka: dalytis savo programomis ir bendrauti su bendruomene.
## Statusas
- [x] Alfa: Bandome "Supabase" su uždaru klientų rinkiniu
-- [x] Viešoji Alfa versija: [app.supabase.com] (https://app.supabase.com). Tačiau neskubėkite su mumis, yra keletas trūkumų
+- [x] Viešoji Alfa versija: [app.supabase.com](https://app.supabase.com). Tačiau neskubėkite su mumis, yra keletas trūkumų
- [x] Viešoji beta versija: Pakankamai stabili daugeliui ne įmonių naudojimo atvejų
- [ ] Vieša: Bendras prieinamumas [[statusas](https://supabase.com/docs/guides/getting-started/features#feature-status)]
diff --git a/i18n/README.nb.md b/i18n/README.nb.md
index 4fcd638925c..8e2ad57ea13 100644
--- a/i18n/README.nb.md
+++ b/i18n/README.nb.md
@@ -55,14 +55,14 @@ Supabase er en kombinasjon av verktøy med åpen kildekode. Vi bygger funksjonen
\*\*Arkitektur
-Supabase er en [vertsplattform] (https://app.supabase.com). Du kan registrere deg og begynne å bruke Supabase uten å installere noe.
+Supabase er en [vertsplattform](https://app.supabase.com). Du kan registrere deg og begynne å bruke Supabase uten å installere noe.
Du kan også [selv være vert](https://supabase.com/docs/guides/hosting/overview) og [utvikle lokalt](https://supabase.com/docs/guides/local-development).
arkitektur](https://github.com/supabase/supabase/blob/master/apps/docs/public/img/supabase-architecture.png)
- [PostgreSQL](https://www.postgresql.org/) er et objektrelasjonsdatabasesystem med over 30 års aktiv utvikling som har gitt det et sterkt rykte for pålitelighet, robusthet og ytelse.
- [Realtime](https://github.com/supabase/realtime) er en Elixir-server som lar deg lytte til PostgreSQL-innlegg, oppdateringer og slettinger ved hjelp av websockets. Realtime polls Postgres' innebygde replikeringsfunksjonalitet for databaseendringer, konverterer endringer til JSON og sender deretter JSON over websockets til autoriserte klienter.
-- [PostgREST] (http://postgrest.org/) er en webserver som gjør PostgreSQL-databasen din direkte om til et RESTful API
+- [PostgREST](http://postgrest.org/) er en webserver som gjør PostgreSQL-databasen din direkte om til et RESTful API
- [pg_graphql](http://github.com/supabase/pg_graphql/) en PostgreSQL-utvidelse som eksponerer et GraphQL API
- [Storage](https://github.com/supabase/storage-api) gir et RESTful-grensesnitt for å administrere filer som er lagret i S3, ved hjelp av Postgres for å administrere tillatelser.
- [postgres-meta](https://github.com/supabase/postgres-meta) er et RESTful API for å administrere Postgres, slik at du kan hente tabeller, legge til roller og kjøre spørringer osv.
diff --git a/i18n/README.nl.md b/i18n/README.nl.md
index a155d5fc91b..ea486a4145f 100644
--- a/i18n/README.nl.md
+++ b/i18n/README.nl.md
@@ -55,7 +55,7 @@ Supabase is een combinatie van open source tools. We bouwen de functies van Fire
**Architectuur**
-Supabase is een [gehost platform] (https://app.supabase.com). U kunt zich aanmelden en Supabase gebruiken zonder iets te installeren.
+Supabase is een [gehost platform](https://app.supabase.com). U kunt zich aanmelden en Supabase gebruiken zonder iets te installeren.
U kunt ook [zelf hosten](https://supabase.com/docs/guides/hosting/overview) en [lokaal ontwikkelen](https://supabase.com/docs/guides/local-development).
architectuur](https://github.com/supabase/supabase/blob/master/apps/docs/public/img/supabase-architecture.png)
diff --git a/i18n/README.pl.md b/i18n/README.pl.md
index e3536689238..948a1552651 100644
--- a/i18n/README.pl.md
+++ b/i18n/README.pl.md
@@ -55,7 +55,7 @@ Supabase to połączenie narzędzi open source. Tworzymy funkcje Firebase przy u
**Architektura**
-Supabase jest [platformą hostowaną] (https://app.supabase.com). Możesz zarejestrować się i zacząć korzystać z Supabase bez instalowania czegokolwiek.
+Supabase jest [platformą hostowaną](https://app.supabase.com). Możesz zarejestrować się i zacząć korzystać z Supabase bez instalowania czegokolwiek.
Możesz także [self-host](https://supabase.com/docs/guides/hosting/overview) i [rozwijać lokalnie](https://supabase.com/docs/guides/local-development).

diff --git a/i18n/README.pt-PT.md b/i18n/README.pt-PT.md
index 744c3788744..bc8645f923d 100644
--- a/i18n/README.pt-PT.md
+++ b/i18n/README.pt-PT.md
@@ -39,7 +39,7 @@ Para ver como contribuir, visite [Getting Started](./DEVELOPERS.md)
## Status
- [x] Alfa: Estamos a testar o Supabase com um conjunto fechado de clientes
-- [x] Alfa Público: Qualquer pessoa pode inscrever-se em [app.supabase.com] (https://app.supabase.com). Mas vá com calma, ainda há alguns problemas
+- [x] Alfa Público: Qualquer pessoa pode inscrever-se em [app.supabase.com](https://app.supabase.com). Mas vá com calma, ainda há alguns problemas
- [x] Beta Público: Estável o suficiente para a maioria dos casos de uso não empresarial
- [ ] Público: Disponibilidade geral [[status](https://supabase.com/docs/guides/getting-started/features#feature-status)]
@@ -55,7 +55,7 @@ O Supabase é uma combinação de ferramentas de código aberto. Estamos a const
**Arquitectura**
-Supabase é uma [plataforma alojada] (https://app.supabase.com). Pode registar-se e começar a usar o Supabase sem instalar nada.
+Supabase é uma [plataforma alojada](https://app.supabase.com). Pode registar-se e começar a usar o Supabase sem instalar nada.
Pode também [auto-hospedar](https://supabase.com/docs/guides/hosting/overview) e [desenvolver localmente](https://supabase.com/docs/guides/local-development).

diff --git a/i18n/README.pt-br.md b/i18n/README.pt-br.md
index 78726c4cd7b..0c5ee8cad7b 100644
--- a/i18n/README.pt-br.md
+++ b/i18n/README.pt-br.md
@@ -7,7 +7,7 @@
# Supabase
-[Supabase] (https://supabase.com) é uma alternativa de código aberto ao Firebase. Estamos desenvolvendo os recursos do Firebase usando ferramentas de código aberto de nível empresarial.
+[Supabase](https://supabase.com) é uma alternativa de código aberto ao Firebase. Estamos desenvolvendo os recursos do Firebase usando ferramentas de código aberto de nível empresarial.
- [x] Banco de dados Postgres hospedado. [Docs](https://supabase.com/docs/guides/database)
- [x] Autenticação e autorização. [Docs](https://supabase.com/docs/guides/auth)
@@ -39,7 +39,7 @@ Para ver como contribuir, visite [Getting Started](./DEVELOPERS.md)
## Status
- [x] Alfa: Estamos testando o Supabase com um conjunto fechado de clientes
-- [x] Alfa público: Qualquer pessoa pode se registrar em [app.supabase.com] (https://app.supabase.com). Mas vá com calma, pois há alguns problemas
+- [x] Alfa público: Qualquer pessoa pode se registrar em [app.supabase.com](https://app.supabase.com). Mas vá com calma, pois há alguns problemas
- [x] Beta público: Estável o suficiente para a maioria dos casos de uso não corporativos
- [ ] Público: Disponibilidade geral [[status](https://supabase.com/docs/guides/getting-started/features#feature-status)]
@@ -55,8 +55,8 @@ Supabase é uma combinação de ferramentas de código aberto. Estamos desenvolv
**Arquitetura**
-Supabase é uma [plataforma hospedada] (https://app.supabase.com). Você pode se registrar e começar a usar o Supabase sem instalar nada.
-Você também pode [auto-hospedar] (https://supabase.com/docs/guides/hosting/overview) e [desenvolver localmente] (https://supabase.com/docs/guides/local-development).
+Supabase é uma [plataforma hospedada](https://app.supabase.com). Você pode se registrar e começar a usar o Supabase sem instalar nada.
+Você também pode [auto-hospedar](https://supabase.com/docs/guides/hosting/overview) e [desenvolver localmente](https://supabase.com/docs/guides/local-development).

diff --git a/i18n/README.sl.md b/i18n/README.sl.md
index 44e59308c6f..3554d1bfddb 100644
--- a/i18n/README.sl.md
+++ b/i18n/README.sl.md
@@ -32,14 +32,14 @@ Za celotno dokumentacijo obiščite [supabase.com/docs](https://supabase.com/doc
## Skupnost in podpora
- [Forum skupnosti](https://github.com/supabase/supabase/discussions). Najprimernejši za: pomoč pri gradnji, razpravo o najboljših praksah zbirke podatkov.
-- [GitHub Issues] (https://github.com/supabase/supabase/issues). Najprimernejši za: hrošče in napake, na katere naletite pri uporabi zbirke Supabase.
+- [GitHub Issues](https://github.com/supabase/supabase/issues). Najprimernejši za: hrošče in napake, na katere naletite pri uporabi zbirke Supabase.
- [E-poštna podpora](https://supabase.com/docs/support#business-support). Najboljše za: težave s podatkovno zbirko ali infrastrukturo.
- [Discord](https://discord.supabase.com). Najboljši za: izmenjavo aplikacij in druženje s skupnostjo.
## Status
- [x] Alfa: Testiramo bazo Supabase z zaprtim naborom strank
-- [x] Javna alfa: [app.supabase.com] (https://app.supabase.com). Vendar nas ne obremenjujte, saj je še nekaj pomanjkljivosti
+- [x] Javna alfa: [app.supabase.com](https://app.supabase.com). Vendar nas ne obremenjujte, saj je še nekaj pomanjkljivosti
- [x] Javna beta različica: Dovolj stabilna za večino primerov uporabe, ki niso povezani s podjetji
- [ ] Javna: Splošna razpoložljivost [[status](https://supabase.com/docs/guides/getting-started/features#feature-status)]
diff --git a/i18n/README.sv.md b/i18n/README.sv.md
index b8c543833f0..2dcebf91d27 100644
--- a/i18n/README.sv.md
+++ b/i18n/README.sv.md
@@ -7,16 +7,16 @@
# Supabase
-[Supabase] (https://supabase.com) är ett alternativ till Firebase med öppen källkod. Vi bygger upp Firebase-funktionerna med hjälp av verktyg för öppen källkod i företagsklass.
+[Supabase](https://supabase.com) är ett alternativ till Firebase med öppen källkod. Vi bygger upp Firebase-funktionerna med hjälp av verktyg för öppen källkod i företagsklass.
- [x] Hosted Postgres-databas. [Docs](https://supabase.com/docs/guides/database)
- [x] Autentisering och auktorisering. [Docs](https://supabase.com/docs/guides/auth)
- [x] Automatiskt genererade API:er.
- [x] REST. [Docs](https://supabase.com/docs/guides/database/api#rest-api)
- [x] GraphQL. [Docs](https://supabase.com/docs/guides/database/api#graphql-api)
- - [x] Prenumerationer i realtid. [Dokument] (https://supabase.com/docs/guides/database/api#realtime-api)
+ - [x] Prenumerationer i realtid. [Dokument](https://supabase.com/docs/guides/database/api#realtime-api)
- [x] Funktioner.
- - [x] Databasfunktioner. [Dokument] (https://supabase.com/docs/guides/database/functions)
+ - [x] Databasfunktioner. [Dokument](https://supabase.com/docs/guides/database/functions)
- [x] Edge-funktioner [Docs](https://supabase.com/docs/guides/functions)
- [x] Lagring av filer. [Docs](https://supabase.com/docs/guides/storage)
- [x] Kontrollpanel
@@ -25,13 +25,13 @@
## Dokumentation
-Fullständig dokumentation finns på [supabase.com/docs] (https://supabase.com/docs)
+Fullständig dokumentation finns på [supabase.com/docs](https://supabase.com/docs)
För att se hur man bidrar, besök [Getting Started](./DEVELOPERS.md)
## Gemenskap och stöd
-- [Community Forum] (https://github.com/supabase/supabase/discussions). Bäst för: hjälp med att bygga, diskussion om bästa praxis för databaser.
+- [Community Forum](https://github.com/supabase/supabase/discussions). Bäst för: hjälp med att bygga, diskussion om bästa praxis för databaser.
- [GitHub Issues](https://github.com/supabase/supabase/issues). Bäst för: buggar och fel som du stöter på när du använder Supabase.
- [E-postsupport](https://supabase.com/docs/support#business-support). Bäst för: problem med din databas eller infrastruktur.
- [Discord](https://discord.supabase.com). Bäst för: att dela med dig av dina applikationer och umgås med gemenskapen.
@@ -39,7 +39,7 @@ För att se hur man bidrar, besök [Getting Started](./DEVELOPERS.md)
## Status
- [Alpha: Vi testar Supabase med en sluten grupp av kunder
-- [x] Public Alpha: Vem som helst kan registrera sig på [app.supabase.com] (https://app.supabase.com). Men var försiktig med oss, det finns några problem
+- [x] Public Alpha: Vem som helst kan registrera sig på [app.supabase.com](https://app.supabase.com). Men var försiktig med oss, det finns några problem
- [x] Public Beta: Stabil nog för de flesta användningsområden som inte är företag
- [ ] Public: Allmän tillgänglighet [[status](https://supabase.com/docs/guides/getting-started/features#feature-status)]]
@@ -55,14 +55,14 @@ Supabase är en kombination av verktyg med öppen källkod. Vi bygger funktioner
**Arkitektur**
-Supabase är en [värdplattform] (https://app.supabase.com). Du kan registrera dig och börja använda Supabase utan att installera något.
+Supabase är en [värdplattform](https://app.supabase.com). Du kan registrera dig och börja använda Supabase utan att installera något.
Du kan också [självhosta](https://supabase.com/docs/guides/hosting/overview) och [utveckla lokalt](https://supabase.com/docs/guides/local-development).

- [PostgreSQL](https://www.postgresql.org/) är ett objektrelationellt databassystem med över 30 års aktiv utveckling som har gett det ett gott rykte när det gäller tillförlitlighet, robusthet och prestanda.
- [Realtime](https://github.com/supabase/realtime) är en Elixir-server som låter dig lyssna på PostgreSQL-insättningar, uppdateringar och borttagningar med hjälp av websockets. Realtime söker Postgres inbyggda replikeringsfunktionalitet efter databasändringar, omvandlar ändringarna till JSON och sänder sedan JSON via websockets till auktoriserade klienter.
-- [PostgREST] (http://postgrest.org/) är en webbserver som omvandlar din PostgreSQL-databas direkt till ett RESTful API
+- [PostgREST](http://postgrest.org/) är en webbserver som omvandlar din PostgreSQL-databas direkt till ett RESTful API
- [pg_graphql](http://github.com/supabase/pg_graphql/) är ett PostgreSQL-tillägg som exponerar ett GraphQL API
- [Storage](https://github.com/supabase/storage-api) tillhandahåller ett RESTful-gränssnitt för hantering av filer som lagras i S3, där Postgres används för att hantera behörigheter.
- [postgres-meta](https://github.com/supabase/postgres-meta) är ett RESTful API för hantering av Postgres, så att du kan hämta tabeller, lägga till roller, köra frågor osv.
diff --git a/i18n/README.tr.md b/i18n/README.tr.md
index d167ec84a14..3689b988b90 100644
--- a/i18n/README.tr.md
+++ b/i18n/README.tr.md
@@ -7,7 +7,7 @@
# Supabase
-[Supabase] (https://supabase.com) açık kaynaklı bir Firebase alternatifidir. Kurumsal düzeyde açık kaynak araçları kullanarak Firebase'in özelliklerini geliştiriyoruz.
+[Supabase](https://supabase.com) açık kaynaklı bir Firebase alternatifidir. Kurumsal düzeyde açık kaynak araçları kullanarak Firebase'in özelliklerini geliştiriyoruz.
- [x] Barındırılan Postgres Veritabanı. [Dokümanlar](https://supabase.com/docs/guides/database)
- [x] Kimlik Doğrulama ve Yetkilendirme. [Dokümanlar](https://supabase.com/docs/guides/auth)
diff --git a/i18n/README.uk.md b/i18n/README.uk.md
index efd6fc57287..b0b77f34b65 100644
--- a/i18n/README.uk.md
+++ b/i18n/README.uk.md
@@ -32,14 +32,14 @@
## Спільнота та підтримка
- [Форум спільноти](https://github.com/supabase/supabase/discussions). Найкраще для: допомоги у створенні, обговорення найкращих практик роботи з базами даних.
-- [Проблеми GitHub] (https://github.com/supabase/supabase/issues). Найкраще для: помилок і помилок, з якими ви зіткнулися при використанні Supabase.
-- [Підтримка електронною поштою] (https://supabase.com/docs/support#business-support). Найкраще для: проблем з вашою базою даних або інфраструктурою.
-- [Discord] (https://discord.supabase.com). Найкраще для: обміну вашими додатками та спілкування зі спільнотою.
+- [Проблеми GitHub](https://github.com/supabase/supabase/issues). Найкраще для: помилок і помилок, з якими ви зіткнулися при використанні Supabase.
+- [Підтримка електронною поштою](https://supabase.com/docs/support#business-support). Найкраще для: проблем з вашою базою даних або інфраструктурою.
+- [Discord](https://discord.supabase.com). Найкраще для: обміну вашими додатками та спілкування зі спільнотою.
## Статус
- [x] Альфа: Ми тестуємо Supabase із закритим набором клієнтів
-- [x] Публічна альфа-версія: Будь-хто може зареєструватися на [app.supabase.com] (https://app.supabase.com). Але будьте обережні з нами, є кілька нюансів
+- [x] Публічна альфа-версія: Будь-хто може зареєструватися на [app.supabase.com](https://app.supabase.com). Але будьте обережні з нами, є кілька нюансів
- [x] Публічна бета-версія: Достатньо стабільна для більшості непідприємницьких випадків використання
- [ ] Загальнодоступна: Загальна доступність [[статус](https://supabase.com/docs/guides/getting-started/features#feature-status)]
@@ -55,7 +55,7 @@ Supabase - це комбінація інструментів з відкрит
**Архітектура**
-Supabase - це [хостингова платформа] (https://app.supabase.com). Ви можете зареєструватися і почати використовувати Supabase без встановлення.
+Supabase - це [хостингова платформа](https://app.supabase.com). Ви можете зареєструватися і почати використовувати Supabase без встановлення.
Ви також можете [самостійно хостити](https://supabase.com/docs/guides/hosting/overview) і [розробляти локально](https://supabase.com/docs/guides/local-development).

@@ -67,7 +67,7 @@ Supabase - це [хостингова платформа] (https://app.supabase.
- [Storage](https://github.com/supabase/storage-api) надає RESTful інтерфейс для керування файлами, що зберігаються у S3, використовуючи Postgres для керування дозволами.
- [postgres-meta](https://github.com/supabase/postgres-meta) - RESTful API для керування Postgres, що дозволяє отримувати таблиці, додавати ролі, виконувати запити тощо.
- [GoTrue](https://github.com/netlify/gotrue) - API на основі SWT для керування користувачами та випуску токенів SWT.
-- [Kong] (https://github.com/Kong/kong) - хмарний API-шлюз.
+- [Kong](https://github.com/Kong/kong) - хмарний API-шлюз.
#### Клієнтські бібліотеки
diff --git a/i18n/README.zh-tw.md b/i18n/README.zh-tw.md
index 50d8f26ccb6..8ae2d306f3c 100644
--- a/i18n/README.zh-tw.md
+++ b/i18n/README.zh-tw.md
@@ -7,7 +7,7 @@
# Supabase
-[Supabase](https://supabase.com)是一个开源的Firebase替代品。我们正在使用企业级的开源工具构建Firebase的功能。
+[Supabase](https://supabase.com)是一个开源的Firebase替代品。我们正在使用企业级的开源工具构建Firebase的功能。
- [x] 托管的 Postgres 数据库。[文档](https://supabase.com/docs/guides/database)
- [x] 认证和授权。[文档](https://supabase.com/docs/guides/auth)
@@ -21,7 +21,7 @@
- [x] 文件存储。[文件](https://supabase.com/docs/guides/storage)
- [x] 仪表板
-! [Supabase Dashboard](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png)
+
## 文档
@@ -39,9 +39,9 @@
## 状态
- [x] 阿尔法:我们正在与一组封闭的客户测试 Supabase。
-- [x] 公开阿尔法:任何人都可以在[app.supabase.com](https://app.supabase.com)上注册。但请对我们宽容一些,有一些小问题。
+- [x] 公开阿尔法:任何人都可以在[app.supabase.com](https://app.supabase.com)上注册。但请对我们宽容一些,有一些小问题。
- [x] 公开测试版:足够稳定,适合大多数非企业使用的情况。
-- [] 公开:普遍可用 [[状态](https://supabase.com/docs/guides/getting-started/features#feature-status)]
+- [] 公开:普遍可用 [状态](https://supabase.com/docs/guides/getting-started/features#feature-status)
我们目前正处于公开测试阶段。请关注本软件库的 "发布",以获得重大更新的通知。
@@ -55,10 +55,10 @@ Supabase 是一个开源工具的组合。我们正在使用企业级的开源
**架构**
-Supabase 是一个[托管平台](https://app.supabase.com)。你可以注册并开始使用Supabase,无需安装任何东西。
+Supabase 是一个[托管平台](https://app.supabase.com)。你可以注册并开始使用Supabase,无需安装任何东西。
你也可以[自我托管](https://supabase.com/docs/guides/hosting/overview)和[本地开发](https://supabase.com/docs/guides/local-development)。
-! [架构](https://github.com/supabase/supabase/blob/master/apps/docs/public/img/supabase-architecture.png)
+
- [PostgreSQL](https://www.postgresql.org/)是一个对象关系型数据库系统,经过 30 多年的积极开发,它在可靠性、功能稳健性和性能方面赢得了良好的声誉。
- [Realtime](https://github.com/supabase/realtime)是一个 Elixir 服务器,允许你使用 websockets 监听 PostgreSQL 的插入、更新和删除。Realtime 对 Postgres 内置的复制功能进行投票,以了解数据库的变化,将变化转换为 JSON,然后通过 websockets 将 JSON 广播给授权客户。
@@ -77,7 +77,7 @@ Supabase 是一个[托管平台](https://app.supabase.com)。你可以注册
| 语言 |
客户端 |
- 特征-客户端(捆绑在Supabase客户端中) |
+ 特征-客户端(捆绑在Supabase客户端中) |
@@ -238,10 +238,10 @@ Supabase 是一个[托管平台](https://app.supabase.com)。你可以注册
- [Persian / فارسی](/i18n/README.fa.md)
- [Polish / Polski](/i18n/README.pl.md)
- [葡萄牙语 / Português](/i18n/README.pt.md)
-- [葡萄牙语(巴西)/Português Brasileiro](/i18n/README.pt-br.md)
-- [Romanian / Română] (/i18n/README.ro.md)
+- [葡萄牙语(巴西)/Português Brasileiro](/i18n/README.pt-br.md)
+- [Romanian / Română](/i18n/README.ro.md)
- [俄语 / Pусский](/i18n/README.ru.md)
-- [塞尔维亚语 / Srpski] (/i18n/README.sr.md)
+- [塞尔维亚语 / Srpski](/i18n/README.sr.md)
- [Sinhala / සිංහල](/i18n/README.si.md)
- [西班牙语 / Español](/i18n/README.es.md)
- [Simplified Chinese / 简体中文](/i18n/README.zh-cn.md)
@@ -257,4 +257,4 @@ Supabase 是一个[托管平台](https://app.supabase.com)。你可以注册
## 赞助商
-[](https://github.com/sponsors/supabase)
+[](https://github.com/sponsors/supabase)
From 79cafdea8c6c3f0bf7f0086729a32f8a1b80cd38 Mon Sep 17 00:00:00 2001
From: Estee Tey
Date: Tue, 6 Jun 2023 20:12:13 +0800
Subject: [PATCH 08/65] fix prettier formatting
---
i18n/README.es.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/i18n/README.es.md b/i18n/README.es.md
index 7a7b9c0b666..226e67fadce 100644
--- a/i18n/README.es.md
+++ b/i18n/README.es.md
@@ -53,7 +53,7 @@ Actualmente estamos en Beta Pública. Esté atento a "releases" de este reposito
Supabase es una combinación de herramientas de código abierto. Estamos construyendo las características de Firebase utilizando productos de código abierto de nivel empresarial. Si las herramientas y las comunidades existen, con una licencia abierta MIT, Apache 2 o equivalente, utilizaremos y daremos soporte a esa herramienta. Si la herramienta no existe, la construimos y la desarrollamos nosotros mismos. Supabase no es un mapeo 1 a 1 de Firebase. Nuestro objetivo es ofrecer a los desarrolladores una experiencia similar a la de Firebase utilizando herramientas de código abierto.
-\*\*Arquitectura
+**Arquitectura**
Supabase es una [plataforma alojada](https://app.supabase.com). Puedes registrarte y empezar a usar Supabase sin instalar nada.
También puede [autoalojarse](https://supabase.com/docs/guides/hosting/overview) y [desarrollar localmente](https://supabase.com/docs/guides/local-development).
From 60ea395269990bcf475e224da139464b8602a93c Mon Sep 17 00:00:00 2001
From: awalias
Date: Tue, 6 Jun 2023 15:05:15 +0200
Subject: [PATCH 09/65] feat: berri ai case study text
---
apps/www/_customers/berriai.mdx | 88 +++++++++++++++++++++++++++++++++
1 file changed, 88 insertions(+)
create mode 100644 apps/www/_customers/berriai.mdx
diff --git a/apps/www/_customers/berriai.mdx b/apps/www/_customers/berriai.mdx
new file mode 100644
index 00000000000..5eca00b8fea
--- /dev/null
+++ b/apps/www/_customers/berriai.mdx
@@ -0,0 +1,88 @@
+---
+name: Berri AI
+title: Berri AI Boosts Productivity by Migrating from AWS RDS to Supabase with pgvector
+# Use meta_title to add a custom meta title. Otherwise it defaults to '{name} | Supabase Customer Stories':
+# meta_title:
+description: Learn how Berri AI overcame challenges with self-hosting their vector database on AWS RDS and successfully migrated to Supabase.
+# Use meta_description to add a custom meta description. Otherwise it defaults to {description}:
+meta_description: Learn how Berri AI overcame challenges with self-hosting their vector database on AWS RDS and successfully migrated to Supabase.
+author: paul_copplestone
+author_title: Supabase
+author_url: https://github.com/kiwicopple
+author_image_url: https://avatars2.githubusercontent.com/u/10214025?s=400&u=c6775be2ae667e2acae3ccd347fed62bb3f5b3e7&v=4
+authorURL: https://github.com/kiwicopple
+logo: /images/customers/logos/berriai.png
+logo_inverse: /images/customers/logos/light/berriai.png
+og_image: /images/customers/og/berriai.jpg
+tags:
+ - supabase
+date: '2023-06-06'
+company_url: 'https://www.berri.ai/'
+stats:
+ [
+ { stat: '00,000', label: Example stat },
+ { stat: '00,000', label: Example stat },
+ { stat: '00,000', label: Example stat },
+ ]
+misc: [{ label: 'Backed by', text: 'Y Combinator' }]
+about: Supercharge your products with the power of LLMs like ChatGPT & go from prototype to production in less than a week.
+---
+
+Berri AI is an API for businesses to programmatically create custom chat GPT instances on their data. Allowing customers to build production-ready ChatGPT Apps in minutes with features such as prebuilt flows, editable options, authentication, and logging.
+
+## The Challenge
+
+Initially, Berri AI attempted to develop with AWS RDS to reduce latency and gain more control over their infrastructure. However, they encountered various challenges, including development cycles, difficulties debugging errors, limited accessibility for non-database team members, and the complexity of managing connection pools and rollbacks. These issues hindered their ability to make changes quickly and impacted their overall productivity.
+
+
+ The Python SDK simplified the process for me as a non-database person, empowering me to make
+ changes and bug fixes. This significantly improved our update velocity, which had a huge impact on
+ our productivity.
+
+
+## Why they chose Supabase:
+
+Berri AI migrated their vector database from AWS RDS to Supabase for several compelling reasons.
+
+1. **Community:** After considering alternatives like pgvector, Pinecone, and Chroma, they prioritized a solution with a strong and accessible community, along with managed infrastructure.
+2. **Fewer services to manage:** Since they were already utilizing Supabase for other purposes, it made sense for Berri AI to consolidate their systems and avoid the complexities of self-hosting. One of the major pain points they faced with their previous setup was managing connection pools and handling errors with the Postgres database hosted on AWS. This involved writing extensive code and dealing with rollbacks, with each database update function requiring 40-50 lines of code. Supabase simplified this process significantly by condensing it to just one line of code, eliminating the burdens of managing dependencies and handling new errors. This significantly improved their update velocity, which had a huge impact on their productivity.
+3. **Better tooling:** Berri AI experienced frustration with pg_admin. Supabase's user-friendly interface offered a seamless and efficient way to manage and read tables, eliminating the need for pg_admin and providing a simple alternative. This streamlined their workflow and saved valuable time and effort. The accessibility of Supabase's client SDKs and intuitive interface played a crucial role in their decision as well. Team members who were not database experts found it easy to navigate and make changes, reducing reliance on specialized expertise and improving their overall workflow.
+4. **Simplicity:** Supabase provides the ability to add new columns in a no-code manner, which provided flexibility and agility in responding to evolving requirements. This feature empowered the team to make on-the-fly adjustments and meet their immediate needs effectively.
+5. **Flexibility:** Berri AI also appreciated Supabase's flexibility in allowing them to choose their preferred embedding method, as it was not tied to a specific embedding model. This ensured compatibility and adaptability for their specific use case.
+
+The integration of pgvector on Supabase, which facilitated efficient storage and retrieval of vectors, proved to be a significant advantage for Berri AI's operations.
+
+
+ Switching to Supabase was a game-changer for us. The faster view times allowed me to quickly
+ access and debug data, enhancing my ability to analyze individual customer issues. The no-code
+ option to add new columns on the fly was fantastic, enabling us to adapt swiftly.
+
+
+## What They Built
+
+Berri AI built a platform that enables developers to create and manage custom chatGPT instances for each individual user, integrating seamlessly with their unique data.
+
+With Berri AI, businesses can rapidly scale the power of chatGPT to cater to the needs of every user. The platform provides an out-of-the-box solution for managing a fleet of chatGPT instances, offering businesses the ability to deliver personalized responses to user queries. This includes answering specific questions related to order status, monthly revenue, or generating personalized learning experiences in the education technology (EdTech) sector, such as summarizing lecture slides or generating practice questions from textbooks.
+
+The platform's integration with Supabase and pgvector empowers businesses to unlock the full potential of chatGPT and deliver customized solutions for a wide range of use cases.
+
+
+ With Supabase, my life has become much easier. Previously, managing connection pools and dealing
+ with errors in the Postgres database hosted on AWS was a constant challenge. I had to write 40-50
+ lines of code for each function, handle rollbacks, and struggle with dependencies and errors. But
+ with Supabase, updating the database is now just one line of code. I no longer need to deal with
+ complex dependencies and obscure errors. Additionally, the frustration of using pgadmin is gone.
+ Supabase provides a simple UI that allows me to effortlessly manage and interact with my tables.
+
+
+## The Results
+
+Berri AI achieved significant improvements in their operations by choosing Supabase with pgvector. They experienced streamlined database management, increased update velocity, and improved efficiency in accessing and debugging data. The user-friendly interface and flexibility of Supabase empowered non-experts within the team and facilitated agile adaptations to changing requirements. Overall, this decision transformed their workflow, enhancing productivity and positioning Berri AI for continued success and growth.
+
+## Tech stack
+
+- Supabase
+- Zeet
+- AWS
+- OpenAI
+- Hugging Face
From 75f636b673186d823abad95b1666d5bcf0509f48 Mon Sep 17 00:00:00 2001
From: awalias
Date: Tue, 6 Jun 2023 15:22:18 +0200
Subject: [PATCH 10/65] fix: smol typos etc.
---
apps/www/_customers/berriai.mdx | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/apps/www/_customers/berriai.mdx b/apps/www/_customers/berriai.mdx
index 5eca00b8fea..83744743591 100644
--- a/apps/www/_customers/berriai.mdx
+++ b/apps/www/_customers/berriai.mdx
@@ -28,7 +28,7 @@ misc: [{ label: 'Backed by', text: 'Y Combinator' }]
about: Supercharge your products with the power of LLMs like ChatGPT & go from prototype to production in less than a week.
---
-Berri AI is an API for businesses to programmatically create custom chat GPT instances on their data. Allowing customers to build production-ready ChatGPT Apps in minutes with features such as prebuilt flows, editable options, authentication, and logging.
+Berri AI is an API for businesses to programmatically create custom ChatGPT instances on their data. Their customers build production-ready ChatGPT Apps in minutes with features such as prebuilt flows, editable options, authentication, and logging.
## The Challenge
@@ -60,11 +60,11 @@ The integration of pgvector on Supabase, which facilitated efficient storage and
## What They Built
-Berri AI built a platform that enables developers to create and manage custom chatGPT instances for each individual user, integrating seamlessly with their unique data.
+Berri AI built a platform that enables developers to create and manage custom ChatGPT instances for each individual user, integrating seamlessly with their unique data.
-With Berri AI, businesses can rapidly scale the power of chatGPT to cater to the needs of every user. The platform provides an out-of-the-box solution for managing a fleet of chatGPT instances, offering businesses the ability to deliver personalized responses to user queries. This includes answering specific questions related to order status, monthly revenue, or generating personalized learning experiences in the education technology (EdTech) sector, such as summarizing lecture slides or generating practice questions from textbooks.
+With Berri AI, businesses can rapidly scale the power of ChatGPT to cater to the needs of every user. The platform provides an out-of-the-box solution for managing a fleet of ChatGPT instances, offering businesses the ability to deliver personalized responses to user queries. This includes answering specific questions related to order status, monthly revenue, or generating personalized learning experiences in the education technology (EdTech) sector, such as summarizing lecture slides or generating practice questions from textbooks.
-The platform's integration with Supabase and pgvector empowers businesses to unlock the full potential of chatGPT and deliver customized solutions for a wide range of use cases.
+The platform's integration with Supabase and pgvector empowers businesses to unlock the full potential of ChatGPT and deliver customized solutions for a wide range of use cases.
With Supabase, my life has become much easier. Previously, managing connection pools and dealing
From 425296de93c69fb1152e931b11655632eb0b400a Mon Sep 17 00:00:00 2001
From: awalias
Date: Tue, 6 Jun 2023 15:49:37 +0200
Subject: [PATCH 11/65] chore: adds berri ai images
---
apps/www/_customers/berriai.mdx | 2 +-
.../images/blog/avatars/ishaan-jaffer.png | Bin 0 -> 304336 bytes
.../public/images/blog/avatars/krrish-d.png | Bin 0 -> 152210 bytes
.../public/images/customers/logos/berriai.png | Bin 0 -> 268693 bytes
.../images/customers/logos/light/berriai.png | Bin 0 -> 335810 bytes
.../www/public/images/customers/og/berriai.jpg | Bin 0 -> 35519 bytes
6 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 apps/www/public/images/blog/avatars/ishaan-jaffer.png
create mode 100644 apps/www/public/images/blog/avatars/krrish-d.png
create mode 100644 apps/www/public/images/customers/logos/berriai.png
create mode 100644 apps/www/public/images/customers/logos/light/berriai.png
create mode 100644 apps/www/public/images/customers/og/berriai.jpg
diff --git a/apps/www/_customers/berriai.mdx b/apps/www/_customers/berriai.mdx
index 83744743591..46f52fdb5ab 100644
--- a/apps/www/_customers/berriai.mdx
+++ b/apps/www/_customers/berriai.mdx
@@ -34,7 +34,7 @@ Berri AI is an API for businesses to programmatically create custom ChatGPT inst
Initially, Berri AI attempted to develop with AWS RDS to reduce latency and gain more control over their infrastructure. However, they encountered various challenges, including development cycles, difficulties debugging errors, limited accessibility for non-database team members, and the complexity of managing connection pools and rollbacks. These issues hindered their ability to make changes quickly and impacted their overall productivity.
-
+
The Python SDK simplified the process for me as a non-database person, empowering me to make
changes and bug fixes. This significantly improved our update velocity, which had a huge impact on
our productivity.
diff --git a/apps/www/public/images/blog/avatars/ishaan-jaffer.png b/apps/www/public/images/blog/avatars/ishaan-jaffer.png
new file mode 100644
index 0000000000000000000000000000000000000000..707ca00bc16225aa845fba887061bb8970851630
GIT binary patch
literal 304336
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%0D?5OH7ZW?~n3F<@$QDXpSaVBfD
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