ä»ãããŠBloggerãéžã¶çç±ãšã¯ïŒ â éãšã³ãžãã¢ã§ããããŸã§ã§ãããBloggerãšããéžæè¢
WordPressã§ãã¯ãŠãªã§ããªããGoogleã2003幎ããéå¶ãç¶ãã"æå€"ã®ããã°ãµãŒãã¹ãBloggerãæ¥æ¬åœå ã§ã®å©çšè ã¯æ±ºããŠå€ããªããããšã³ãžãã¢ã®èŠç¹ããèŠããšããããŠéžã¶çç±ãå®ã¯ããã€ãããã æ¬èšäºã§ã¯ãBloggerãå®éã«èªäœãã³ãã¬ãŒãã§éçšããŠããç«å Žãããã¡ãªããã»ãã¡ãªããã客芳çã«æŽçãããããã«ãBloggerã§ã¯çããSPAæ§æã»å€éšã¹ã¯ãªããéäŸåã»åçããŒãžã¬ã³ããªã³ã°ãšããèšèšææ³ã«ã€ããŠã玹ä»ããã --- äž»èŠããã°ãµãŒãã¹ãšã®æ¯èŒ | é ç® | Blogger | WordPressïŒã»ã«ããã¹ãïŒ | ã¯ãŠãªããã° | note | | ------------ | -------- | ----------------- | ---------- | ---- | | æé¡è²»çš | ç¡æ | ãµãŒããŒä»£ 500ã2,000åã | ç¡æ / 600åã | ç¡æãã | | ç¬èªãã¡ã€ã³ | ç¡ææ ã§å¯ | å¥éååŸãå¿ èŠ | ææãã©ã³ã®ã¿ | éå¯Ÿå¿ | | AdSenseç³è« | ç¬èªãã¡ã€ã³äžèŠ | ç¬èªãã¡ã€ã³æšå¥š | ç¬èªãã¡ã€ã³æšå¥š | éå¯Ÿå¿ | | ãã³ãã¬ãŒãã«ã¹ã¿ãã€ãº | XMLãå®å šå¶åŸ¡ | PHPããŒããå®å šå¶åŸ¡ | ãã¶ã€ã³CSS | äžå¯ | | ãµãŒããŒç®¡ç | äžèŠ | å¿ èŠ | äžèŠ | äžèŠ | | ã»ãã¥ãªãã£ç®¡ç | äžèŠ | ãã©ã°ã€ã³æŽæ°çãå¿ èŠ | äžèŠ | äžèŠ | | ã³ãã¥ãã㣠| ã»ãŒãªã | ãšã³ã·ã¹ãã ãå å® | åœå å å® | å å® | WordPressïŒã»ã«ããã¹ãïŒãšæ¯ã¹ããšãã«ã¹ã¿ãã€ãºèªç±åºŠã¯åçã§ãããªãããç¶æã³ã¹ããšãµãŒããŒç®¡çã®æéããŒããšããç¹ãBloggerã®æå€§ã®å·®å¥åãã€ã³ãã«ãªãã --- Bloggerã®ãããšãã å®å šç¡æã§åºåãªã å©çšæãããããªãã®ã¯ãã¡ããããµãŒãã¹åŽã匷å¶çã«åºåãæ¿å ¥ããŠããããšããªããAdSenseãå°å ¥ããã°ãåçã¯ãã¹ãŠèªåã®ãã®ã«ãªãã ãµãŒããŒç®¡çãäžèŠ ã¬ã³ã¿ã«ãµãŒããŒã®å¥çŽã»æŽæ°ã»ããã¯ã¢ããã»WordPressæ¬äœããã©ã°ã€ã³ã®ã¢ããããŒãããããã£ãç¶æç®¡çäœæ¥ãäžåçºçããªããèšäºãæžãããšã ãã«éäžã§ããã ç¬èªãã¡ã€ã³ãªãã§ãAdSenseç³è«ã§ãã å€ãã®ããã°ãµãŒãã¹ã§ã¯ç¬èªãã¡ã€ã³ãäºå®äžå¿ é ã ããBlogger㯠blogspot.com ãµããã¡ã€ã³ã®ãŸãŸã§ãAdSense審æ»ã«éãå®çžŸãããããã¡ããç¬èªãã¡ã€ã³ã®èšå®ãç¡æã§å¯èœã Google補ãµãŒãã¹ãšã®èŠªåæ§ãé«ã AnalyticsãSearch ConsoleãAdSenseãGoogle Photosãšã·ãŒã ã¬ã¹ã«é£æºã§ãããç¹ã«Google Photosã®ç»åãã¹ãã£ã³ã°ã¯ãURLãã©ã¡ãŒã¿ã ãã§ãªãµã€ãºã»WebP倿ãå¯èœãªå®è³ªCDNãšããŠæŽ»çšã§ããã ã«ã¹ã¿ãã€ãºç¯å²ãåºã XMLãã³ãã¬ãŒããçŽæ¥ç·šéã§ããHTML/CSS/JavaScript ãèªç±ã«èšè¿°ã§ãããããŒãæ§é ã®å¶çŽãåããWordPressããŒããšéããããŒãžã®æ§é ããæç»ããžãã¯ãŸã§å®å šã«ã³ã³ãããŒã«ã§ããã ãã©ã°ã€ã³äŸåãŒã WordPressã¯ãã©ã°ã€ã³ã®æŽæ°æŒããã»ãã¥ãªãã£ãªã¹ã¯ã«çŽçµããããBloggerã«ã¯ãããããã©ã°ã€ã³ãšããæŠå¿µããªããèªåãæžããã³ãŒãã ããåãããšããå®å¿æãããã --- Bloggerã®ãããªããšãã æ¥æ¬åœå ã®æ å ±ãæ¥µç«¯ã«å°ãªã åœå å©çšè ãå°ãªããããæ¥æ¬èªã®æçãªèšäºãã»ãšãã©èŠã€ãããªããè±èªã®å ¬åŒããã¥ã¡ã³ããšStack Overflowãäž»ãªæ å ±æºã«ãªãã ã³ãã¥ããã£ããªã ã¯ãŠãªããã°ã®ãããªèªè ç»é²ã»ããã¯ããŒã¯æåãnoteã®ãããªãã©ãã¯ãŒçµç±ã®æµå ¥ã¯æåŸ ã§ããªããæµå ¥ã¯ã»ãŒSEOãšSNSçµç±ã«ãªãã XMLããŒã¹æ§é ã®åŠç¿ã³ã¹ããé«ã ãã³ãã¬ãŒãã¯XMLã§èšè¿°ãããBloggeråºæã®ãŠã£ãžã§ããã¿ã°ã»æ¡ä»¶åå²ã»ããŒã¿ã¿ã°ãååšããããã®ä»æ§ãçè§£ããªããŸãŸã«ã¹ã¿ãã€ãºããããšãããšãæå³ããªãæåã«æ©ãŸãããã CSS/JS/HTMLããã³ãã¬ãŒã1ãã¡ã€ã«ã«éçŽããã æ§é ã»ã¹ã¿ã€ã«ã»ã¹ã¯ãªããããã¹ãŠ1ã€ã®XMLãã¡ã€ã«ã«åãŸããããèŠæš¡ã倧ãããªããšåé·ã«ãªããã¡ã ããã ãéã«èšãã°ãå€éšäŸåãŒãã®èªå·±å®çµåãã³ãã¬ãŒããšããŠèšèšã§ãããšããå©ç¹ã§ãããã ãšãã£ã¿ã®ãªããããã¹ããHTMLãæ±æãããã æçš¿ãšãã£ã¿ããäœæãã¢ãŒãã§äœ¿ããšãäžèŠãªspanã¿ã°ãstyleãæ¿å ¥ãããŠHTMLãæ±ãããHTMLã¢ãŒãã§çŽæ¥èšè¿°ããç¿æ £ãå¿ èŠã«ãªãã --- èªäœãã³ãã¬ãŒãã®èšèšææ³ â Bloggerã®éçãç Žã ããããã¯ãå®éã«éçšããŠããèªäœãã³ãã¬ãŒãã®èšèšã«ã€ããŠç޹ä»ããã ãã®ãã³ãã¬ãŒãã®æ žãšãªãææ³ã¯ ãå€éšã©ã€ãã©ãªã«äŸåããªããå®å šèªäœã®SPAæ§æã ã ãéåžžã®Bloggerãã³ãã¬ãŒãã¯ããŒãžé·ç§»ã®ãã³ã«ãã«ãªããŒããçºçããããHistory APIãšBlogger JSON Feedãçµã¿åãããããšã§DOMå·®åæŽæ°ã«ããåçããŒãžã¬ã³ããªã³ã°ãå®çŸããŠããã ã¢ãŒããã¯ãã£ã®æŠèŠ | é ç® | æ¡çšæ¹é | | ------- | -------------------------------- | | ããŒãžé·ç§» | SPAïŒHistory API + DOMæŽæ°ïŒ | | å€éšã©ã€ãã©ãª | äžäœ¿çšïŒjQueryçã«éäŸåïŒ | | ããŒã¿ååŸ | Blogger JSON Feed API | | ç»åé ä¿¡ | Googleãã¹ãã®URLãã©ã¡ãŒã¿æžãæãã§æé©å | | ã¢ã¯ã»ã¹è§£æ | Google Apps Script (GAS) ã«ç¬èªãã°éä¿¡ | å®è£ äŸâ ã€ã³ãã£ãŒãé¢é£èšäº å€éšã©ã€ãã©ãªãäžå䜿ãããBloggeræšæºã®JSON-in-script feedããã©ã³ãã é¢é£èšäºãåçæ¿å ¥ããŠããã å®è£ äŸâ¡ ã¢ã¯ã»ã¹ãã°ãGASã«éä¿¡ããŠç¬èªã¹ã³ã¢ãªã³ã° æ»åšæéãšã¹ã¯ããŒã«çãæãåãããç¬èªã®ãšã³ã²ãŒãžã¡ã³ãã¹ã³ã¢ãç®åºããGoogle Apps Scriptçµç±ã§Spreadsheetã«èç©ããŠãããå€éšã¢ã¯ã»ã¹è§£æããŒã«äžèŠã§ããŒãžäŸ¡å€ãå®éè©äŸ¡ã§ããã å®è£ äŸâ¢ ç»åã®èªåæé©å Bloggerã®ç»åURLãã¿ãŒã³ãæ£èŠè¡šçŸã§æžãæããŠã衚瀺ã³ã³ããã¹ãã«å¿ãããµã€ãºé ä¿¡ãå®çŸãWebP倿ãURLãã©ã¡ãŒã¿äžã€ã§å¯Ÿå¿ã§ããã --- ãããªäººã«åããŠãã Bloggerãåã人 HTML/CSS/JSã®åºç€ç¥èãããããã³ãã¬ãŒããèªäœããããšã³ãžãã¢ ç¶æã³ã¹ããŒãã§é·æéçšãããå人ããã¬ãŒ AdSenseã§ã®åçåãããã«å§ããã人 Google Workspaceãšã³ã·ã¹ãã ã«çµ±åããã人 ãã©ã°ã€ã³äŸåã®ãªãã·ã³ãã«ãªæ§æã奜ã人 Bloggerãåããªã人 èªè ã³ãã¥ããã£åœ¢æãéèŠãã人ïŒã¯ãŠãªã»noteãé©åïŒ ãã©ã°ã€ã³ã§æ©èœãæ¡åŒµããã人ïŒWordPressãé©åïŒ GUIã ãã§ã«ã¹ã¿ãã€ãºãå®çµãããã人 --- ãŸãšã Bloggerã¯ãæ¯ãããã©ãããã©ãŒã ãã ããããããã¯æ¬ ç¹ã§ã¯ãªãã仿§ãå®å®ããŠããŠäºæž¬å¯èœã§ããããšãæå³ãããXMLã®åŠç¿ã³ã¹ããæãåãã°ãã³ã¹ããŒãã§èªç±åºŠã®é«ãããã°åºç€ãšããŠååæ©èœããã WordPressã®ã»ã«ããã¹ããšæ¯ã¹ããšãã«ã¹ã¿ãã€ãºã®èªç±åºŠã¯åçã§ãããªããããµãŒããŒç®¡çã»ã»ãã¥ãªãã£å¯Ÿå¿ã»ç¶æè²»ãšããäžã€ã®è² æ ããŸãããšãªããªãã ãæ¥æ¬èªæ å ±ãå°ãªãããšããæ¬ ç¹ãããè±èªããã¥ã¡ã³ããšãœãŒã¹ã³ãŒããèªãç¿æ £ããããšã³ãžãã¢ã«ãšã£ãŠã¯å·®å¥åã®ãã£ã³ã¹ã«ãªããã³ã¹ããæãã€ã€æè¡çã«æ»ãããå人ãšã³ãžãã¢ã«ãšã£ãŠãBloggerã¯2026幎çŸåšãååã«æåãªéžæè¢ã ã
βçãªãªãŒã¹ãžã®ãç¥ã
MintorãããβçãªãªãŒã¹ããã§ãšãããããŸãã ãããŸã§åœ¢ã«ãããããšãå°æ¬ããŠããŸãã äžç¹ã ã ãã¶ãã ãŠãŒã¶ãŒã®å£°ã¯ãã¹ãŠãçã«åããªããŠå€§äžå€«ã§ãã ç§ãå«ããŠãŒã¶ãŒã«ãªã£ãŠããŸããŸãã noteã®ã¯ãªãšãŒã¿ãŒãšã¯ãªãšãŒã¿ãŒã®é¢ä¿ãã ãªãªãŒã¹ããç¬éãããæäŸè ãšãŠãŒã¶ãŒãã«ãªã£ãŠããŸããŸãã åæã¯æèŠãæ£ãã°ããããã®ã§ã 課é¡ãšå¥œã¿ãåãããšéå¶ãå®å®ããŸãã ããããç§ã®ãç¯ä»ãªãšãã ä»åŸãæ°ã¥ããç¹ããäŒãããŠããŸããããããŸããã ãªã®ã§ãæçµçã«ã¯ãèªèº«ã®æ¹åæ§ã倧åã«ããŠãã ããã å¿æŽããŠããŸãã ãã®èšäºã¯æ°æ¥åŸã«æ¶ããŸãã ãã¿ãŸ
svelteãããã
Reactå šçã®å人éçºã§ããããŠSvelteKitãéžã¶çç± å人éçºã®ãã¬ãŒã ã¯ãŒã¯ãšããã°ãããŸã¯ ReactïŒNext.jsïŒ ãçéã§ãã ããã§ãåã¯ãäœã£ãŠãããããã¯ããå šéš SvelteKit ã§äœã£ãŠããŸãã åããžå蟲ã®ã¹ããæéã§éçºãç¶ãããªãã§ãæšããçç±ã¯2ã€ã楜ã«å§ããããããšãšãCloudflareã«èŒããã°ãµãŒããŒä»£ãã»ãŒ$0ã§æžãããšã§ãã ã¡ãªã¿ã«äœã£ãŠããã®ã¯ãæ±äººã¢ã°ãªã²ãŒã¿ãŒïŒChiinaviïŒãçç ãã°PWAïŒIriLogïŒãé³å£°SNSïŒvovovoïŒããã©ãŠã¶ã²ãŒã ïŒèªå²ãã²ãŒã ïŒããžã£ã³ã«ã¯ãã©ãã©ã§ãããåå°ã¯ã©ããSvelteKitã§ãã æšããã€ã³ã1ïŒãšã«ããæ¥œã«å§ãããã Reactã¯ãç»é¢ãæãã©ã€ãã©ãªãã§ãã«ãŒãã£ã³ã°ãç¶æ 管çããµãŒããŒåŠçãèªåã§çµã¿åãããŸããSvelteKitã¯ããããæåããå å ãããå šéšå ¥ãããnpx sv create äžçºã§ãæžãå§ããããç¶æ ãããããŸãã æžãå³ãHTMLã«è¿ããCSSã¯ã³ã³ããŒãã³ãåäœã§ã¹ã³ãŒããå¹ãããããŠSvelte 5ã§ã¯ç¶æ ãããã ã®å€æ°ãã§ãlet count = $state(0) ãšæžã㊠count++ ããã°ç»é¢ãå€ãããReactã® useState / useEffect ãšäŸåé åã§ãããããã®å人éçºãããããèµ·ãã«ããã æžãã³ãŒããæžãã°ãã°ãæžããæ30åã§ããæãåºãã³ã¹ããäœãããããæãåããŸããç¶ããããããšãæåªå ã®å人éçºã§ãããã¯å¹ããŸãã æšããã€ã³ã2ïŒCloudflareã§ããµãŒããŒä»£ãã»ãŒ$0 SvelteKitã¯å ¬åŒã® adapter-cloudflare ã§Workers / Pagesã«ãã®ãŸãŸä¹ããŸãããããŠCloudflareã®ç¡ææ ããå人éçºã«ã¯éå°ãªããã倪ãïŒ2026幎æç¹ïŒã WorkersïŒ1æ¥10äžãªã¯ãšã¹ã PagesïŒè»¢ééãå®è³ªç¡å¶é D1ïŒSQLite DBïŒïŒ5GBã1æ¥ãããèªã¿åã500äžè¡ã»æžã蟌ã¿10äžè¡ R2ïŒ10GBãããã転éé(egress)課éãŒã åã®ãããã¯ãã¯ãã¹ãã£ã³ã°ãDBãã¹ãã¬ãŒãžãå šéšCloudflareã§ãããæã®è«æ±ã¯ä»ã®ãšãã $0ãNext.jsã¯äºå®äžVercelåæã§ãç¡ææ ã¯åçšå¶éãããèŠæš¡ã§èª²éãè·³ãããããSvelteKitã¯æåããCloudflareãšçŽ çŽã«åãã¶ãã財åžã«ããããã€ã³ãã©ãšãã®ãŸãŸã€ãªãããŸãã æ£çŽãªãã¬ãŒããªãïŒReactãåã€ãšããïŒ ãšã³ã·ã¹ãã ã¯Reactãå§åçã䜿ãããUIã©ã€ãã©ãªãèŠã€ãããããã AIã¢ã·ã¹ã¿ã³ããReactã®æ¹ã匷ããSvelte 5ã®runesã¯æ°ãããçæã³ãŒãã«å€ãæžãæ¹ãæ··ããããšãããã æ¥æ¬èªæ å ±ã»æ±äººãReactãå€ãããã å ¬åŒããã¥ã¡ã³ãã®åºæ¥ã¯è¯ãã§ãã ãŸãšã SvelteKitã®äŸ¡å€ã¯ãéãã»è»œãããããäžäººã§ãå®ããäœãç¶ããããããšãäžçºã§å§ããããŠãCloudflareã«èŒããã°æ¯æ$0ããžã£ã³ã«ã®éã4ãããã¯ããåãéå ·ã§åããŠããäºå®ããåã«ãšã£ãŠã®èšŒæ ã§ããReactã§æ¶èããŠãããªããæ¬¡ã®äžäœã®åå°ã«è©ŠããŠã¿ãŠãã ããã
Bloggeråããã³ãã¬ãŒããM-StruXãã§ã¯é è²èšå®ãµã³ãã«ãçšæããŠããŸã
M-StruXã§ã¯åºæ¬çãªã«ã©ãŒèšå®ãã«ã¹ã¿ã ããããã£ã§ç®¡çããŠããŸãã æè»œã«é è²ã倿Žã§ããããã« M-StruXå ¬åŒãµã€ã ã§é è²ãµã³ãã«+ã«ã¹ã¿ã ããããã£ã®ã³ãŒããå ¬éããŠããŸãã çŸåš 14ãã¿ãŒã³ ã®é è²ãçšæããŠãããéæè¿œå ããŠããäºå®ã§ãã [Sage Denim] [Ash Rose]
Wanko-noteïŒãããã®ãŠïŒãé²åïŒGIFã¢ãã¡ãããç»åãäžçºæœåºå¯èœã«ïŒ
GIFã¢ãã¡ãããæé«ã®1ã³ãããã Wanko-noteã«åŸ æã®æ°æ©èœã远å ïŒ noteå°çšã®ç»åæé©åããŒã«ãWanko-noteïŒãããã®æïŒããããã«äŸ¿å©ã«ãªããŸããã ä»åã®ã¢ããããŒãã§ã¯ããGIFãã¬ãŒã æœåºæ©èœããæ°ãã«æèŒããŸããã GIFã¢ãã¡ã®ãããïŒããéããªã åç»ã®åãæããã²ãŒã ç»é¢ã®é²ç»ãªã©ãã¢ãã¡ãŒã·ã§ã³GIFã®ãäžçªããã·ãŒã³ããnoteã®èŠåºãç»åã«ããããšæã£ãããšã¯ãããŸãããïŒ æ°ãããªã£ãWanko-noteãªããGIFãã¡ã€ã«ãããããããã ãã§å šãã¬ãŒã ãç¬æã«è§£æãå°çšã®ã¹ã©ã€ããŒãåããã ãã§ããŸãã§åç»ç·šéãœããã®ããã«èªç±èªåšã«ãã¬ãŒã ãéžæã§ããŸãã æœåºããnoteãµã€ãºãžã®å€æãŸã§ãã·ãŒã ã¬ã¹ã« ãã¬ãŒã ãéžãã åŸã¯ããããŸã§ã®æ©èœããã®ãŸãŸäœ¿ããŸãã 1.91:1ã®é»éæ¯å€æ: 1920x1006ã®é«è§£å床ã§åºåã 粟å¯ãªããªãã³ã°: ç¢å°ãã¿ã³ãšæ°å€å ¥åã§ããªåäœã®èª¿æŽãå¯èœã ãªãããªãŒããèæ¯: äœçœãèªç¶ãªãŒããç»åã§åããŠãããã®ãããªä»äžããã«ã åµäœã®ãæ¬è³ªãã«éäžããããã« GIFã®ã³ãéããã¹ã¯ãªãŒã³ã·ã§ããã§æ®ããå¥ã®ãœããã§éããæåã§ãªãµã€ãºããä¿åããŠã¢ããããŒãããâŠâŠããããªé¢åãªå·¥çšã¯ããå¿ èŠãããŸããã ããããã â éžã¶ â ã³ã㌠â noteã«è²Œãä»ãã ãã®é©ãã»ã©è»œãããªäœéšãããã²æ°ããWanko-noteã§äœéšããŠãã ããã
AIã§åãããã¡ãã®äœãæ¹
â» ããªãããã¢ããã€ã¹ã§èšäºã«ããŸããã AIã§ã³ãŒãã¯æžããããã«ãªããŸãããããã®å ã«äœãããã°ããããããããªã人ãããŸãã ãªã®ã§ãAIã§å¶åŸ¡ã§ããäœããäœãããšæããŸãããã倧äœé«ããããªããææ ãæãŠãªãã ããã¡ããªãå®ããããããã³ã³ãããŒã«åºæ¥ããæ¥œããããšæã£ãŠããã®ããã¡ããããšããç¬ã®ããã¡ããš æç·ã©ãžã³ã³ããããšã¹ãããçµã¿åããããã®ãäœããŸããã ãããã€ãã³ãã§å±ç€ºãããããããã©ããã£ãŠã€ãããã§ããïŒããšäœäººãã«èãããŠããã§ããããäœããåãããã人ã¯ç§ä»¥å€ã«ãããïŒããšããããšãããããŸããã ããã§ãã®äœãæ¹ãæããã¯ãŒã¯ã·ã§ããã®ããã®ããã¥ã¡ã³ããäœæäžã§ãã å®éã®ã¯ãŒã¯ã·ã§ãããããã€ãããªã®ã§èå³ãããæ¹ã¯é£çµ¡ããã ããã°ã次åéå¬ã®äºå®ãªã©ããç¥ããããŸãã æ²èŒããŠããURLã«ã¯ã¯ããŒã©ãŒããã®ãã¹ã¯ãŒãããããŠããã®ã§ãã芧ã«ãªãããæ¹ã¯Xã§DMãããã ããã°åå¥ã«ãç¥ããããŸãã
MintoréèšïŒååããStripeïŒã¹ãã©ã€ãïŒåæèšå®ã®ãçœ ãã«è©°ãŸã£ã話
ã¿ãªãããããã«ã¡ã¯ã Mintorã®Î²çãéèšããã§ãšãããããŸãïŒ éçºè å士ãã€ãªãæ°ãããã©ãããã©ãŒã ãšããããšã§ãããããæ¥œãã¿ã«æŽ»çšããŠãããããšæããŸãã æ®æ®µã¯noteãã¡ã€ã³ã«å·çããŠããã®ã§ãããä»åã¯Mintorã®ååèšäºãšããŠããã£ããç§ããåæèšå®ïŒæ±ºæžé£æºïŒã§æŽŸæã«è©°ãŸã£ããã€ã³ãããå ±æããŸãã ããããç»é²ããæ°äººããããåãããã«å°ã£ãŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã äœã«è©°ãŸã£ãã®ãïŒïŒStripeïŒã¹ãã©ã€ãïŒã®é£æºåé¡ Mintorã®åæèšå®ãé²ããäžã§ã決æžãŸããã®èšå®ãšããŠãStripeïŒã¹ãã©ã€ãïŒãã®é£æºãæ±ããããŸãã å®ã¯ãç§ã¯ãã§ã«Stripeã®æ¢åã¢ã«ãŠã³ãïŒIDïŒãæã£ãŠããŸãã ãã®ããããæ¢åã¢ã«ãŠã³ãããµã¯ããšçŽä»ãããã ããã ã£ãã®ã§ãããããã§è¿·åã«ãªã£ãŠããŸããŸããã è¿·åã«ãªã£ã3ã€ã®çç± å šäœåïŒãããŒïŒãèŠããªãïŒæ¬¡ã«äœãèµ·ããã®ãã®ããŒãããããèŠããªãã ããã¥ã¡ã³ããèŠã€ãããªãïŒãã«ãã仿§ãæžãããããŒãžããããšèŠã€ãããªãã ãæ¬¡ãžããæŒããšæ°èŠååŸç»é¢ã£ãœããã§ãŒãºã«ãªãïŒæ¢åãŠãŒã¶ãŒçšã®ãã°ã€ã³å°ç·ãèŠåœãããããæ¬¡ãžããæ¬¡ãžããšé²ãäžæ¬éããçšæãããŠããªãããã«èŠããã æ¢åã¢ã«ãŠã³ããæã£ãŠãã人ã®ããã®ãçŽæ¥èšå®ç»é¢ãããæ¢åã¢ã«ãŠã³ãã§ãã°ã€ã³ããšãããã¿ã³ãæåã«ãªããããããã®ãŸãŸæ°èŠäœæã®ãããŒã«é²ãã§ããã®ã ãããâŠïŒããšæãæ¢ãŸã£ãŠããŸã£ãŠããç¶æ ã§ãã éçºè ãã©ãããã©ãŒã ã«ãã®ãè©°ãŸãããæããçç± UI/UXã®èгç¹ããèŠãŠããæåã®ãªã³ããŒãã£ã³ã°ïŒç»é²å°ç·ïŒã§ãŠãŒã¶ãŒãè¿·åã«ãªãã®ã¯ããããããšã§ããç§èªèº«ããŸãã«ä»ãªã¢ã«ã¿ã€ã ã§è©°ãŸã£ãŠããã®ã§ããããééããå 茩ãšã³ãžãã¢ã®æ¹ããéå¶ã®æ¹ã«å±ããšãããªãšæãããããŠååã®èšäºãšããŠãã®ãå°ãããšããå ¬éããŠã¿ãŸããã ããããããã¯ã次ãžãã§é²ãã åŸã«ãStripeåŽã§æ¢åãã°ã€ã³ã§ãããïŒããšããããã«ããã¥ã¡ã³ããããïŒããšããæ å ±ããåç¥ã®æ¹ãããã°ããã²ã³ã¡ã³ããªã©ã§æããŠããã ãããšå©ãããŸãïŒ ããããMintorãå§ããã¿ãªãããã©ãããããããé¡ãããŸãã
Stripe決æžã®ç·Žç¿çšãã©ã°ã€ã³ãäœéšããŠã¿ã
äŸãã°ãäœããéçºããããªããšãã ç§ãªãäžçªäžå®ãããéšåã«çŠç¹ãããŠãŸãã ãã£ã³ã¯ããŠã³ã§ããªããã®ãïŒãšã²ããã壿ã¡ããŸãã ã€ãŸããå°ããªããŒããæ¢ããŠã¯ããã©ãã©ã«åè§£ããŸãã ãããŠããã£ãšããã§ãããããªããéšåã ãããã¿ã€ããäœã£ãŠïŒ ãšLLMã«ãã£ãŠããããŸãã ãããªãšãããStripe決æžã®ç·Žç¿çšãã©ã°ã€ã³ãäœéšããŠã¿ãã ããã¯å¹ãç®ãããéããŸãã WordPressã®ãã©ã°ã€ã³ã¯ãäžçŽè ã®æè¡ãå¿ èŠã§ãã ã§ããããŸãªãCopilotããããŸãã ç§ã¯LLMãç¡ãæä»£ãããã£ãŠãŸããã®ã§äžèº«ãè§£ããŸãã çžåœäžå¯§ã«ãã£ãŠãããŸãã ã©ããªèšèªã§ããOKãªã®ã§ãåããã€ããšé Œãã®ã§ãã WordPressã®å Žåã¯ãPHPã§ããã¡ãã£ãšã ãæ·å± ããããŸãã ãã£ãšãç°¡åãªãã€ãã§ããOKã§ãã 倧äœãPythonã§ãããŸãã ãŸãšã ã©ããªèšèªãã©ããªããŒã¿ããŒã¹ã ãããªè¿œæ±ã¯äžèŠã§ãã ãªããªããå šéšScratchã§äœããŸãã
芪åã§æ¥œããçµµåããã²ãŒã ããã¯ã αçããªãªãŒã¹ããŸããïŒ
ã¯ãããŸããŠã ãžã§ãããããŒå®®åŽãšç³ããŸãã ãã®åºŠãåããŠã®å人WebãµãŒãã¹ãéçºããŠÎ±çããªãªãŒã¹ããŸããã ãªãªãŒã¹ããαçã®ããã¯ãããšãããµãŒãã¹ã«ã€ããŠãã£ãããšå 容ããŸãšããèšäºãæžããŸããã®ã§ããããããããã°ã芧ããã ããŸããšå¬ããã§ãã âŒèšäºè©³çްã¯äžèšURL https://note.com/jhpw/n/n045707eb4e17 åŒãç¶ãããããããé¡ãèŽããŸãã
Reactã«ç²ããããªããžãHTMX à FastAPIãªãå人éçºã¯ãã£ãšæ¥œãããªã
Reactã«ç²ããããªããžãHTMX à FastAPIãªãå人éçºã¯ãã£ãšæ¥œãããªã ãå人éçºã§ãµãŒãã¹ãäœãããã®ã«ãããã³ããšã³ããšããã¯ãšã³ãã®é£æºã§å¿ãæããã ãããŒã«ã«ã§ã¯åãã®ã«ããããã€ã®èšå®ãè€éãããŠæ¬çªå ¬éã§ããªãã ããããªããä»ãReactãNext.jsã®è€éãã«ç²åŒããŠãããªããHTMXãšFastAPIãšããéžæè¢ãããã®æ©ã¿ã解決ããç¹å¹è¬ã«ãªããããããŸããã ä»åã¯ããªããã®çµã¿åããããå人éçºã«ãããæåŒ·ã®è§£ããªã®ãããã®çç±ã解説ããŸãã ãªãReactïŒSPAïŒéçºã¯ã沌ããªã®ãïŒ Reactã§ã®éçºãé£ããæå€§ã®çç±ã¯ããå®è³ª2ã€ã®ã¢ããªãäœãå¿ èŠããããããã§ãã ããã³ããšã³ãïŒJSïŒãšããã¯ãšã³ãïŒAPIïŒã¯å®å šã«å¥ç©ãããããã§ç¶æ 管çãè¡ããJSONã§éä¿¡ããåå®çŸ©ãåãããäœæ¥ã¯ãäžäººã§ããã«ã¯ããŸãã«è² è·ãé«ãã®ã§ãããAPIã®ä»æ§ãå€ãããç»é¢ãçã£çœã«ãªã£ãããšããçµéšã¯ã誰ã«ã§ãããã¯ãã§ãã HTMX à FastAPI ãšãããåç¹ååž°ã HTMXãšFastAPIã®çµã¿åããã¯ããã®è€éããæ ¹åºããèŠããŸããã¢ãããŒãã¯æ¥µããŠã·ã³ãã«ã§ãã ããµãŒããŒïŒFastAPIïŒã宿åã®HTMLãè¿ãããã©ãŠã¶ïŒHTMXïŒã¯ããã衚瀺ããã ãã JSONãããããåãå¿ èŠããè€éãªJavaScriptã®ç¶æ 管çãå¿ èŠãããŸãããHTMLã®å±ã«hx-postãšæžãã ãã§ãã¢ãã³ãªéåæéä¿¡ãå®çŸã§ããŸãã ã¡ãªããâ ïŒå§åçãªããšã©ãŒã®å°ãªãã ãã®ã¹ã¿ãã¯ã®æå€§ã®å©ç¹ã¯ãéçºãPythonïŒãµãŒããŒãµã€ãïŒã ãã§å®çµããããšã§ãã è³ã®åãæ¿ãäžèŠ: ãä»ã¯JSãæ¬¡ã¯Pythonããšããé ã®åãæ¿ãããªããªããŸããããªããŒã·ã§ã³ãDBæäœããå šãŠäœ¿ãæ £ããPythonãã¡ã€ã«å ã§è¡ããŸãã éä¿¡ãšã©ãŒã®æ¿æž: ãµãŒããŒããè¿ã£ãŠããã®ã¯ãHTMLãã®ãã®ãã§ããJSONã®ããŒã¹ãã¹ããããã³ããšããã¯ã®åã®äžäžèŽã«ãããã°ã¯ç©ççã«çºçããŸããã ã¡ãªããâ¡ïŒãããã€ã®æ©ã¿ããè§£æŸ åå¿è ãæãæ«æããããããã€ãããé©ãã»ã©ç°¡åã«ãªããŸãã Reactæ§æã§ã¯ãããã³ããšããã¯ãå¥ã®å Žæã«ãããã€ããCORSïŒãã¡ã€ã³éã®éä¿¡èš±å¯ïŒã®èšå®ãèªèšŒããŒã¯ã³ã®ç®¡çã«é ãæ©ãŸããå¿ èŠããããŸãã ããããHTMX à FastAPIãªããFastAPIã®ãµãŒããŒã1ã€ç«ã¡äžããã ãã§ãã ãã«ãäžèŠ: npm run buildã§è¬ã®ãšã©ãŒãåºãææãšã¯ç¡çžã§ãã CORSèšå®äžèŠ: HTMLãAPIãåããµãŒããŒããé ä¿¡ããããããè€éãªã»ãã¥ãªãã£èšå®ã«æ©ãå¿ èŠããããŸããã PaaS飿ºãäžç¬: RenderãFly.ioãªã©ã«ãPythonã³ãŒãã眮ãã ãã§æ¬çªç°å¢ã宿ããŸãã å®è£ ã¹ããŒãã®éã äŸãã°ãTodoãªã¹ããžã®è¿œå æ©èœããäœãå ŽåïŒ React: APIäœæãfetchåŠçã®å®è£ ãLoading/Errorç¶æ ã®ç®¡çãåã¬ã³ããªã³ã°å¶åŸ¡âŠãšå€ãã®æé ãå¿ èŠã§ãã HTMX: Pythonã§DBã«ä¿åããŠHTMLïŒ<li>ã¿ã°ïŒãè¿ãåŠçãæžããHTMLåŽã«hx-postãšæžããããã ãã§å®äºã§ããJavaScriptã¯0è¡ã§ãã çµè«ïŒãŸãã¯ã宿ããããã å人éçºã§æã倧åãªã®ã¯ãæè¡çãªé«å°ãã§ã¯ãªããããµãŒãã¹ã宿ãããŠäžã«åºãããšãã§ãã ç°å¢æ§ç¯ããšã©ãŒè§£æ±ºã«æéãåžãåãããã¢ã€ãã¢ã圢ã«ã§ããªããŸãŸçµããã®ã¯ããŸãã«å¿äœç¡ããPythonãæžãããªãããŸãã¯FastAPIãšHTMXã詊ããŠã¿ãŠãã ããããã®ã·ã³ãã«ããšãçéã§åãã¢ããã§ãããå¿«æã«ããã£ãšé©ãã¯ãã§ãã