Closed43

Astro Together 2024 全部観る

Shinya FujinoShinya Fujino

React Conf のほうがまだ終わっていないが若干飽きてきたので、まだ観ていなかった Astro Together に一旦切り替える。こちらはトータルで 2 時間くらいなのですぐ終わるはず。

Shinya FujinoShinya Fujino

完全に脱線だが、このスクラップのトピックを選択して出てくる Astro のロゴがちょっと古めだったため https://astro.build/press/ にあるものに変更した(Zenn はダークモードがないので黒っぽくなる):

さらについでに Starlight トピック用のアイコンも申請しておいた。Zenn の仕組み上申請ステータスなどが見られないのでちゃんとできているかわからず若干不安。

Shinya FujinoShinya Fujino

Canada の Montreal で 5 月 28 日に開催。当日の写真などは以下にある:

https://astro.build/blog/astro-together-montreal/

Shinya FujinoShinya Fujino

イベントの管理は luma でおこなわれた:

https://lu.ma/astro-together-meetup-2024

関係ないが、日本ではイベントの管理が connpass でおこなわれることがなぜか多く、正直異常に体験が悪いため(特に iOS アプリ)、この luma などモダンな代替があれば切り替えていってほしい。Remix Tokyo × Cloudflare Meetup は luma を使っている:

https://lu.ma/wv9xzam7

Shinya FujinoShinya Fujino

まずはこちらのまとめ動画から:

https://www.youtube.com/watch?v=tk1RWcasgxs

Shinya FujinoShinya Fujino

Fred K. Schott が Astro の現状と未来の話、Ben Holmes が Actions の話、Matthew Phillips が Container API などの話、Sarah Rainsberger が Starlight の話、という流れの模様。いつものメンツという感じで高まるが、地味に matthewp が話しているのをあまり見たことがなかったので新鮮かも。

Shinya FujinoShinya Fujino
Shinya FujinoShinya Fujino
Shinya FujinoShinya Fujino

taintObjectReference や server-only を使ってユーザーが気を付けるのではなく、フレームワークがそれを自動的に防止するべきだよねという話で、非常に頷ける。

Shinya FujinoShinya Fujino

FormData の型の扱いがめんどくさいので組み込みでサポートしますよといういい話、これもよくわかる。

Shinya FujinoShinya Fujino

React というか Next.js の Actions の微妙なポイントを解消しようとしていて、後発だからできるという感じではあるけど、全体的にやりたいことには納得感がある。

Shinya FujinoShinya Fujino

後半は Like ボタンや React 19 の useActionState と組み合わせるフォームのデモ。さらに最後は JS を無効化しても後者のフォームが動くというデモだった。「あれこれって React でも動くんだっけ?」と微妙によくわからなくなったので useActionState を復習しないとな...

Shinya FujinoShinya Fujino
Shinya FujinoShinya Fujino

HTTP リクエストをリライトする機能が追加された話。Astro コンポーネント内やミドルウェアで使用できる。ミドルウェアの場合は以下のような感じのコードになる:

import { defineMiddleware } from 'astro:middleware';

export const onRequest = defineMiddleware(({ request, url }, next) => {
  if(request.method === 'POST' && url.pathname === '/api') {
    return next('/api/v2');
  }
});
Shinya FujinoShinya Fujino

静的生成のパフォーマンス改善の話。Astro Docs を例に、単なる改善で 14m03s -> 5m30s に、そして実験的な Content Collections のキャッシュ機能を使うと 1m09s になったといういい話:

なお左下でめっちゃ喜んでるのが Docs チームの Sarah である。かわいいw

Shinya FujinoShinya Fujino

astro:env により環境変数に型を付けたりバリデーションできるというめちゃ嬉しい話。サードパーティのライブラリとか自前実装でなんとかしがちだけど、あったら普通に嬉しいのでフレームワークに入れたのだと思う。ありがたい(使い方も簡単)。現時点では v5-beta のドキュメントに書かれている:

https://5-0-0-beta.docs.astro.build/en/guides/environment-variables/#type-safe-environment-variables

Shinya FujinoShinya Fujino

最後は https://docs.astro.build/en/reference/container-reference/ にある Container API の話。Astro コンポーネントをビルドプロセスから独立してレンダリングすることを可能とする API で、現状文字列にレンダリングできる。これを利用して PHP プロジェクト内にアイランド込み(!)で Astro コンポーネントを埋め込むというデモ。ちゃんとカウンターも動いていて素晴らしい。

Shinya FujinoShinya Fujino
Shinya FujinoShinya Fujino

次は自分も深く関わっている Docs の話。冒頭の Contributors のリスト

に極小サイズだが Fred と Yan に挟まれて登場でき嬉しい 😂

Shinya FujinoShinya Fujino

コードを書く以外に色々なコントリビューションの仕方があるよといういい話。Astro の魅力は個人的にはコミュニティの雰囲気で、こういう色々なところに顔を出して温かい言葉をかけている Sarah の存在は特に重要だと思っている。

Shinya FujinoShinya Fujino
Shinya FujinoShinya Fujino

Push the web forward をモットーにして Astro を開発してきた結果、Core Web Vitals を根拠にパフォーマンス面で牽引できているという話。

Shinya FujinoShinya Fujino
  • 2021 Island Architecture
  • 2022 Content Collections
  • 2023 View Transitions

と機能が追加されてきたけど、2024 年はこれらをさらに発展させていく。

Shinya FujinoShinya Fujino

View Transitions、上流の人たちがこういうことができると認識していないのであまり仕事で使う感じにならなかったんだけど、そろそろ自分も使っていきたいなあ。以下のコードで動くらしい:

<style>
  @view-transition {
    navigation: auto;
  }
</style>
Shinya FujinoShinya Fujino

自分もいくつか Content Layer を使ったパッケージを前に作ってみたけど、コンテントのデータソースの自然な拡張となっており普通に素晴らしい機能だと思う。

Shinya FujinoShinya Fujino

何より server:defer だけで OK なのは既存のアイランドの延長として受け入れやすいし、こういう API の拡張の仕方が Astro の魅力だと感じる。

Shinya FujinoShinya Fujino

これにて終了。短くまとまっていて 2024 年の Astro についてさっと復習できたので良かった。Montreal に気軽に行きたい人生だった...

このスクラップは5日前にクローズされました