HAROLABO Tech Blog

テクノロジーを使いやすく!ハロラボの技術情報発信メディアです。

AstroでWebサイトを構築する

Astroで会社サイトを再構築しました。

なんでもコードで作りたい自分としては、Webサイトもコードで作りたいと考えています。 しかし、Reactなどの昨今のフロントエンドフレームワークは動的なアプリをつくるためのもので、静的なWebサイトには大きすぎます。 かといって、HTMLを直接書くというのも今時ではありません。

というわけで、WebサイトをつくるときにはSTUDIOなどのノーコードツールを使って構築することが多かったのですが、 Astroというちょうどよさそうなツールが出てきたので、当社の会社サイトを再構築してみました。

astro.build

セットアップ

何も考えることはありません。これで終了です。

yarn create astro

実行はいつものです。

yarn run dev

サイトをつくる

基本的なこととして、Astroでは、.astroというファイルでHTMLに相当するコードを記述します。 .jsxみたいなものですね。

.astroファイルは簡単に言うと、こういう構造をしています。

---
Reactコード
---

<html>
HTMLコード
</html>

<style>
CSSコード
</style>

シンプルで分かりやすいですね。

pages/に置いた.astroファイルの名前がそのままパス名になります。 ですので、単にpages/に.astroファイルを書いていけば、サイトの完成です。 アセット類は、いつものようにpublic/に置きます。

共通で使う部品はコンポーネント化してcomponents/に置いておくこともできます。 ここら辺はReactの仕組みが使えていいですね。

特徴的な機能としては、content/に置く.tsファイルです。 コードとしては、単なるオブジェクト定義ですが、テキストデータをpagesから切り出して別に管理できるようにする仕組みです。

元々、HTMLは文書構造のためのもので、見た目の要素(CSS)は後付け的な位置づけです。 ということは、テキストデータを別にすることも理にかなっているわけです。

構築もしやすいし、管理もしやすい。 とてもいいフレークワークだと思いました。

お問い合わせフォームをつくる

お問い合わせフォームだけは、静的なコードでは構築できません。 メールを送信するだけなので、APIを1つつくればいいだけなのですが、SSGformというシンプルに使えるサービスがありましたので使わせていただきました。

ssgform.com

使い方は簡単で、SSGformでフォームの設定を作成し、form actionにSSGformで作成したフォームのURLを設定するだけです。

メールの文面も自由に設定できますし、受信したお問い合わせメールにそのまま返信すれば、お問い合わせされた方が宛先に設定されて、返信できます。 reCAPTCHAやチャット連携などもできます。

これでだいたいのWebサイトはつくれそうです。 再構築した当社のWebサイトはこちらになります。

harolabo.com