FIELD NOTES

「今月の産地」が古くならないように、作り直した

2026.09.19

先日、自主制作の「旅暦珈琲」を見直していて、おかしなことに気づきました。9月に入っているのに、トップの「今月の産地」が、8月のインドネシアのままだったのです。

旅暦珈琲は、毎月15日に産地が切り替わる横浜の焙煎所、という設定で作ったサイトです。架空のお店ですが、この種の間違いは、実際のお店のサイトでも起きます。

何が起きていたか

産地のデータには、「いまはこれ」という印を、手で付けていました。

// 一部を抜粋
{ id: "aceh", monthNum: "2026.08", isCurrent: true }

新しい月の産地を追加するとき、前の月の印を外し忘れる。あるいは、追加そのものを忘れる。どちらの場合も、サイトはエラーを出さずに、古い情報を出し続けます。気づけるのは、誰かが画面を見たときだけです。

直し方:印をやめて、日付を持たせる

印の代わりに、各産地に発表日(startDate)を持たせました。そして、いまの日付から「発表日を過ぎているものの中で、いちばん新しいもの」を選ぶようにしました。

const started = sorted.filter((o) => new Date(o.startDate) <= today);
const current = started[started.length - 1];

これで、産地のデータを追加さえすれば、15日を迎えた時点で表示が切り替わります。追加を忘れたときも、「先月のまま止まって見える」だけで、間違った情報にはなりません。

「今月」や「最新」は、手で書き換える情報にしない。

古い月は、見せない

産地暦のカードは、直近3か月分だけを出すようにしました。データは残したまま、表示するのは新しい3件だけです。1年たっても、ページが長くなり続けません。カードの色も、表示の順番から自動で決まるようにして、月ごとに手で指定するのをやめました。

ついでに直したこと

  • 小さな文字の色を、WCAGのAA基準(通常の文字でコントラスト比4.5:1)に届くまで濃くした。目で見て判断せず、数値を測って確かめた
  • アイコン、シェアされたときの画像、robots.txt、サイトマップを追加した

学んだこと

営業時間の「本日」、キャンペーンの「開催中」、ブログの「新着」。お店のサイトには、同じ作りにできる場所がたくさんあります。日付と、日付から答えを出すルールだけを持たせておけば、更新の手間が減るだけでなく、「更新し忘れ」というミスの種類そのものが消えます。