Floating Dots
時計の前に立つ女性のイラスト

Airtableを利用したSanity + Gatsbyサイトの予約投稿システム


Airtableを利用したSanity + Gatsbyサイトの予約投稿システムを公開しました。

SanityなどのHeadless CMSではWordPressのようなリアルタイムな予約投稿を行うことができません。
この方法はGithubなどのデベロッパー向けのツールを使うことなく予約投稿ができるシステムです。投稿者はCMSで公開日に未来の日時を指定するだけで予約投稿が完了します。

また、予約投稿の公開予定日、公開済みなどのステータスはAirtableで確認することができます。

Headless CMSの予約投稿について

一般的なHeadlessCMSの予約投稿はこのどちらかです。

A. 予約投稿を行った時にビルドを行い、データを生成、ウェブサイト上でデータの表示非表示を行う。

B. 予約投稿の時間になったらビルドを行い、投稿を公開する。

Aの方法は簡単ですが、公開前に投稿データ(jsonファイルなど)が反映されているためソースコードから未公開の投稿を閲覧することができてしまいます。

Bの方法では投稿日時を管理するか、毎分や毎時ビルドを行う必要があります。
定期的にビルドを行う方法は、Serverless Functionsのリソースを使うのでいい方法とは言えません。

NowやNetlifyにデプロイされているGatsbyのウェブサイトでは、データベースを持っていないことが多いためAirtableを使用しています。また、すべてのコードはNow Lambdaで動いています。

ソースコードはこちらのレポジトリからご覧ください。

https://github.com/naotone/gatsby-sanity-post-scheduler


お問い合わせはこちらから👇