diff --git a/apps/www/lib/rss.tsx b/apps/www/lib/rss.tsx
index 36fb38f5825..c0409f8393d 100644
--- a/apps/www/lib/rss.tsx
+++ b/apps/www/lib/rss.tsx
@@ -1,3 +1,4 @@
+import authors from 'lib/authors.json'
const dayjs = require('dayjs')
var utc = require('dayjs/plugin/utc')
var advancedFormat = require('dayjs/plugin/advancedFormat')
@@ -17,8 +18,29 @@ const generateRssItem = (post: any): string => {
`
}
-export const generateRss = (posts: any[]): string => {
- return `
+// we generate a main rss.xml flie as well as individual files for
+// authors who publish under the `planetpg` tag
+export const generateRss = (posts: any[], authorID?: string): string => {
+ const authorInfo = authors.find((item) => item.author_id === authorID)
+
+ if (authorID) {
+ return `
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from ${authorInfo?.author} at Supabase
+ en
+ ${dayjs(posts[0].date)
+ .utc()
+ .format('ddd, DD MMM YYYY HH:hh:mm ZZ')}
+
+ ${posts.map(generateRssItem).join('')}
+
+
+`
+ } else {
+ return `
Blog - Supabase
@@ -33,4 +55,5 @@ export const generateRss = (posts: any[]): string => {
`
+ }
}
diff --git a/apps/www/pages/blog.tsx b/apps/www/pages/blog.tsx
index 49eb7c8351f..a14bbd8feef 100644
--- a/apps/www/pages/blog.tsx
+++ b/apps/www/pages/blog.tsx
@@ -19,16 +19,23 @@ export async function getStaticProps() {
const allPostsData = getSortedPosts('_blog', undefined, undefined, '** BLOG PAGE **')
const categories = getAllCategories('_blog')
const rss = generateRss(allPostsData)
- // @ts-ignore
- const planetPgPosts = allPostsData.filter((post) => post.tags.includes('planetpg'))
- const planetPgrss = generateRss(planetPgPosts)
// create a rss feed in public directory
// rss feed is added via
component in render return
fs.writeFileSync('./public/rss.xml', rss)
- // create separate feed for just posts promoted in PlanetPG
- fs.writeFileSync('./public/planetpg-rss.xml', planetPgrss)
+ // generate a series of rss feeds for each author (for PlanetPG)
+ const planetPgPosts = allPostsData.filter((post: any) => post.tags.includes('planetpg'))
+ const planetPgAuthors = planetPgPosts.map((post: any) => post.author.split(','))
+ const uniquePlanetPgAuthors = new Set([].concat(...planetPgAuthors))
+
+ uniquePlanetPgAuthors.forEach((author) => {
+ const authorPosts = planetPgPosts.filter((post: any) => post.author.includes(author))
+ if (authorPosts.length > 0) {
+ const authorRss = generateRss(authorPosts, author)
+ fs.writeFileSync(`./public/planetpg-${author}-rss.xml`, authorRss)
+ }
+ })
return {
props: {
diff --git a/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml b/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml
new file mode 100644
index 00000000000..84fe8fab257
--- /dev/null
+++ b/apps/www/public/planetpg-angelico_de_los_reyes-rss.xml
@@ -0,0 +1,40 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Angelico de los Reyes at Supabase
+ en
+ Thu, 15 Dec 2022 03:03:30 +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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+
+
diff --git a/apps/www/public/planetpg-ant_wilson-rss.xml b/apps/www/public/planetpg-ant_wilson-rss.xml
new file mode 100644
index 00000000000..07cfe4056b8
--- /dev/null
+++ b/apps/www/public/planetpg-ant_wilson-rss.xml
@@ -0,0 +1,19 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Ant Wilson at Supabase
+ en
+ Sat, 27 Feb 2021 03:03:30 +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
+
+
+
+
diff --git a/apps/www/public/planetpg-burggraf-rss.xml b/apps/www/public/planetpg-burggraf-rss.xml
new file mode 100644
index 00000000000..26233a86f1e
--- /dev/null
+++ b/apps/www/public/planetpg-burggraf-rss.xml
@@ -0,0 +1,26 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Mark Burggraf at Supabase
+ en
+ Wed, 23 Nov 2022 03:03:30 +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
+
+
+ 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
+
+
+
+
diff --git a/apps/www/public/planetpg-michel-rss.xml b/apps/www/public/planetpg-michel-rss.xml
new file mode 100644
index 00000000000..3bcd14a76b8
--- /dev/null
+++ b/apps/www/public/planetpg-michel-rss.xml
@@ -0,0 +1,26 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Michel Pelletier at Supabase
+ en
+ Thu, 15 Dec 2022 03:03:30 +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
+
+
+ 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
+
+
+
+
diff --git a/apps/www/public/planetpg-oli_rice-rss.xml b/apps/www/public/planetpg-oli_rice-rss.xml
new file mode 100644
index 00000000000..77f01e50bdf
--- /dev/null
+++ b/apps/www/public/planetpg-oli_rice-rss.xml
@@ -0,0 +1,26 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Oliver Rice at Supabase
+ en
+ Thu, 15 Dec 2022 03:03:30 +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
+
+
+ https://supabase.com/blog/audit
+ Postgres Auditing in 150 lines of SQL
+ https://supabase.com/blog/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
+
+
+
+
diff --git a/apps/www/public/planetpg-paul_copplestone-rss.xml b/apps/www/public/planetpg-paul_copplestone-rss.xml
new file mode 100644
index 00000000000..bc3d31ea3d3
--- /dev/null
+++ b/apps/www/public/planetpg-paul_copplestone-rss.xml
@@ -0,0 +1,33 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Paul Copplestone at Supabase
+ en
+ Mon, 27 Jun 2022 02:02:30 +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
+
+
+ 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
+
+
+ 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
+
+
+
+
diff --git a/apps/www/public/planetpg-pavel-rss.xml b/apps/www/public/planetpg-pavel-rss.xml
new file mode 100644
index 00000000000..e6dbbb4c1fe
--- /dev/null
+++ b/apps/www/public/planetpg-pavel-rss.xml
@@ -0,0 +1,26 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Pavel Borisov at Supabase
+ en
+ Thu, 15 Dec 2022 03:03:30 +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
+
+
+ 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
+
+
+
+
diff --git a/apps/www/public/planetpg-rss.xml b/apps/www/public/planetpg-rss.xml
deleted file mode 100644
index 9a980d87cea..00000000000
--- a/apps/www/public/planetpg-rss.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
-
- Blog - Supabase
- https://supabase.com
- Latest news from Supabase
- en
- Thu, 15 Dec 2022 03:03:30 +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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- https://supabase.com/blog/audit
- Postgres Auditing in 150 lines of SQL
- https://supabase.com/blog/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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
- 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
-
-
-
-
diff --git a/apps/www/public/planetpg-steve_chavez-rss.xml b/apps/www/public/planetpg-steve_chavez-rss.xml
new file mode 100644
index 00000000000..575cafb6b06
--- /dev/null
+++ b/apps/www/public/planetpg-steve_chavez-rss.xml
@@ -0,0 +1,26 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Steve Chavez at Supabase
+ en
+ Thu, 15 Dec 2022 03:03:30 +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
+
+
+ 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
+
+
+
+
diff --git a/apps/www/public/planetpg-victor-rss.xml b/apps/www/public/planetpg-victor-rss.xml
new file mode 100644
index 00000000000..e742fb6eec8
--- /dev/null
+++ b/apps/www/public/planetpg-victor-rss.xml
@@ -0,0 +1,33 @@
+
+
+
+ 'Postgres | Supabase Blog
+ https://supabase.com/blog
+ Latest Postgres news from Victor at Supabase
+ en
+ Thu, 13 Oct 2022 02:02:30 +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
+
+
+ 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
+
+
+ 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
+
+
+
+