diff --git a/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx b/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx index 3a4f9cfec3a..08f7ee51a7d 100644 --- a/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx +++ b/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx @@ -1,5 +1,5 @@ --- -title: 'Introducing JWT signing keys' +title: 'Introducing JWT Signing Keys' description: "A new JWT signing keys system based on public key cryptography to improve your project's security and performance." categories: - product @@ -10,8 +10,9 @@ tags: date: '2025-07-14:00:00' toc_depth: 3 author: stojan -image: ... -thumb: ... +image: launch-week-15/day-1-jwt-signing-keys/og.jpg +thumb: launch-week-15/day-1-jwt-signing-keys/thumb.jpg +launchweek: 15 --- Today we're announcing some long awaited changes in Supabase: diff --git a/apps/www/components/Hero/Hero.tsx b/apps/www/components/Hero/Hero.tsx index 9c22c431c68..a10b23f5e28 100644 --- a/apps/www/components/Hero/Hero.tsx +++ b/apps/www/components/Hero/Hero.tsx @@ -20,7 +20,7 @@ const Hero = () => { url="/launch-week#main-stage" badge="LW15" announcement={announcement.launch} - className="-mt-8" + className="lg:-mt-8" hasArrow />
diff --git a/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx b/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx index 69630dbd9ae..1b8611af83d 100644 --- a/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx +++ b/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx @@ -14,7 +14,7 @@ const LW14Summary = () => { >
Launch Week 14 diff --git a/apps/www/components/LaunchWeek/15/LWSummary.tsx b/apps/www/components/LaunchWeek/15/LWSummary.tsx new file mode 100644 index 00000000000..e79a5a0d256 --- /dev/null +++ b/apps/www/components/LaunchWeek/15/LWSummary.tsx @@ -0,0 +1,109 @@ +import React from 'react' +import Link from 'next/link' +import { buildDays, mainDays } from './data' +import { Lock } from 'lucide-react' + +const LW14Summary = () => { + const days = mainDays() + + return ( +
+
+ + Launch Week 15 + +
July 14 — 18
+
+
+
    + {days.map((day, i: number) => + day.shipped ? ( +
      + + Day {i + 1} + - + {day.title} + +
    + ) : ( +
      + + Day {i + 1} + - + + +
    + ) + )} +
+
+
+
+
Build Stage
+
    + {buildDays.map((day, i: number) => + day.is_shipped ? ( +
      + + + + {i + 1 < 10 ? '0' : ''} + {i + 1} + + - + {day.title} + + +
    + ) : ( +
      + + + + {i + 1 < 10 ? '0' : ''} + {i + 1} + + - + + + +
    + ) + )} +
      + + Community Meetups + +
    +
+
+
+
+ ) +} + +export default LW14Summary diff --git a/apps/www/components/LaunchWeek/15/data/lw15_data.tsx b/apps/www/components/LaunchWeek/15/data/lw15_data.tsx index 5ddd0c483b3..e8e8715fb14 100644 --- a/apps/www/components/LaunchWeek/15/data/lw15_data.tsx +++ b/apps/www/components/LaunchWeek/15/data/lw15_data.tsx @@ -64,10 +64,10 @@ const days: (isDark?: boolean) => WeekDayProps[] = (isDark = true) => [ shipped: true, isToday: true, hasCountdown: false, - blog: '/blog/', + blog: '/blog/jwt-signing-keys', date: 'Monday, 14th', published_at: '2025-03-31T07:00:00.000-07:00', - title: 'Introducing ...', + title: 'Introducing JWT Signing Keys', description: '', links: [ { diff --git a/apps/www/pages/blog/[slug].tsx b/apps/www/pages/blog/[slug].tsx index 749df534396..bf2abfe5cb0 100644 --- a/apps/www/pages/blog/[slug].tsx +++ b/apps/www/pages/blog/[slug].tsx @@ -10,20 +10,21 @@ import { Badge } from 'ui' import dayjs from 'dayjs' import authors from 'lib/authors.json' -import { generateReadingTime, isNotNullOrUndefined } from '~/lib/helpers' -import mdxComponents from '~/lib/mdx/mdxComponents' -import { mdxSerialize } from '~/lib/mdx/mdxSerialize' -import { getAllPostSlugs, getPostdata, getSortedPosts } from '~/lib/posts' +import { generateReadingTime, isNotNullOrUndefined } from 'lib/helpers' +import mdxComponents from 'lib/mdx/mdxComponents' +import { mdxSerialize } from 'lib/mdx/mdxSerialize' +import { getAllPostSlugs, getPostdata, getSortedPosts } from 'lib/posts' -import ShareArticleActions from '~/components/Blog/ShareArticleActions' -import CTABanner from '~/components/CTABanner' -import LW11Summary from '~/components/LaunchWeek/11/LW11Summary' -import LW12Summary from '~/components/LaunchWeek/12/LWSummary' -import LW13Summary from '~/components/LaunchWeek/13/Releases/LWSummary' -import LW14Summary from '~/components/LaunchWeek/14/Releases/LWSummary' -import BlogLinks from '~/components/LaunchWeek/7/BlogLinks' -import LWXSummary from '~/components/LaunchWeek/X/LWXSummary' -import DefaultLayout from '~/components/Layouts/Default' +import ShareArticleActions from 'components/Blog/ShareArticleActions' +import CTABanner from 'components/CTABanner' +import LW11Summary from 'components/LaunchWeek/11/LW11Summary' +import LW12Summary from 'components/LaunchWeek/12/LWSummary' +import LW13Summary from 'components/LaunchWeek/13/Releases/LWSummary' +import LW14Summary from 'components/LaunchWeek/14/Releases/LWSummary' +import LW15Summary from 'components/LaunchWeek/15/LWSummary' +import BlogLinks from 'components/LaunchWeek/7/BlogLinks' +import LWXSummary from 'components/LaunchWeek/X/LWXSummary' +import DefaultLayout from 'components/Layouts/Default' import { ChevronLeft } from 'lucide-react' type Post = ReturnType[number] @@ -139,6 +140,7 @@ function BlogPostPage(props: InferGetStaticPropsType) { const isLaunchWeek12 = props.blog.launchweek?.toString().toLocaleLowerCase() === '12' const isLaunchWeek13 = props.blog.launchweek?.toString().toLocaleLowerCase() === '13' const isLaunchWeek14 = props.blog.launchweek?.toString().toLocaleLowerCase() === '14' + const isLaunchWeek15 = props.blog.launchweek?.toString().toLocaleLowerCase() === '15' const author = authorArray .map((authorId) => { @@ -353,6 +355,7 @@ function BlogPostPage(props: InferGetStaticPropsType) { {isLaunchWeek12 && } {isLaunchWeek13 && } {isLaunchWeek14 && } + {isLaunchWeek15 && }
Share this article
diff --git a/apps/www/public/images/blog/launch-week-15/day-1-jwt-signing-keys/og.jpg b/apps/www/public/images/blog/launch-week-15/day-1-jwt-signing-keys/og.jpg new file mode 100644 index 00000000000..7b8ca262fda Binary files /dev/null and b/apps/www/public/images/blog/launch-week-15/day-1-jwt-signing-keys/og.jpg differ diff --git a/apps/www/public/images/blog/launch-week-15/day-1-jwt-signing-keys/thumb.jpg b/apps/www/public/images/blog/launch-week-15/day-1-jwt-signing-keys/thumb.jpg new file mode 100644 index 00000000000..c3bacf37ccf Binary files /dev/null and b/apps/www/public/images/blog/launch-week-15/day-1-jwt-signing-keys/thumb.jpg differ diff --git a/apps/www/public/rss.xml b/apps/www/public/rss.xml index 08f5d8d9f20..cd3d3cc4c1f 100644 --- a/apps/www/public/rss.xml +++ b/apps/www/public/rss.xml @@ -5,9 +5,16 @@ https://supabase.com Latest news from Supabase en - Wed, 25 Jun 2025 00:00:00 -0700 + Mon, 14 Jul 2025 00:00:00 -0700 + https://supabase.com/blog/jwt-signing-keys + Introducing JWT Signing Keys + https://supabase.com/blog/jwt-signing-keys + A new JWT signing keys system based on public key cryptography to improve your project's security and performance. + Mon, 14 Jul 2025 00:00:00 -0700 + + https://supabase.com/blog/natural-db Build a Personalized AI Assistant with Postgres https://supabase.com/blog/natural-db diff --git a/packages/ui-patterns/src/Banners/data.json b/packages/ui-patterns/src/Banners/data.json index ac06717e7c8..1b21e512a03 100644 --- a/packages/ui-patterns/src/Banners/data.json +++ b/packages/ui-patterns/src/Banners/data.json @@ -1,6 +1,6 @@ { "text": "LW15: Day 1", - "launch": "TBD", + "launch": "JWT Signing Keys", "launchDate": "2025-07-14T08:00:00.000-07:00", "link": "/launch-week#main-stage", "cta": "Learn more"