feature image

2026年3月22日 | ブログ記事

Web Speed Hackathon 2026 参加記

このブログは新歓ブログリレー2026のブログではありません

はじめに

2026年3月20日~3月21日にかけて CyberAgent が主催する Web Speed Hackathon 2026 が開催されました。ざっくり言うとめちゃめちゃ重いWebサイトを渡されて、それをいかに速くできるかを競う大会です。詳しいことが知りたい人はコンテストのページとか過去の参加記とかを読んでみると面白いと思います。

Web Speed Hackathon 2026
Web Speed Hackathonとは、予め準備してあるWebアプリケーションのパフォーマンスを改善することで競い合うハッカソンです。主にWeb技術(フロントエンドおよびNode.js)に関するチューニングを出題いたします。表示に非常に時間がかかるサービスをどこまで高速化できるかを競います。

結果

負けました。

https://web-speed-hackathon-scoring-board-2026.fly.dev/

でも言い訳をすると、本当にちょっとの変更で落ちてて、かなり惜しかったです。苦しい。

やったこと

リポジトリはこれです。運営が用意した fly.io にデプロイしてたので、全ての情報がここに入ってます。

GitHub - cp-20/web-speed-hackathon-2026: https://cyberagent.connpass.com/event/371488/
https://cyberagent.connpass.com/event/371488/. Contribute to cp-20/web-speed-hackathon-2026 development by creating an account on GitHub.

ゆるっと時系列順に並んでますが、やや入れ替えてるところもあります。

最初

とりあえず最初は重すぎてアプリを開くのもままならない感じなので、デグレ同行とかをあんまり考えずにガシガシ変更を入れてました。

バンドラー移行する

将来的にバンドラー移行したいと思ってたので、変なパッケージを削る作業もしてました。

その上で webpack → vite の移行をしました。AI に書かせたらスッとやってくれたので、楽ちんでした。前にやった時は tsup → vite があんまり上手く行かなかったのでドキドキしてたんですが、今回は全然詰まらなくて良かったです。

重そうな箇所を適当に直す

適当にページを見て Lighthouse 回して重いところ探したり、bundle analyzer 見て重いパッケージ消したりしてました。どこを直すかは自分で決めて、改善はほとんどAIにやらせてました。

E2E回しつつ、改善する

ここら辺までくると割とまともに E2E が回るようになってくるので、回してました。VRT は expected を上手く作れないので全然機能してなかった気がしますが、機能面でのテストはいくつか本当のバグを発見してくれました。

具体的には検索でそもそも 500 エラーで何も返ってこなかったり、なんか件数が少なかったり、エラー文言が違ったりといったバグを見つけられました。

ただアプリケーションを改善するにつれて、E2E テストがアプリケーションにそぐわなくなってしまうところは E2E テスト自体をいじって改善していました。例えば動画が canvas で再生されること前提になっていたので、video で再生してもちゃんと E2E が通るように修正していたりしました。

SSRしたい

基本 JS とかメディアとかを削って転送量を削減して FCP/LCP を改善しつつ、変なリレンダリングを削って CLS を改善していたんですが、ここら辺で FCP/LCP が結構頭打ちになってきました。ということで奥の手 SSR を発動します。

SSR すると TTFB は悪化しますが、JS を読み込まなくても FCP/LCP の要素を読み込めるのでこれらの指標の改善が期待できます。もっと言えばキャッシュできる部分をキャッシュして ISR っぽくすることで TTFB の悪化をできるだけ抑えることができます。

2~3時間格闘した結果、SSR できました。が、あんまりスコアは改善せず、、

ファーストビュー速くする

せっかく SSR したのでファーストビューを極限まで速くしたいですよね。

サーバーも速くする

所感

基本はAIが全部書いてくれて楽で速いんですが、結構壊してくるのでそこの担保をちゃんとやる必要がありますね。あと得意不得意はかなりハッキリあって、サーバーサイドで使われてた sequelize というライブラリはかなり苦手そうでした。特に今期テストの外で宣言されているものが重要だったりして、バグったコードを平気で書いてくることもありました。

途中から E2E は結構回してて、かつ最後は initial commit の状態と目視で比較して差分を調べてて、レギュレーションは気を付けてたつもりなんですが、落ちちゃいました。最後の1時間でDM一覧の画面が結構壊れてた (APIの返すものが全然違った) のを直したのはかなりドキドキしました。

おわりに

参加者の皆さんお疲れさまでした。最後の方はかなりチューニングが頭打ちになってたのでボクよりもスコア高い人は本当にすごいと思ってます。

そして運営の皆さんも本当にお疲れさまでした。いつも面白い問題と厳格なレギュレーションチェックをありがとうございます。無事引っ掛かりました。

来年こそは優勝します。

cp20 icon
この記事を書いた人
cp20

23B / icon: https://twitter.com/sora_douhu

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年12月11日
DIGI-CON HACKATHON 2023『Mikage』
toshi00 icon toshi00
2023年10月20日
DIGI-CON HACKATHON 参加記事「Comic DoQ」
mehm8128 icon mehm8128
2024年12月11日
最近参加したオフラインイベントについてまとめてみる
Pugma icon Pugma
2024年3月25日
ちょっとわかる!!!!!【Web Speed Hackathon2024 参加記】
mehm8128 icon mehm8128
2025年12月4日
ICPC Taichung Regional 2025 参加記 (zoi_dayo視点)
zoi_dayo icon zoi_dayo
2024年3月26日
Web Speed Hackathon 2024に初出場して優勝しました
cp20 icon cp20
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記