ãµã¼ãã¼ã¬ã¹ãª Headless CMS ãèªä½ãã¦å§ãã Jamstack
ãã®è¨äºã¯ Jamstack Advent Calendar 2020 ã® 23 æ¥ç®ã®è¨äºã§ãã
Jamstack ãªãµã¤ãã®ã¢ã¼ããã¯ãã£
Jamstack ã®å³å¯ãªå®ç¾©ãªã©ã¯ä¸æ¦ç½®ãã¨ãã¦ãä»åã¯ã次ã®ãããªæ§æã®ãµã¤ãã«ã¤ãã¦èãã¾ãããã¾ãããããããå³ã§ã¯ãªããã¨æãã®ã§ããã䏿®µã¯éåæã¢ã¯ã»ã¹ã䏿®µã¯ã¨ã³ãã¦ã¼ã¶ã¼(é²è¦§è )ããã®ãªã¢ã«ã¿ã¤ã ã¢ã¯ã»ã¹ã§ãã
ãã®æ§æã¯ãã£ããããã¨ã
- ãã¼ã¿ã¯ãHeadless CMSãã¨å¼ã°ãã CMS ã§ç®¡çããã¦ãããã¨ã³ãã¦ã¼ã¶ã¼ã«ã¯è¦ããªã
- ã¨ã³ãã¦ã¼ã¶ã¼ã¯éç㪠HTML ã®ã¿ãé²è¦§ãã *1
- ãªãããã®æ¹æ³ã§ããéç㪠HTMLãã¯éåæã«åçæ´æ°ããã (Webhook ã Incremental Static Regeneration ãªã©)
ã¨ãã£ãç¹å¾´ãããã¾ããDjango ã Rails ãªã©ã§ä½ããåç HTML è¿ããµã¤ããã¨ã¯ã¡ãã£ã¨ç°ãªãã¾ãã
ãã®ãã¡ãä¸ï¼ã¤ã®é ä¿¡ã»æ´æ°é¨ã¯ Vercel ã Netlify ãªã©ã® SaaS ã使ããã¨ãä¸è¬çã§ãããFirebase ã Amplify ã®ãããªãµã¼ãã¼ã¬ã¹ãªã½ãªã¥ã¼ã·ã§ã³ã使ãã°ããªãå®ä¾¡ãªå¾é課éï¼é«ãã¹ã±ã¼ã©ããªãã£ãå®ç¾ã§ãã¾ããããã䏿¹ã§ããHeadless CMSãã«é¢ãã¦ã¯ã
- SaaS ã®å ´åãæé¡æ°ç¾å/人/æã®ä¾¡æ ¼è¨å®
- OSS ãèªåãã¹ãããå ´åãMySQL ãªã©ã®ãã¼ã¿ãã¼ã¹ç®¡çãå¿ è¦
- æµ·å¤è£½ã ã¨ã»ã¼æ¥æ¬èªå¯¾å¿ããã¦ããªãã£ãããGitHub åæã ã¨ã¨ã³ã¸ãã¢ã§ã¯ãªã人ã«ä½¿ãã¥ãã
ã¨ã ãµã¼ãã¼ã¬ã¹çãªèª²éä½ç³»ãããã¸ã¡ã³ãã³ã¹ãã§å®ç¾ã§ããã使ããããã½ãªã¥ã¼ã·ã§ã³ãåå¨ããªã ã®ãç¾ç¶ã§ãã
Headless CMS ã®å½¹å²
Headless CMS ã®ä¸»è¦æ©è½ã¯ã主ã«ã次ã®ãã®ã«åè§£ããã¾ããç¹ã«ãä¸ã®ï¼ã¤ãã³ã¢æ©è½ã§ãã
- è¨äºãæ¸ãããç·¨éã§ãããCMS ã® GUI æ©è½
- è¨äºãã¼ã¿ãªã©ã®ãã¼ã¿ãã¼ã¹ã®æ©è½
- ç·¨éæ¨©éãªã©ã¦ã¼ã¶ã¼ç®¡ç
- Webhook ã«ããæ´æ°éç¥
- DB ã API ãéãã¦ã¢ã¯ã»ã¹ã§ããæ©è½
ãã®å½¹å²ã¯ãFirebase ãªã©ã使ãã°ãã»ã¼ä»£æ¿ã§ãã¾ã*2ã
- ãã¼ã¿ãã¼ã¹ â Firestore ãªã©ã® BaaS
- ã¦ã¼ã¶ã¼ç®¡ç â Firebase Authentication ãªã©ã®èªè¨¼ãããã¤ã
- Webhook â GitHub Actions ãªã©ãISR ã§ããã°ä¸è¦ã
- API ã¢ã¯ã»ã¹ â Firestore ã®ãã㪠BaaS ã使ãã°ä¸è¦ãã¾ãã¯ãCloud Functions ãªã©ã§èãã©ããã³ã°ããã
CMS ã®ã¢ã¯ã»ã¹æ°ã¯ä¸è¬çã«å°ãªãã®ã§ãæé¡ã®ã¤ã³ãã©ã³ã¹ãã¯ã»ã¼ã¼ãã§ããã¾ããSaaS ã§ã¯ãªãã®ã§ãã¼ã¿ã®ãã¼ã¿ããªãã£ãé«ãã§ãã
æ®ãéçºããªãã¨ãããªãé¨å㯠CMS ã® GUI é¨ã®ã¿ ã§ããæ¢åã® SaaS/OSS ã® Headless CMS ã使ããªããã¨ã«ãã£ã¦ãGUI ã®å®è£ ã«ä½åãªæéãããããã¨ã«ã¯ãªãã®ã§ããã ã¦ã¼ã¹ã±ã¼ã¹ã«åããã¦ä½¿ãããã CMS ãä½ãã³ã¹ã ã¨å²ãåããã¨ãã§ããã®ã§ã¯ãªãã§ããããã
Headless CMS ãèªä½ããã¢ã¼ããã¯ãã£
æ¥åå§è¨(åäººäºæ¥)ã§éå¶ãã¦ããããã«ã®ã¦ã§ããµã¤ãã§ã¯ã次ã®ãã㪠Jamstack ã®æ§æã«ãã¦ãã¾ãã
ããã«ã®ãµã¤ãã«ããã¦ã¯ããåçãªã³ã³ãã³ããã¯ãããããè¨äºãã§ã¯ãªãã飲é£ã¡ãã¥ã¼çã«ãªã£ã¦ãã¾ããHeadless CMS ã®ã¬ã¯ã ããèªä½ãããã¨ã«ãã£ã¦ããããã使ãããã UI ã§ç®¡çã§ããããã«ãªãã¾ãããã¾ããäºç´ç®¡çã Firestore ããã¼ã¿ãã¼ã¹ã¨ãã¦ãåã CMS å ã§äºç´ç®¡çã§ããããã«ãªã£ã¦ãã¾ãããã¡ããããããã®æé¡åºå®ã³ã¹ãã¯ããªãå®ä¾¡ã§ãã
ã¾ããJX ã®ããã¸ã§ã¯ãã§ã¯é½æ§æ³ç¹è¨ãµã¤ããé¡ä¼¼æ§æã§å®ç¾ãã質ååä»ã·ã¹ãã ã Headless CMS ä¸ã§å¯¾å¿ã§ããããã«ãªãã¾ããããããã®ã管çãã«é¢ãã¦ã¯ããªãå·¥æ°ãæãã¦å®è£ ã§ãã¦ãã¾ãã
OSS åãã¦ã¿ã
ãèªä½ Headless CMSãã«é¢ãã¦ã¯ OSS åããã¾ãã*3ãFirestore ãã¤ã³ãã©ã«ä½¿ã£ã¦ãã¦ããã¡ããæ¥æ¬èªå¯¾å¿ãã¦ãã¾ãã
*1:å³å¯ã«ã¯ ãJamstack ã§ã¯ APIï¼åçãªãã®ã¸ã®ã¢ã¯ã»ã¹ãããã¾ã
*2:åã¯ãã£ããã¨ãªãã§ãã Amplify ã§ããããã¨æãã¾ã
*3:å³å¯ã«ã¯ OSS çã¨ããã«ã® CMS ã¯ã³ã¼ããã¼ã¹ãå¥ãã®ã§ãJX ã®æ¥åã§ã¯ OSS çã使ã£ã¦ãã¾ããç¥èã¨ãã¦ã®æ¨ªå±éã¯ããã¾ãããææç©ã¨ãã¦ã¯å®å ¨ã«åãåãã¦ãã¾ã