CLI configuration
diff --git a/apps/docs/pages/reference/dart/v0/[...slug].tsx b/apps/docs/pages/reference/dart/v0/[...slug].tsx
index 8cee39483e0..86af70c75c8 100644
--- a/apps/docs/pages/reference/dart/v0/[...slug].tsx
+++ b/apps/docs/pages/reference/dart/v0/[...slug].tsx
@@ -9,7 +9,15 @@ const sections = flattenSections(clientLibsCommonSections)
const libraryPath = '/dart/v0'
export default function JSReference(props) {
- return
+ return (
+
+ )
}
export async function getStaticProps() {
diff --git a/apps/docs/pages/reference/javascript/v1/[...slug].tsx b/apps/docs/pages/reference/javascript/v1/[...slug].tsx
index 95a578fc559..3fb14627bfe 100644
--- a/apps/docs/pages/reference/javascript/v1/[...slug].tsx
+++ b/apps/docs/pages/reference/javascript/v1/[...slug].tsx
@@ -1,4 +1,3 @@
-import { inspect } from 'util'
import clientLibsCommonSections from '~/../../spec/common-client-libs-sections.json'
import typeSpec from '~/../../spec/enrichments/tsdoc_v1/combined.json'
import spec from '~/../../spec/supabase_js_v1.yml' assert { type: 'yml' }
@@ -18,6 +17,7 @@ export default function JSReference(props) {
typeSpec={typeSpec}
pageProps={props}
type="client-lib"
+ isOldVersion
/>
)
}
diff --git a/apps/docs/public/img/icons/menu/database.svg b/apps/docs/public/img/icons/menu/database.svg
index 8b8205599c2..80d0254d7e8 100644
--- a/apps/docs/public/img/icons/menu/database.svg
+++ b/apps/docs/public/img/icons/menu/database.svg
@@ -1,5 +1,5 @@
diff --git a/apps/docs/scripts/search/sources/markdown.ts b/apps/docs/scripts/search/sources/markdown.ts
index 851839a772b..91beb6cc01a 100644
--- a/apps/docs/scripts/search/sources/markdown.ts
+++ b/apps/docs/scripts/search/sources/markdown.ts
@@ -96,6 +96,23 @@ export function splitTreeBy(tree: Root, predicate: (node: Content) => boolean) {
}, [])
}
+/**
+ * Parses a markdown heading which can optionally
+ * contain a custom anchor in the format:
+ *
+ * ```markdown
+ * ### My Heading [#my-custom-anchor]
+ * ```
+ */
+export function parseHeading(heading: string): { heading: string; customAnchor?: string } {
+ const match = heading.match(/(.*) *\[#(.*)\]/)
+ if (match) {
+ const [, heading, customAnchor] = match
+ return { heading, customAnchor }
+ }
+ return { heading }
+}
+
/**
* Processes MDX content for search indexing.
* It extracts metadata, strips it of all JSX,
@@ -140,12 +157,20 @@ export function processMdxForSearch(content: string): ProcessedMdx {
const sections = sectionTrees.map((tree) => {
const [firstNode] = tree.children
+ const content = toMarkdown(tree)
- const heading = firstNode.type === 'heading' ? toString(firstNode) : undefined
- const slug = heading ? slugger.slug(heading) : undefined
+ const rawHeading: string = firstNode.type === 'heading' ? toString(firstNode) : undefined
+
+ if (!rawHeading) {
+ return { content }
+ }
+
+ const { heading, customAnchor } = parseHeading(rawHeading)
+
+ const slug = slugger.slug(customAnchor ?? heading)
return {
- content: toMarkdown(tree),
+ content,
heading,
slug,
}
diff --git a/apps/docs/styles/main.scss b/apps/docs/styles/main.scss
index 1c60d4f3100..08c65126db1 100644
--- a/apps/docs/styles/main.scss
+++ b/apps/docs/styles/main.scss
@@ -80,6 +80,10 @@ article h1 {
@apply text-scale-900 text-xs;
}
+.prose :where(p):not(:where([class~='not-prose'] *)) {
+ white-space: pre-line;
+}
+
code[class*='language-'],
pre[class*='language-'] {
text-shadow: none !important;
diff --git a/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx b/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx
index 2ac7e4607f6..367cc275bc9 100644
--- a/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx
+++ b/apps/www/_blog/2022-06-30-flutter-tutorial-building-a-chat-app.mdx
@@ -12,6 +12,16 @@ date: '2022-06-30'
toc_depth: 3
---
+
+
+🚨 We are currently running our first-ever Flutter Hackathon, in partnership with FlutterFlow and Invertase 🚨
+
+Build and submit an app till 11:59 pm PT on Sunday, May 21st and win limited edition swag!
+
+[Learn more.](https://supabase.com/blog/flutter-hackathon)
+
+
+
This is the first of a series of Flutter Tutorials. During the series, you will learn how to build cross-platform apps without worrying about the backend.
In the first part, I will show you how to build a chat application, where users can sign up and talk to other users in a single chat room. The exchange of messages will happen in real time, meaning that you do not have to refresh the page to load new messages.
diff --git a/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx b/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx
index cdabad21e70..86fb04f8a07 100644
--- a/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx
+++ b/apps/www/_blog/2022-08-02-supabase-flutter-sdk-1-developer-preview.mdx
@@ -11,6 +11,16 @@ date: '2022-08-02'
toc_depth: 3
---
+
+
+🚨 We are currently running our first-ever Flutter Hackathon, in partnership with FlutterFlow and Invertase 🚨
+
+Build and submit an app till 11:59 pm PT on Sunday, May 21st and win limited edition swag!
+
+[Learn more.](https://supabase.com/blog/flutter-hackathon)
+
+
+
Today, we are releasing of Developer Preview version of v1.0 of [Supabase Flutter SDK](https://pub.dev/packages/supabase_flutter/versions/1.0.0-dev.1). Flutter has quickly become one of the most popular frameworks for developers to build cross-platform mobile apps. We can attest to that growth, our Flutter SDK is one of the most popular libraries and each day we see more Flutter devs choosing Supabase.
For this release, our main focus is developer experiences. We would love for you to try the SDK and provide your feedback so that we can continue to improve!
diff --git a/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx b/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx
index 8709747976a..da6bbce5f32 100644
--- a/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx
+++ b/apps/www/_blog/2022-10-21-supabase-flutter-sdk-v1-released.mdx
@@ -11,6 +11,16 @@ date: '2022-10-21'
toc_depth: 3
---
+
+
+🚨 We are currently running our first-ever Flutter Hackathon, in partnership with FlutterFlow and Invertase 🚨
+
+Build and submit an app till 11:59 pm PT on Sunday, May 21st and win limited edition swag!
+
+[Learn more.](https://supabase.com/blog/flutter-hackathon)
+
+
+
A few months ago, we announced a [developer preview version of supabase-flutter SDK](https://supabase.com/blog/supabase-flutter-sdk-1-developer-preview). Since then, we have heard a lot of amazing feedback from the community, and have been improving it. Today, we are happy to announce the stable v1 of [supabase-flutter](https://pub.dev/packages/supabase_flutter). You can also find the updated [quick start guide](https://supabase.com/docs/guides/with-flutter), [documentation](https://supabase.com/docs/reference/dart) and a [migration guide from v0](https://supabase.com/docs/reference/dart/v0/upgrade-guide).
## What is new in v1?
diff --git a/apps/www/_blog/2022-11-22-flutter-authentication-and-authorization-with-rls.mdx b/apps/www/_blog/2022-11-22-flutter-authentication-and-authorization-with-rls.mdx
index 93ed654d530..6fca2dc92e6 100644
--- a/apps/www/_blog/2022-11-22-flutter-authentication-and-authorization-with-rls.mdx
+++ b/apps/www/_blog/2022-11-22-flutter-authentication-and-authorization-with-rls.mdx
@@ -12,6 +12,16 @@ date: '2022-11-22'
toc_depth: 3
---
+
+
+🚨 We are currently running our first-ever Flutter Hackathon, in partnership with FlutterFlow and Invertase 🚨
+
+Build and submit an app till 11:59 pm PT on Sunday, May 21st and win limited edition swag!
+
+[Learn more.](https://supabase.com/blog/flutter-hackathon)
+
+
+
This article is the second part of the Flutter tutorial series. During the series, you will learn how to build cross-platform apps without worrying about the backend.
In this article, I will show you how you can make a secure chat application by introducing authentication and authorization to the basic chat app that we created [previously](https://supabase.com/blog/flutter-tutorial-building-a-chat-app).
diff --git a/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx b/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx
index d1e57927dff..8c2dc4b5d24 100644
--- a/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx
+++ b/apps/www/_blog/2023-02-03-openai-embeddings-postgres-vector.mdx
@@ -12,7 +12,7 @@ date: '2023-02-06'
toc_depth: 3
---
-A new PostgreSQL extension is now available in Supabase: [`pgvector`](https://github.com/pgvector/pgvector), an open-source vector similarity search.
+A new PostgreSQL extension is now available in Supabase: [`pgvector`](https://supabase.com/docs/guides/getting-started/openai/vector-search), an open-source vector similarity search.
The exponential progress of AI functionality over the past year has inspired many new real world applications. One specific challenge has been the ability to store and query _embeddings_ at scale.
In this post we'll explain what embeddings are, why we might want to use them, and how we can store and query them in PostgreSQL using `pgvector`.
@@ -145,9 +145,9 @@ Once your table starts to grow with embeddings, you will likely want to add an i
Each distance operator requires a different type of index. We expect to order by cosine distance, so we need `vector_cosine_ops` index. A good starting number of lists is 4 \* sqrt(table_rows):
```sql
-create index on documents
-using ivfflat (embedding vector_cosine_ops)
-with (lists = 100);
+create index on documents using ivfflat (embedding vector_cosine_ops)
+with
+ (lists = 100);
```
You can read more about indexing on `pgvector`'s GitHub page [here](https://github.com/pgvector/pgvector#indexing).
@@ -370,6 +370,11 @@ The OpenAI API supports [completion streaming](https://platform.openai.com/docs/
Storing embeddings in Postgres opens a world of possibilities. You can combine your search function with telemetry functions, add an user-provided feedback (thumbs up/down), and make your search feel more integrated with your products.
-Tomorrow we'll be releasing our own version of this interface in the Supabase docs, to provide Supabase-specific answers.
+The [pgvector extension](https://supabase.com/docs/guides/getting-started/openai/vector-search) is available on all new Supabase projects today. If you want to try it out, launch a new Postgres database today: [database.new](https://database.new)
-The pgvector extension is available on all new Supabase projects today. If you want to try it out, launch a new Postgres database today: [database.new](https://database.new)
+## More pgvector and ChatGPT resources
+
+- [Supabase Clippy: ChatGPT for Supabase Docs](https://supabase.com/blog/chatgpt-supabase-docs)
+- [A ChatGPT Plugins Template built with Supabase Edge Runtime](https://supabase.com/blog/building-chatgpt-plugins-template)
+- [Template for building your own custom ChatGPT style doc search](https://github.com/supabase-community/nextjs-openai-doc-search)
+- [Supabase + LangChain Starter Template](https://blog.langchain.dev/langchain-x-supabase/)
diff --git a/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx b/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx
index e0b1c949f8c..7b0a448e8d0 100644
--- a/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx
+++ b/apps/www/_blog/2023-02-07-chatgpt-supabase-docs.mdx
@@ -11,6 +11,12 @@ date: '2023-02-07'
toc_depth: 3
---
+
+
+🆕 Want to build your own Clippy based on your own content? Use our [Next.js OpenAI Doc Search Template](https://github.com/supabase-community/nextjs-openai-doc-search) to deploy your own now!
+
+
+
We all know that Microsoft's real agenda for pouring billions into OpenAI is to revive their favorite friend Clippy.
Today, we're doing our part to support the momentum by releasing “Supabase Clippy” for our docs (and we don't expect this name to last long before the lawyers catch on).
@@ -113,8 +119,9 @@ While you're at it, consider supporting [@ankane](https://github.com/ankane)'s g
Want to try Supabase Clippy? It's a hidden feature while in MVP - visit [supabase.com/docs](/docs) and hit `cmd` + `/` to pull up the search box (sorry mobile users).
-If you have any comments we'd love to hear them in our [ShowHN](https://news.ycombinator.com/item?id=34695306).
+## More pgvector and ChatGPT resources
-## Deploy your own
-
-Want to build your own Clippy based on your own content? Use our [Next.js OpenAI Doc Search Template](https://github.com/supabase-community/nextjs-openai-doc-search) to deploy your own now!
+- [pgvector docs]([https://supabase.com/blog/chatgpt-supabase-docs](https://supabase.com/docs/guides/getting-started/openai/vector-search)
+- [A ChatGPT Plugins Template built with Supabase Edge Runtime](https://supabase.com/blog/building-chatgpt-plugins-template)
+- [Template for building your own custom ChatGPT style doc search](https://github.com/supabase-community/nextjs-openai-doc-search)
+- [Supabase + LangChain Starter Template](https://blog.langchain.dev/langchain-x-supabase/)
diff --git a/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx b/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx
index 796f60340f8..7acbc0f3c9b 100644
--- a/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx
+++ b/apps/www/_blog/2023-02-14-flutter-real-time-multiplayer-game.mdx
@@ -12,6 +12,16 @@ date: '2023-02-14'
toc_depth: 3
---
+
+
+🚨 We are currently running our first-ever Flutter Hackathon, in partnership with FlutterFlow and Invertase 🚨
+
+Build and submit an app till 11:59 pm PT on Sunday, May 21st and win limited edition swag!
+
+[Learn more.](https://supabase.com/blog/flutter-hackathon)
+
+
+
Flutter is a UI library to build apps that run on any platform, but it can also build interactive games thanks to an open-source game engine built on top of Flutter called [Flame](https://flame-engine.org/). Flame takes care of things like collision detection or loading image sprites to bring game development to all the Flutter devs. We can take it a step further to introduce real-time communication features so that players can play against each other in real-time.
In this article, we will use Flutter, Flame, and Supabase's real-time features to build a real-time multiplayer shooting game. You can find the complete code of this tutorial [here](https://github.com/supabase/supabase/tree/master/examples/realtime/flutter-multiplayer-shooting-game).
diff --git a/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx b/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx
index a670abe9610..a8c453cf3db 100644
--- a/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx
+++ b/apps/www/_blog/2023-04-04-infinite-scroll-with-nextjs-framer-motion.mdx
@@ -8,7 +8,7 @@ launchweek: 7
tags:
- tutorial
- launch-week
- - Next-js
+ - Next.js
date: '2023-04-04'
toc_depth: 6
---
diff --git a/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx b/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx
index c1a4dfb36ea..b0ff0777bf7 100644
--- a/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx
+++ b/apps/www/_blog/2023-04-13-supabase-auth-sso-pkce.mdx
@@ -225,6 +225,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
Since this is a major update that touches many of the authentication routes, we will roll it out gradually over the next few weeks. You will receive a notification in your dashboard when the feature is available for your project. Reach out to us if you want early access to this feature.
+**Update**: Server-Side Auth (PKCE) is now available on all projects. Please refer to our [Server Side Auth Guide](https://supabase.com/docs/guides/auth/server-side-rendering) for further details on how to add PKCE to your project.
+
## Native Apple login on iOS
While PKCE support is great, that is not the only news for you mobile app developers out there.
diff --git a/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx b/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx
index ad11ad53020..57afdbbccee 100644
--- a/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx
+++ b/apps/www/_blog/2023-05-04-flutter-multi-factor-authentication.mdx
@@ -10,6 +10,16 @@ date: '2023-05-04'
toc_depth: 2
---
+
+
+🚨 We are currently running our first-ever Flutter Hackathon, in partnership with FlutterFlow and Invertase 🚨
+
+Build and submit an app till 11:59 pm PT on Sunday, May 21st and win limited edition swag!
+
+[Learn more.](https://supabase.com/blog/flutter-hackathon)
+
+
+
Multi-factor authentication or MFA is an essential part of security for any kind of app.
We will take a look at an example app where a user has to sign in via MFA in order to view the contents of the app to demonstrate how easy it is to get started with MFA on Flutter.
diff --git a/apps/www/_blog/2023-05-12-flutter-hackathon.mdx b/apps/www/_blog/2023-05-12-flutter-hackathon.mdx
new file mode 100644
index 00000000000..1937773b074
--- /dev/null
+++ b/apps/www/_blog/2023-05-12-flutter-hackathon.mdx
@@ -0,0 +1,94 @@
+---
+title: 'Flutter Hackathon'
+description: Build Flutter apps and win limited edition swag.
+author: tyler_shukert
+image: flutter-hackathon/thumbnail.jpg
+thumb: flutter-hackathon/thumbnail.jpg
+tags:
+ - flutter
+ - hackathon
+date: '2023-05-12'
+toc_depth: 3
+---
+
+As new Flutter updates are announced at Google I/O, we are excited to kick off the Flutter hackathon with the help of our partners, [FlutterFlow](https://flutterflow.io/) and [Invertase](https://invertase.io/). The rules are simple: build beautiful apps using our favorite hybrid framework, Flutter!
+
+
+
+## Key Facts
+
+- You have 10 days to build a new app using Flutter/Dart and Supabase in some capacity.
+ - Starting 7:00 am PT Friday, May 12th, 2023
+ - The submission deadline is 11:59 pm PT on Sunday, May 21st, 2023
+- Enter as an individual, or as a team of up to 5 people
+
+## Prizes
+
+There are 5 categories, there will be prizes for:
+
+- Best overall project (Mechanical Keyboards & Swag kit)
+- Best FlutterFlow project (FlutterFlow Swag kit & 3 months of FlutterFlow Pro plan for free)
+- Best Dart Edge Project (Swag kit)
+- Most technically impressive (Swag kit)
+- Most visually pleasing (Swag kit)
+
+There will be a winner and a runner-up prize for each category. Every team member on winning/runner-up teams gets a swag kit.
+
+
+
+## Submission
+
+Please include an easily accessible demo, or a demo video so that the judges can take a look at the app. For Flutter apps, [Zapp](https://zapp.run/) is a great tool to generate an easily shareable demo link for your app. For a FlutterFlow project, please share a publicly shareable link so that the judges can take a look at the actual app.
+
+You should submit your project using [this form](https://www.madewithsupabase.com/flutter-hackathon) before 11:59 pm Sunday midnight PT May 21st, 2023.
+
+## Judges
+
+[Pooja](https://twitter.com/pooja_bhaumik) from FlutterFlow, [Majid](https://twitter.com/mhadaily) from Invertase, and [Tyler](https://twitter.com/dshukertjr), myself from Supabase will do the honors of judging the winners.
+We will be looking for:
+
+- creativity/inventiveness
+- functions correctly/smoothly
+- visually pleasing
+- technically impressive
+- use of Supabase features
+ - deep usage of a single feature or
+ - broad usage are both ok
+- FUN! 😃
+
+## Rules
+
+- Team size 1-5 (all team members on winning teams will receive a prize)
+- You cannot be on multiple teams
+- One submission per team
+- All design elements, code, etc. for your project must be created **during** the event
+- Must use Flutter and Supabase in some capacity
+- You must submit before the deadline (no late entries)
+
+## Resources
+
+### Supabase resources
+
+- [Flutter Supabase quick starter guide](https://supabase.com/docs/guides/getting-started/tutorials/with-flutter)
+- [Setup Supabase on FlutterFlow docs](https://docs.flutterflow.io/data-and-backend/supabase/supabase-setup)
+- [How to setup Supabase auth on FlutterFlow video](https://youtu.be/tL-sLPfWzVE)
+- [Dart Edge Guide](https://supabase.com/docs/guides/functions/dart-edge)
+- [Getting started with Dart Edge video](https://youtu.be/53jhgrDONW4)
+
+### Community help
+
+The Supabase Team will be taking part in the Hackathon and you'll find us live to build in our discord all week. Please join us by building in public:
+
+- Text channel: [#hackathon](https://discord.gg/UYyweApy)
+
+If you need help or advice when building, find other people to join your team, or if you just want to chill and watch people build, come and join us!
+
+[Join our Discord](https://discord.supabase.com/)
+
+
+
+## Additional Info
+
+- Any intellectual property developed during the hackathon will belong to the team that developed it. We expect that each team will have an agreement between themselves regarding the IP, but this is not required
+- By making a submission you grant Supabase permission to use screenshots, code snippets, and/or links to your project or content of your README on our Twitter, blog, website, email updates, and in the Supabase discord server. Supabase does not make any claims over your IP.
+- Flutter and the related logo are trademarks of Google LLC. Supabase Flutter Hackathon is not affiliated with or otherwise sponsored by Google LLC.
diff --git a/apps/www/_blog/2023-05-15-building-chatgpt-plugins-template.mdx b/apps/www/_blog/2023-05-15-building-chatgpt-plugins-template.mdx
new file mode 100644
index 00000000000..56d508212f8
--- /dev/null
+++ b/apps/www/_blog/2023-05-15-building-chatgpt-plugins-template.mdx
@@ -0,0 +1,278 @@
+---
+title: 'Building ChatGPT Plugins with Supabase Edge Runtime'
+tags:
+ - AI
+ - tutorial
+ - functions
+date: '2023-05-15'
+toc_depth: 2
+author: thor_schaeff
+image: 2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg
+thumb: 2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg
+---
+
+ChatGPT Plugins support is [rolling out in beta](https://help.openai.com/en/articles/6825453-chatgpt-release-notes) this week! To help you get up and running quickly, we're releasing a [plugin template](https://github.com/supabase-community/chatgpt-plugin-template-deno) written in TypeScript and running on [Supabase Edge Runtime](https://supabase.com/blog/edge-runtime-self-hosted-deno-functions)!
+
+Want to get started right away? [Fork the template on GitHub](https://github.com/supabase-community/chatgpt-plugin-template-deno)!
+
+
+
+
+
+## Serving the manifest file
+
+The `ai-plugin.json` [manifest file](https://platform.openai.com/docs/plugins/getting-started/plugin-manifest) is required for ChatGPT to identify our plugin, know what kind of authentication mechanism is used, understand where to find the OpenAPI definition, and some other details about our plugin. You can find the full list of supported parameters in the [OpenAI docs](https://platform.openai.com/docs/plugins/getting-started/plugin-manifest).
+
+Supabase Edge Runtime does currently not support hosting/serving of static files, however, we can import JSON files in our function and serve them as a JSON response. As this needs to be at the root of our domain, we add this to our [main function handler](https://github.com/supabase-community/chatgpt-plugin-template-deno/blob/main/functions/main/index.ts#L69-L74):
+
+```ts
+// functions/main/index.ts
+import aiPlugins from './ai-plugins.json' assert { type: 'json' }
+
+// [...]
+
+// Serve /.well-known/ai-plugin.json
+if (service_name === '.well-known') {
+ return new Response(JSON.stringify(aiPlugins), {
+ headers: { ...corsHeaders, 'Content-Type': 'application/json' },
+ })
+}
+```
+
+Now, when running Edge Runtime locally via Docker, our plugin manifest will be available at [http://localhost:8000/.well-known/ai-plugin.json](http://localhost:8000/.well-known/ai-plugin.json)
+
+## Generating the OpenAPI definition with swagger-jsdoc
+
+The [OpenAPI definition](https://platform.openai.com/docs/plugins/getting-started/openapi-definition) is required for ChatGPT to know how to underact with our API. Only endpoints included in there will be exposed to ChatGPT, which allows you to selectively make our endpoints available, or add specific endpoints for ChatGPT.
+
+The OpenAPI definition can be either in YAML or JSON format. We’ll be using JSON and the same approach as above to serve it. Writing an OpenAPI definition is not something we will want to do by hand, luckily there is an open source tool called [swagger-jsdoc](https://github.com/Surnet/swagger-jsdoc) which we can use to annotate our endpoints with JSDoc comments and generate the OpenAPI definition with a [little script](https://github.com/supabase-community/chatgpt-plugin-template-deno/blob/main/scripts/generate-openapi-spec.ts).
+
+```ts
+// /scripts/generate-openapi-spec.ts
+import swaggerJsdoc from 'npm:swagger-jsdoc@6.2.8'
+
+const options = {
+ definition: {
+ openapi: '3.0.1',
+ info: {
+ title: 'TODO Plugin',
+ description: `A plugin that allows the user to create and manage a TODO list using ChatGPT. If you do not know the user's username, ask them first before making queries to the plugin. Otherwise, use the username "global".`,
+ version: '1.0.0',
+ },
+ servers: [{ url: 'http://localhost:8000' }],
+ },
+ apis: ['./functions/chatgpt-plugin/index.ts'], // files containing annotations as above
+}
+
+const openapiSpecification = swaggerJsdoc(options)
+const openapiString = JSON.stringify(openapiSpecification, null, 2)
+const encoder = new TextEncoder()
+const data = encoder.encode(openapiString)
+await Deno.writeFile('./functions/chatgpt-plugin/openapi.json', data)
+console.log(openapiString)
+```
+
+Since this script is run outside of the function execution, e.g. as a GitHub Action, we can use [npm specifiers](https://deno.com/manual/node/npm_specifiers) to import `swagger-jsdoc`.
+
+Next, we create our `/functions/chatgpt-plugin/index.ts` [file](https://github.com/supabase-community/chatgpt-plugin-template-deno/blob/main/functions/chatgpt-plugin/index.ts) where we use the [Deno oak router](https://deno.land/x/oak) to build our API and annotate it with JSDOC comments.
+
+```ts
+// /functions/chatgpt-plugin/index.ts
+import { Application, Router } from 'https://deno.land/x/oak@v11.1.0/mod.ts'
+import openapi from './openapi.json' assert { type: 'json' }
+
+console.log('Hello from `chatgpt-plugin` Function!')
+
+const _TODOS: { [key: string]: Array
} = {
+ user: ['Build your own ChatGPT Plugin!'],
+}
+
+/**
+ * @openapi
+ * components:
+ * schemas:
+ * getTodosResponse:
+ * type: object
+ * properties:
+ * todos:
+ * type: array
+ * items:
+ * type: string
+ * description: The list of todos.
+ */
+
+const router = new Router()
+router
+ .get('/chatgpt-plugin', (ctx) => {
+ ctx.response.body = 'Building ChatGPT plugins with Deno!'
+ })
+ /**
+ * @openapi
+ * /chatgpt-plugin/todos/{username}:
+ * get:
+ * operationId: getTodos
+ * summary: Get the list of todos
+ * parameters:
+ * - in: path
+ * name: username
+ * schema:
+ * type: string
+ * required: true
+ * description: The name of the user.
+ * responses:
+ * 200:
+ * description: OK
+ * content:
+ * application/json:
+ * schema:
+ * $ref: '#/components/schemas/getTodosResponse'
+ */
+ .get('/chatgpt-plugin/todos/:username', (ctx) => {
+ const username = ctx.params.username.toLowerCase()
+ ctx.response.body = _TODOS[username] ?? []
+ })
+ .get('/chatgpt-plugin/openapi.json', (ctx) => {
+ ctx.response.body = JSON.stringify(openapi)
+ ctx.response.headers.set('Content-Type', 'application/json')
+ })
+
+const app = new Application()
+app.use(router.routes())
+app.use(router.allowedMethods())
+
+await app.listen({ port: 8000 })
+```
+
+With our JSDoc annotation in place, we can now run the generation script in the terminal:
+
+```bash
+deno run --allow-read --allow-write scripts/generate-openapi-spec.ts
+```
+
+## Adding the CORS headers
+
+Lastly, we need to add some CORS headers to make the browser happy. We define them in a `/functions/_shared/cors.ts` [file](https://github.com/supabase-community/chatgpt-plugin-template-deno/blob/main/functions/_shared/cors.ts) so we can easily reuse them across our `main` and `chatgpt-plugins` function.
+
+```tsx
+// /functions/_shared/cors.ts
+export const corsHeaders = {
+ 'Access-Control-Allow-Origin': 'https://chat.openai.com',
+ 'Access-Control-Allow-Credentials': 'true',
+ 'Access-Control-Allow-Private-Network': 'true',
+ 'Access-Control-Allow-Headers': '*',
+}
+```
+
+Now we can easily add them to all our `chatgpt-plugin` routes a middleware for our oak application.
+
+```ts
+// /functions/chatgpt-plugin/index.ts
+import { Application, Router } from 'https://deno.land/x/oak@v11.1.0/mod.ts'
+import { corsHeaders } from '../_shared/cors.ts'
+
+// [...]
+const app = new Application()
+// ChatGPT specific CORS headers
+app.use(async (ctx, next) => {
+ await next()
+ let key: keyof typeof corsHeaders
+ for (key in corsHeaders) {
+ ctx.response.headers.set(key, corsHeaders[key])
+ }
+})
+app.use(router.routes())
+app.use(router.allowedMethods())
+
+await app.listen({ port: 8000 })
+```
+
+## Running locally with Docker
+
+Now that we’ve got all the pieces in place, let’s spin up Edge Runtime locally and test things out. For this, we need a [Dockerfile](https://github.com/supabase-community/chatgpt-plugin-template-deno/blob/main/Dockerfile) and for convenience, we can add a [docker-compose file](https://github.com/supabase-community/chatgpt-plugin-template-deno/blob/main/docker-compose.yml) also.
+
+```txt
+// Dockerfile
+FROM ghcr.io/supabase/edge-runtime:v1.2.18
+
+COPY ./functions /home/deno/functions
+CMD [ "start", "--main-service", "/home/deno/functions/main" ]
+```
+
+This will pull down Edge Runtime v1.2.18 (you can check the l[atest release here](https://github.com/supabase/edge-runtime/releases)) and start up the main service (our `/functions/main/index.ts` function).
+
+```yaml
+// docker-compose.yml
+version: "3.9"
+services:
+ web:
+ build: .
+ volumes:
+ - type: bind
+ source: ./functions
+ target: /home/deno/functions
+ ports:
+ - "8000:9000"
+```
+
+Edge Runtime will serve requests on port `9000`, so we’re creating a mapping from `[localhost:8000](http://localhost:8000)` where we want to serve our requests locally (of course you can adapt this to your needs) to port `9000` of our Docker container.
+
+Furthermore, we’re using [bind mounts](https://docs.docker.com/storage/bind-mounts/) to mount our functions directory into the container. This allows us to make modifications to our functions without needing to rebuild the container after, making for a great local developer experience.
+
+That’s it, now we can build and spin up our container from the terminal:
+
+```bash
+docker compose up --build
+```
+
+Go ahead and try it out by visiting:
+
+- [http://localhost:8000/chatgpt-plugin](http://localhost:8000/chatgpt-plugin)
+- [http://localhost:8000/.well-known/ai-plugin.json](http://localhost:8000/.well-known/ai-plugin.json)
+- [http://localhost:8000/chatgpt-plugin/openapi.json](http://localhost:8000/chatgpt-plugin/openapi.json)
+- [http://localhost:8000/chatgpt-plugin/todos/user](http://localhost:8000/chatgpt-plugin/todos/user)
+
+## Installing and testing the plugin locally
+
+You can conveniently test your plugin while running it on [localhost](http://localhost) using the [ChatGPT UI](https://chat.openai.com/):
+
+1. Select the plugin model from the top drop down, then select “Plugins”, “Plugin Store”, and finally “Develop your own plugin”.
+2. Enter `localhost:8000` and click "Find manifest file".
+3. Confirm with “Install [localhost](http://localhost) plugin”.
+
+That’s it, now go ahead and ask some questions, e.g. you can start with “Do I have any todos?”
+
+
+
+There you are, now go ahead and build your own plugin as it says on your todo list ;)
+
+## Deploying to Fly.io
+
+Once you’re happy with the functionality of your plugin, go ahead and deploy it to [Fly.io](http://Fly.io). After installing the [flyctl cli](https://fly.io/docs/hands-on/install-flyctl/), it only takes a couple of steps:
+
+- Change `http://localhost:8000` to your Fly domain in the `/main/ai-plugins.json` file
+- Open `fly.toml` and update the app name and optionally the region etc.
+- In your terminal, run `fly apps create` and specify the app name you just set in your `fly.toml` file.
+- Finally, run `fly deploy`.
+
+There you go, now you’re ready to [release your plugin to the world](https://platform.openai.com/docs/plugins/production/faq) \o/
+
+## Conclusion
+
+ChatGPT is a powerful new interface and its usage is growing rapidly. With ChatGPT Plugins you can allow your users to access your service directly from ChatGPT, using cutting edge technologies like TypeScript and Deno.
+
+In a next step you can add authentication to your plugin, let us know on [Twitter](https://twitter.com/Supabase) if you’d be interested in a tutorial for that. We can’t wait to see what you will build!
+
+## More AI resources
+
+- [OpenAI ChatGPT Plugin docs](https://platform.openai.com/docs/plugins/introduction)
+- [Advanced plugin template](https://github.com/openai/chatgpt-retrieval-plugin)
+- Learn to build your own ChatGPT-style docs search with [Deno Fresh](https://deno.com/blog/build-chatgpt-doc-search-with-supabase-fresh) or [Next.js](https://vercel.com/templates/next.js/nextjs-openai-doc-search-starter)
+- [How we builtChatGPT for the Supabase Docs](https://supabase.com/blog/chatgpt-supabase-docs).
+- [Docs pgvector: Embeddings and vector similarity](https://supabase.com/docs/guides/database/extensions/pgvector)
diff --git a/apps/www/components/Nav/index.tsx b/apps/www/components/Nav/index.tsx
index dd034e420d5..60b3a690c04 100644
--- a/apps/www/components/Nav/index.tsx
+++ b/apps/www/components/Nav/index.tsx
@@ -2,7 +2,7 @@ import React, { useState } from 'react'
import Link from 'next/link'
import { useRouter } from 'next/router'
-import { Button, Badge, Announcement, AnnouncementCountdown, IconStar, IconChevronDown } from 'ui'
+import { Button, Badge, IconStar, IconChevronDown } from 'ui'
import FlyOut from '~/components/UI/FlyOut'
import Transition from 'lib/Transition'
@@ -197,9 +197,8 @@ const Nav = () => {
return (
<>
-
-
-
+ {/*
+ */}
-
+
{context.children}
diff --git a/apps/www/pages/aup.mdx b/apps/www/pages/aup.mdx
index d03fffe4fef..7bd29166f88 100644
--- a/apps/www/pages/aup.mdx
+++ b/apps/www/pages/aup.mdx
@@ -2,7 +2,7 @@ import Layout from '../layouts/Layout'
import SectionContainer from '../components/Layouts/SectionContainer'
export const meta = {
- title: 'Acceptable Use Policy',
+ title: 'Acceptable Use Policy | Supabase',
description: 'Supabase Acceptable Use Policy',
}
diff --git a/apps/www/pages/privacy.mdx b/apps/www/pages/privacy.mdx
index 96c869ca552..56c5018e669 100644
--- a/apps/www/pages/privacy.mdx
+++ b/apps/www/pages/privacy.mdx
@@ -2,7 +2,7 @@ import Layout from '../layouts/Layout'
import SectionContainer from '../components/Layouts/SectionContainer'
export const meta = {
- title: 'Privacy Policy',
+ title: 'Privacy Policy | Supabase',
description: 'Supabase Privacy Policy',
}
diff --git a/apps/www/pages/sla.mdx b/apps/www/pages/sla.mdx
index e535758d638..228f9316e71 100644
--- a/apps/www/pages/sla.mdx
+++ b/apps/www/pages/sla.mdx
@@ -2,7 +2,7 @@ import Layout from '../layouts/Layout'
import SectionContainer from '../components/Layouts/SectionContainer'
export const meta = {
- title: 'Service Level Agreement',
+ title: 'Service Level Agreement | Supabase',
description: 'Supabase Service Level Agreement',
}
diff --git a/apps/www/pages/supasquad.mdx b/apps/www/pages/supasquad.mdx
index e305eab4b73..04eee13ef51 100644
--- a/apps/www/pages/supasquad.mdx
+++ b/apps/www/pages/supasquad.mdx
@@ -2,7 +2,7 @@ import Layout from '../layouts/Layout'
import SectionContainer from '../components/Layouts/SectionContainer'
export const meta = {
- title: 'SupaSquad',
+ title: 'SupaSquad | Supabase',
description: 'Supabase Advocate program',
}
diff --git a/apps/www/pages/support-policy.mdx b/apps/www/pages/support-policy.mdx
new file mode 100644
index 00000000000..51bf170c482
--- /dev/null
+++ b/apps/www/pages/support-policy.mdx
@@ -0,0 +1,83 @@
+import Layout from '../layouts/Layout'
+import SectionContainer from '../components/Layouts/SectionContainer'
+
+export const meta = {
+ title: 'Support Policy',
+ description: 'Supabase Support Policy',
+}
+
+
+
+# Support Policy
+
+Supabase is dedicated to providing an exceptional customer experience. As a crucial aspect of
+this commitment, we offer limited technical support for all paid projects running on our hosted Supabase platform. Technical support is confined to the scope, hours, contacts, and channels below.
+
+## Scope
+
+Supabase's support offering is available only for the technologies supported by the Supabase Platform and is restricted to the following:
+
+**Configuration Issues**
+
+- Installation of extensions
+- Best practices for auth configuration
+- General questions about the supabase stack
+
+**Troubleshooting**
+
+- Providing workarounds or resolutions for known problems
+- Answering general how-to questions and providing pointers to documentation
+- Troubleshooting supported software packages (Realtime, Edge Functions, Webhooks, PostgREST, Auth) exhibiting erratic or faulty behavior on Supabase, independent of the user's application code
+
+**Not Covered**
+
+Supabase technical support services do not extend to the following areas:
+
+- General debugging of user applications
+- Rewriting application code for compatibility with Supabase
+- Modifying and/or patching third-party or Open Source software packages for compatibility with Supabase
+
+## Who can contact support?
+
+Billing and account management support is available to all customers.
+
+Limited technical support is accessible for Supabase customers utilizing paid Supabase resources and/or paid Supabase Add-Ons. Support requests will only be processed if:
+
+- The request is made through one of our official support channels (see below)
+- The request originates from a registered Supabase account email address
+- The requester has Developer or higher access to any specific Supabase projects pertaining to the request.
+
+## Official Support Channels
+
+- Web and Dashboard: Support is available exclusively through the Supabase help feature in the dashboard or this website -[https://app.supabase.com/support/new](https://app.supabase.com/support/new)
+- Email: If for some reason you are unable to access the dashboard or ticket from you can contact support by emailing support@supabase.com from a registered Supabase account email address
+
+## Community Support
+
+Supabase support staff will only address support requests received through the official channels mentioned earlier. However, community channels may exist for peer-to-peer support and discussions. This is support provided by volunteers that contribute to the Supabase community.
+
+For questions related to debugging code, we recommend reaching out on **[GitHub Discussions](https://github.com/supabase/supabase/discussions)** or on **[Discord](https://discord.supabase.com/)**. The community is made up of experienced developers who may be able to provide guidance and support with code-related issues.
+
+To get the most helpful response from the community, providing precise and detailed information about your problem and any error messages you may be encountering is important. Be sure to **include any relevant code snippets explaining how to reproduce** the issue in your message.
+
+Please note that Supabase team members may participate in community channels at their discretion, but there is no guarantee of response for support issues unless they are
+submitted through one of the official channels above.
+
+## Service Level Agreement
+
+Service Level Agreements are only available to Enterprise customers. You can details of our SLA including support response times on the dedicated page for this topic -
+[https://supabase.com/sla](https://supabase.com/sla)
+
+## Proactive Monitoring
+
+In the event of a platform issue, a notice will be posted on our platform status site at [status.supabase.com](https://status.supabase.com/) to promptly communicate the impact and status of any such issue. You do not need to submit a support ticket if there's an ongoing platform issue. Instead, monitor the status page which will always be kept up-to-date with the latest progress and information.
+
+## Premium Support
+
+Please contact us to find out about our Premium Support options available for Teams Tier and Enterprise customers using the form below:
+
+[https://forms.supabase.com/enterprise](https://forms.supabase.com/enterprise)
+
+
+
+export default (context) =>
diff --git a/apps/www/public/images/blog/2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_demo_localhost.png b/apps/www/public/images/blog/2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_demo_localhost.png
new file mode 100644
index 00000000000..f8ef43d078a
Binary files /dev/null and b/apps/www/public/images/blog/2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_demo_localhost.png differ
diff --git a/apps/www/public/images/blog/2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg b/apps/www/public/images/blog/2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg
new file mode 100644
index 00000000000..f63ae65dd7c
Binary files /dev/null and b/apps/www/public/images/blog/2023-05-15-chatgpt-plugin-temnplate-deno/chatgpt_plugin_template_deno.jpeg differ
diff --git a/apps/www/public/images/blog/flutter-hackathon/discord.png b/apps/www/public/images/blog/flutter-hackathon/discord.png
new file mode 100644
index 00000000000..3d2f0910c1e
Binary files /dev/null and b/apps/www/public/images/blog/flutter-hackathon/discord.png differ
diff --git a/apps/www/public/images/blog/flutter-hackathon/keyboard.png b/apps/www/public/images/blog/flutter-hackathon/keyboard.png
new file mode 100644
index 00000000000..9f7768952f7
Binary files /dev/null and b/apps/www/public/images/blog/flutter-hackathon/keyboard.png differ
diff --git a/apps/www/public/images/blog/flutter-hackathon/stickers.png b/apps/www/public/images/blog/flutter-hackathon/stickers.png
new file mode 100644
index 00000000000..44c0e3c82ff
Binary files /dev/null and b/apps/www/public/images/blog/flutter-hackathon/stickers.png differ
diff --git a/apps/www/public/images/blog/flutter-hackathon/thumbnail.jpg b/apps/www/public/images/blog/flutter-hackathon/thumbnail.jpg
new file mode 100644
index 00000000000..6db1f961d21
Binary files /dev/null and b/apps/www/public/images/blog/flutter-hackathon/thumbnail.jpg differ
diff --git a/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml b/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml
index 84fe8fab257..7bd6ba6d8c6 100644
--- a/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml
+++ b/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml
@@ -5,35 +5,35 @@
https://supabase.com/blog
Latest Postgres news from Angelico de los Reyes at Supabase
en
-
Thu, 15 Dec 2022 03:03:30 +0000
+
Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-point-in-time-recovery
Point in Time Recovery is now available for Pro projects
https://supabase.com/blog/postgres-point-in-time-recovery
We're making PITR available for more projects, with a new Dashboard UI that makes it simple to use.
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/continuous-postgresql-backup-walg
Continuous PostgreSQL Backups using WAL-G
https://supabase.com/blog/continuous-postgresql-backup-walg
Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G.
- Sun, 02 Aug 2020 02:02:30 +0000
+ Sat, 01 Aug 2020 22:10:00 +0000
-
https://supabase.com/blog/postgresql-templates
What are PostgreSQL Templates?
https://supabase.com/blog/postgresql-templates
What are PostgreSQL templates and what are they used for?
- Thu, 09 Jul 2020 02:02:30 +0000
+ Wed, 08 Jul 2020 22:10:00 +0000
-
https://supabase.com/blog/postgresql-physical-logical-backups
Physical vs Logical Backups in PostgreSQL
https://supabase.com/blog/postgresql-physical-logical-backups
What are physical and logical backups in Postgres?
- Tue, 07 Jul 2020 02:02:30 +0000
+ Mon, 06 Jul 2020 22:10:00 +0000
diff --git a/apps/www/public/planetpg-ant_wilson-rss.xml b/apps/www/public/planetpg-ant_wilson-rss.xml
index 07cfe4056b8..43868faddee 100644
--- a/apps/www/public/planetpg-ant_wilson-rss.xml
+++ b/apps/www/public/planetpg-ant_wilson-rss.xml
@@ -5,14 +5,14 @@
https://supabase.com/blog
Latest Postgres news from Ant Wilson at Supabase
en
-
Sat, 27 Feb 2021 03:03:30 +0000
+
Fri, 26 Feb 2021 23:11:00 +0000
-
https://supabase.com/blog/cracking-postgres-interview
Cracking PostgreSQL Interview Questions
https://supabase.com/blog/cracking-postgres-interview
Understand the top PostgreSQL Interview Questions
- Sat, 27 Feb 2021 03:03:30 +0000
+ Fri, 26 Feb 2021 23:11:00 +0000
diff --git a/apps/www/public/planetpg-bo_lu-rss.xml b/apps/www/public/planetpg-bo_lu-rss.xml
index 16f75abaa7e..9dbe70f0c1a 100644
--- a/apps/www/public/planetpg-bo_lu-rss.xml
+++ b/apps/www/public/planetpg-bo_lu-rss.xml
@@ -5,14 +5,14 @@
https://supabase.com/blog
Latest Postgres news from Bo Lu at Supabase
en
-
Wed, 14 Dec 2022 03:03:30 +0000
+
Wed, 14 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
Supabase Wrappers, a Postgres FDW framework written in Rust
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
A framework for building Postgres Foreign Data Wrappers which connects to Stripe, Firebase, Clickhouse, and more.
- Wed, 14 Dec 2022 03:03:30 +0000
+ Wed, 14 Dec 2022 23:11:00 +0000
diff --git a/apps/www/public/planetpg-burggraf-rss.xml b/apps/www/public/planetpg-burggraf-rss.xml
index 26233a86f1e..2efaf1c4523 100644
--- a/apps/www/public/planetpg-burggraf-rss.xml
+++ b/apps/www/public/planetpg-burggraf-rss.xml
@@ -5,21 +5,21 @@
https://supabase.com/blog
Latest Postgres news from Mark Burggraf at Supabase
en
-
Wed, 23 Nov 2022 03:03:30 +0000
+
Wed, 23 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/sql-or-nosql-both-with-postgresql
SQL or NoSQL? Why not use both (with PostgreSQL)?
https://supabase.com/blog/sql-or-nosql-both-with-postgresql
How to turn Postgres into an easy-to-use NoSQL database that retains all the power of SQL
- Wed, 23 Nov 2022 03:03:30 +0000
+ Wed, 23 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-wasm
Postgres WASM by Snaplet and Supabase
https://supabase.com/blog/postgres-wasm
We're open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet.
- Sun, 02 Oct 2022 02:02:30 +0000
+ Sun, 02 Oct 2022 22:10:00 +0000
diff --git a/apps/www/public/planetpg-gregnr-rss.xml b/apps/www/public/planetpg-gregnr-rss.xml
index c537ef6bf5d..e9c9b9954a8 100644
--- a/apps/www/public/planetpg-gregnr-rss.xml
+++ b/apps/www/public/planetpg-gregnr-rss.xml
@@ -5,14 +5,14 @@
https://supabase.com/blog
Latest Postgres news from Greg Richardson at Supabase
en
-
Sun, 05 Feb 2023 03:03:30 +0000
+
Sun, 05 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/openai-embeddings-postgres-vector
Storing OpenAI embeddings in Postgres with pgvector
https://supabase.com/blog/openai-embeddings-postgres-vector
An example of how to build an AI-powered search engine using OpenAI's embeddings and PostgreSQL.
- Sun, 05 Feb 2023 03:03:30 +0000
+ Sun, 05 Feb 2023 23:11:00 +0000
diff --git a/apps/www/public/planetpg-michel-rss.xml b/apps/www/public/planetpg-michel-rss.xml
index 3bcd14a76b8..5ad62ff8606 100644
--- a/apps/www/public/planetpg-michel-rss.xml
+++ b/apps/www/public/planetpg-michel-rss.xml
@@ -5,21 +5,21 @@
https://supabase.com/blog
Latest Postgres news from Michel Pelletier at Supabase
en
-
Thu, 15 Dec 2022 03:03:30 +0000
+
Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/vault-now-in-beta
Supabase Vault is now in Beta
https://supabase.com/blog/vault-now-in-beta
A Postgres extension to store encrypted secrets and encrypt data.
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/transparent-column-encryption-with-postgres
Transparent Column Encryption with Postgres
https://supabase.com/blog/transparent-column-encryption-with-postgres
Using pgsodium's Transparent Column Encryption to encrypt data and provide your users with row-level encryption.
- Wed, 30 Nov 2022 03:03:30 +0000
+ Wed, 30 Nov 2022 23:11:00 +0000
diff --git a/apps/www/public/planetpg-oli_rice-rss.xml b/apps/www/public/planetpg-oli_rice-rss.xml
index 0e3baf3fb66..a3cb7fe2fd5 100644
--- a/apps/www/public/planetpg-oli_rice-rss.xml
+++ b/apps/www/public/planetpg-oli_rice-rss.xml
@@ -5,49 +5,49 @@
https://supabase.com/blog
Latest Postgres news from Oliver Rice at Supabase
en
-
Thu, 20 Apr 2023 02:02:30 +0000
+
Thu, 20 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/whats-new-in-pg-graphql-v1-2
What's New in pg_graphql v1.2
https://supabase.com/blog/whats-new-in-pg-graphql-v1-2
New Features in the v1.2 release of pg_graphql
- Thu, 20 Apr 2023 02:02:30 +0000
+ Thu, 20 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/type-constraints-in-65-lines-of-sql
Type Constraints in 65 lines of SQL
https://supabase.com/blog/type-constraints-in-65-lines-of-sql
Creating validated data types in Postgres
- Thu, 16 Feb 2023 03:03:30 +0000
+ Thu, 16 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/pg-graphql-v1
pg_graphql v1.0
https://supabase.com/blog/pg-graphql-v1
Announcing the v1.0 release of pg_graphql
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
Supabase Wrappers, a Postgres FDW framework written in Rust
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
A framework for building Postgres Foreign Data Wrappers which connects to Stripe, Firebase, Clickhouse, and more.
- Wed, 14 Dec 2022 03:03:30 +0000
+ Wed, 14 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation
pg_jsonschema: JSON Schema support for Postgres
https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation
Today we're releasing pg_jsonschema, a Postgres extension for JSON validation.
- Thu, 18 Aug 2022 02:02:30 +0000
+ Thu, 18 Aug 2022 22:10:00 +0000
-
- https://supabase.com/blog/audit
+ https://supabase.com/blog/postgres-audit
Postgres Auditing in 150 lines of SQL
- https://supabase.com/blog/audit
+ https://supabase.com/blog/postgres-audit
PostgreSQL has a robust set of features which we can leverage to create a generic auditing solution in 150 lines of SQL.
- Mon, 07 Mar 2022 03:03:30 +0000
+ Mon, 07 Mar 2022 23:11:00 +0000
diff --git a/apps/www/public/planetpg-paul_copplestone-rss.xml b/apps/www/public/planetpg-paul_copplestone-rss.xml
index b67aabf2433..7e44f582f2b 100644
--- a/apps/www/public/planetpg-paul_copplestone-rss.xml
+++ b/apps/www/public/planetpg-paul_copplestone-rss.xml
@@ -5,49 +5,49 @@
https://supabase.com/blog
Latest Postgres news from Paul Copplestone at Supabase
en
-
Sun, 30 Apr 2023 02:02:30 +0000
+
Sun, 30 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/postgres-pluggable-strorage
Next steps for Postgres pluggable storage
https://supabase.com/blog/postgres-pluggable-strorage
Exploring history of Postgres pluggable storage and the possibility of landing it in the Postgres core.
- Sun, 30 Apr 2023 02:02:30 +0000
+ Sun, 30 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
Supabase Wrappers, a Postgres FDW framework written in Rust
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
A framework for building Postgres Foreign Data Wrappers which connects to Stripe, Firebase, Clickhouse, and more.
- Wed, 14 Dec 2022 03:03:30 +0000
+ Wed, 14 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-crdt
pg_crdt - an experimental CRDT extension for Postgres
https://supabase.com/blog/postgres-crdt
Embedding Yjs and Automerge into Postgres for collaborative applications.
- Fri, 09 Dec 2022 03:03:30 +0000
+ Fri, 09 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/partial-postgresql-data-dumps-with-rls
Partial data dumps using Postgres Row Level Security
https://supabase.com/blog/partial-postgresql-data-dumps-with-rls
Using RLS to create seed files for local PostgreSQL testing.
- Mon, 27 Jun 2022 02:02:30 +0000
+ Mon, 27 Jun 2022 22:10:00 +0000
-
https://supabase.com/blog/postgres-as-a-cron-server
Postgres as a CRON Server
https://supabase.com/blog/postgres-as-a-cron-server
Running repetitive tasks with your Postgres database.
- Fri, 05 Mar 2021 03:03:30 +0000
+ Thu, 04 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/postgresql-views
Postgres Views
https://supabase.com/blog/postgresql-views
Creating and using a view in PostgreSQL.
- Wed, 18 Nov 2020 03:03:30 +0000
+ Tue, 17 Nov 2020 23:11:00 +0000
diff --git a/apps/www/public/planetpg-pavel-rss.xml b/apps/www/public/planetpg-pavel-rss.xml
index e6dbbb4c1fe..b2852591d5a 100644
--- a/apps/www/public/planetpg-pavel-rss.xml
+++ b/apps/www/public/planetpg-pavel-rss.xml
@@ -5,21 +5,21 @@
https://supabase.com/blog
Latest Postgres news from Pavel Borisov at Supabase
en
-
Thu, 15 Dec 2022 03:03:30 +0000
+
Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/new-in-postgres-15
What's new in Postgres 15?
https://supabase.com/blog/new-in-postgres-15
Describes the release of Postgres 15, new features and reasons to use it
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgresql-commitfest
What is PostgreSQL commitfest and how to contribute
https://supabase.com/blog/postgresql-commitfest
A time-tested method for contributing to the core Postgres code
- Wed, 26 Oct 2022 02:02:30 +0000
+ Wed, 26 Oct 2022 22:10:00 +0000
diff --git a/apps/www/public/planetpg-steve_chavez-rss.xml b/apps/www/public/planetpg-steve_chavez-rss.xml
index 575cafb6b06..d8077fd31f5 100644
--- a/apps/www/public/planetpg-steve_chavez-rss.xml
+++ b/apps/www/public/planetpg-steve_chavez-rss.xml
@@ -5,21 +5,21 @@
https://supabase.com/blog
Latest Postgres news from Steve Chavez at Supabase
en
-
Thu, 15 Dec 2022 03:03:30 +0000
+
Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgrest-11-prerelease
PostgREST 11 pre-release
https://supabase.com/blog/postgrest-11-prerelease
Describes new features of PostgREST 11 pre-release
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/roles-postgres-hooks
Protecting reserved roles with PostgreSQL Hooks
https://supabase.com/blog/roles-postgres-hooks
Using Postgres Hooks to protect functionality in your Postgres database.
- Thu, 01 Jul 2021 02:02:30 +0000
+ Thu, 01 Jul 2021 22:10:00 +0000
diff --git a/apps/www/public/planetpg-victor-rss.xml b/apps/www/public/planetpg-victor-rss.xml
index e742fb6eec8..176c89edcfd 100644
--- a/apps/www/public/planetpg-victor-rss.xml
+++ b/apps/www/public/planetpg-victor-rss.xml
@@ -5,28 +5,28 @@
https://supabase.com/blog
Latest Postgres news from Victor at Supabase
en
-
Thu, 13 Oct 2022 02:02:30 +0000
+
Thu, 13 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/postgres-full-text-search-vs-the-rest
Postgres Full Text Search vs the rest
https://supabase.com/blog/postgres-full-text-search-vs-the-rest
Comparing one of the most popular Postgres features against alternatives
- Thu, 13 Oct 2022 02:02:30 +0000
+ Thu, 13 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/choosing-a-postgres-primary-key
Choosing a Postgres Primary Key
https://supabase.com/blog/choosing-a-postgres-primary-key
Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out
- Wed, 07 Sep 2022 02:02:30 +0000
+ Wed, 07 Sep 2022 22:10:00 +0000
-
https://supabase.com/blog/seen-by-in-postgresql
Implementing "seen by" functionality with Postgres
https://supabase.com/blog/seen-by-in-postgresql
Different approaches for tracking visitor counts with PostgreSQL.
- Sun, 17 Jul 2022 02:02:30 +0000
+ Sun, 17 Jul 2022 22:10:00 +0000
diff --git a/apps/www/public/rss.xml b/apps/www/public/rss.xml
index 9ea9162ea31..869c0b89af0 100644
--- a/apps/www/public/rss.xml
+++ b/apps/www/public/rss.xml
@@ -5,1246 +5,1274 @@
https://supabase.com
Latest news from Supabase
en
-
Sun, 30 Apr 2023 02:02:30 +0000
+
Sun, 14 May 2023 22:10:00 +0000
-
+ https://supabase.com/blog/building-chatgpt-plugins-template
+ Building ChatGPT Plugins with Supabase Edge Runtime
+ https://supabase.com/blog/building-chatgpt-plugins-template
+ undefined
+ Sun, 14 May 2023 22:10:00 +0000
+
+
-
+ https://supabase.com/blog/flutter-hackathon
+ Flutter Hackathon
+ https://supabase.com/blog/flutter-hackathon
+ Build Flutter apps and win limited edition swag.
+ Thu, 11 May 2023 22:10:00 +0000
+
+
-
+ https://supabase.com/blog/supabase-beta-update-april-2023
+ Supabase Beta April 2023
+ https://supabase.com/blog/supabase-beta-update-april-2023
+ A review of Launch Week 7 and more exciting updates from last month.
+ Mon, 08 May 2023 22:10:00 +0000
+
+
-
+ https://supabase.com/blog/flutter-multi-factor-authentication
+ Securing your Flutter apps with Multi-Factor Authentication
+ https://supabase.com/blog/flutter-multi-factor-authentication
+ Build a Flutter app where the user is required to authenticate using Multi-Factor Authentication.
+ Wed, 03 May 2023 22:10:00 +0000
+
+
-
https://supabase.com/blog/postgres-pluggable-strorage
Next steps for Postgres pluggable storage
https://supabase.com/blog/postgres-pluggable-strorage
Exploring history of Postgres pluggable storage and the possibility of landing it in the Postgres core.
- Sun, 30 Apr 2023 02:02:30 +0000
+ Sun, 30 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/launch-week-7-hackathon-winners
Launch Week 7 Hackathon Winners
https://supabase.com/blog/launch-week-7-hackathon-winners
Announcing the winners of the Launch Week 7 Hackathon!
- Sun, 23 Apr 2023 02:02:30 +0000
+ Sun, 23 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/whats-new-in-pg-graphql-v1-2
What's New in pg_graphql v1.2
https://supabase.com/blog/whats-new-in-pg-graphql-v1-2
New Features in the v1.2 release of pg_graphql
- Thu, 20 Apr 2023 02:02:30 +0000
+ Thu, 20 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/supabase-studio-2.0
Supabase Studio 2.0: help when you need it most
https://supabase.com/blog/supabase-studio-2.0
undefined
- Thu, 13 Apr 2023 02:02:30 +0000
+ Thu, 13 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/dbdev
dbdev: PostgreSQL Package Manager
https://supabase.com/blog/dbdev
We're publicly previewing dbdev, a PostgreSQL package manager.
- Thu, 13 Apr 2023 02:02:30 +0000
+ Thu, 13 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/pg-tle
Trusted Language Extensions for Postgres
https://supabase.com/blog/pg-tle
undefined
- Thu, 13 Apr 2023 02:02:30 +0000
+ Thu, 13 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/launch-week-7-community-highlights
Launch Week 7 Community Highlights
https://supabase.com/blog/launch-week-7-community-highlights
undefined
- Thu, 13 Apr 2023 02:02:30 +0000
+ Thu, 13 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/supabase-auth-sso-pkce
Supabase Auth: SSO, Mobile, and Server-side support
https://supabase.com/blog/supabase-auth-sso-pkce
undefined
- Wed, 12 Apr 2023 02:02:30 +0000
+ Wed, 12 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/storage-v3-resumable-uploads
Supabase Storage v3: Resumable Uploads with support for 50GB files
https://supabase.com/blog/storage-v3-resumable-uploads
undefined
- Tue, 11 Apr 2023 02:02:30 +0000
+ Tue, 11 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/edge-runtime-self-hosted-deno-functions
Supabase Edge Runtime: Self-hosted Deno Functions
https://supabase.com/blog/edge-runtime-self-hosted-deno-functions
undefined
- Mon, 10 Apr 2023 02:02:30 +0000
+ Mon, 10 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/supabase-logs-self-hosted
Supabase Logs: open source logging server
https://supabase.com/blog/supabase-logs-self-hosted
undefined
- Sun, 09 Apr 2023 02:02:30 +0000
+ Sun, 09 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-update-march-2023
Supabase Beta March 2023
https://supabase.com/blog/supabase-beta-update-march-2023
We are in full shipping mode 🛥️… Launch Week 7 can’t come quickly enough!
- Fri, 07 Apr 2023 02:02:30 +0000
+ Fri, 07 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/launch-week-7-hackathon
The Supabase AI Hackathon
https://supabase.com/blog/launch-week-7-hackathon
Build an Open Source Project over 10 days. 5 prize categories.
- Thu, 06 Apr 2023 02:02:30 +0000
+ Thu, 06 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/designing-with-ai-midjourney
Designing with AI: Generating unique artwork for every user
https://supabase.com/blog/designing-with-ai-midjourney
Using MidJourney to generative artwork and serving ticket images with Edge Functions
- Thu, 06 Apr 2023 02:02:30 +0000
+ Thu, 06 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/infinite-scroll-with-nextjs-framer-motion
Infinite scroll with Next.js, Framer Motion, and Supabase
https://supabase.com/blog/infinite-scroll-with-nextjs-framer-motion
Lazy load and paginate data on scroll with Next.js and a sprinkle of Framer Motion magic ✨
- Mon, 03 Apr 2023 02:02:30 +0000
+ Mon, 03 Apr 2023 22:10:00 +0000
-
https://supabase.com/blog/supaclub
SupaClub
https://supabase.com/blog/supaclub
The Worlds First Software Engineering Nightclub.
- Fri, 31 Mar 2023 02:02:30 +0000
+ Fri, 31 Mar 2023 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-update-february-2023
Supabase Beta February 2023
https://supabase.com/blog/supabase-beta-update-february-2023
There is something for everybody this month - AI, Auth, Database, Edge Functions, GraphQL … you name it!
- Wed, 08 Mar 2023 03:03:30 +0000
+ Wed, 08 Mar 2023 23:11:00 +0000
-
https://supabase.com/blog/geo-queries-with-postgis-in-ionic-angular
Geo Queries with PostGIS in Ionic Angular
https://supabase.com/blog/geo-queries-with-postgis-in-ionic-angular
Using the PostGIS extension to build a cross-platform application with Ionic Angular.
- Tue, 28 Feb 2023 03:03:30 +0000
+ Tue, 28 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/type-constraints-in-65-lines-of-sql
Type Constraints in 65 lines of SQL
https://supabase.com/blog/type-constraints-in-65-lines-of-sql
Creating validated data types in Postgres
- Thu, 16 Feb 2023 03:03:30 +0000
+ Thu, 16 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/case-study-happyteams
HappyTeams unlocks better performance and reduces cost with Supabase
https://supabase.com/blog/case-study-happyteams
How a bootstrapped startup migrated from Heroku to Supabase in 30 minutes and never looked back
- Wed, 15 Feb 2023 03:03:30 +0000
+ Wed, 15 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/flutter-real-time-multiplayer-game
How to build a real-time multiplayer game with Flutter Flame
https://supabase.com/blog/flutter-real-time-multiplayer-game
Build a real-time multiplayer game using Flutter, Flame, and Supabase realtime.
- Mon, 13 Feb 2023 03:03:30 +0000
+ Mon, 13 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-january-2023
Supabase Beta January 2023
https://supabase.com/blog/supabase-beta-january-2023
New Postgres extensions, pg_graphql updates, changes to Edge Functions, and more!
- Tue, 07 Feb 2023 03:03:30 +0000
+ Tue, 07 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/chatgpt-supabase-docs
Supabase Clippy: ChatGPT for Supabase Docs
https://supabase.com/blog/chatgpt-supabase-docs
Creating a ChatGPT interface for the Supabase documentation.
- Mon, 06 Feb 2023 03:03:30 +0000
+ Mon, 06 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/openai-embeddings-postgres-vector
Storing OpenAI embeddings in Postgres with pgvector
https://supabase.com/blog/openai-embeddings-postgres-vector
An example of how to build an AI-powered search engine using OpenAI's embeddings and PostgreSQL.
- Sun, 05 Feb 2023 03:03:30 +0000
+ Sun, 05 Feb 2023 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-december-2022
Supabase Beta December 2022
https://supabase.com/blog/supabase-beta-december-2022
This month the Beta Update is a Launch Week 6 Special, where we review the cascade of announcements.
- Wed, 04 Jan 2023 03:03:30 +0000
+ Wed, 04 Jan 2023 23:11:00 +0000
-
https://supabase.com/blog/launch-week-6-hackathon-winners
Launch Week 6 Hackathon Winners
https://supabase.com/blog/launch-week-6-hackathon-winners
Announcing the winners of the Launch Week 6 Hackathon!
- Mon, 02 Jan 2023 03:03:30 +0000
+ Mon, 02 Jan 2023 23:11:00 +0000
-
https://supabase.com/blog/vault-now-in-beta
Supabase Vault is now in Beta
https://supabase.com/blog/vault-now-in-beta
A Postgres extension to store encrypted secrets and encrypt data.
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgrest-11-prerelease
PostgREST 11 pre-release
https://supabase.com/blog/postgrest-11-prerelease
Describes new features of PostgREST 11 pre-release
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-point-in-time-recovery
Point in Time Recovery is now available for Pro projects
https://supabase.com/blog/postgres-point-in-time-recovery
We're making PITR available for more projects, with a new Dashboard UI that makes it simple to use.
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/pg-graphql-v1
pg_graphql v1.0
https://supabase.com/blog/pg-graphql-v1
Announcing the v1.0 release of pg_graphql
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/new-in-postgres-15
What's new in Postgres 15?
https://supabase.com/blog/new-in-postgres-15
Describes the release of Postgres 15, new features and reasons to use it
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/launch-week-6-wrap-up
Launch Week 6: Wrap Up
https://supabase.com/blog/launch-week-6-wrap-up
That's a wrap on Supabase Launch Week Day 6. Here's everything we shipped in one long blog post.
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/launch-week-6-community-day
Community Day
https://supabase.com/blog/launch-week-6-community-day
Wrapping up Launch Week 6 with contributors, partners, and friends.
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/custom-domain-names
Custom Domain Names
https://supabase.com/blog/custom-domain-names
Change your Supabase project's domain name to your own domain.
- Thu, 15 Dec 2022 03:03:30 +0000
+ Thu, 15 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
Supabase Wrappers, a Postgres FDW framework written in Rust
https://supabase.com/blog/postgres-foreign-data-wrappers-rust
A framework for building Postgres Foreign Data Wrappers which connects to Stripe, Firebase, Clickhouse, and more.
- Wed, 14 Dec 2022 03:03:30 +0000
+ Wed, 14 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/mfa-auth-via-rls
Multi-factor Authentication via Row Level Security Enforcement
https://supabase.com/blog/mfa-auth-via-rls
MFA Auth with enforcement via RLS
- Tue, 13 Dec 2022 03:03:30 +0000
+ Tue, 13 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/storage-image-resizing-smart-cdn
Supabase Storage v2: Image resizing and Smart CDN
https://supabase.com/blog/storage-image-resizing-smart-cdn
We're introducing new features for Supabase Storage: Image resizing and a Smart CDN.
- Mon, 12 Dec 2022 03:03:30 +0000
+ Mon, 12 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/new-supabase-docs-built-with-nextjs
New Supabase Docs, built with Next.js
https://supabase.com/blog/new-supabase-docs-built-with-nextjs
We've redesigned our Docs and migrated to Next.js
- Sun, 11 Dec 2022 03:03:30 +0000
+ Sun, 11 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/postgres-crdt
pg_crdt - an experimental CRDT extension for Postgres
https://supabase.com/blog/postgres-crdt
Embedding Yjs and Automerge into Postgres for collaborative applications.
- Fri, 09 Dec 2022 03:03:30 +0000
+ Fri, 09 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/who-we-hire
Who We Hire at Supabase
https://supabase.com/blog/who-we-hire
Traits we look for to maintain a culture of shipping fast and often
- Thu, 08 Dec 2022 03:03:30 +0000
+ Thu, 08 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/launch-week-6-hackathon
Launch Week 6 Hackathon
https://supabase.com/blog/launch-week-6-hackathon
Build an Open Source Project, Win $1500 and the Supabase Darkmode Keyboard
- Thu, 08 Dec 2022 03:03:30 +0000
+ Thu, 08 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-november-2022
Supabase Beta November 2022
https://supabase.com/blog/supabase-beta-november-2022
We are preparing everything for Launch Week 6, but we still had time to ship some goodies this month!
- Tue, 06 Dec 2022 03:03:30 +0000
+ Tue, 06 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/the-supabase-content-storm
The Supabase Content Storm
https://supabase.com/blog/the-supabase-content-storm
We worked with +30 content creators to drop a mountain of content simultaneously.
- Mon, 05 Dec 2022 03:03:30 +0000
+ Mon, 05 Dec 2022 23:11:00 +0000
-
https://supabase.com/blog/transparent-column-encryption-with-postgres
Transparent Column Encryption with Postgres
https://supabase.com/blog/transparent-column-encryption-with-postgres
Using pgsodium's Transparent Column Encryption to encrypt data and provide your users with row-level encryption.
- Wed, 30 Nov 2022 03:03:30 +0000
+ Wed, 30 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/sql-or-nosql-both-with-postgresql
SQL or NoSQL? Why not use both (with PostgreSQL)?
https://supabase.com/blog/sql-or-nosql-both-with-postgresql
How to turn Postgres into an easy-to-use NoSQL database that retains all the power of SQL
- Wed, 23 Nov 2022 03:03:30 +0000
+ Wed, 23 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/flutter-authentication-and-authorization-with-rls
Flutter Authentication and Authorization with RLS
https://supabase.com/blog/flutter-authentication-and-authorization-with-rls
Learn how you can secure your Flutter app using Supabase Row Level Security.
- Mon, 21 Nov 2022 03:03:30 +0000
+ Mon, 21 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/fetching-and-caching-supabase-data-in-next-js-server-components
Fetching and caching Supabase data in Next.js 13 Server Components
https://supabase.com/blog/fetching-and-caching-supabase-data-in-next-js-server-components
Next.js 13 introduces new data fetching and caching methods to enable React Server Components and Suspense.
- Wed, 16 Nov 2022 03:03:30 +0000
+ Wed, 16 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/authentication-in-ionic-angular
Authentication in Ionic Angular with Supabase
https://supabase.com/blog/authentication-in-ionic-angular
Learn how to build an Ionic Angular app with authentication, Row Level Security, and Magic Link auth.
- Mon, 07 Nov 2022 03:03:30 +0000
+ Mon, 07 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-update-october-2022
Supabase Beta October 2022
https://supabase.com/blog/supabase-beta-update-october-2022
New SDKs, quickstarts, Functions tricks, and more. But, more importantly, Launch Week 6️ has a date!
- Tue, 01 Nov 2022 02:02:30 +0000
+ Tue, 01 Nov 2022 23:11:00 +0000
-
https://supabase.com/blog/postgresql-commitfest
What is PostgreSQL commitfest and how to contribute
https://supabase.com/blog/postgresql-commitfest
A time-tested method for contributing to the core Postgres code
- Wed, 26 Oct 2022 02:02:30 +0000
+ Wed, 26 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-flutter-sdk-v1-released
supabase-flutter v1 Released
https://supabase.com/blog/supabase-flutter-sdk-v1-released
We've released supabase-flutter v1. More intuitive way of accessing Supabase from your Flutter application.
- Thu, 20 Oct 2022 02:02:30 +0000
+ Thu, 20 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-js-v2-released
supabase-js v2 Released
https://supabase.com/blog/supabase-js-v2-released
We've released supabase-js v2. Updated examples, quickstarts, and an improved experience.
- Wed, 19 Oct 2022 02:02:30 +0000
+ Wed, 19 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/postgres-full-text-search-vs-the-rest
Postgres Full Text Search vs the rest
https://supabase.com/blog/postgres-full-text-search-vs-the-rest
Comparing one of the most popular Postgres features against alternatives
- Thu, 13 Oct 2022 02:02:30 +0000
+ Thu, 13 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-update-september-2022
Supabase Beta September 2022
https://supabase.com/blog/supabase-beta-update-september-2022
We were too focused on clearing out the backlog so we didn't ship anything new last month... or did we?!
- Tue, 04 Oct 2022 02:02:30 +0000
+ Tue, 04 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/postgres-wasm
Postgres WASM by Snaplet and Supabase
https://supabase.com/blog/postgres-wasm
We're open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet.
- Sun, 02 Oct 2022 02:02:30 +0000
+ Sun, 02 Oct 2022 22:10:00 +0000
-
https://supabase.com/blog/choosing-a-postgres-primary-key
Choosing a Postgres Primary Key
https://supabase.com/blog/choosing-a-postgres-primary-key
Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out
- Wed, 07 Sep 2022 02:02:30 +0000
+ Wed, 07 Sep 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-update-august-2022
Supabase Beta August 2022
https://supabase.com/blog/supabase-beta-update-august-2022
Launch Week Special. See everything we shipped, plus winners of the Hackathon and the extended Community Highlights
- Tue, 06 Sep 2022 02:02:30 +0000
+ Tue, 06 Sep 2022 22:10:00 +0000
-
https://supabase.com/blog/launch-week-5-hackathon-winners
Launch Week 5 Hackathon Winners
https://supabase.com/blog/launch-week-5-hackathon-winners
Announcing the winners of the Launch Week 5 Hackathon!
- Wed, 24 Aug 2022 02:02:30 +0000
+ Wed, 24 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/building-a-realtime-trello-board-with-supabase-and-angular
Building a Realtime Trello Board with Supabase and Angular
https://supabase.com/blog/building-a-realtime-trello-board-with-supabase-and-angular
Go beyond the hello world example with this real world project.
- Tue, 23 Aug 2022 02:02:30 +0000
+ Tue, 23 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-vault
Supabase Vault
https://supabase.com/blog/supabase-vault
Today we're announcing Vault, a Postgres extension for managing secrets and encryption inside your database.
- Thu, 18 Aug 2022 02:02:30 +0000
+ Thu, 18 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/postgrest-v10
PostgREST v10: EXPLAIN and Improved Relationship Detection
https://supabase.com/blog/postgrest-v10
Today, PostgREST 10 was released. Let's take a look at some of the new features that go hand in hand with supabase-js v2.
- Thu, 18 Aug 2022 02:02:30 +0000
+ Thu, 18 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation
pg_jsonschema: JSON Schema support for Postgres
https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation
Today we're releasing pg_jsonschema, a Postgres extension for JSON validation.
- Thu, 18 Aug 2022 02:02:30 +0000
+ Thu, 18 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/launch-week-5-one-more-thing
One more thing
https://supabase.com/blog/launch-week-5-one-more-thing
Let's be honest, it's never just one more thing.
- Thu, 18 Aug 2022 02:02:30 +0000
+ Thu, 18 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/launch-week-5-community-day
Community Day
https://supabase.com/blog/launch-week-5-community-day
Wrapping up Launch Week 5 with contributors, partners, and friends.
- Thu, 18 Aug 2022 02:02:30 +0000
+ Thu, 18 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-realtime-multiplayer-general-availability
Realtime: Multiplayer Edition
https://supabase.com/blog/supabase-realtime-multiplayer-general-availability
Announcing the general availability of Realtime's Broadcast and Presence.
- Wed, 17 Aug 2022 02:02:30 +0000
+ Wed, 17 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-soc2
Supabase is SOC2 compliant
https://supabase.com/blog/supabase-soc2
Supabase is now SOC2 compliant. Learn how we got here and what it means for our customers.
- Tue, 16 Aug 2022 02:02:30 +0000
+ Tue, 16 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-js-v2
supabase-js v2
https://supabase.com/blog/supabase-js-v2
A look at supabase-js v2, which brings type support and focuses on quality-of-life improvements for developers.
- Mon, 15 Aug 2022 02:02:30 +0000
+ Mon, 15 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta
Supabase CLI v1 and Management API Beta
https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta
We are moving Supabase CLI v1 out of beta, and releasing Management API beta.
- Sun, 14 Aug 2022 02:02:30 +0000
+ Sun, 14 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-series-b
Supabase Series B
https://supabase.com/blog/supabase-series-b
Supabase raised $80M in May, bringing our total funding to $116M.
- Thu, 11 Aug 2022 02:02:30 +0000
+ Thu, 11 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/launch-week-5-hackathon
Launch Week 5 Hackathon
https://supabase.com/blog/launch-week-5-hackathon
Build to win $1500 - Friday 12th to Monday 21st August 2022
- Tue, 09 Aug 2022 02:02:30 +0000
+ Tue, 09 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/slack-consolidate-slackbot-to-consolidate-messages
Slack Consolidate: a slackbot built with Python and Supabase
https://supabase.com/blog/slack-consolidate-slackbot-to-consolidate-messages
A slackbot to consolidate messages from different channels using Supabase, Slack SDK and Python
- Mon, 08 Aug 2022 02:02:30 +0000
+ Mon, 08 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-update-july-2022
Supabase Beta July 2022
https://supabase.com/blog/supabase-beta-update-july-2022
Launch Week Golden Tickets, Flutter SDK 1.0 Developer Preview and more...
- Tue, 02 Aug 2022 02:02:30 +0000
+ Tue, 02 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-flutter-sdk-1-developer-preview
Supabase Flutter SDK 1.0 Developer Preview
https://supabase.com/blog/supabase-flutter-sdk-1-developer-preview
Supabase Flutter SDK is getting a major update and we need your help making it better.
- Mon, 01 Aug 2022 02:02:30 +0000
+ Mon, 01 Aug 2022 22:10:00 +0000
-
https://supabase.com/blog/seen-by-in-postgresql
Implementing "seen by" functionality with Postgres
https://supabase.com/blog/seen-by-in-postgresql
Different approaches for tracking visitor counts with PostgreSQL.
- Sun, 17 Jul 2022 02:02:30 +0000
+ Sun, 17 Jul 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-auth-helpers-with-sveltekit-support
Revamped Auth Helpers for Supabase (with SvelteKit support)
https://supabase.com/blog/supabase-auth-helpers-with-sveltekit-support
Supabase Auth Helpers now have improved developer experience, Sveltekit support, and more.
- Tue, 12 Jul 2022 02:02:30 +0000
+ Tue, 12 Jul 2022 22:10:00 +0000
-
https://supabase.com/blog/beta-update-june-2022
Supabase Beta June 2022
https://supabase.com/blog/beta-update-june-2022
Auth Helpers, Unlimited Free Projects, CLI and more...
- Tue, 05 Jul 2022 02:02:30 +0000
+ Tue, 05 Jul 2022 22:10:00 +0000
-
https://supabase.com/blog/flutter-tutorial-building-a-chat-app
Flutter Tutorial: building a Flutter chat app
https://supabase.com/blog/flutter-tutorial-building-a-chat-app
Learn how to build a Flutter chat app with open source and scalable backend (inc. auth, realtime, database, and more).
- Wed, 29 Jun 2022 02:02:30 +0000
+ Wed, 29 Jun 2022 22:10:00 +0000
-
https://supabase.com/blog/visualizing-supabase-data-using-metabase
Visualizing Supabase Data using Metabase
https://supabase.com/blog/visualizing-supabase-data-using-metabase
How to create different kinds of charts out of data stored in Supabase using Metabase.
- Tue, 28 Jun 2022 02:02:30 +0000
+ Tue, 28 Jun 2022 22:10:00 +0000
-
https://supabase.com/blog/partial-postgresql-data-dumps-with-rls
Partial data dumps using Postgres Row Level Security
https://supabase.com/blog/partial-postgresql-data-dumps-with-rls
Using RLS to create seed files for local PostgreSQL testing.
- Mon, 27 Jun 2022 02:02:30 +0000
+ Mon, 27 Jun 2022 22:10:00 +0000
-
https://supabase.com/blog/loading-data-supabase-python
Python data loading with Supabase
https://supabase.com/blog/loading-data-supabase-python
An example of how to load data into Supabase using supabase-py
- Thu, 16 Jun 2022 02:02:30 +0000
+ Thu, 16 Jun 2022 22:10:00 +0000
-
https://supabase.com/blog/beta-update-may-2022
Supabase Beta May 2022
https://supabase.com/blog/beta-update-may-2022
Product and community updates including wildcard auth redirects, edge functions with webhooks, and Prometheus endpoints for everybody.
- Tue, 31 May 2022 02:02:30 +0000
+ Tue, 31 May 2022 22:10:00 +0000
-
https://supabase.com/blog/how-supabase-accelerates-development-of-all-pull-together
How Mike Lyndon is using Supabase to accelerate development of AllPullTogether
https://supabase.com/blog/how-supabase-accelerates-development-of-all-pull-together
Mike Lyndon is learning web development as he builds AllPullTogether, and Supabase is helping him accelerate what he can accomplish.
- Wed, 25 May 2022 02:02:30 +0000
+ Wed, 25 May 2022 22:10:00 +0000
-
https://supabase.com/blog/partner-gallery-works-with-supabase
Works With Supabase - announcing our Partner Gallery
https://supabase.com/blog/partner-gallery-works-with-supabase
Introducing our Partner Gallery - open source and made with Supabase.
- Tue, 19 Apr 2022 02:02:30 +0000
+ Tue, 19 Apr 2022 22:10:00 +0000
-
https://supabase.com/blog/bring-the-func-hackathon-winners
Bring the Func Hackathon Winners 2022
https://supabase.com/blog/bring-the-func-hackathon-winners
Celebrating many amazing OSS Hackathon projects using GraphQL and Edge Functions.
- Sun, 17 Apr 2022 02:02:30 +0000
+ Sun, 17 Apr 2022 22:10:00 +0000
-
https://supabase.com/blog/beta-update-march-2022
Supabase Beta March 2022
https://supabase.com/blog/beta-update-march-2022
Functions, GraphQL, and much more.
- Thu, 14 Apr 2022 02:02:30 +0000
+ Thu, 14 Apr 2022 22:10:00 +0000
-
https://supabase.com/blog/supabrew
Supabrew - Never Code Thirsty
https://supabase.com/blog/supabrew
A light and refreshing non-alcoholic beer for devs.
- Fri, 01 Apr 2022 02:02:30 +0000
+ Thu, 31 Mar 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-realtime-with-multiplayer-features
Supabase Realtime, with Multiplayer Features
https://supabase.com/blog/supabase-realtime-with-multiplayer-features
Today we're announced Realtime, with multiplayer features. Realtime enables broadcast, presence, and listening to database changes delivered over WebSockets.
- Fri, 01 Apr 2022 02:02:30 +0000
+ Thu, 31 Mar 2022 22:10:00 +0000
-
https://supabase.com/blog/hackathon-bring-the-func
Hackathon: Bring the Func(🕺)
https://supabase.com/blog/hackathon-bring-the-func
Build open-source projects with our latest features, win limited edition swag and plant a tree!
- Fri, 01 Apr 2022 02:02:30 +0000
+ Thu, 31 Mar 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-edge-functions
Edge Functions are now available in Supabase
https://supabase.com/blog/supabase-edge-functions
Today we're launching Edge Functions. Edge Functions let you execute Typescript code close to your users, no matter where they're located.
- Wed, 30 Mar 2022 02:02:30 +0000
+ Wed, 30 Mar 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-enterprise
Introducing Supabase Enterprise
https://supabase.com/blog/supabase-enterprise
Today we are releasing Supabase Enterprise, a suite of features to scale your project.
- Tue, 29 Mar 2022 02:02:30 +0000
+ Tue, 29 Mar 2022 22:10:00 +0000
-
https://supabase.com/blog/graphql-now-available
GraphQL is now available in Supabase
https://supabase.com/blog/graphql-now-available
GraphQL support is now in general availability on the Supabase platform via our open source PostgreSQL extension, pg_graphql.
- Mon, 28 Mar 2022 02:02:30 +0000
+ Mon, 28 Mar 2022 22:10:00 +0000
-
https://supabase.com/blog/community-day-lw4
Community Day
https://supabase.com/blog/community-day-lw4
Kicking off Launch Week 4 with contributors, partners, and friends.
- Sun, 27 Mar 2022 02:02:30 +0000
+ Sun, 27 Mar 2022 22:10:00 +0000
-
https://supabase.com/blog/supabase-launch-week-four
Supabase Launch Week 4
https://supabase.com/blog/supabase-launch-week-four
Launch Week 4: One new feature every day for an entire week. Starting Monday 28th March.
- Thu, 24 Mar 2022 02:02:30 +0000
+ Thu, 24 Mar 2022 23:11:00 +0000
-
https://supabase.com/blog/should-i-open-source-my-company
Should I Open Source my Company?
https://supabase.com/blog/should-i-open-source-my-company
The unexpected upsides of building in public
- Thu, 24 Mar 2022 02:02:30 +0000
+ Thu, 24 Mar 2022 23:11:00 +0000
-
- https://supabase.com/blog/audit
+ https://supabase.com/blog/postgres-audit
Postgres Auditing in 150 lines of SQL
- https://supabase.com/blog/audit
+ https://supabase.com/blog/postgres-audit
PostgreSQL has a robust set of features which we can leverage to create a generic auditing solution in 150 lines of SQL.
- Mon, 07 Mar 2022 03:03:30 +0000
+ Mon, 07 Mar 2022 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-january-2022
Supabase Beta January 2022
https://supabase.com/blog/supabase-beta-january-2022
New auth providers, SMS providers, and new videos.
- Mon, 21 Feb 2022 03:03:30 +0000
+ Mon, 21 Feb 2022 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-december-2021
Supabase Beta December 2021
https://supabase.com/blog/supabase-beta-december-2021
New crypto extension, Postgres videos, and a bunch of cool integrations.
- Wed, 19 Jan 2022 03:03:30 +0000
+ Wed, 19 Jan 2022 23:11:00 +0000
-
https://supabase.com/blog/product-hunt-golden-kitty-awards-2021
Golden Kitty Awards Ceremony Watch Party with Supabase
https://supabase.com/blog/product-hunt-golden-kitty-awards-2021
Hang out with us while watching the Product Hunt Golden Kitty Awards Ceremony
- Wed, 19 Jan 2022 03:03:30 +0000
+ Wed, 19 Jan 2022 23:11:00 +0000
-
https://supabase.com/blog/holiday-hackdays-winners-2021
Holiday Hackdays Winners 2021
https://supabase.com/blog/holiday-hackdays-winners-2021
Celebrating many amazing projects submitted to our Holiday Hackdays Hackathon.
- Thu, 16 Dec 2021 03:03:30 +0000
+ Thu, 16 Dec 2021 23:11:00 +0000
-
https://supabase.com/blog/beta-november-2021-launch-week-recap
Supabase Beta November 2021: Launch Week Recap
https://supabase.com/blog/beta-november-2021-launch-week-recap
We wrapped up November with Supabase's third Launch Week. Here's all the awesome stuff that got shipped ...
- Tue, 14 Dec 2021 03:03:30 +0000
+ Tue, 14 Dec 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-holiday-hackdays-hackathon
Kicking off the Holiday Hackdays
https://supabase.com/blog/supabase-holiday-hackdays-hackathon
Build cool stuff and celebrate open-source software with us during the Holiday Hackdays!
- Thu, 02 Dec 2021 03:03:30 +0000
+ Thu, 02 Dec 2021 23:11:00 +0000
-
https://supabase.com/blog/pg-graphql
pg_graphql: A GraphQL extension for PostgreSQL
https://supabase.com/blog/pg-graphql
GraphQL support is in development for PostgreSQL + Supabase.
- Thu, 02 Dec 2021 03:03:30 +0000
+ Thu, 02 Dec 2021 23:11:00 +0000
-
https://supabase.com/blog/launch-week-three-friday-five-more-things
Five more things
https://supabase.com/blog/launch-week-three-friday-five-more-things
It's never just one more thing!
- Thu, 02 Dec 2021 03:03:30 +0000
+ Thu, 02 Dec 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-acquires-logflare
Supabase acquires Logflare
https://supabase.com/blog/supabase-acquires-logflare
Today, we're ecstatic to announce that Logflare is joining Supabase.
- Wed, 01 Dec 2021 03:03:30 +0000
+ Wed, 01 Dec 2021 23:11:00 +0000
-
https://supabase.com/blog/realtime-row-level-security-in-postgresql
Realtime Postgres RLS now available on Supabase
https://supabase.com/blog/realtime-row-level-security-in-postgresql
Realtime database changes are now broadcast to authenticated users, respecting the same PostgreSQL policies that you use for Row Level Security.
- Tue, 30 Nov 2021 03:03:30 +0000
+ Tue, 30 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-studio
Supabase Studio
https://supabase.com/blog/supabase-studio
The same Dashboard that you're using on our Platform is now available for local development and Self-Hosting.
- Mon, 29 Nov 2021 03:03:30 +0000
+ Mon, 29 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/community-day-lw3
Community Day
https://supabase.com/blog/community-day-lw3
Kicking off launch week by highlighting the communities around Supabase.
- Sun, 28 Nov 2021 03:03:30 +0000
+ Sun, 28 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/whats-new-in-postgres-14
New in PostgreSQL 14: What every developer should know
https://supabase.com/blog/whats-new-in-postgres-14
A quick look at some new features and functionality in PostgreSQL 14.
- Sat, 27 Nov 2021 03:03:30 +0000
+ Sat, 27 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/postgrest-9
PostgREST 9
https://supabase.com/blog/postgrest-9
New features and updates in PostgREST version 9.
- Fri, 26 Nov 2021 03:03:30 +0000
+ Fri, 26 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-launch-week-the-trilogy
Supabase Launch Week III: Holiday Special
https://supabase.com/blog/supabase-launch-week-the-trilogy
Tis the season to be shipping.
- Thu, 25 Nov 2021 03:03:30 +0000
+ Thu, 25 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-how-we-launch
How we launch at Supabase
https://supabase.com/blog/supabase-how-we-launch
The history and methodology of Supabase Launch Week.
- Thu, 25 Nov 2021 03:03:30 +0000
+ Thu, 25 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-october-2021
Supabase Beta October 2021
https://supabase.com/blog/supabase-beta-october-2021
Three new Auth providers, multi-schema support, and we're gearing up for another Launch Week.
- Sat, 06 Nov 2021 02:02:30 +0000
+ Sat, 06 Nov 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-series-a
Supabase $30m Series A
https://supabase.com/blog/supabase-series-a
Supabase just raised $30M, bringing our total funding to $36M.
- Wed, 27 Oct 2021 02:02:30 +0000
+ Wed, 27 Oct 2021 22:10:00 +0000
-
https://supabase.com/blog/replenysh-time-to-value-in-less-than-24-hours
Replenysh uses Supabase to implement OTP in less than 24-hours
https://supabase.com/blog/replenysh-time-to-value-in-less-than-24-hours
Learn how Replenysh uses Supabase to power the circular economy, redefining how brands interact with their customers and products.
- Mon, 18 Oct 2021 02:02:30 +0000
+ Mon, 18 Oct 2021 22:10:00 +0000
-
https://supabase.com/blog/hacktoberfest-hackathon-winners-2021
Hacktoberfest Hackathon Winners 2021
https://supabase.com/blog/hacktoberfest-hackathon-winners-2021
Celebrating many amazing projects submitted to our Hacktoberfest Hackathon.
- Wed, 13 Oct 2021 02:02:30 +0000
+ Wed, 13 Oct 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-sept-2021
Supabase Beta Sept 2021
https://supabase.com/blog/supabase-beta-sept-2021
Hackathon, Aborting request, UI updates, and now Hiring.
- Sun, 03 Oct 2021 02:02:30 +0000
+ Sun, 03 Oct 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-hacktoberfest-hackathon-2021
Supabase Hacktoberfest Hackathon 2021
https://supabase.com/blog/supabase-hacktoberfest-hackathon-2021
We're running another Supabase Hackathon during Hacktoberfest!
- Mon, 27 Sep 2021 02:02:30 +0000
+ Mon, 27 Sep 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-august-2021
Supabase Beta August 2021
https://supabase.com/blog/supabase-beta-august-2021
Fundraising, Realtime Security, custom SMS templates, and deployments in South Korea.
- Thu, 09 Sep 2021 02:02:30 +0000
+ Thu, 09 Sep 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-july-2021
Supabase Beta July 2021
https://supabase.com/blog/supabase-beta-july-2021
Discord Logins, Vercel Integration, Full text search, and OAuth guides.
- Wed, 11 Aug 2021 02:02:30 +0000
+ Wed, 11 Aug 2021 22:10:00 +0000
-
https://supabase.com/blog/hackathon-winners
Open Source Hackathon Winners
https://supabase.com/blog/hackathon-winners
Let the medal ceremony begin for the best projects submitted during the Supabase Hackathon.
- Sun, 08 Aug 2021 02:02:30 +0000
+ Sun, 08 Aug 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-swag-store
Supabase Swag Store
https://supabase.com/blog/supabase-swag-store
Today we are officially launching the Supabase Swag Store.
- Thu, 29 Jul 2021 02:02:30 +0000
+ Thu, 29 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-functions-updates
Updates for Supabase Functions
https://supabase.com/blog/supabase-functions-updates
The question on everyone's mind - are we launching Supabase Functions? Well, it's complicated.
- Thu, 29 Jul 2021 02:02:30 +0000
+ Thu, 29 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/1-the-supabase-hackathon
The Supabase Hackathon
https://supabase.com/blog/1-the-supabase-hackathon
A whole week of Hacking for Fun and Prizes.
- Thu, 29 Jul 2021 02:02:30 +0000
+ Thu, 29 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-reports-and-metrics
Supabase Reports and Metrics
https://supabase.com/blog/supabase-reports-and-metrics
We're exposing a full set of metrics in your projects, so that you can build better (and faster) products for your users.
- Wed, 28 Jul 2021 02:02:30 +0000
+ Wed, 28 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-auth-passwordless-sms-login
Supabase Auth v2: Phone Auth now available
https://supabase.com/blog/supabase-auth-passwordless-sms-login
Phone Auth is available today on all new and existing Supabase projects.
- Tue, 27 Jul 2021 02:02:30 +0000
+ Tue, 27 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/mobbin-supabase-200000-users
Mobbin uses Supabase to authenticate 200,000 users
https://supabase.com/blog/mobbin-supabase-200000-users
Learn how Mobbin migrated 200,000 users from Firebase for a better authentication experience.
- Tue, 27 Jul 2021 02:02:30 +0000
+ Tue, 27 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/storage-beta
Supabase Storage now in Beta
https://supabase.com/blog/storage-beta
Supabase Storage moves into Beta.
- Mon, 26 Jul 2021 02:02:30 +0000
+ Mon, 26 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/spot-flutter-with-postgres
Spot: a video sharing app built with Flutter
https://supabase.com/blog/spot-flutter-with-postgres
Spot is a geolocation-based video-sharing app with some social networking features.
- Mon, 26 Jul 2021 02:02:30 +0000
+ Mon, 26 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-postgres-13
Supabase is now on Postgres 13.3
https://supabase.com/blog/supabase-postgres-13
From today, new Supabase projects will be on a version of Supabase Postgres that runs on Postgres 13.3.
- Sun, 25 Jul 2021 02:02:30 +0000
+ Sun, 25 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-community-day
Supabase Community Day
https://supabase.com/blog/supabase-community-day
Community Day
- Sun, 25 Jul 2021 02:02:30 +0000
+ Sun, 25 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/epsilon3-self-hosting
Epsilon3 Self-Host Supabase To Revolutionize Space Operations
https://supabase.com/blog/epsilon3-self-hosting
Learn how the team at Epsilon3 use Supabase to help teams execute secure and reliable operations in an industry that project spend runs into the billions.
- Sun, 25 Jul 2021 02:02:30 +0000
+ Sun, 25 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-launch-week-sql
Supabase Launch Week II: The SQL
https://supabase.com/blog/supabase-launch-week-sql
Five days of Supabase. Again.
- Wed, 21 Jul 2021 02:02:30 +0000
+ Wed, 21 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/roles-postgres-hooks
Protecting reserved roles with PostgreSQL Hooks
https://supabase.com/blog/roles-postgres-hooks
Using Postgres Hooks to protect functionality in your Postgres database.
- Thu, 01 Jul 2021 02:02:30 +0000
+ Thu, 01 Jul 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-june-2021
Supabase Beta June 2021
https://supabase.com/blog/supabase-beta-june-2021
Discord Logins, Vercel Integration, Full text search, and OAuth guides.
- Tue, 01 Jun 2021 02:02:30 +0000
+ Tue, 01 Jun 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-may-2021
Supabase Beta May 2021
https://supabase.com/blog/supabase-beta-may-2021
Apple & Twitter Logins, Supabase Grid, Go & Swift Libraries.
- Tue, 01 Jun 2021 02:02:30 +0000
+ Tue, 01 Jun 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-april-2021
Supabase Beta April 2021
https://supabase.com/blog/supabase-beta-april-2021
Supabase "gardening" - stability, security, and community support.
- Tue, 04 May 2021 02:02:30 +0000
+ Tue, 04 May 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-beta-march-2021
Supabase Beta March 2021
https://supabase.com/blog/supabase-beta-march-2021
Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing.
- Mon, 05 Apr 2021 02:02:30 +0000
+ Mon, 05 Apr 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-workflows
Workflows are coming to Supabase
https://supabase.com/blog/supabase-workflows
Functions are great, but you know what's better?
- Thu, 01 Apr 2021 02:02:30 +0000
+ Thu, 01 Apr 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-pgbouncer
PgBouncer is now available in Supabase
https://supabase.com/blog/supabase-pgbouncer
Better support for Serverless and Postgres.
- Thu, 01 Apr 2021 02:02:30 +0000
+ Thu, 01 Apr 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-dot-com
Supabase Dot Com
https://supabase.com/blog/supabase-dot-com
The Supabase Domain name is changing.
- Thu, 01 Apr 2021 02:02:30 +0000
+ Thu, 01 Apr 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-nft-marketplace
Supabase Launches NFT Marketplace
https://supabase.com/blog/supabase-nft-marketplace
A fully encrypted NFT platform to protect and transact your digital assets
- Thu, 01 Apr 2021 02:02:30 +0000
+ Wed, 31 Mar 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-cli
Supabase CLI
https://supabase.com/blog/supabase-cli
Local development, database migrations, and self-hosting.
- Wed, 31 Mar 2021 02:02:30 +0000
+ Tue, 30 Mar 2021 22:10:00 +0000
-
https://supabase.com/blog/supabase-storage
Storage is now available in Supabase
https://supabase.com/blog/supabase-storage
Launching Supabase Storage and how you can use it in your apps
- Tue, 30 Mar 2021 02:02:30 +0000
+ Mon, 29 Mar 2021 22:10:00 +0000
-
https://supabase.com/blog/pricing
Supabase Beta Pricing
https://supabase.com/blog/pricing
Supabase launches Beta pricing structure
- Mon, 29 Mar 2021 02:02:30 +0000
+ Sun, 28 Mar 2021 22:10:00 +0000
-
https://supabase.com/blog/launch-week
Launch week
https://supabase.com/blog/launch-week
Five days of Supabase.
- Wed, 24 Mar 2021 02:02:30 +0000
+ Wed, 24 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/angels-of-supabase
Angels of Supabase
https://supabase.com/blog/angels-of-supabase
Meet the investors of Supabase.
- Wed, 24 Mar 2021 02:02:30 +0000
+ Wed, 24 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/In-The-Loop
Developers stay up to date with intheloop.dev
https://supabase.com/blog/In-The-Loop
Learn why Kevin is building intheloop.dev with Supabase
- Mon, 22 Mar 2021 02:02:30 +0000
+ Sun, 21 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/using-supabase-replit
Using Supabase in Replit
https://supabase.com/blog/using-supabase-replit
Free hosted relational database from within your node.js repl
- Thu, 11 Mar 2021 03:03:30 +0000
+ Wed, 10 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/toad-a-link-shortener-with-simple-apis-for-low-coders
Toad, a link shortener with simple APIs for low-coders
https://supabase.com/blog/toad-a-link-shortener-with-simple-apis-for-low-coders
An easy-to-use link shortening tool with simple APIs
- Mon, 08 Mar 2021 03:03:30 +0000
+ Sun, 07 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/postgres-as-a-cron-server
Postgres as a CRON Server
https://supabase.com/blog/postgres-as-a-cron-server
Running repetitive tasks with your Postgres database.
- Fri, 05 Mar 2021 03:03:30 +0000
+ Thu, 04 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-february-2021
Supabase Beta February 2021
https://supabase.com/blog/supabase-beta-february-2021
One year of building.
- Tue, 02 Mar 2021 03:03:30 +0000
+ Mon, 01 Mar 2021 23:11:00 +0000
-
https://supabase.com/blog/cracking-postgres-interview
Cracking PostgreSQL Interview Questions
https://supabase.com/blog/cracking-postgres-interview
Understand the top PostgreSQL Interview Questions
- Sat, 27 Feb 2021 03:03:30 +0000
+ Fri, 26 Feb 2021 23:11:00 +0000
-
https://supabase.com/blog/case-study-roboflow
Roboflow.com choose Supabase to power Paint.wtf leaderboard
https://supabase.com/blog/case-study-roboflow
Learn how Roboflow.com used Supabase to build their Paint.wtf leaderboard
- Tue, 09 Feb 2021 03:03:30 +0000
+ Mon, 08 Feb 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-january-2021
Supabase Beta January 2021
https://supabase.com/blog/supabase-beta-january-2021
Eleven months of building.
- Tue, 02 Feb 2021 03:03:30 +0000
+ Mon, 01 Feb 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-beta-december-2020
Supabase Beta December 2020
https://supabase.com/blog/supabase-beta-december-2020
Ten months of building.
- Sat, 02 Jan 2021 03:03:30 +0000
+ Fri, 01 Jan 2021 23:11:00 +0000
-
https://supabase.com/blog/supabase-dashboard-performance
Making the Supabase Dashboard Supa-fast
https://supabase.com/blog/supabase-dashboard-performance
Improving the performance of the Supabase dashboard
- Sun, 13 Dec 2020 03:03:30 +0000
+ Sat, 12 Dec 2020 23:11:00 +0000
-
https://supabase.com/blog/supabase-striveschool
Supabase Partners With Strive School To Help Teach Open Source
https://supabase.com/blog/supabase-striveschool
Supabase Partners With Strive School To Help Teach Open Source To The Next Generation Of Developers
- Wed, 02 Dec 2020 03:03:30 +0000
+ Tue, 01 Dec 2020 23:11:00 +0000
-
https://supabase.com/blog/case-study-xendit
Xendit Built a Counter-Fraud Watchlist for the Fintech Industry
https://supabase.com/blog/case-study-xendit
See how Xendit use Supabase to build a full-text search engine.
- Wed, 02 Dec 2020 03:03:30 +0000
+ Tue, 01 Dec 2020 23:11:00 +0000
-
https://supabase.com/blog/case-study-tayfa
TAYFA Built a No-Code Website Builder in Seven Days
https://supabase.com/blog/case-study-tayfa
See how Tayfa went from idea to paying customer in less than 30 days.
- Wed, 02 Dec 2020 03:03:30 +0000
+ Tue, 01 Dec 2020 23:11:00 +0000
-
https://supabase.com/blog/case-study-monitoro
Monitoro Built a Web Crawler Handling Millions of API Requests
https://supabase.com/blog/case-study-monitoro
See how Monitoro built an automated scraping platform using Supabase.
- Wed, 02 Dec 2020 03:03:30 +0000
+ Tue, 01 Dec 2020 23:11:00 +0000
-
https://supabase.com/blog/supabase-alpha-november-2020
Supabase Alpha November 2020
https://supabase.com/blog/supabase-alpha-november-2020
Nine months of building.
- Tue, 01 Dec 2020 03:03:30 +0000
+ Mon, 30 Nov 2020 23:11:00 +0000
-
https://supabase.com/blog/postgresql-views
Postgres Views
https://supabase.com/blog/postgresql-views
Creating and using a view in PostgreSQL.
- Wed, 18 Nov 2020 03:03:30 +0000
+ Tue, 17 Nov 2020 23:11:00 +0000
-
https://supabase.com/blog/supabase-alpha-october-2020
Supabase Alpha October 2020
https://supabase.com/blog/supabase-alpha-october-2020
Eight months of building.
- Mon, 02 Nov 2020 03:03:30 +0000
+ Sun, 01 Nov 2020 23:11:00 +0000
-
https://supabase.com/blog/improved-dx
Supabase.js 1.0
https://supabase.com/blog/improved-dx
We're releasing a new version of our Supabase client with some awesome new improvements.
- Fri, 30 Oct 2020 02:02:30 +0000
+ Thu, 29 Oct 2020 23:11:00 +0000
-
https://supabase.com/blog/supabase-alpha-september-2020
Supabase Alpha September 2020
https://supabase.com/blog/supabase-alpha-september-2020
Seven months of building.
- Sat, 03 Oct 2020 02:02:30 +0000
+ Fri, 02 Oct 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-hacktoberfest-2020
Supabase Hacktoberfest 2020
https://supabase.com/blog/supabase-hacktoberfest-2020
Join us for a celebration of open source software and learn how to contribute to Supabase.
- Fri, 11 Sep 2020 02:02:30 +0000
+ Thu, 10 Sep 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-alpha-august-2020
Supabase Alpha August 2020
https://supabase.com/blog/supabase-alpha-august-2020
Six months of building
- Thu, 03 Sep 2020 02:02:30 +0000
+ Wed, 02 Sep 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-auth
Supabase Auth
https://supabase.com/blog/supabase-auth
Authenticate and authorize your users with Supabase Auth
- Wed, 05 Aug 2020 02:02:30 +0000
+ Tue, 04 Aug 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-alpha-july-2020
Supabase Alpha July 2020
https://supabase.com/blog/supabase-alpha-july-2020
Five months of building
- Sun, 02 Aug 2020 02:02:30 +0000
+ Sat, 01 Aug 2020 22:10:00 +0000
-
https://supabase.com/blog/continuous-postgresql-backup-walg
Continuous PostgreSQL Backups using WAL-G
https://supabase.com/blog/continuous-postgresql-backup-walg
Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G.
- Sun, 02 Aug 2020 02:02:30 +0000
+ Sat, 01 Aug 2020 22:10:00 +0000
-
https://supabase.com/blog/alpha-launch-postmortem
Alpha Launch Postmortem
https://supabase.com/blog/alpha-launch-postmortem
Everything that went wrong with Supabase's launch
- Fri, 10 Jul 2020 02:02:30 +0000
+ Thu, 09 Jul 2020 22:10:00 +0000
-
https://supabase.com/blog/postgresql-templates
What are PostgreSQL Templates?
https://supabase.com/blog/postgresql-templates
What are PostgreSQL templates and what are they used for?
- Thu, 09 Jul 2020 02:02:30 +0000
+ Wed, 08 Jul 2020 22:10:00 +0000
-
https://supabase.com/blog/postgresql-physical-logical-backups
Physical vs Logical Backups in PostgreSQL
https://supabase.com/blog/postgresql-physical-logical-backups
What are physical and logical backups in Postgres?
- Tue, 07 Jul 2020 02:02:30 +0000
+ Mon, 06 Jul 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-alpha-june-2020
Supabase Alpha June 2020
https://supabase.com/blog/supabase-alpha-june-2020
Four months of building
- Wed, 01 Jul 2020 02:02:30 +0000
+ Tue, 30 Jun 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-steve-chavez
Steve Chavez has joined Supabase
https://supabase.com/blog/supabase-steve-chavez
Steve joins Supabase to help build Auth.
- Mon, 15 Jun 2020 02:02:30 +0000
+ Sun, 14 Jun 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-alpha-may-2020
Supabase Alpha May 2020
https://supabase.com/blog/supabase-alpha-may-2020
Three months of building
- Mon, 01 Jun 2020 02:02:30 +0000
+ Sun, 31 May 2020 22:10:00 +0000
-
https://supabase.com/blog/supabase-alpha-april-2020
Supabase Alpha April 2020
https://supabase.com/blog/supabase-alpha-april-2020
Two months of building
- Mon, 01 Jun 2020 02:02:30 +0000
+ Sun, 31 May 2020 22:10:00 +0000
diff --git a/examples/auth/nextjs/middleware.ts b/examples/auth/nextjs/middleware.ts
index 24b65f84742..e775a9d9931 100644
--- a/examples/auth/nextjs/middleware.ts
+++ b/examples/auth/nextjs/middleware.ts
@@ -7,6 +7,15 @@ import type { Database } from "./lib/database.types";
export async function middleware(req: NextRequest) {
const res = NextResponse.next();
const supabase = createMiddlewareSupabaseClient
({ req, res });
- await supabase.auth.getSession();
+
+ const { data: { session } } = await supabase.auth.getSession(); // destructure the data object to obtain the session object
+
+ if (session === null) return NextResponse.redirect(new URL("/login", req.nextUrl));
+ // instead of "/login" you can redirect to any other route in case the user is not logged in
+
return res;
}
+
+export const config = {
+ matcher: [], // add the routes you wish the middleware to run in. You can also use regex
+};
diff --git a/package-lock.json b/package-lock.json
index d3c3ed3179d..fd0a72622fa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -55,6 +55,7 @@
"clsx": "^1.2.1",
"common": "*",
"config": "*",
+ "framer-motion": "^6.5.1",
"github-slugger": "^2.0.0",
"gray-matter": "^4.0.3",
"isbot": "^3.6.5",
@@ -51546,6 +51547,7 @@
"dotenv": "^16.0.3",
"ejs": "^3.1.8",
"eslint": "8.9.0",
+ "framer-motion": "^6.5.1",
"github-slugger": "^2.0.0",
"globby": "^12.0.2",
"gray-matter": "^4.0.3",
@@ -70213,4 +70215,4 @@
"integrity": "sha512-Bq0B+ixT/DMyG8kgX2xWcI5jUvCwqrMxSFam7m0lAf78nf04hv6lNCsyLYdyYTrCVMqNDY/206K7eExYCeSyUQ=="
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/ui/index.tsx b/packages/ui/index.tsx
index 4f2f9f9f11f..b6b1c095d9a 100644
--- a/packages/ui/index.tsx
+++ b/packages/ui/index.tsx
@@ -15,7 +15,7 @@ export * from './src/components/Icon'
export * from './src/components/Icon/IconContext'
export * from './src/components/GlassPanel'
export * from './src/components/IconPanel'
-// export * from './src/components/Image'
+export * from './src/components/Icon/IconBackground'
// DISPLAYS
@@ -30,6 +30,7 @@ export * from './src/components/CodeBlock'
// NAV
export * from './src/components/Menu'
+export * from './src/components/TextLink'
// OVERLAYS
diff --git a/packages/ui/src/components/Command/AiCommand.tsx b/packages/ui/src/components/Command/AiCommand.tsx
index 3a1fffafbe7..48a35a8c788 100644
--- a/packages/ui/src/components/Command/AiCommand.tsx
+++ b/packages/ui/src/components/Command/AiCommand.tsx
@@ -382,6 +382,9 @@ const AiCommand = () => {
}
}, [])
+ // Detect an IME composition (so that we can ignore Enter keypress)
+ const [isImeComposing, setIsImeComposing] = useState(false)
+
return (
e.stopPropagation()}>
@@ -478,7 +481,7 @@ const AiCommand = () => {
{messages.length > 0 && !hasError &&
}
{
setSearch(e.target.value)
}
}}
+ onCompositionStart={() => setIsImeComposing(true)}
+ onCompositionEnd={() => setIsImeComposing(false)}
onKeyDown={(e) => {
switch (e.key) {
case 'Enter':
- if (!search) {
+ if (!search || isLoading || isResponding || isImeComposing) {
return
}
- if (isLoading || isResponding) {
- return
- }
- handleSubmit(search)
- return
+ return handleSubmit(search)
default:
return
}
diff --git a/packages/ui/src/components/Command/Command.icons.tsx b/packages/ui/src/components/Command/Command.icons.tsx
index 504f109f660..22e2a37a176 100644
--- a/packages/ui/src/components/Command/Command.icons.tsx
+++ b/packages/ui/src/components/Command/Command.icons.tsx
@@ -6,17 +6,25 @@ interface AiIconProps {
export const AiIcon = ({ className = 'text-brand-900' }: AiIconProps) => (
)
diff --git a/packages/ui/src/components/Command/Command.utils.tsx b/packages/ui/src/components/Command/Command.utils.tsx
index afdd277e26d..f7796e4a9b1 100644
--- a/packages/ui/src/components/Command/Command.utils.tsx
+++ b/packages/ui/src/components/Command/Command.utils.tsx
@@ -241,7 +241,7 @@ export const CommandItem = React.forwardRef
-
{children}
+
{children}
{badge}
diff --git a/packages/ui/src/components/Command/GenerateSQL/GenerateSQL.tsx b/packages/ui/src/components/Command/GenerateSQL/GenerateSQL.tsx
index 9a29d8bb6e8..f25aec4fcbb 100644
--- a/packages/ui/src/components/Command/GenerateSQL/GenerateSQL.tsx
+++ b/packages/ui/src/components/Command/GenerateSQL/GenerateSQL.tsx
@@ -74,6 +74,9 @@ const GenerateSQL = () => {
if (search) handleSubmit(search)
}, [])
+ // Detect an IME composition (so that we can ignore Enter keypress)
+ const [isImeComposing, setIsImeComposing] = useState(false)
+
const formatAnswer = (answer: string) => {
try {
return format(answer, {
@@ -210,7 +213,9 @@ const GenerateSQL = () => {
onKeyDown={(e) => {
switch (e.key) {
case 'Enter':
- if (!search || isLoading || isResponding) return
+ if (!search || isLoading || isResponding || isImeComposing) {
+ return
+ }
return handleSubmit(query)
default:
return
@@ -311,10 +316,14 @@ const GenerateSQL = () => {
setSearch(e.target.value)
}
}}
+ onCompositionStart={() => setIsImeComposing(true)}
+ onCompositionEnd={() => setIsImeComposing(false)}
onKeyDown={(e) => {
switch (e.key) {
case 'Enter':
- if (!search || isLoading || isResponding) return
+ if (!search || isLoading || isResponding || isImeComposing) {
+ return
+ }
return handleSubmit(search)
default:
return
diff --git a/packages/ui/src/components/Icon/IconBackground.tsx b/packages/ui/src/components/Icon/IconBackground.tsx
new file mode 100644
index 00000000000..4b73319ba46
--- /dev/null
+++ b/packages/ui/src/components/Icon/IconBackground.tsx
@@ -0,0 +1,5 @@
+export const IconBackground: React.FC = (props) => (
+
+ {props.children}
+
+)
diff --git a/packages/ui/src/components/IconPanel/IconPanel.tsx b/packages/ui/src/components/IconPanel/IconPanel.tsx
index 6bf869052ff..91eed589bcd 100644
--- a/packages/ui/src/components/IconPanel/IconPanel.tsx
+++ b/packages/ui/src/components/IconPanel/IconPanel.tsx
@@ -1,11 +1,14 @@
import { useTheme } from 'common/Providers'
import * as React from 'react'
import { ChevronRight } from 'react-feather'
+import ReactTooltip from 'react-tooltip'
interface Props {
- title: string
+ title?: string
+ tooltip?: string
icon?: string | React.ReactNode
+ iconSize?: 'sm' | 'lg'
children?: React.ReactNode
background?: boolean
@@ -13,15 +16,19 @@ interface Props {
hasLightIcon?: boolean
showLink?: boolean
+ hideArrow?: boolean
}
const IconPanel = ({
title,
+ tooltip,
icon,
+ iconSize = 'sm',
children,
background = true,
hasLightIcon,
showLink = false,
+ hideArrow = false,
}: Props) => {
const { isDarkMode } = useTheme()
@@ -31,7 +38,7 @@ const IconPanel = ({
className={[
'relative',
'flex items-center justify-center shrink-0',
- 'h-10 w-10 rounded-lg',
+ iconSize === 'lg' ? 'h-16 w-16 rounded-lg' : 'h-10 w-10 rounded-lg',
'group',
'cursor-pointer',
'overflow-hidden',
@@ -48,44 +55,62 @@ const IconPanel = ({
}
return (
-
-
-
- {typeof icon === 'string' ? (
-
-
-
- ) : (
-
{icon}
- )}
-
-
-
{title}
-
+
+ {title &&
{title}
}
+ {!hideArrow && (
+
-
+ >
+
+
+ )}
+ {children &&
{children}}
+ {showLink &&
Learn more}
- {children &&
{children}}
- {showLink &&
Learn more}
-
-
-
+ >
+
+ {tooltip && (
+
+ )}
+ >
)
}
diff --git a/packages/ui/src/components/Input/Input.tsx b/packages/ui/src/components/Input/Input.tsx
index 2c7f96e0624..93a5b0fbd60 100644
--- a/packages/ui/src/components/Input/Input.tsx
+++ b/packages/ui/src/components/Input/Input.tsx
@@ -12,8 +12,10 @@ import { HIDDEN_PLACEHOLDER } from './../../lib/constants'
import styleHandler from '../../lib/theme/styleHandler'
import { useFormContext } from '../Form/FormContext'
-export interface Props extends Omit
, 'size'> {
+export interface Props
+ extends Omit, 'size' | 'onCopy'> {
copy?: boolean
+ onCopy?: () => void
defaultValue?: string | number
descriptionText?: string | React.ReactNode | undefined
disabled?: boolean
@@ -52,6 +54,7 @@ function Input({
layout,
onChange,
onBlur,
+ onCopy,
placeholder,
type = 'text',
value = undefined,
@@ -100,7 +103,7 @@ function Input({
// error = touched && touched[id] ? error : undefined
// }, [errors, touched])
- function onCopy(value: any) {
+ function _onCopy(value: any) {
navigator.clipboard.writeText(value)?.then(
function () {
/* clipboard successfully set */
@@ -108,6 +111,7 @@ function Input({
setTimeout(function () {
setCopyLabel('Copy')
}, 3000)
+ onCopy?.()
},
function () {
/* clipboard write failed */
@@ -152,6 +156,7 @@ function Input({
name={name}
onChange={onInputChange}
onBlur={handleBlurEvent}
+ onCopy={onCopy}
placeholder={placeholder}
ref={inputRef}
type={type}
@@ -164,7 +169,7 @@ function Input({
{error &&
}
{copy && !(reveal && hidden) ? (
-
} onClick={() => onCopy(value)}>
+
} onClick={() => _onCopy(value)}>
{copyLabel}
) : null}
@@ -182,7 +187,7 @@ function Input({
}
export interface TextAreaProps
- extends Omit
, 'size'> {
+ extends Omit, 'size' | 'onCopy'> {
descriptionText?: string
error?: string
icon?: any
@@ -197,6 +202,7 @@ export interface TextAreaProps
borderless?: boolean
validation?: (x: any) => void
copy?: boolean
+ onCopy?: () => void
actions?: React.ReactNode
}
@@ -224,13 +230,14 @@ function TextArea({
borderless = false,
validation,
copy = false,
+ onCopy,
actions,
...props
}: TextAreaProps) {
const [charLength, setCharLength] = useState(0)
const [copyLabel, setCopyLabel] = useState('Copy')
- function onCopy(value: any) {
+ function _onCopy(value: any) {
navigator.clipboard.writeText(value).then(
function () {
/* clipboard successfully set */
@@ -238,6 +245,7 @@ function TextArea({
setTimeout(function () {
setCopyLabel('Copy')
}, 3000)
+ onCopy?.()
},
function () {
/* clipboard write failed */
@@ -308,6 +316,7 @@ function TextArea({
placeholder={placeholder}
onChange={onInputChange}
onBlur={handleBlurEvent}
+ onCopy={onCopy}
value={value}
className={classes.join(' ')}
maxLength={limit}
@@ -323,7 +332,7 @@ function TextArea({
diff --git a/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityActions.tsx b/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityActions.tsx
index c3c92adcbdc..4523ff57eca 100644
--- a/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityActions.tsx
+++ b/studio/components/interfaces/SQLEditor/UtilityPanel/UtilityActions.tsx
@@ -8,7 +8,7 @@ import { detectOS } from 'lib/helpers'
export type UtilityActionsProps = {
id: string
isExecuting?: boolean
- executeQuery?: (overrideSql?: string) => void
+ executeQuery: () => void
}
const UtilityActions = ({ id, isExecuting = false, executeQuery }: UtilityActionsProps) => {
@@ -20,7 +20,7 @@ const UtilityActions = ({ id, isExecuting = false, executeQuery }: UtilityAction
{IS_PLATFORM && }