Commit Graph
24 Commits
Author SHA1 Message Date
Charis 29820d8309 www: properly surface not-found blog slugs (#45537)
Recent changes to blog pages surfaced existing errors because we stopped
silently swallowing errors. We were not properly handing the case when
the requested slug was not found, now this properly calls notFound()

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Enhanced error handling for missing blog posts to display a proper
"Not Found" page instead of showing an application error when users
attempt to access unavailable blog content.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-05-04 11:29:25 -04:00
Danny WhiteandAlan Daniel 48b96e8a79 fix(www): use imgSocial for blog OG images (#43842)
## What kind of change does this PR introduce?

- Bug fix that resolves DEPR-396
- Additional improvements to blog post image handling

## What is the current behavior?

Blog post Open Graph metadata often prefers `imgThumb` over `imgSocial`,
so social previews on X, iMessage, and similar surfaces can render the
on-site thumbnail instead of the intended social image.

The image selection and path-normalization rules are also duplicated
across blog surfaces, which makes the precedence rules easy to drift.

## What is the new behavior?

- Centralizes blog image handling in `apps/www/lib/blog-images.ts`
- Uses `imgSocial` first, then `imgThumb`, for blog OG/Twitter metadata
- Uses `imgThumb` first, then `imgSocial`, then the placeholder, for
blog thumbnails and post hero images
- Normalizes relative blog image paths into absolute URLs for metadata
- Adds warning-only validation during content reads/builds for partial
or malformed `imgSocial` / `imgThumb` config
- Updates a few recent blog posts so `imgThumb` is a thumbnail-only
asset instead of duplicating the social image

## Additional context

- Replaces #42319 with the additional above fixes
- Added unit coverage for the shared image helper

---------

Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
2026-03-19 02:45:11 +00:00
Danny White ba107edbda chore(www): clarify image paths (#41451)
## What kind of change does this PR introduce?

Frontmatter name change.

## What is the current behavior?

We repeatedly mistake `thumb` for `image` and visa versa, meaning the
wrong images are used for Open Graph and in-site thumbnails on blog
posts. Events and case studies use the same naming convention too.

## What is the new behavior?

These two bits of frontmatter are renamed for clarity:

  - Blog posts: `imgThumb` + `imgSocial`

That mapping for blog posts:

- `thumb` is now `imgThumb`
- `image` is now `imgSocial`

These related bits remain as-is:

  - Events
  - Case studies

The
[www/README.md](https://github.com/supabase/supabase/blob/dnywh/chore/blog-image-frontmatter/apps/www/README.md#best-practices)
file has been expanded to clarify all of the above. It now also provides
instructions on image optimisation.

## To test

A lot of files were touched here. Please help make sure:

- [ ] The CMS works as intended. This is the **biggest unknown**.
- [x] All blog posts render the correct image as their on-site thumbnail
and Open Graph image. You can test the latter by firing up a draft
iMessage. Online Open Graph services like Facebook cache images, so
aren’t reliable.
- [x] All events render their correct images
- [x] All case studies render their correct images
- [x] All customer stories render their correct images ([known
issue](https://supabase.slack.com/archives/C072FL5KKKP/p1768888063209359?thread_ts=1768885681.502169&cid=C072FL5KKKP),
predates this work)
2026-01-29 11:29:26 +11:00
Alan Daniel c80e8e7604 New VibeCoders page (#39373)
* set up

* more sections

* new section

* ai logos

* nits

* format

* nits

* limit

* rm postgrid date
2025-10-10 17:29:40 -04:00
Francesco Sansalvadore 2feda5ee19 cms www blog (#38045)
* show cms blog posts in www
* remove contentlayer from www
* outputFileTracingExcludes
* update remotePatterns
* fetch cms posts server-side with revalidation
* add cms env vars to turbo.json
* add www env vars to turbo.json
* include cms posts in www sitemap
* add migration to remove image from cms post
* update cms meta image mapping in www
2025-09-03 14:49:28 +02:00
Francesco Sansalvadore d2f7e4e8e0 fix timezones on events (#29061)
* fix timezones on events

* fix bucharest tz

* events og image on the edge

* fix merge conflict

* fix meta_title
2024-09-04 15:27:56 +02:00
Francesco Sansalvadore 36938fb06a Feat: events index (#28975)
* events page

* events

* add spacing to on demand section

* sort events

* cleanup

* keep on demand open for registration

* fix events sitemap gen

* change titles

* add event

* add event

* remove fixed witdh

* text-nowrap

* reduce gaps

* watch now
2024-08-29 22:39:14 +00:00
Francesco Sansalvadore d4d1369ce4 Fix dynamic blog posts (#28911)
* update blog post sorting

* remove published_at

* avoid rerender

* subtract date

* remove deprecated icon

* safari fix
2024-08-28 17:30:10 +08:00
Francesco Sansalvadore 3ec49c7e0d webinar page (#28441) 2024-08-07 14:05:56 -04:00
Francesco SansalvadoreandJonathan Summers-Muir 4bc3a231e3 contentlayer2 in www + dynamic latest blog posts (#26611)
* add contentlayer2 to www

* remove authorURL from blog post meta

* latest blog posts in Developers dropdown menu

* parse blog slug in contentlayer

* change next config plugins order

* contentlayer build in www package.json

* contentlayer2

* contentlayer2 build on typecheck in www

* remove comment

* Update package-lock.json

* revert npm package version

* Update package-lock.json

---------

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
2024-05-24 07:02:47 +00:00
Francesco Sansalvadore f770b16e2f clean up merge 2023-08-23 12:14:58 +03:00
Francesco Sansalvadore 2a9eb58b52 blog: add categories filtering logic 2023-08-23 11:33:20 +03:00
Daniel Cruz bb579cc3c9 improve performance of getSortedPosts 2023-07-08 20:21:46 -06:00
Daniel Cruz 7fc3cbd23d filter posts in getSortedPosts to get correct number of posts 2023-07-04 11:30:48 -06:00
Francesco Sansalvadore f093b73873 fix tags 2023-06-27 15:51:15 +02:00
Francesco Sansalvadore a0bd5efdbb chore: add published_at attribute to specify order and featured post 2023-04-14 16:41:11 +02:00
Francesco Sansalvadore 04e8a7e886 update case-studies to customers everywhere 2023-03-30 13:55:01 +02:00
Francesco Sansalvadore ec68490c33 chore: remove console.log 2023-03-30 13:54:14 +02:00
Jonathan Summers-Muir 51688d947f udpate layout a bit 2023-03-30 13:49:31 +02:00
Jonathan Summers-Muir 78a3529715 fix: rss 2022-08-12 14:08:53 -03:00
Jonathan Summers-Muir 259f91c532 fix: add path to blog meta data 2022-08-12 13:44:39 -03:00
Jonathan Summers-Muir 7f61072cf4 chore: update urls 2022-08-05 14:04:36 -03:00
Jonathan Summers-Muir e26c1772ff chore: add initial changes to support new content 2022-06-03 15:09:23 +08:00
Copple 7bf96dcc09 moves the entire website into the apps folder 2022-04-21 12:04:22 +02:00