Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp

Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp

- Gatsby.js を採用した背景
- Gatsby.js とは
- どうやって作ったか
- できあがったもの
- リリースしてどうだったか
- 所感など

A79762150f8a3c6015ec11c4f494a371?s=128

kikunantoka

April 04, 2019
Tweet

Transcript

  1. Gatsby.js ͰಋೖࣄྫΛ όγόγಡΊΔSPAͳLPΛ࡞ͬͨ࿩ @kikunantoka Meguro.es #20 @Drecom on 2018/04/04

  2. ࣗݾ঺հ @kikunantoka

  3. ݸਓ։ൃ https://nakamy.com

  4. ϘʔυήʔϜ੍࡞ https://tapir-studio.com

  5. ࣗݾ঺հ about: name: Fumitaka Kikukawa url: https://kikunantoka.com twitter: @kikunantoka job:

    engineer work_at: giftee Inc. // giftee is a good company.
  6. ఻͍͑ͨ͜ͱ • Gatsby.js Λ࠾༻ͨ͠എܠ • Gatsby.js ͱ͸ • Ͳ͏΍ͬͯ࡞͔ͬͨ •

    Ͱ͖͕͋ͬͨ΋ͷ • ϦϦʔεͯ͠Ͳ͏͔ͩͬͨ • ॴײͳͲ
  7. Gatsby.js Λ࠾༻ͨ͠എܠ

  8. giftee

  9. giftee

  10. giftee

  11. giftee

  12. giftee for Buisness

  13. ୲౰͍ͯ͠ΔϓϩμΫτ ʢࣾ಺Ͱ($1ͱུ͞Εͩ͢ʜʣ HJGUFFΠϯελϯτ΢ΟϯGPS5XJUUFSͷڧΈᶃ நબ͔Βܠ඼ͷఏڙ·ͰҰؾ௨؏Ͱ͝ఏڙ நબγεςϜ ʢΠϯελϯτ΢Οϯʣ σδλϧΪϑτͷఏڙ ʢछྨҎ্ͷܠ඼ʣ ϦΞϧλΠϜʹநબɺ ͦͷ৔Ͱܠ඼Λ෇༩

  14. LINEೝূͷύλʔϯ΋ఏڙ HJGUFFΠϯελϯτ΢ΟϯGPS-*/&ͷڧΈᶃ ©2018 gi)ee Inc. all rights reserved J நબ͔Βܠ඼ͷఏڙ·ͰҰؾ௨؏Ͱ͝ఏڙ

    நબγεςϜ ʢΠϯελϯτ΢Οϯʣ σδλϧΪϑτͷఏڙ ʢछྨҎ্ͷܠ඼ʣ ϦΞϧλΠϜʹநબɺ ͦͷ৔Ͱܠ඼Λ෇༩
  15. ΊͬͪΌΞΫηεདྷΔ • ༑ͩͪ਺ 2300ສͷLINEΞΧ΢ϯτͰΩϟϯϖʔϯΛ࣮ࢪͨ݁͠Ռ ʊਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹ࠷େ 30ສRPMɹʻ ʉY^Y^Y^Y^Y^Y^Y^Y^ʉ

  16. ๏ਓ޲͚ͷLP͕͋ͬͨ • ͕ɺWordPressͷWYSIWYGϓϥάΠϯͰϖʔδ͕ߏ੒͞Εͯ ͓ΓɺϖʔδͷಡΈࠐΈ͕ΊͬͪΌ஗͍

  17. ՝୊ײ • αʔόͷอक΋͞Ε͓ͯΒͣɺPHPͷόʔδϣϯ͸5ܥͷ·· ͩͬͨ • Α͘མ͍ͪͯͨ

  18. ϦχϡʔΞϧ • ๏ਓ޲͚ϓϩμΫτΛ୲౰͍ͯͨ͠ͷͰɺͲ͏ʹ͔͔ͨͬ͠ ͨ • Πϯό΢ϯυͷ໰͍߹ΘͤͰޮ཰Α͘ϓϩμΫτΛεέʔϧ ͍͖͔ͤͯͨͬͨ͞ • ϦχϡʔΞϧ͢Δ͜ͱʹ •

    ϏδωεαΠυʹ࣮ݱ͍ͨ͜͠ͱɺίϯςϯπͷ಺༰ΛXDͰ ॻ͖ग़ͯ͠΋Β͏
  19. XDͷ಺༰

  20. ཁ݅ • XDʹඳ͍ͨ಺༰Λެ։͍ͨ͠ • ಋೖࣄྫΛͲΜͲΜ૿΍͍͖͍ͯͨ͠ • ΠϯϑϥΛؚΊͨอकͷ޻਺͕௿͍

  21. Ͳ͏΍࣮ͬͯݱ͠Α͏ • ίϯϙʔωϯτԽ͍͚ͯ͠͹ɺ্ख͘࢖͍·Θͤͦ͏ • ϏδωεαΠυ΋HTMLɺCSSॻ͚Δ͠ɺίϯϙʔωϯτ͑͞ ࡞ͬͯ͠·͑͹ɺ૊Έ߹ΘͤͯϖʔδΛ࡞ΕΔͷͰ͸આ • Git͸ؤுͬͯڭ͑Α͏

  22. Ͳ͏΍࣮ͬͯݱ͠Α͏ • ͦ΋ͦ΋LPͬͯ੩తίϯςϯπͩ͠ɺ੩తαΠτδΣωϨʔ λͰྑ͍ͷͰ͸ • ϗεςΟϯά͸NetlifyΛ࢖͑͹ɺϏϧυ&σϓϩΠϑϩʔ͸ ೚ͤΒΕΔ͠ɺ૬ੑ͕ྑ͍ͷͰ͸

  23. ͦ͏ͩɺGatsby.js ͩ

  24. Gatsby.js ʹ͍ͭͯ

  25. Gatsby.jsͱ͸ • ੩తαΠτδΣωϨʔλ • React Ͱॻ͚Δ • SPAͳ੩తαΠτΛੜ੒Ͱ͖Δ • StaticGen

    ΛݟΔݶΓɺ࠷ۙϗοτͳٕज़
  26. Gatsby.jsͱ͸

  27. Gatsby.jsͱ͸

  28. Ͳ͏΍ͬͯ࡞͔ͬͨ

  29. Starter ͷબఆ • ଞͷҊ݅Ͱ΋࢖͍ͬͯΔͷͰɺSemantic UIΛ࢖͍͔ͨͬͨ • Semantic UI React ؚ͕·Ε͍ͯΔStarterΛબΜͩ

    • https://github.com/pretzelhands/gatsby-starter-semantic-ui
  30. Starter ͷબఆ • ެࣜͰ΋୳ͤΔΑ͏ʹͳ͍ͬͯΔ • v2ͷ΋ͷΛ୳͢ͱྑ͍ • https://www.gatsbyjs.org/starters/?v=2

  31. ͻͨ͢ΒίϯϙʔωϯτΛ࡞͍ͬͯ͘ • XDΛݟͳ͕Β଍Γͳ͍෦඼Λఆٛͯ͠ɺ࣮૷͍ͯ͘͠ • ͳΔ΂͘൚༻తʹͳΔΑ͏ʹઃܭ • 35ݸ͙Β͍ͷίϯϙʔωϯτʹͳͬͨ

  32. ϏδωεαΠυ͸ϖʔδΛ࡞͍ͬͯ͘ • Կݸ͔࡞ͬͨαϯϓϧϖʔδΛݩʹɺจݴΛม͑ͨΓɺίϯ ϙʔωϯτΛม͑ͨΓ • ίϯϙʔωϯτΛ͜͏࢖͏ͱ͜͏ͳΔΑɺͷαϯϓϧ͕͋Δ ͱɺҙ֎ͱͭ·͔ͮͣʹϖʔδ͕Ͱ͖͍ͯͬͨ • Git͸GUIͰ෼͔Γ΍͍͢GitHub DesktopΛೖΕͯ΋Βͬͨ

  33. Q. CSS͸ʁ

  34. A. CSS ModulesΛ࢖ͬͨ • ଞͷҊ݅Ͱ࢖༻͍ͯ͠ΔSassΛͦͷ··࢖͍͔ͨͬͨ • `gatsby-plugin-sass` ͱ `node-sass` ΛೖΕΔͱྑ͍

  35. A. CSS ModulesΛ࢖ͬͨ • ͿͬͪΌ͚޷Έͷ෦෼΋͋Δ • ϑΝΠϧ෼͚͍ͨ • Կ΋͠ͳͯ͘΋ɺϑΝΠϧͷγϯλοΫεϋΠϥΠτ͕ޮ͍ͯཉ ͍͠

    • ଞͷબ୒ࢶͱͯ͠͸͜ͷล • Styled Components • CSS in JS
  36. A. CSS ModulesΛ࢖ͬͨ • ίϯϙʔωϯτͷjsϑΝΠϧͱ1ର1ରԠ • footer.js / footer.module.sass •

    pages/ ͰCSSΛॻ͔ͳ͍Α͏ʹઃܭͨ͠ • ίϯϙʔωϯτଆͰελΠϧͷࠩ෼ΛΧόʔ͢Δ • ίϯϙʔωϯτΛ࢖͏͚ͩͰϖʔδ͕׬੒͢Δ • CSS͕อकͰ͖ͳ͘ͳΔͷΛ๷͙
  37. Q. ը૾ͷ࠷దԽ͸ʁ

  38. A. gatsby-imageΛ࢖ͬͨ • ಡΈࠐΈʹΑΔΨλπΩΛ๷͛Δ • ͦͷ·· <img> λάͰը૾ΛಡΈࠐΉͱΨλπΫ • ը૾ͷϦαΠζ&ѹॖ΋΍ͬͯ͘ΕΔ

    • .webp ʹ΋ରԠͯ͘͠ΕΔ • ϨΠδʔϩʔυ΋΍ͬͯ͘ΕΔ • ߥΒ໨ͷBase64Λઌग़ͨ͠͠ΓɺTransitionΛՃ͑ͨΓ
  39. A. gatsby-imageΛ࢖ͬͨ • Before

  40. A. gatsby-imageΛ࢖ͬͨ • After

  41. Q. ϗεςΟϯά͸ʁ

  42. A. Netlify Λ࢖ͬͨ

  43. A. Netlify Λ࢖ͬͨ • GitHubͷϦϙδτϦΛඥ෇͚Δ͚ͩͰɺϏϧυ & σϓϩΠ͕ Ͱ͖Δ • ΧελϜυϝΠϯ

    & SSLԽରԠ΋ແྉͰͰ͖Δ • Ϗϧυ͕͚͜ΔίϛοτΛͯ͠΋ɺຊ൪؀ڥ͸ͪΌΜͱಈ࡞ ͨ͠··ͷঢ়ଶ͕อͨΕΔ • ϏδωεαΠυ΋҆৺ͯ͠ίϛοτͰ͖Δ
  44. A. Netlify Λ࢖ͬͨ • READMEʹόοδΛ෇͚Δ͜ͱͰσϓϩΠ͕੒ޭ͍ͯ͠Δ͔ Λڞ༗Ͱ͖Δ

  45. A. Netlify Λ࢖ͬͨ • ϦμΠϨΫτ΋ઃఆͰ͖Δ • ࠓճͷΑ͏ʹϦχϡʔΞϧͱ͔ͰچαΠτͷߏ଄ͱ৽αΠ τͷߏ଄͕ҧ͏৔߹͸ॏๅ͢Δ • ͪΌΜͱઃఆ͢Δ͜ͱͰSEO΋Լ͕Γʹ͍͘

  46. Netlify ͷ஫ҙ఺ • ͜ͷઃఆ͸ؾΛ͚ͭͨํ͕ྑ͍ • σϑΥϧτ͕ ʮAutomatically build…ʯʹͳ͍ͬͯΔ

  47. Netlify ͷ஫ҙ఺ • PRΛ࡞ͬͨ࣌ʹϨϏϡʔ༻ͷ؀ڥΛཱͯͯ͘ΕΔ • ͕ɺ͔͠͠ɺϚʔδ͞Εͨޙ΋࢒Γଓ͚Δ • ͔͠΋ɺফͤͳ͍

  48. Netlify ͷ஫ҙ఺ • ҰԠɺϩϘοτͳͲʹ͸ิ଍͞Εͳ͍Α͏ʹ͸ͳ͍ͬͯΔ ͕ɺաڈͷ։ൃ్தͷ΋ͷ͕ݟΕͯ͠·͏ • ͔͠΋ɺਪଌ͠΍͍͢URL • https://deploy-preview-1--your-domain.netlify.com/ •

    ਺஋Λए͍ͯ͘͘͠ͱɺͲΜͲΜॳظͷը໘͕…
  49. Netlify ͷ஫ҙ఺ • ެࣜʹ࣭໰ͯ͠Έͨ • ͕ɺҰ౓ɺ؀ڥ͝ͱফ͠ ͯɺཱͯ௚͔͢͠ͳ͍ɺ ͱͷ͜ͱ

  50. Q. ͦͷଞ͸ʁ

  51. A. ॾʑἧ͖͍ͬͯͯ·͢ • OGP͸HelmetΛ࢖͏ • ֤ϖʔδͰΦʔόʔϥΠυ΋Ͱ͖Δ • Google Analytics ͸

    `gatsby-plugin-google-analytics` Λ࢖͏ • Google Tag Manager ͸ `gatsby-plugin-google- tagmanager`
  52. Ͱ͖͕͋ͬͨ΋ͷ

  53. Ͱ͖͕͋ͬͨ΋ͷ ✨ https://giftee.biz

  54. Ͱ͖͕͋ͬͨ΋ͷ ✨ • ͱʹ͔͘ੈͷதʹग़͢ • ը૾ͷ࠷దԽ͸·ͩτοϓϖʔδ͔͠Ͱ͖͍ͯͳ͍ • ೔ʑɺগͣͭ͠վળ͍͍ͯͬͯ͠Δ࠷த • ಋೖࣄྫͳͲͷίϯςϯπ΋૿΍͍͍ͯͬͯ͠Δ

    • ৳ͼ͠ΖͰ͢Ͷʂ
  55. ϦϦʔεͯ͠Ͳ͏͔ͩͬͨ

  56. PV • 2/21ʹϦϦʔεΛͨ͠ • 10,000 PV / ݄͙Β͍৳ͼͨ • ճ༡͕૿͑ͨʢʁʣ

  57. SEO • ৳ͼ͍ͯΔϫʔυ΋͋Ε͹ɺམ͍ͪͯΔϫʔυ΋͋ͬͨ • ίϯςϯπΛΨϥοͱม͑ͨͷͰ͜ͷล͸Ұఆ࢓ํ͕ͳ͍ • Gatsby.js Λ࢖͔ͬͨΒSEO͕ҰؾʹԼ͕ͬͨɺͱ͍͏͜ͱ ͸ͳ͍

  58. ίϯόʔδϣϯ • ໰͍߹Θͤ਺ • ঃʑʹ৳ͼ͍ͯΔ • ೥౓຤ͱ͍͏͜ͱ΋Өڹ͸͋Γͦ͏ͳͷͰɺ௕ظతʹ ΢Υον͍ͯ͘͠

  59. ॴײͳͲ

  60. ॴײͳͲ • Gatsby + Netlify ͷ૊Έ߹Θͤศར • ։ൃମݧͱͯ͠͸ྑ͔ͬͨ • Ұ௨ΓඞཁͳϓϥάΠϯ͕ἧ͖͍ͬͯͯΔ

    • νϡʔτϦΞϧ͕ॆ࣮͍ͯͯ͠ɺ΍Γ͍ͨ͜ͱ͸େମެࣜʹ ॻ͍ͯ͋Δ • ϏδωεαΠυʹReactΛ৮ͬͯ΋Β͏͜ͱ΋Ͱ͖ͨ
  61. ίϚʔγϟϧ • We are hiring!!! - Ұॹʹಇ͘஥ؒΛืूதʂ ձһ਺ສਓಥഁʂ ࠃ಺/PͷΧδϡΞϧΪϑταʔϏε