Netlify Meetup Tokyo #2
https://gyazo.com/fa9be6b5e0d0614ccd99e79067ba3333
https://netlify-meetup-tokyo.connpass.com/event/100705/
会場:株式会社ABEJA
静的サイトだけじゃないnetlifyの活用法
https://speakerdeck.com/mottox2/netlify-extra-mode
静的サイトホスティング以外の活用法
機能編
Netlify Functions
code:functions.js
exports.handler = functions(event, context, callback) {
callback(null, {
statusCode: 200,
body 'Hello, World'
})
}
code:netlify.toml
build
functions = "functions"
JSONファイル配信
public
sample.json
毎回書くのは辛くない?
Build CommandでJSONを吐き出すコードを書けばいい
pubilsh = "pubic/"
command ="node fetch.js > public/posts.json"
レスポンスヘッダをいじりたい
_headersで設定可能
公開ディレクトリ直下に置いて指定できる
CORS用ヘッダ
yamanoku.icon gzip圧縮らへんはできるだろうか?
拡張子はどうするのか
たとえばpublich/post/1.htmlで.html除去した配信はできな
応用編
SasSとつなぐ・CMS化
構成
https://gyazo.com/1790b87add3508bcd0a794f5cae2283b
Slack Event API
Event Subscriptionsの設定
GitHub Repository Contents API
ビルドされてJSON化
yamanoku.icon デモでは絵文字を付けたSlackのメッセージがJSON化してまとめられてた
こういう活用法ができるのではないか?
https://twitter.com/koni/status/1006452321583271936
https://gyazo.com/0e70ec87ba71460b0c17f6c4d7a98ad8
yamanoku.icon SlackをCMSのようにして、絵文字がついたものがpublishされるみたいな審議のとり方ができそう
事例
https://mottox2.com/
https://gyazo.com/bffbec5aa56ed10b6c029689edb82aa9
記事はesa.ioで書いたもの
esaの中でWebhookでNetlifyのBuild hookを叩く
GatsbyJS
https://tbf05-catalog.netlify.com/
技術書典配布
https://gyazo.com/8a962f228ef6f7ca7b0b7eec8d819586
yamanoku.icon 運営から一言きてた
https://twitter.com/mhidaka/status/1045010868663013376
yamanoku.icon 公開停止されたようです
Netlify identifyを利用したWeb Application構築 @joe_re
https://speakerdeck.com/joere/go-beyound-static-on-netlify
メリット
インフラエンジニアに色々と要求しなくても良い
セットアップが簡単
SSL化もすぐ
カスタムドメイン登録も簡単
BFFのように扱いたい
Lambda Functionsというものがある
AWS Lambda Functionsと同様の動きができる
AWSアカウントが不要
Netlify Identify
https://www.netlify.com/docs/identity/
ユーザーにメタデータを付与できる
GitHub.icon https://github.com/netlify/netlify-identity-widget
公式ユーザーログイン認証ウェジェット
https://identity.netlify.com/
GitHub.icon https://github.com/netlify/gotrue-js
GoTureというユーザーマネジメントAPI用を使うときのやつ
context.clientContextからユーザーロールを判定
https://speakerdeck.com/joere/go-beyound-static-on-netlify?slide=19
env(環境変数)もnetlify.tomlで設定できる
lamdbdaにプルリクを出してる模様
https://github.com/netlify/netlify-lambda/pull/57
返事なし
まとめ
静的サイトの配信だけではない。やれることは実は結構多い
全部フロントだけで完結できるNetlifyすごい
Jamstackっていったいなんなんですか問題に向き合う @miyaoka
https://slides.com/masayakazama/what-is-jamstack/
JAMstack知っているか
https://jamstack.org/
Netlifyの中の人がよく言っている
https://twitter.com/search?q=from%3ANetlify%20jamstack&src=typed_query&f=live
Matt Biilmann
CEO and Co-founder of Netlify
JAMstackという新たな概念の生みの親
https://jamstack.org/best-practices/
ENTIRE PROJECT ON A CDN
EVERYTHING LIVES IN GIT
MODERN BUILD TOOLS
AUTOMATED BUILDS
ATOMIC DEPLOYS
INSTANT CACHE INVALIDATION
これらは全部Netlifyのこと
NetlifyはJAMstackに最適なツールである
yamanoku.icon 自作自演かな?
JAM
JavaScript
API
Markup
その言葉の意味する定義を知りたい
2015年
https://www.staticwebtech.com
今の https://jamstack.org/
STATIC WEB-TECH
「静的サイト」を作る技術
https://gyazo.com/08f94e98f7ae903a3f62668d3be412a9
2016年
https://speakerdeck.com/biilmann/the-jam-stack
JAMstackという概念が生まれる
サーバーサイドやインフラでいろいろやってもらうのはメンテや脆弱性で大変。
だったらAPIを叩いてビルドしたのをCDN乗せれて静的サイトに見せればいいのではないか
機能として動的なデータを扱うHyperDynamicなサイトを作る
これはStaticという概念では収まりきらない
ゆえにJAMstackというものが生まれる
https://www.heavybit.com/library/podcasts/jamstack-radio/ep-2-the-jamstack-origin-story/​
まとめ
JAMstackとは
一言で言えば、事前ビルドで静的化したSPAをCDNで配信する技術
事前SSRのようなもの
でも機能的にはstaticじゃない。
動的なデータを扱うHyperDynamicなサイトを作ってる
Staticって言うと手書きHTMLみたいな語弊があるので新しい言葉を作らなければならなかった
JAMって語感から決めたからそんなに意味無いっちゃ無い
GatsbyJS + Contentful + Netlifyが黄金パターン
最強のJAMstack
定義には無いが「APIレスポンスの静的化」もJAMstackには必要ではないか?
GatsbyJSだと静的化してくれるけど、Nuxt.jsでgenerateだとそういう仕組みは無い
asyncDataにAPIと接続する処理を書いてしまうと、クライアントルーティングで遷移するときにAPI通信が発生してしまう
awaitが終わらないとページ遷移できないし、先読みもしないのでblazing fastから遠い
Nuxt.jsならビルド前フックでAPIレスポンスを静的化する
GatsbyJSみたいに予めデータソースをシステムとして考慮して扱うのがスマート
JAMstackの理念にマッチする
https://gyazo.com/8baf83518e3c24c27b36af43c3713f67
https://jamstack.org/community/
日本はいつ?
関連
https://twitter.com/kylemathews/status/1043226318978998272
Top Open-Source Static Site Generators | Hacker News
Firebase、Flamelink、Nuxt、Netlify、PWAを使ってJAMstackなブログを作る - Qiita