Merge branch 'master' into feat/compute-and-disk

This commit is contained in:
Jonathan Summers-Muir authored and GitHub committed 2024-11-01 18:47:34 +08:00
commit 884826cee6
42 files changed
+476 -463

No files matched your search

@@ -17,6 +17,7 @@ export default async function ReferencePage({
}: {
params: { slug: Array<string> }
}) {
console.log("Generating reference page for '%o'", slug)
if (!Object.keys(REFERENCES).includes(slug[0].replaceAll('-', '_'))) {
notFound()
}
@@ -38,6 +39,7 @@ export default async function ReferencePage({
return <ClientSdkReferencePage sdkId={sdkId} libVersion={version} />
} else if (isCliReference) {
console.log('Returning CLI reference page: %o', parsedPath)
return <CliReferencePage />
} else if (isApiReference) {
return <ApiReferencePage />
@@ -292,8 +292,9 @@ create function public.check_request()
declare
req_app_api_key text := current_setting('request.headers', true)::json->>'x-app-api-key';
is_app_api_key_registered boolean;
jwt_role text := current_setting('request.jwt.claims', true)::json->>'role';
begin
if current_role <> 'anon' then
if jwt_role <> 'anon' then
-- not `anon` role, allow the request to pass
return;
end if;
@@ -302,7 +303,7 @@ begin
true into is_app_api_key_registered
from private.anon_api_keys
where
id = req_app_api_key
id = req_app_api_key::uuid
limit 1;
if is_app_api_key_registered is true then
+1 -1
View File
@@ -844,7 +844,7 @@ app.get("/auth/confirm", async function (req, res) {
<TabPanel id="js" label="JavaScript">
```js
async function signUpNewUser() {
async function resetPassword() {
const { data, error } = await supabase.auth.resetPasswordForEmail(email)
}
```
@@ -85,6 +85,12 @@ CLI changes permanently overwrite default settings, so `reset all` and `set to d
</Admonition>
<Admonition type="danger">
In order to overwrite the default settings, you must have `Owner` or `Administrator` privileges within your organizations.
</Admonition>
#### CLI supported parameters
<Admonition type="tip">
+1 -1
View File
@@ -38,7 +38,7 @@ There are several community-driven projects to help you deploy Supabase. We enco
<div className="grid md:grid-cols-12 gap-4 not-prose">
{community.map((x) => (
<div className="md:col-span-6 xl:col-span-3" key={x.href}>
<Link href="https://supabase.com/pricing" passHref>
<Link href={x.href} passHref>
<GlassPanel title={x.name}>{x.description}</GlassPanel>
</Link>
</div>
@@ -96,6 +96,7 @@ const referenceSections = new Map<string, Array<AbbrevApiReferenceSection>>()
export async function getReferenceSections(sdkId: string, version: string) {
const key = `${sdkId}.${version}`
console.log('Getting reference sections for %s', key)
if (!referenceSections.has(key)) {
const data = await readFile(
join(process.cwd(), 'features/docs', `./generated/${sdkId}.${version}.sections.json`),
@@ -105,13 +106,16 @@ export async function getReferenceSections(sdkId: string, version: string) {
referenceSections.set(key, JSON.parse(data))
}
return referenceSections.get(key)
const result = referenceSections.get(key)
console.log('Got reference sections for %s', key)
return result
}
const flatSections = new Map<string, Array<AbbrevApiReferenceSection>>()
export async function getFlattenedSections(sdkId: string, version: string) {
const key = `${sdkId}.${version}`
console.log('Getting flattened sections for %s', key)
if (!flatSections.has(key)) {
const data = await readFile(
join(process.cwd(), 'features/docs', `./generated/${sdkId}.${version}.flat.json`),
@@ -121,7 +125,9 @@ export async function getFlattenedSections(sdkId: string, version: string) {
flatSections.set(key, JSON.parse(data))
}
return flatSections.get(key)
const result = flatSections.get(key)
console.log('Got flattened sections for %s', key)
return result
}
const sectionsBySlug = new Map<string, Map<string, AbbrevApiReferenceSection>>()
@@ -28,10 +28,12 @@ export async function ReferenceNavigation({
version,
isLatestVersion,
}: ReferenceNavigationProps) {
console.log('[Enter] ReferenceNavigation')
const navSections = await getReferenceSections(libraryId, version)
const basePath = `/reference/${libPath}${isLatestVersion ? '' : `/${version}`}`
console.log('[PreReturn] ReferenceNavigation')
return (
<ReferenceNavigationScrollHandler className="w-full flex flex-col pt-3 pb-5 gap-3">
<div className="flex items-center gap-3">
@@ -44,9 +44,11 @@ type RefSectionsProps = {
}
async function RefSections({ libraryId, version }: RefSectionsProps) {
console.log('[Enter] RefSections')
let flattenedSections = await getFlattenedSections(libraryId, version)
flattenedSections = trimIntro(flattenedSections)
console.log('[PreReturn] RefSections')
return (
<MDXProviderReference>
<div className="flex flex-col my-16 gap-16">
@@ -308,7 +308,7 @@ export const UsersV2 = () => {
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button icon={sortOrder === 'desc' ? <ArrowDown /> : <ArrowUp />}>
Sorted by {sortColumn.replace('_', ' ')}
Sorted by {sortColumn.replaceAll('_', ' ')}
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent className="w-44" align="start">
@@ -322,6 +322,17 @@ export const UsersV2 = () => {
</DropdownMenuRadioItem>
</DropdownMenuSubContent>
</DropdownMenuSub>
<DropdownMenuSub>
<DropdownMenuSubTrigger>Sort by last sign in at</DropdownMenuSubTrigger>
<DropdownMenuSubContent>
<DropdownMenuRadioItem value="last_sign_in_at:asc">
Ascending
</DropdownMenuRadioItem>
<DropdownMenuRadioItem value="last_sign_in_at:desc">
Descending
</DropdownMenuRadioItem>
</DropdownMenuSubContent>
</DropdownMenuSub>
<DropdownMenuSub>
<DropdownMenuSubTrigger>Sort by email</DropdownMenuSubTrigger>
<DropdownMenuSubContent>
+7 -41
View File
@@ -1,8 +1,7 @@
import { Sha256 } from '@aws-crypto/sha256-browser'
import * as Sentry from '@sentry/nextjs'
import { useRouter } from 'next/router'
import { PropsWithChildren, useEffect, useRef } from 'react'
import { toast } from 'sonner'
import { PropsWithChildren, useEffect } from 'react'
import { useParams, useUser } from 'common'
import { useSendGroupsIdentifyMutation } from 'data/telemetry/send-groups-identify-mutation'
@@ -13,7 +12,7 @@ import { usePrevious } from 'hooks/deprecated'
import { useSelectedOrganization } from 'hooks/misc/useSelectedOrganization'
import { IS_PLATFORM, LOCAL_STORAGE_KEYS } from 'lib/constants'
import { useAppStateSnapshot } from 'state/app-state'
import { ConsentToast } from 'ui-patterns/ConsentToast'
import { useConsent } from 'ui-patterns/ConsentToast'
const getAnonId = async (id: string) => {
const hash = new Sha256()
@@ -31,54 +30,21 @@ const PageTelemetry = ({ children }: PropsWithChildren<{}>) => {
const snap = useAppStateSnapshot()
const organization = useSelectedOrganization()
const consentToastId = useRef<string | number>()
const { consentValue, hasAcceptedConsent } = useConsent()
const previousPathname = usePrevious(router.pathname)
const consentFlag = LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT
const consent = typeof window !== 'undefined' ? localStorage.getItem(consentFlag) : null
const trackTelemetryPH = consent === 'true'
const trackTelemetryPH = consentValue === 'true'
const { mutate: sendPage } = useSendPageMutation()
const { mutateAsync: sendPageLeave } = useSendPageLeaveMutation()
const { mutate: sendGroupsIdentify } = useSendGroupsIdentifyMutation()
const { mutate: sendGroupsReset } = useSendGroupsResetMutation()
useEffect(() => {
if (typeof window !== 'undefined') {
const onAcceptConsent = () => {
snap.setIsOptedInTelemetry(true)
if (consentToastId.current) toast.dismiss(consentToastId.current)
}
const onOptOut = () => {
snap.setIsOptedInTelemetry(false)
if (consentToastId.current) toast.dismiss(consentToastId.current)
}
const hasAcknowledgedConsent = localStorage.getItem(LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT)
snap.setIsOptedInTelemetry(
typeof hasAcknowledgedConsent === 'string'
? hasAcknowledgedConsent === 'true'
: hasAcknowledgedConsent
)
if (IS_PLATFORM && hasAcknowledgedConsent === null) {
setTimeout(() => {
consentToastId.current = toast(
<ConsentToast onAccept={onAcceptConsent} onOptOut={onOptOut} />,
{
id: 'consent-toast',
position: 'bottom-right',
duration: Infinity,
}
)
}, 300)
}
if (consentValue !== null) {
snap.setIsOptedInTelemetry(hasAcceptedConsent)
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
}, [consentValue])
useEffect(() => {
function handleRouteChange() {
@@ -13,7 +13,7 @@ export type UsersVariables = {
keywords?: string
filter?: Filter
providers?: string[]
sort?: 'created_at' | 'email' | 'phone'
sort?: 'created_at' | 'email' | 'phone' | 'last_sign_in_at'
order?: 'asc' | 'desc'
}
@@ -1,9 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { components } from 'api-types'
import { isBrowser } from 'common'
import { isBrowser, LOCAL_STORAGE_KEYS } from 'common'
import { handleError, post } from 'data/fetchers'
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import { useRouter } from 'next/router'
import type { ResponseError } from 'types'
@@ -1,8 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { components } from 'api-types'
import { LOCAL_STORAGE_KEYS } from 'common'
import { handleError, post } from 'data/fetchers'
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import type { ResponseError } from 'types'
export type SendGroupsIdentifyVariables = components['schemas']['TelemetryGroupsIdentityBody']
@@ -1,8 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { components } from 'api-types'
import { LOCAL_STORAGE_KEYS } from 'common'
import { handleError, post } from 'data/fetchers'
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import type { ResponseError } from 'types'
export type SendGroupsResetVariables = components['schemas']['TelemetryGroupsResetBody']
@@ -1,9 +1,9 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { components } from 'api-types'
import { LOCAL_STORAGE_KEYS } from 'common'
import { handleError, post } from 'data/fetchers'
import { Profile } from 'data/profile/types'
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import type { ResponseError } from 'types'
type SendIdentify = components['schemas']['TelemetryIdentifyBodyV2']
@@ -1,8 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { components } from 'api-types'
import { LOCAL_STORAGE_KEYS } from 'common'
import { handleError, post } from 'data/fetchers'
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import { useRouter } from 'next/router'
import type { ResponseError } from 'types'
@@ -1,9 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query'
import { components } from 'api-types'
import { isBrowser } from 'common'
import { isBrowser, LOCAL_STORAGE_KEYS } from 'common'
import { handleError, post } from 'data/fetchers'
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import { useRouter } from 'next/router'
import type { ResponseError } from 'types'
-1
View File
@@ -29,7 +29,6 @@ export const USAGE_APPROACHING_THRESHOLD = 0.75
export const LOCAL_STORAGE_KEYS = {
RECENTLY_VISITED_ORGANIZATION: 'supabase-organization',
TELEMETRY_CONSENT: 'supabase-consent-ph',
UI_PREVIEW_NAVIGATION_LAYOUT: 'supabase-ui-preview-nav-layout',
UI_PREVIEW_API_SIDE_PANEL: 'supabase-ui-api-side-panel',
+2 -1
View File
@@ -1,4 +1,5 @@
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import { LOCAL_STORAGE_KEYS as COMMON_LOCAL_STORAGE_KEYS } from 'common'
const LOCAL_STORAGE_KEYS_ALLOWLIST = [
'graphiql:theme',
@@ -6,7 +7,7 @@ const LOCAL_STORAGE_KEYS_ALLOWLIST = [
'supabaseDarkMode',
'supabase.dashboard.auth.debug',
'supabase.dashboard.auth.navigatorLock.disabled',
LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT,
COMMON_LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT,
LOCAL_STORAGE_KEYS.UI_PREVIEW_API_SIDE_PANEL,
LOCAL_STORAGE_KEYS.UI_PREVIEW_NAVIGATION_LAYOUT,
LOCAL_STORAGE_KEYS.UI_PREVIEW_CLS,
+10 -2
View File
@@ -106,6 +106,14 @@ function CustomApp({ Component, pageProps }: AppPropsWithLayout) {
[supabase]
)
const TelemetryContainer = useMemo(
// eslint-disable-next-line react/display-name
() => (props: any) => {
return IS_PLATFORM ? <PageTelemetry>{props.children}</PageTelemetry> : <>{props.children}</>
},
[]
)
const errorBoundaryHandler = (error: Error, info: ErrorInfo) => {
Sentry.withScope(function (scope) {
scope.setTag('globalErrorBoundary', true)
@@ -131,7 +139,7 @@ function CustomApp({ Component, pageProps }: AppPropsWithLayout) {
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
</Head>
<MetaFaviconsPagesRouter applicationName="Supabase Studio" />
<PageTelemetry>
<TelemetryContainer>
<TooltipProvider>
<RouteValidationWrapper>
<ThemeProvider
@@ -157,7 +165,7 @@ function CustomApp({ Component, pageProps }: AppPropsWithLayout) {
</ThemeProvider>
</RouteValidationWrapper>
</TooltipProvider>
</PageTelemetry>
</TelemetryContainer>
{!isTestEnv && <HCaptchaLoadedStore />}
{!isTestEnv && <ReactQueryDevtools initialIsOpen={false} position="bottom-right" />}
+4 -2
View File
@@ -1,6 +1,8 @@
import { proxy, snapshot, useSnapshot } from 'valtio'
import { SupportedAssistantEntities } from 'components/ui/AIAssistantPanel/AIAssistant.types'
import { LOCAL_STORAGE_KEYS } from 'lib/constants'
import { proxy, snapshot, useSnapshot } from 'valtio'
import { LOCAL_STORAGE_KEYS as COMMON_LOCAL_STORAGE_KEYS } from 'common'
const EMPTY_DASHBOARD_HISTORY: {
sql?: string
@@ -56,7 +58,7 @@ export const appState = proxy({
setIsOptedInTelemetry: (value: boolean | null) => {
appState.isOptedInTelemetry = value === null ? false : value
if (typeof window !== 'undefined' && value !== null) {
localStorage.setItem(LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT, value.toString())
localStorage.setItem(COMMON_LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT, value.toString())
}
},
showEnableBranchingModal: false,
+11 -7
View File
@@ -22,7 +22,10 @@ const generateRssItem = (post: any): string => {
const encodedTitle = xmlEncode(post.title)
const encodedPath = xmlEncode(post.path)
const encodedDescription = xmlEncode(post.description)
const formattedDate = dayjs(post.date).utc().format('ddd, DD MMM YYYY HH:mm:ss [GMT]')
const formattedDate = dayjs(post.date)
.utcOffset(0, true)
.startOf('day')
.format('ddd, DD MMM YYYY HH:mm:ss [-7 GMT]')
return `<item>
<guid>https://supabase.com${encodedPath}</guid>
@@ -39,6 +42,11 @@ const generateRssItem = (post: any): string => {
export const generateRss = (posts: any[], authorID?: string): string => {
const authorInfo = authors.find((item) => item.author_id === authorID)
const formattedDate = dayjs(posts[0].date)
.utcOffset(0, true)
.startOf('day')
.format('ddd, DD MMM YYYY HH:mm:ss [-7 GMT]')
if (authorID) {
return `
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
@@ -47,9 +55,7 @@ export const generateRss = (posts: any[], authorID?: string): string => {
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from ${authorInfo?.author} at Supabase</description>
<language>en</language>
<lastBuildDate>${dayjs(posts[0].date)
.utc()
.format('ddd, DD MMM YYYY HH:mm:ss [GMT]')}</lastBuildDate>
<lastBuildDate>${formattedDate}</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-${authorID}-rss.xml" rel="self" type="application/rss+xml"/>
${posts.map(generateRssItem).join('')}
</channel>
@@ -63,9 +69,7 @@ export const generateRss = (posts: any[], authorID?: string): string => {
<link>https://supabase.com</link>
<description>Latest news from Supabase</description>
<language>en</language>
<lastBuildDate>${dayjs(posts[0].date)
.utc()
.format('ddd, DD MMM YYYY HH:mm:ss [GMT]')}</lastBuildDate>
<lastBuildDate>${formattedDate}</lastBuildDate>
<atom:link href="https://supabase.com/rss.xml" rel="self" type="application/rss+xml"/>
${posts.map(generateRssItem).join('')}
</channel>
+19 -19
View File
@@ -5,133 +5,133 @@
<link>https://supabase.com</link>
<description>Latest news from Supabase</description>
<language>en</language>
<lastBuildDate>Mon, 30 Sep 2024 22:00:00 GMT</lastBuildDate>
<lastBuildDate>Tue, 01 Oct 2024 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/customers/humata</guid>
<title>Humata Scales with Supabase: Achieving 4X Cost Savings and Enhanced Performance</title>
<link>https://supabase.com/customers/humata</link>
<description>By partnering with Supabase, Humata achieved a 4X reduction in vector database costs, streamlined their development, and consolidated their data so they could scale seamlessly.</description>
<pubDate>Mon, 30 Sep 2024 22:00:00 GMT</pubDate>
<pubDate>Tue, 01 Oct 2024 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/maergo</guid>
<title>Maergo&apos;s Express Delivery: How Supabase Helped Achieve Scalability, Speed, and Cost Saving</title>
<link>https://supabase.com/customers/maergo</link>
<description>Discover how Maergo, a nationwide expedited parcel delivery service, reduced its codebase by 90%, decreased deployment times to just seconds, and achieved unprecedented scalability with Supabase.</description>
<pubDate>Tue, 11 Jun 2024 22:00:00 GMT</pubDate>
<pubDate>Wed, 12 Jun 2024 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/tinloof</guid>
<title>Streamlining Success: How Tinloof Scaled Seamlessly with Supabase</title>
<link>https://supabase.com/customers/tinloof</link>
<description>Discover Tinloof, how a full-stack development agency, managed and scaled backend services using Supabase, without having to dedicate resources to infrastructure management.</description>
<pubDate>Mon, 03 Jun 2024 22:00:00 GMT</pubDate>
<pubDate>Tue, 04 Jun 2024 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/voypost</guid>
<title>Voypost uses Supabase’s strong relational model to overcome NoSQL challenges</title>
<link>https://supabase.com/customers/voypost</link>
<description>Learn how Voypost leveraged Supabase to avoid NoSQL workarounds, enhance scalability, and deliver a superior user experience for Inkly, an intelligent contract negotiation platform.</description>
<pubDate>Mon, 03 Jun 2024 22:00:00 GMT</pubDate>
<pubDate>Tue, 04 Jun 2024 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/shotgun</guid>
<title>Supabase migration delivers an 83% reduction in data infrastructure costs for Shotgun</title>
<link>https://supabase.com/customers/shotgun</link>
<description>Discover how Shotgun, an event ticketing platform with over 3 million users, reduced costs and consolidated systems through migration to Supabase.</description>
<pubDate>Wed, 29 Nov 2023 23:00:00 GMT</pubDate>
<pubDate>Thu, 30 Nov 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/next-door-lending</guid>
<title>How Next Door Lending leveraged Supabase to become a top 10 mortgage broker</title>
<link>https://supabase.com/customers/next-door-lending</link>
<description>Discover how Supabase empowered NextDoorLending to move quickly and scale as required, leading to their surpassing other mortgage brokers and expanding their business.</description>
<pubDate>Tue, 07 Nov 2023 23:00:00 GMT</pubDate>
<pubDate>Wed, 08 Nov 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/good-tape</guid>
<title>Good Tape migrates to Supabase managed Postgres and Authentication and achieves database efficiency and a 60% cost reduction.</title>
<link>https://supabase.com/customers/good-tape</link>
<description>Explore how Good Tape achieved remarkable database efficiency and reduced costs by 60% through their successful migration to Supabase&apos;s managed services.</description>
<pubDate>Mon, 30 Oct 2023 23:00:00 GMT</pubDate>
<pubDate>Tue, 31 Oct 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/pebblely</guid>
<title>Scaling securely: one million users in 7 months with Supabase Auth</title>
<link>https://supabase.com/customers/pebblely</link>
<description>Learn how Pebblely, an AI image generation company, used Supabase Auth to handle Single Sign On for their rapidly growing user base.</description>
<pubDate>Thu, 28 Sep 2023 22:00:00 GMT</pubDate>
<pubDate>Fri, 29 Sep 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/chatbase</guid>
<title>Bootstrapped founder builds an AI app with Supabase and scales to $1M in 5 months</title>
<link>https://supabase.com/customers/chatbase</link>
<description>How Yasser leveraged Supabase to build Chatbase and became one of the most successful single-founder AI products.</description>
<pubDate>Tue, 05 Sep 2023 22:00:00 GMT</pubDate>
<pubDate>Wed, 06 Sep 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/quivr</guid>
<title>Quivr launch 5,000 Vector databases on Supabase.</title>
<link>https://supabase.com/customers/quivr</link>
<description>Learn how one of the most popular Generative AI projects uses Supabase as their Vector Store.</description>
<pubDate>Mon, 04 Sep 2023 22:00:00 GMT</pubDate>
<pubDate>Tue, 05 Sep 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/berriai</guid>
<title>Berri AI boosts productivity by migrating from AWS RDS to Supabase Vector</title>
<link>https://supabase.com/customers/berriai</link>
<description>Learn how Berri AI overcame challenges with self-hosting their vector database on AWS RDS and successfully migrated to Supabase.</description>
<pubDate>Mon, 05 Jun 2023 22:00:00 GMT</pubDate>
<pubDate>Tue, 06 Jun 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/markprompt</guid>
<title>Markprompt and Supabase - GDPR-compliant AI chatbots for docs and websites.</title>
<link>https://supabase.com/customers/markprompt</link>
<description>AI-powered chatbot platform, Markprompt, empowers developers to deliver efficient and GDPR-compliant prompt experiences on top of their content, by leveraging Supabase&apos;s secure and privacy-focused vector database and authentication solutions.</description>
<pubDate>Tue, 16 May 2023 22:00:00 GMT</pubDate>
<pubDate>Wed, 17 May 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/mendableai</guid>
<title>Mendable switches from Pinecone to Supabase Vector for PostgreSQL vector embeddings.</title>
<link>https://supabase.com/customers/mendableai</link>
<description>How Mendable boosts efficiency and accuracy of chat powered search for documentation using Supabase Vector.</description>
<pubDate>Thu, 04 May 2023 22:00:00 GMT</pubDate>
<pubDate>Fri, 05 May 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/happyteams</guid>
<title>HappyTeams unlocks better performance and reduces cost with Supabase.</title>
<link>https://supabase.com/customers/happyteams</link>
<description>How a bootstrapped startup migrated from Heroku to Supabase in 30 minutes and never looked back.</description>
<pubDate>Wed, 15 Feb 2023 23:00:00 GMT</pubDate>
<pubDate>Thu, 16 Feb 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/epsilon3</guid>
<title>Epsilon3 digitize paper-based procedures in the space industry using telemetry data, simplifying testing and operations.</title>
<link>https://supabase.com/customers/epsilon3</link>
<description>Epsilon3 uses Supabase to help teams execute secure and reliable operations in an industry where project spend runs into the billions.</description>
<pubDate>Mon, 13 Feb 2023 23:00:00 GMT</pubDate>
<pubDate>Tue, 14 Feb 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/mobbin</guid>
<title>How Mobbin migrated 200,000 users from Firebase for a better authentication experience.</title>
<link>https://supabase.com/customers/mobbin</link>
<description>Mobbin helps over 200,000 creators globally search and view the latest design patterns from well-known apps.</description>
<pubDate>Mon, 13 Feb 2023 23:00:00 GMT</pubDate>
<pubDate>Tue, 14 Feb 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/replenysh</guid>
<title>Replenysh uses Supabase to implement OTP in less than 24 hours.</title>
<link>https://supabase.com/customers/replenysh</link>
<description>With Supabase, Replenysh gets a slick auth experience, reduces DevOps overhead, and continues to scale with Postgres.</description>
<pubDate>Mon, 13 Feb 2023 23:00:00 GMT</pubDate>
<pubDate>Tue, 14 Feb 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/customers/xendit</guid>
<title>Xendit use Supabase and create a full solution shipped to production in less than one week.</title>
<link>https://supabase.com/customers/xendit</link>
<description>As a payment processor, Xendit are responsible for verifying that all transactions are legal.</description>
<pubDate>Mon, 13 Feb 2023 23:00:00 GMT</pubDate>
<pubDate>Tue, 14 Feb 2023 00:00:00 GMT</pubDate>
</item>
</channel>
@@ -5,35 +5,35 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Angelico de los Reyes at Supabase</description>
<language>en</language>
<lastBuildDate>Thu, 15 Dec 2022 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Fri, 16 Dec 2022 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-angelico_de_los_reyes-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/postgres-point-in-time-recovery</guid>
<title>Point in Time Recovery is now available for Pro projects</title>
<link>https://supabase.com/blog/postgres-point-in-time-recovery</link>
<description>We&apos;re making PITR available for more projects, with a new Dashboard UI that makes it simple to use.</description>
<pubDate>Thu, 15 Dec 2022 23:00:00 GMT</pubDate>
<pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/continuous-postgresql-backup-walg</guid>
<title>Continuous PostgreSQL Backups using WAL-G</title>
<link>https://supabase.com/blog/continuous-postgresql-backup-walg</link>
<description>Have you ever wanted to restore your database&apos;s state to a particular moment in time? This post explains how, using WAL-G.</description>
<pubDate>Sat, 01 Aug 2020 22:00:00 GMT</pubDate>
<pubDate>Sun, 02 Aug 2020 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgresql-templates</guid>
<title>What are PostgreSQL Templates?</title>
<link>https://supabase.com/blog/postgresql-templates</link>
<description>What are PostgreSQL templates and what are they used for?</description>
<pubDate>Wed, 08 Jul 2020 22:00:00 GMT</pubDate>
<pubDate>Thu, 09 Jul 2020 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgresql-physical-logical-backups</guid>
<title>Physical vs Logical Backups in PostgreSQL</title>
<link>https://supabase.com/blog/postgresql-physical-logical-backups</link>
<description>What are physical and logical backups in Postgres?</description>
<pubDate>Mon, 06 Jul 2020 22:00:00 GMT</pubDate>
<pubDate>Tue, 07 Jul 2020 00:00:00 GMT</pubDate>
</item>
</channel>
+2 -2
View File
@@ -5,14 +5,14 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Ant Wilson at Supabase</description>
<language>en</language>
<lastBuildDate>Fri, 26 Feb 2021 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Sat, 27 Feb 2021 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-ant_wilson-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/cracking-postgres-interview</guid>
<title>Cracking PostgreSQL Interview Questions</title>
<link>https://supabase.com/blog/cracking-postgres-interview</link>
<description>Understand the top PostgreSQL Interview Questions</description>
<pubDate>Fri, 26 Feb 2021 23:00:00 GMT</pubDate>
<pubDate>Sat, 27 Feb 2021 00:00:00 GMT</pubDate>
</item>
</channel>
+2 -2
View File
@@ -5,14 +5,14 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Bo Lu at Supabase</description>
<language>en</language>
<lastBuildDate>Wed, 13 Dec 2023 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Thu, 14 Dec 2023 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-bo_lu-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/supabase-wrappers-v02</guid>
<title>Supabase Wrappers v0.2: Query Pushdown &amp; Remote Subqueries</title>
<link>https://supabase.com/blog/supabase-wrappers-v02</link>
<description>Supabase Wrappers v0.2 brings more Wrappers, query pushdown, remote subquery, and more</description>
<pubDate>Wed, 13 Dec 2023 23:00:00 GMT</pubDate>
<pubDate>Thu, 14 Dec 2023 00:00:00 GMT</pubDate>
</item>
</channel>
+3 -3
View File
@@ -5,21 +5,21 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Mark Burggraf at Supabase</description>
<language>en</language>
<lastBuildDate>Wed, 23 Nov 2022 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Thu, 24 Nov 2022 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-burggraf-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/sql-or-nosql-both-with-postgresql</guid>
<title>SQL or NoSQL? Why not use both (with PostgreSQL)?</title>
<link>https://supabase.com/blog/sql-or-nosql-both-with-postgresql</link>
<description>How to turn Postgres into an easy-to-use NoSQL database that retains all the power of SQL</description>
<pubDate>Wed, 23 Nov 2022 23:00:00 GMT</pubDate>
<pubDate>Thu, 24 Nov 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgres-wasm</guid>
<title>Postgres WASM by Snaplet and Supabase</title>
<link>https://supabase.com/blog/postgres-wasm</link>
<description>We&apos;re open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet.</description>
<pubDate>Sun, 02 Oct 2022 22:00:00 GMT</pubDate>
<pubDate>Mon, 03 Oct 2022 00:00:00 GMT</pubDate>
</item>
</channel>
@@ -5,21 +5,21 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Egor Romanov at Supabase</description>
<language>en</language>
<lastBuildDate>Wed, 02 Aug 2023 22:00:00 GMT</lastBuildDate>
<lastBuildDate>Thu, 03 Aug 2023 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-egor_romanov-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/fewer-dimensions-are-better-pgvector</guid>
<title>pgvector: Fewer dimensions are better</title>
<link>https://supabase.com/blog/fewer-dimensions-are-better-pgvector</link>
<description>Increase performance in pgvector by using embedding vectors with fewer dimensions</description>
<pubDate>Wed, 02 Aug 2023 22:00:00 GMT</pubDate>
<pubDate>Thu, 03 Aug 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/pgvector-performance</guid>
<title>pgvector 0.4.0 performance</title>
<link>https://supabase.com/blog/pgvector-performance</link>
<description>There&apos;s been a lot of talk about pgvector performance lately, so we took some datasets and pushed pgvector to the limits to find out its strengths and limitations.</description>
<pubDate>Wed, 12 Jul 2023 22:00:00 GMT</pubDate>
<pubDate>Thu, 13 Jul 2023 00:00:00 GMT</pubDate>
</item>
</channel>
+2 -2
View File
@@ -5,14 +5,14 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Filipe Cabaço at Supabase</description>
<language>en</language>
<lastBuildDate>Mon, 08 Jan 2024 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Tue, 09 Jan 2024 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-filipe-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/elixir-clustering-using-postgres</guid>
<title>Elixir clustering using Postgres</title>
<link>https://supabase.com/blog/elixir-clustering-using-postgres</link>
<description>Learn about our approach to connecting multiple nodes in Elixir using Postgres</description>
<pubDate>Mon, 08 Jan 2024 23:00:00 GMT</pubDate>
<pubDate>Tue, 09 Jan 2024 00:00:00 GMT</pubDate>
</item>
</channel>
+4 -4
View File
@@ -5,28 +5,28 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Greg Richardson at Supabase</description>
<language>en</language>
<lastBuildDate>Tue, 05 Sep 2023 22:00:00 GMT</lastBuildDate>
<lastBuildDate>Wed, 06 Sep 2023 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-gregnr-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/increase-performance-pgvector-hnsw</guid>
<title>pgvector v0.5.0: Faster semantic search with HNSW indexes</title>
<link>https://supabase.com/blog/increase-performance-pgvector-hnsw</link>
<description>Increase performance in pgvector using HNSW indexes</description>
<pubDate>Tue, 05 Sep 2023 22:00:00 GMT</pubDate>
<pubDate>Wed, 06 Sep 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/fewer-dimensions-are-better-pgvector</guid>
<title>pgvector: Fewer dimensions are better</title>
<link>https://supabase.com/blog/fewer-dimensions-are-better-pgvector</link>
<description>Increase performance in pgvector by using embedding vectors with fewer dimensions</description>
<pubDate>Wed, 02 Aug 2023 22:00:00 GMT</pubDate>
<pubDate>Thu, 03 Aug 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/openai-embeddings-postgres-vector</guid>
<title>Storing OpenAI embeddings in Postgres with pgvector</title>
<link>https://supabase.com/blog/openai-embeddings-postgres-vector</link>
<description>An example of how to build an AI-powered search engine using OpenAI&apos;s embeddings and PostgreSQL.</description>
<pubDate>Sun, 05 Feb 2023 23:00:00 GMT</pubDate>
<pubDate>Mon, 06 Feb 2023 00:00:00 GMT</pubDate>
</item>
</channel>
+2 -2
View File
@@ -5,14 +5,14 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Michel Pelletier at Supabase</description>
<language>en</language>
<lastBuildDate>Thu, 15 Dec 2022 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Fri, 16 Dec 2022 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-michel-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/vault-now-in-beta</guid>
<title>Supabase Vault is now in Beta</title>
<link>https://supabase.com/blog/vault-now-in-beta</link>
<description>A Postgres extension to store encrypted secrets and encrypt data.</description>
<pubDate>Thu, 15 Dec 2022 23:00:00 GMT</pubDate>
<pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
</item>
</channel>
+9 -9
View File
@@ -5,63 +5,63 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Oliver Rice at Supabase</description>
<language>en</language>
<lastBuildDate>Tue, 12 Dec 2023 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Wed, 13 Dec 2023 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-oli_rice-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/postgrest-12</guid>
<title>PostgREST 12</title>
<link>https://supabase.com/blog/postgrest-12</link>
<description>PostgREST 12 is out and we take a look at some of the major new features like JWT Caching and Aggregate Functions</description>
<pubDate>Tue, 12 Dec 2023 23:00:00 GMT</pubDate>
<pubDate>Wed, 13 Dec 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/pg-graphql-postgres-functions</guid>
<title>pg_graphql: Postgres functions now supported</title>
<link>https://supabase.com/blog/pg-graphql-postgres-functions</link>
<description>pg_graphql now supports the most requested feature: Postgres functions a.k.a. User Defined Functions (UDFs)</description>
<pubDate>Mon, 11 Dec 2023 23:00:00 GMT</pubDate>
<pubDate>Tue, 12 Dec 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/fewer-dimensions-are-better-pgvector</guid>
<title>pgvector: Fewer dimensions are better</title>
<link>https://supabase.com/blog/fewer-dimensions-are-better-pgvector</link>
<description>Increase performance in pgvector by using embedding vectors with fewer dimensions</description>
<pubDate>Wed, 02 Aug 2023 22:00:00 GMT</pubDate>
<pubDate>Thu, 03 Aug 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/whats-new-in-pg-graphql-v1-2</guid>
<title>What&apos;s New in pg_graphql v1.2</title>
<link>https://supabase.com/blog/whats-new-in-pg-graphql-v1-2</link>
<description>New Features in the v1.2 release of pg_graphql</description>
<pubDate>Thu, 20 Apr 2023 22:00:00 GMT</pubDate>
<pubDate>Fri, 21 Apr 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/type-constraints-in-65-lines-of-sql</guid>
<title>Type Constraints in 65 lines of SQL</title>
<link>https://supabase.com/blog/type-constraints-in-65-lines-of-sql</link>
<description>Creating validated data types in Postgres</description>
<pubDate>Thu, 16 Feb 2023 23:00:00 GMT</pubDate>
<pubDate>Fri, 17 Feb 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/pg-graphql-v1</guid>
<title>pg_graphql v1.0</title>
<link>https://supabase.com/blog/pg-graphql-v1</link>
<description>Announcing the v1.0 release of pg_graphql</description>
<pubDate>Thu, 15 Dec 2022 23:00:00 GMT</pubDate>
<pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation</guid>
<title>pg_jsonschema: JSON Schema support for Postgres</title>
<link>https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation</link>
<description>Today we&apos;re releasing pg_jsonschema, a Postgres extension for JSON validation.</description>
<pubDate>Thu, 18 Aug 2022 22:00:00 GMT</pubDate>
<pubDate>Fri, 19 Aug 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgres-audit</guid>
<title>Postgres Auditing in 150 lines of SQL</title>
<link>https://supabase.com/blog/postgres-audit</link>
<description>PostgreSQL has a robust set of features which we can leverage to create a generic auditing solution in 150 lines of SQL.</description>
<pubDate>Mon, 07 Mar 2022 23:00:00 GMT</pubDate>
<pubDate>Tue, 08 Mar 2022 00:00:00 GMT</pubDate>
</item>
</channel>
@@ -5,42 +5,42 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Paul Copplestone at Supabase</description>
<language>en</language>
<lastBuildDate>Sun, 30 Apr 2023 22:00:00 GMT</lastBuildDate>
<lastBuildDate>Mon, 01 May 2023 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-paul_copplestone-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/postgres-pluggable-strorage</guid>
<title>Next steps for Postgres pluggable storage</title>
<link>https://supabase.com/blog/postgres-pluggable-strorage</link>
<description>Exploring history of Postgres pluggable storage and the possibility of landing it in the Postgres core.</description>
<pubDate>Sun, 30 Apr 2023 22:00:00 GMT</pubDate>
<pubDate>Mon, 01 May 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgres-crdt</guid>
<title>pg_crdt - an experimental CRDT extension for Postgres</title>
<link>https://supabase.com/blog/postgres-crdt</link>
<description>Embedding Yjs and Automerge into Postgres for collaborative applications.</description>
<pubDate>Fri, 09 Dec 2022 23:00:00 GMT</pubDate>
<pubDate>Sat, 10 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/partial-postgresql-data-dumps-with-rls</guid>
<title>Partial data dumps using Postgres Row Level Security</title>
<link>https://supabase.com/blog/partial-postgresql-data-dumps-with-rls</link>
<description>Using RLS to create seed files for local PostgreSQL testing.</description>
<pubDate>Mon, 27 Jun 2022 22:00:00 GMT</pubDate>
<pubDate>Tue, 28 Jun 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgres-as-a-cron-server</guid>
<title>Postgres as a CRON Server</title>
<link>https://supabase.com/blog/postgres-as-a-cron-server</link>
<description>Running repetitive tasks with your Postgres database.</description>
<pubDate>Thu, 04 Mar 2021 23:00:00 GMT</pubDate>
<pubDate>Fri, 05 Mar 2021 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgresql-views</guid>
<title>Postgres Views</title>
<link>https://supabase.com/blog/postgresql-views</link>
<description>Creating and using a view in PostgreSQL.</description>
<pubDate>Tue, 17 Nov 2020 23:00:00 GMT</pubDate>
<pubDate>Wed, 18 Nov 2020 00:00:00 GMT</pubDate>
</item>
</channel>
+6 -6
View File
@@ -5,42 +5,42 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Pavel Borisov at Supabase</description>
<language>en</language>
<lastBuildDate>Wed, 01 May 2024 22:00:00 GMT</lastBuildDate>
<lastBuildDate>Thu, 02 May 2024 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-pavel-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/pgvector-0-7-0</guid>
<title>What&apos;s new in pgvector v0.7.0</title>
<link>https://supabase.com/blog/pgvector-0-7-0</link>
<description>Exploring new features in pgvector v0.7.0</description>
<pubDate>Wed, 01 May 2024 22:00:00 GMT</pubDate>
<pubDate>Thu, 02 May 2024 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgres-bloat</guid>
<title>Postgres Bloat Minimization</title>
<link>https://supabase.com/blog/postgres-bloat</link>
<description>Understanding and minimizing Postgres table bloat</description>
<pubDate>Thu, 25 Apr 2024 22:00:00 GMT</pubDate>
<pubDate>Fri, 26 Apr 2024 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/pgvector-performance</guid>
<title>pgvector 0.4.0 performance</title>
<link>https://supabase.com/blog/pgvector-performance</link>
<description>There&apos;s been a lot of talk about pgvector performance lately, so we took some datasets and pushed pgvector to the limits to find out its strengths and limitations.</description>
<pubDate>Wed, 12 Jul 2023 22:00:00 GMT</pubDate>
<pubDate>Thu, 13 Jul 2023 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/new-in-postgres-15</guid>
<title>What&apos;s new in Postgres 15?</title>
<link>https://supabase.com/blog/new-in-postgres-15</link>
<description>Describes the release of Postgres 15, new features and reasons to use it</description>
<pubDate>Thu, 15 Dec 2022 23:00:00 GMT</pubDate>
<pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/postgresql-commitfest</guid>
<title>What is PostgreSQL commitfest and how to contribute</title>
<link>https://supabase.com/blog/postgresql-commitfest</link>
<description>A time-tested method for contributing to the core Postgres code</description>
<pubDate>Wed, 26 Oct 2022 22:00:00 GMT</pubDate>
<pubDate>Thu, 27 Oct 2022 00:00:00 GMT</pubDate>
</item>
</channel>
+2 -2
View File
@@ -5,14 +5,14 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Philipp Steinrötter at Supabase</description>
<language>en</language>
<lastBuildDate>Thu, 07 Dec 2023 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Fri, 08 Dec 2023 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-philipp-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/postgres-language-server-implementing-parser</guid>
<title>Postgres Language Server: implementing the Parser</title>
<link>https://supabase.com/blog/postgres-language-server-implementing-parser</link>
<description>A detailed analysis of our iterations to implement a Parser for Postgres</description>
<pubDate>Thu, 07 Dec 2023 23:00:00 GMT</pubDate>
<pubDate>Fri, 08 Dec 2023 00:00:00 GMT</pubDate>
</item>
</channel>
@@ -5,21 +5,21 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Raminder Singh at Supabase</description>
<language>en</language>
<lastBuildDate>Wed, 10 Apr 2024 22:00:00 GMT</lastBuildDate>
<lastBuildDate>Thu, 11 Apr 2024 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-raminder_singh-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/postgres-roles-and-privileges</guid>
<title>Postgres Roles and Privileges</title>
<link>https://supabase.com/blog/postgres-roles-and-privileges</link>
<description>A guide to Postgres roles and privileges</description>
<pubDate>Wed, 10 Apr 2024 22:00:00 GMT</pubDate>
<pubDate>Thu, 11 Apr 2024 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/how-pg-graphql-works</guid>
<title>How pg_graphql works</title>
<link>https://supabase.com/blog/how-pg-graphql-works</link>
<description>An insight into the internals of GraphQL in Postgres using pg_graphql, and how you can contribute.</description>
<pubDate>Tue, 23 Jan 2024 23:00:00 GMT</pubDate>
<pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate>
</item>
</channel>
+2 -2
View File
@@ -5,14 +5,14 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Stanislav Muzhyk at Supabase</description>
<language>en</language>
<lastBuildDate>Tue, 12 Dec 2023 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Wed, 13 Dec 2023 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-stas-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/supavisor-postgres-connection-pooler</guid>
<title>Supavisor 1.0: a scalable connection pooler for Postgres</title>
<link>https://supabase.com/blog/supavisor-postgres-connection-pooler</link>
<description>Supavisor is now used across all projects, providing a scalable and cloud-native Postgres connection pooler that can handle millions of connections</description>
<pubDate>Tue, 12 Dec 2023 23:00:00 GMT</pubDate>
<pubDate>Wed, 13 Dec 2023 00:00:00 GMT</pubDate>
</item>
</channel>
@@ -5,21 +5,21 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Steve Chavez at Supabase</description>
<language>en</language>
<lastBuildDate>Thu, 15 Dec 2022 23:00:00 GMT</lastBuildDate>
<lastBuildDate>Fri, 16 Dec 2022 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-steve_chavez-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/postgrest-11-prerelease</guid>
<title>PostgREST 11 pre-release</title>
<link>https://supabase.com/blog/postgrest-11-prerelease</link>
<description>Describes new features of PostgREST 11 pre-release</description>
<pubDate>Thu, 15 Dec 2022 23:00:00 GMT</pubDate>
<pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/roles-postgres-hooks</guid>
<title>Protecting reserved roles with PostgreSQL Hooks</title>
<link>https://supabase.com/blog/roles-postgres-hooks</link>
<description>Using Postgres Hooks to protect functionality in your Postgres database.</description>
<pubDate>Thu, 01 Jul 2021 22:00:00 GMT</pubDate>
<pubDate>Fri, 02 Jul 2021 00:00:00 GMT</pubDate>
</item>
</channel>
+4 -4
View File
@@ -5,28 +5,28 @@
<link>https://supabase.com/blog</link>
<description>Latest Postgres news from Victor at Supabase</description>
<language>en</language>
<lastBuildDate>Thu, 13 Oct 2022 22:00:00 GMT</lastBuildDate>
<lastBuildDate>Fri, 14 Oct 2022 00:00:00 GMT</lastBuildDate>
<atom:link href="https://supabase.com/planetpg-victor-rss.xml" rel="self" type="application/rss+xml"/>
<item>
<guid>https://supabase.com/blog/postgres-full-text-search-vs-the-rest</guid>
<title>Postgres Full Text Search vs the rest</title>
<link>https://supabase.com/blog/postgres-full-text-search-vs-the-rest</link>
<description>Comparing one of the most popular Postgres features against alternatives</description>
<pubDate>Thu, 13 Oct 2022 22:00:00 GMT</pubDate>
<pubDate>Fri, 14 Oct 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/choosing-a-postgres-primary-key</guid>
<title>Choosing a Postgres Primary Key</title>
<link>https://supabase.com/blog/choosing-a-postgres-primary-key</link>
<description>Turns out the question of which identifier to use as a Primary Key is complicated -- we&apos;re going to dive into some of the complexity and inherent trade-offs, and figure things out</description>
<pubDate>Wed, 07 Sep 2022 22:00:00 GMT</pubDate>
<pubDate>Thu, 08 Sep 2022 00:00:00 GMT</pubDate>
</item>
<item>
<guid>https://supabase.com/blog/seen-by-in-postgresql</guid>
<title>Implementing &quot;seen by&quot; functionality with Postgres</title>
<link>https://supabase.com/blog/seen-by-in-postgresql</link>
<description>Different approaches for tracking visitor counts with PostgreSQL.</description>
<pubDate>Sun, 17 Jul 2022 22:00:00 GMT</pubDate>
<pubDate>Mon, 18 Jul 2022 00:00:00 GMT</pubDate>
</item>
</channel>
+302 -309
View File
File diff suppressed because it is too large. Load diff
+4 -4
View File
@@ -217,7 +217,7 @@
</url>
<url>
<loc>https://supabase.com/launch-week/6</loc>
<loc>https://supabase.com/launch-week/8</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
@@ -229,7 +229,7 @@
</url>
<url>
<loc>https://supabase.com/launch-week/8</loc>
<loc>https://supabase.com/launch-week/6</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
@@ -241,13 +241,13 @@
</url>
<url>
<loc>https://supabase.com/partners/integrations</loc>
<loc>https://supabase.com/partners/experts</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://supabase.com/partners/experts</loc>
<loc>https://supabase.com/partners/integrations</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
+15 -3
View File
@@ -30,15 +30,27 @@ export const ConsentToast = ({ onAccept = noop, onOptOut = noop }: ConsentToastP
target="_blank"
rel="noreferrer noopener"
href="https://supabase.com/privacy#8-cookies-and-similar-technologies-used-on-our-european-services"
className="underline underline-offset-2 decoration-foreground-lighter hover:decoration-foreground-light transition-all"
className="hidden sm:inline underline underline-offset-2 decoration-foreground-lighter hover:decoration-foreground-light transition-all"
>
Learn more
</a>{' '}
<PrivacySettings className="inline sm:hidden underline text-light">
</p>
<div className="flex items-center justify-start gap-x-2 sm:hidden">
<a
target="_blank"
rel="noreferrer noopener"
href="https://supabase.com/privacy#8-cookies-and-similar-technologies-used-on-our-european-services"
className="underline underline-offset-2 text-foreground-light hover:decoration-foreground-light transition-all"
>
Learn more
</a>
<span className="text-foreground-lighter text-xs">•</span>
<PrivacySettings className="underline underline-offset-2 inline text-light">
Privacy settings
</PrivacySettings>
</p>
</div>
</div>
<div className="flex items-center space-x-2">
<Button
type="default"