← Works へ戻る

NØEVA

架空の音楽プロジェクト「NØEVA」の公式サイトです。
実案件では公開しづらい、設計や実装、運用まで含めて見せられるショーケースとして制作しました。

PCでの表示
タブレットでの表示
スマートフォンでの表示

モックアップではなく、実際のサイトをそのまま撮っています(1440 / 834 / 390px)。

なぜ作ったか

実案件は守秘義務の関係で、中身まで見せられないことが多くあります。

そこで、完成した画面だけでなく「なぜこの作りにしたのか」まで公開できる作品をひとつ作ろうと思いました。

題材に選んだのはアーティストサイトです。

情報量が少ないぶん、書体や余白、写真、動き、音の扱いがそのままサイトの印象になります。その難しさがおもしろいと感じました。

このサイトでできること

  • 楽曲の90秒プレビュー再生
  • 波形シークバーとOSのメディアコントロール連携
  • 日本語 / English / 한국어 の3言語対応
  • 公演終了後の表示自動切り替え
  • 作品・公演情報の絞り込み
  • microCMSによるコンテンツ管理
  • GitHub ActionsからCloudflareへの自動デプロイ

どう作ったか

HTML / CSS / JavaScriptで制作しています。フレームワークは使わず、依存パッケージもゼロです。

ブラウザの標準機能で足りるものは、できるだけそのまま使いました。

実装にはClaude Codeを使っていますが、コンセプト、配色、書体、コピー、写真、音楽、世界観などの判断は自分で行っています。

HTMLCSSJavaScriptWeb Audio APIMedia Session APICloudflare WorkersmicroCMSGitHub ActionsPythonClaude Code

microCMSを入れた理由

フルスクラッチの良さは、サイト構成やデザインを自由に設計できることです。

その自由度を残したまま、更新しやすいサイトにするため、コンテンツ管理にはmicroCMSを採用しました。

フロントエンドとCMSを分けることで、デザインや機能をCMSのテンプレートに合わせる必要がなく、必要な情報だけをAPIから取得できます。

  • デザインや機能を自由に設計できる
  • シンプルな管理画面から更新できる
  • CMS本体のアップデートや保守の負担を減らせる
  • フロントエンドと管理画面を分離できる
  • ひとつのデータをWebサイトや他の媒体でも使える

NØEVAでは、公演情報や作品情報をmicroCMSで管理。公開するとGitHub Actionsがデータを取得し、サイトへ自動反映する仕組みにしています。

コンテンツ管理の流れ。1. microCMS で公開する → 2. GitHub Actions が取得して生成しプッシュ → 3. Cloudflare が自動でデプロイ
microCMS で公開 → GitHub Actions が取得して生成 → Cloudflare がデプロイ。

フルスクラッチの自由度と、CMSの更新しやすさ。その両方を持たせることを目指しました。

設計で意識したこと

CMSはブラウザから直接呼ばず、生成時にサーバー側で取得しています。そのため、APIキーがブラウザに渡ることはありません。

また、何でもCMSに入れるのではなく、更新する可能性がある文章だけを管理対象にしました。

依存パッケージも増やさず、生成処理はPythonの標準ライブラリだけで書いています。

詰まったところ

うまくいかなかったものも、そのまま書いています。

波形が表示されない原因を2回外した

CSSを読んで原因を予想しましたが、どちらも外れました。

実際にブラウザで描画して確認すると、波形の親要素の幅が0になっていることが原因でした。

それ以降、見た目の問題はコードだけで判断せず、必ず実際の描画を確認するようにしています。

数字

依存パッケージ
0(npm なし)
公開ファイル
24枚 / 8.1MB
言語
3(77項目 × 3)
収録曲
5(90秒プレビュー)

世界観からサイト一式で、といったご相談も受け付けています。

メールで相談する