mottox2 blog

Netlify Formsで問い合わせフォームを作ったら簡単だった

blognetlify

当ブログは静的サイトホスティングサービスのNetlifyでホスティングされています。
今回、ブログに問い合わせフォームを置くためにNetlify Formsを使ったのですが、静的サイトのまま簡単にフォームが設置できて最高でした。

Speeeのもくもく会(めっちゃおしゃれなオフィスでもくもくできる)で作りました。ありがたい。

つくったもの

スクリーンショット 2018-05-29 11.32.43.png (225.3 kB)
https://mottox2.com/contact

Netlify Formsとは?

静的サイトを運営しているのに、フォームを置くために裏にPHPなどのコードを動かすみたいな選択肢はイケていません。
フォームを置くだけならGoogle Formなどの選択肢もありますが、NetlifyにはNetlify Formsというフォームを簡単に作って管理画面上で簡単に確認できるような仕組みを用意してくれています。

html
<form name="contact" method="POST" netlify>
  <!-- Your Form -->
</form>

のような形のHTMLを書くだけです。また自分でHTMLを書くのでデザインのカスタマイズも自由自在、サイトにあったイメージのフォームを置くことができます。
なお、100件のリクエストまで無料プラン(Forms Free)で使うことができます。参考: Price

Docsによると、ビルド時にHTMLをパースして、内部にformが存在しているか確かめているそうです。

Docucment

Static Site Generatorで使うときに注意すること

GatsbyなどのStatic Site GeneratorでFormsを使用するはform-nameというhidden fieldを足す必要があります。Netlifyのブログ記事によるとNetlifyが挿入するフォームをGatsbyが消してしまうためだそうです。

おそらく前述のビルド時にHTMLをパースするときにNetlifyがform-nameというhidden formを埋め込むので、それを手動でやってくれという話だと思います。
以下のようなコードを書けば動きます。

html
<form name="contact" method="post" data-netlify="true">
  <input type="hidden" name="form-name" value="contact" />  
  ...   
</form>

GatsbyでNetlify Formsを使うサンプルコードも用意されています。
imorente/gatsby-netlify-form-example: Example site integrating Netlify's form handing in Gatsby's starter template

B!
dev

Netlifyで環境変数を設定する

Netlifyではビルドコマンドを設定して、デプロイ時にビルド処理を実行することが多いです。その際に利用するデータベースのユーザーネーム・パスワードや外部サービスのTokenなどは一般的にはソースコー

netlify
event

GatsbyJSハンズオン資料

2019/01/08にサポーターズで行われる『Gatsbyで今風ウェブサイトの開発ハンズオン』のハンズオン資料です。 > スライドスライド > 各種リンク各種リンク - CodeSand

tips

npmに公開したパッケージを非推奨(deprecated)にする

npmにパッケージを公開したけど、今はもうメンテナンスしていないパッケージはないだろうか?自分にはある。 とあるコードを書いている最中にnpmに非推奨(deprecated)の概念があることがわかっ

npmnodejs