{"id":12352,"date":"2026-02-03T06:06:48","date_gmt":"2026-02-03T06:06:48","guid":{"rendered":"https:\/\/withcode.tech\/media\/?p=12352"},"modified":"2026-04-02T05:11:34","modified_gmt":"2026-04-02T05:11:34","slug":"vercel_netlify","status":"publish","type":"post","link":"https:\/\/withcode.tech\/media\/vercel_netlify\/","title":{"rendered":"\u3010\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5fc5\u9808\u3011Vercel\/Netlify\u306e\u74b0\u5883\u5909\u6570\u7ba1\u7406\u3092\u5fb9\u5e95\u89e3\u8aac\uff5c\u5b89\u5168\u306a\u30c7\u30d7\u30ed\u30a4\u306e\u5b8c\u5168\u30ac\u30a4\u30c9"},"content":{"rendered":"<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.00.55.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u535a\u58eb\u3001Vercel\u306bNext.js\u30a2\u30d7\u30ea\u3092\u30c7\u30d7\u30ed\u30a4\u3057\u305f\u3093\u3067\u3059\u3051\u3069\u3001API Key\u3068\u304b\u306e\u79d8\u5bc6\u60c5\u5831\u3063\u3066\u3069\u3046\u3084\u3063\u3066\u7ba1\u7406\u3059\u308c\u3070\u3044\u3044\u3093\u3067\u3059\u304b\uff1fGitHub\u306bpush\u3057\u3061\u3083\u3063\u3066\u3082\u3044\u3044\u3093\u3067\u3057\u3087\u3046\u304b\uff1f<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.11.23.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u305d\u308c\u306f\u7d76\u5bfe\u306b\u30c0\u30e1\u3058\u3083\u305e\uff01API Key\u3084\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u305d\u306e\u307e\u307e\u30b3\u30fc\u30c9\u306b\u66f8\u3044\u3066GitHub\u306bpush\u3059\u308b\u3068\u3001\u8ab0\u3067\u3082\u898b\u3089\u308c\u308b\u72b6\u614b\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u3093\u3058\u3083\u3002\u4eca\u56de\u306f\u300c\u74b0\u5883\u5909\u6570\u300d\u3068\u3044\u3046\u4ed5\u7d44\u307f\u3092\u4f7f\u3063\u305f\u3001\u5b89\u5168\u306a\u79d8\u5bc6\u60c5\u5831\u306e\u7ba1\u7406\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3059\u308b\u305e\u3044\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.00.55.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u305d\u308c\u306f\u5927\u5909\u3067\u3059\u306d\uff01\u306f\u3044\uff01\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<p>Web\u5236\u4f5c\u306b\u304a\u3044\u3066\u3001API Key\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u60c5\u5831\u3001\u8a8d\u8a3c\u30c8\u30fc\u30af\u30f3\u306a\u3069\u306e\u79d8\u5bc6\u60c5\u5831\u3092\u5b89\u5168\u306b\u7ba1\u7406\u3059\u308b\u3053\u3068\u306f\u6975\u3081\u3066\u91cd\u8981\u3067\u3059\u3002\u7279\u306b\u3001Vercel\u3084Netlify\u3068\u3044\u3063\u305f\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u306f\u3001\u9069\u5207\u306a\u74b0\u5883\u5909\u6570\u7ba1\u7406\u304c\u4e0d\u53ef\u6b20\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3057\u304b\u3057\u3001\u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\u3092\u8aa4\u308b\u3068\u3001<strong><span class=\"swl-marker mark_yellow\">\u79d8\u5bc6\u60c5\u5831\u304c\u516c\u958b\u3055\u308c\u3066\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4fb5\u5bb3\u306b\u3064\u306a\u304c\u308b<\/span><\/strong>\u30ea\u30b9\u30af\u304c\u3042\u308a\u307e\u3059\u3002\u5b9f\u969b\u306b\u3001GitHub\u306b\u8aa4\u3063\u3066API Key\u3092push\u3057\u3066\u3057\u307e\u3044\u3001\u6570\u6642\u9593\u3067\u4e0d\u6b63\u5229\u7528\u3055\u308c\u305f\u3068\u3044\u3046\u4e8b\u4f8b\u3082\u591a\u6570\u5831\u544a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001<strong><span class=\"swl-marker mark_yellow\">Vercel\/Netlify\u3067\u306e\u74b0\u5883\u5909\u6570\u306e\u5b89\u5168\u306a\u7ba1\u7406\u65b9\u6cd5<\/span><\/strong>\u306b\u3064\u3044\u3066\u3001\u57fa\u672c\u7684\u306a\u6982\u5ff5\u304b\u3089\u5b9f\u8df5\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u307e\u3067\u3001\u5b9f\u88c5\u4f8b\u3092\u8e0f\u307e\u3048\u3066\u5fb9\u5e95\u7684\u306b\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"is-style-icon_announce\">\u300c\u5b66\u7fd2\u2192\u53ce\u5165\u300d\u306b\u3064\u306a\u3052\u305f\u53d7\u8b1b\u751f\u306e\u30ea\u30a2\u30eb\u306a\u4f53\u9a13\u8ac7\u3082\u516c\u958b\u4e2d\uff01<br>\u50cd\u304d\u65b9\u3092\u5909\u3048\u305f\u3044\u65b9\u306b\u3082\u97ff\u304f\u30b9\u30c8\u30fc\u30ea\u30fc\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"is-style-icon_info\"><strong>\u7247\u5c71\u3055\u3093<\/strong><br>\u598a\u5a20\u3092\u304d\u3063\u304b\u3051\u306b\u3001\u5b50\u3069\u3082\u306e\u305f\u3081\u306b\u3082\u3069\u3053\u3067\u3082\u50cd\u3051\u308b\u30b9\u30ad\u30eb\u3092\u8eab\u306b\u4ed8\u3051\u305f\u3044\u3068\u8003\u3048\u3001Web\u5236\u4f5c\u306e\u52c9\u5f37\u3092\u958b\u59cb\u3002\u30aa\u30f3\u30e9\u30a4\u30f3\u30b9\u30af\u30fc\u30eb\u306efamm\u306b\u3066\u7523\u4f11\u306e1\u30f6\u6708\u9593\u3001\u71b1\u5fc3\u306b\u52c9\u5f37\u306b\u53d6\u308a\u7d44\u3093\u3060\u7d50\u679c\u3001\u30ad\u30e3\u30f3\u30da\u30fc\u30f3\u306e\u5bfe\u8c61\u8005\u306b\u9078\u3070\u308c\u53d7\u8b1b\u6599\u304c\u7121\u6599\u306b\u3002\u305d\u306e\u5f8c\u3001\u72ec\u5b66\u3067\u52c9\u5f37\u306b\u52b1\u3080\u3082\u9650\u754c\u3092\u611f\u3058\u3001\u6848\u4ef6\u4fdd\u8a3c\u304c\u9b45\u529b\u306eWithCode\u3078\u5165\u5b66\u3057\u3001\u7a3c\u3052\u308b\u529b\u3092\u8eab\u306b\u4ed8\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u73fe\u5728\u306f\u526f\u696d\u3068\u3057\u3066\u7a3c\u3050\u529b\u3092\u8eab\u306b\u4ed8\u3051\u300110\u4ef6\u4ee5\u4e0a\u306e\u6848\u4ef6\u3092\u62c5\u5f53\u3059\u308b\u307e\u3067\u306b\u6210\u9577\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u8a73\u3057\u304f\u306f<a href=\"https:\/\/withcode.tech\/media\/interview_7\/\" title=\"\">\u3053\u3061\u3089\u306e\u8a18\u4e8b<\/a>\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -internal\" data-type=\"type1\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u3042\u308f\u305b\u3066\u8aad\u307f\u305f\u3044<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img decoding=\"async\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2024\/02\/\u30a4\u30f3\u30bf\u30d3\u30e5\u30fc-1-1.png\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/withcode.tech\/media\/interview_7\/\">\u3010\u5b50\u80b2\u3066\u30de\u30de\u3055\u3093\u5fc5\u898b\u3011WithCode\u306b\u8ee2\u6821!?\u300c\u5b50\u80b2\u3066+\u5728\u5b85\u30ef\u30fc\u30af\u300d\u4e21\u7acb\u306e\u79d8\u5bc6\u306b\u8feb\u308b\uff01<\/a>\n\t\t\t\t\t\t<span class=\"p-blogCard__excerpt\">\u30da\u30f3\u535a\u58eb\uff01\u4eca\u56de\u306f\u3069\u3093\u306a\u65b9\u304c\u30a4\u30f3\u30bf\u30d3\u30e5\u30fc\u306b\u5fdc\u3058\u3066\u304f\u3060\u3055\u3063\u305f\u3093\u3067\u3059\u304b\uff1f \u4eca\u56de\u306e\u30a4\u30f3\u30bf\u30d3\u30e5\u30fc\u306b\u5fdc\u3058\u3066\u304f\u308c\u305f\u306e\u306f\u3001\u5b50\u80b2\u3066\u3092\u3057\u306a\u304c\u3089\u5728\u5b85\u30ef\u30fc\u30af\u3092\u7d9a\u3051\u3066\u3044\u308b\u30de\u30de\u3055\u3093\u3058\u3083\u3088&#8230;<\/span>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\n<p class=\"has-text-align-left is-style-balloon_box2\"><strong>\u7247\u5c71\u3055\u3093\u306e\u4e3b\u306a\u5236\u4f5c\u5b9f\u7e3e\u306f\u3053\u3061\u3089<\/strong><\/p>\n\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -external\" data-type=\"type3\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u4fe1\u7528\u529b\u30a2\u30c3\u30d7\u3092\u76ee\u7684\u306b\u3057\u305f\u65b0\u898fHP\u5236\u4f5c<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img decoding=\"async\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2024\/07\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-07-12-12.39.45.jpg\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/withcode.tech\/works\/kaburaya\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u682a\u5f0f\u4f1a\u793e\u304b\u3076\u3089\u3084 \u69d8<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n<div class=\"swell-block-postLink\">\t\t\t<div class=\"p-blogCard -external\" data-type=\"type3\" data-onclick=\"clickLink\">\n\t\t\t\t<div class=\"p-blogCard__inner\">\n\t\t\t\t\t<span class=\"p-blogCard__caption\">\u4f01\u696d\u30d6\u30e9\u30f3\u30c7\u30a3\u30f3\u30b0\u5411\u4e0a\u3092\u76ee\u7684\u306b\u3057\u305f\u65b0\u898fHP\u5236\u4f5c<\/span>\n\t\t\t\t\t<div class=\"p-blogCard__thumb c-postThumb\"><figure class=\"c-postThumb__figure\"><img decoding=\"async\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2024\/07\/\u5236\u4f5c\u5b9f\u7e3e-pc-3.webp\" alt=\"\" class=\"c-postThumb__img u-obf-cover\" width=\"320\" height=\"180\"><\/figure><\/div>\t\t\t\t\t<div class=\"p-blogCard__body\">\n\t\t\t\t\t\t<a class=\"p-blogCard__title\" href=\"https:\/\/withcode.tech\/works\/sollis_entertainment\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u682a\u5f0f\u4f1a\u793eSOLIS \u69d8<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u74b0\u5883\u5909\u6570\u3068\u306f\uff1f\u57fa\u790e\u77e5\u8b58\u3092\u7406\u89e3\u3059\u308b<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006680.jpg\" alt=\"\" class=\"wp-image-13280\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006680.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006680-768x512.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">\u74b0\u5883\u5909\u6570\u306e\u5b9a\u7fa9<\/h3>\n\n\n\n<p>\u74b0\u5883\u5909\u6570\uff08Environment Variables\uff09\u3068\u306f\u3001<strong><span class=\"swl-marker mark_yellow\">\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u52d5\u4f5c\u74b0\u5883\u3054\u3068\u306b\u7570\u306a\u308b\u5024\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306e\u4ed5\u7d44\u307f<\/span><\/strong>\u3067\u3059\u3002\u30b3\u30fc\u30c9\u306e\u4e2d\u306b\u76f4\u63a5\u66f8\u304f\u306e\u3067\u306f\u306a\u304f\u3001\u5916\u90e8\u304b\u3089\u6ce8\u5165\u3055\u308c\u308b\u5f62\u3067\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u60c5\u5831\u3092\u74b0\u5883\u5909\u6570\u3068\u3057\u3066\u7ba1\u7406\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>API Key<\/strong>\uff1a\u5916\u90e8\u30b5\u30fc\u30d3\u30b9\uff08Stripe\u3001SendGrid\u3001OpenAI\u306a\u3069\uff09\u306e\u8a8d\u8a3c\u30ad\u30fc<\/li>\n\n\n\n<li><strong>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u60c5\u5831<\/strong>\uff1a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306eURL\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3001\u30d1\u30b9\u30ef\u30fc\u30c9<\/li>\n\n\n\n<li><strong>\u8a8d\u8a3c\u30c8\u30fc\u30af\u30f3<\/strong>\uff1aJWT Secret\u3001OAuth Client ID\/Secret\u306a\u3069<\/li>\n\n\n\n<li><strong>\u74b0\u5883\u56fa\u6709\u306e\u8a2d\u5b9a<\/strong>\uff1a\u672c\u756a\u74b0\u5883\u3068\u958b\u767a\u74b0\u5883\u3067\u7570\u306a\u308bAPI URL\u306a\u3069<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u306a\u305c\u74b0\u5883\u5909\u6570\u304c\u5fc5\u8981\u306a\u306e\u304b\uff1f<\/h3>\n\n\n\n<p>\u74b0\u5883\u5909\u6570\u3092\u4f7f\u7528\u3059\u308b\u4e3b\u306a\u7406\u7531\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u78ba\u4fdd<\/h4>\n\n\n\n<p>\u79d8\u5bc6\u60c5\u5831\u3092\u30b3\u30fc\u30c9\u306b\u76f4\u63a5\u66f8\u304f\u3068\u3001\u4ee5\u4e0b\u306e\u30ea\u30b9\u30af\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/\/ \u5371\u967a\uff1aAPI Key\u3092\u30b3\u30fc\u30c9\u306b\u76f4\u63a5\u8a18\u8ff0\nconst apiKey = &quot;sk_live_abc123xyz789&quot;; \/\/ \u3053\u308c\u3092GitHub\u306bpush\u3059\u308b\u3068\u8ab0\u3067\u3082\u898b\u3089\u308c\u308b\uff01\n\/\/ \u5b89\u5168\uff1a\u74b0\u5883\u5909\u6570\u304b\u3089\u53d6\u5f97\nconst apiKey = process.env.STRIPE_SECRET_KEY;<\/code><\/pre><\/div>\n\n\n\n<p>GitHub\u306f\u516c\u958b\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u5834\u5408\u3001\u4e16\u754c\u4e2d\u306e\u8ab0\u3067\u3082\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3059\u3002\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30ea\u30dd\u30b8\u30c8\u30ea\u3067\u3082\u3001\u30c1\u30fc\u30e0\u30e1\u30f3\u30d0\u30fc\u5168\u54e1\u304c\u95b2\u89a7\u3067\u304d\u307e\u3059\u3002\u74b0\u5883\u5909\u6570\u3092\u4f7f\u3048\u3070\u3001\u30b3\u30fc\u30c9\u3092\u516c\u958b\u3057\u3066\u3082\u79d8\u5bc6\u60c5\u5831\u306f\u5b89\u5168\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2. \u74b0\u5883\u3054\u3068\u306e\u5207\u308a\u66ff\u3048<\/h4>\n\n\n\n<p>\u958b\u767a\u74b0\u5883\u3001\u30b9\u30c6\u30fc\u30b8\u30f3\u30b0\u74b0\u5883\u3001\u672c\u756a\u74b0\u5883\u3067\u7570\u306a\u308b\u8a2d\u5b9a\u5024\u3092\u4f7f\u3044\u5206\u3051\u3089\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/\/ \u958b\u767a\u74b0\u5883\uff1alocalhost:3000\u306eAPI\u3092\u4f7f\u7528\nNEXT_PUBLIC_API_URL=http:\/\/localhost:3000\/api\n\/\/ \u672c\u756a\u74b0\u5883\uff1a\u672c\u756aAPI\u3092\u4f7f\u7528\nNEXT_PUBLIC_API_URL=https:\/\/api.production.com<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">3. \u30c1\u30fc\u30e0\u958b\u767a\u306e\u52b9\u7387\u5316<\/h4>\n\n\n\n<p>\u5404\u5236\u4f5c\u8005\u304c\u3054\u81ea\u8eab\u306e\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u306b\u5408\u308f\u305b\u305f\u8a2d\u5b9a\u3092\u4f7f\u3048\u307e\u3059\u3002\u4e00\u4eba\u3072\u3068\u308a\u7570\u306a\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f7f\u7528\u3057\u305f\u308a\u3001\u7570\u306a\u308b\u5916\u90e8\u30b5\u30fc\u30d3\u30b9\u306e\u30c6\u30b9\u30c8\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f7f\u7528\u3057\u305f\u308a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u74b0\u5883\u5909\u6570\u306e\u7a2e\u985e\uff1a\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9 vs \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b5\u30a4\u30c9<\/h3>\n\n\n\n<p>Next.js\u306a\u3069\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u306b2\u3064\u306e\u7a2e\u985e\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u7a2e\u985e<\/th><th>\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9<\/th><th>\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a\u5834\u6240<\/th><th>\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td>\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u5909\u6570<\/td><td>\u306a\u3057<\/td><td>\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u306e\u307f<\/td><td>\u79d8\u5bc6\u60c5\u5831\uff08API Key\u3001DB\u63a5\u7d9a\u60c5\u5831\uff09<\/td><\/tr><tr><td>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b5\u30a4\u30c9\u5909\u6570<\/td><td>NEXT_PUBLIC_<\/td><td>\u30b5\u30fc\u30d0\u30fc\uff0b\u30d6\u30e9\u30a6\u30b6<\/td><td>\u516c\u958b\u60c5\u5831\uff08\u516c\u958bAPI URL\u3001Google\u30a2\u30ca\u30ea\u30c6\u30a3\u30af\u30b9\u30bf\u30b0\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong><span class=\"swl-marker mark_yellow\">NEXT_PUBLIC_\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u4ed8\u3051\u305f\u5909\u6570\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u5074\u306eJavaScript\u306b\u57cb\u3081\u8fbc\u307e\u308c\u308b\u305f\u3081\u3001\u8ab0\u3067\u3082\u898b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059<\/span><\/strong>\u3002\u7d76\u5bfe\u306b\u79d8\u5bc6\u60c5\u5831\u306b\u306f\u4f7f\u7528\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Vercel\u3067\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a\u65b9\u6cd5\u3010\u5b8c\u5168\u30ac\u30a4\u30c9\u3011<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006681.jpg\" alt=\"\" class=\"wp-image-13281\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006681.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006681-768x512.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.00.55.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>Vercel\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u77e5\u308a\u305f\u3044\u3067\u3059\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.09.27.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>Vercel\u306f\u3001Next.js\u306e\u958b\u767a\u5143\u304c\u63d0\u4f9b\u3059\u308b\u30db\u30b9\u30c6\u30a3\u30f3\u30b0\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3058\u3083\u3002\u74b0\u5883\u5909\u6570\u306e\u7ba1\u7406\u6a5f\u80fd\u304c\u5145\u5b9f\u3057\u3066\u3044\u308b\u305e\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">Vercel\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3067\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<p>\u6700\u3082\u4e00\u822c\u7684\u3067\u63a8\u5968\u3055\u308c\u308b\u65b9\u6cd5\u306f\u3001Vercel\u306e\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u304b\u3089\u8a2d\u5b9a\u3059\u308b\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u8a2d\u5b9a\u624b\u9806<\/h4>\n\n\n\n<p>1. <strong>Vercel\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306b\u30ed\u30b0\u30a4\u30f3<\/strong> <ul><li><a href=\"https:\/\/vercel.com\">https:\/\/vercel.com<\/a> \u306b\u30a2\u30af\u30bb\u30b9<\/li> <\/ul>2. <strong>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u9078\u629e<\/strong> <ul><li>\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3057\u305f\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30af\u30ea\u30c3\u30af<\/li> <\/ul><\/p>\n\n\n\n<p>3. <strong>Settings \u2192 Environment Variables<\/strong> <ul><li>\u5de6\u30b5\u30a4\u30c9\u30d0\u30fc\u304b\u3089\u300cSettings\u300d\u3092\u9078\u629e<\/li> <li>\u300cEnvironment Variables\u300d\u30bf\u30d6\u3092\u30af\u30ea\u30c3\u30af<\/li><\/ul><\/p>\n\n\n<div class=\"wp-block-image size_s\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"2924\" height=\"1136\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.33.36.png\" alt=\"\" class=\"wp-image-13366\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.33.36.png 2924w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.33.36-768x298.png 768w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.33.36-1536x597.png 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.33.36-2048x796.png 2048w\" sizes=\"(max-width: 2924px) 100vw, 2924px\" \/><\/figure>\n<\/div>\n\n\n<p>4. <strong>\u74b0\u5883\u5909\u6570\u3092\u8ffd\u52a0<\/strong> <ul><li>\u300cKEY\u300d\u6b04\u306b\u5909\u6570\u540d\u3092\u5165\u529b\uff08\u4f8b\uff1a<code>DATABASE_URL<\/code>\uff09<\/li> <li>\u300cValue\u300d\u6b04\u306b\u5024\u3092\u5165\u529b\uff08\u4f8b\uff1a<code>postgresql:\/\/user:pass@host:5432\/db<\/code>\uff09<\/li> <li>\u9069\u7528\u3059\u308b\u74b0\u5883\u3092\u9078\u629e\uff08Production\u3001Preview\u3001Development\uff09<\/li><\/ul><\/p>\n\n\n\n<p>5. <strong>\u4fdd\u5b58<\/strong><ul><li>\u300cSave\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li><\/ul><\/p>\n\n\n<div class=\"wp-block-image size_s\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"2368\" height=\"1592\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.35.13.png\" alt=\"\" class=\"wp-image-13367\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.35.13.png 2368w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.35.13-768x516.png 768w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.35.13-1536x1033.png 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.35.13-2048x1377.png 2048w\" sizes=\"(max-width: 2368px) 100vw, 2368px\" \/><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">\u74b0\u5883\u306e\u7a2e\u985e<\/h4>\n\n\n\n<p>Vercel\u3067\u306f3\u3064\u306e\u74b0\u5883\u3092\u500b\u5225\u306b\u8a2d\u5b9a\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Production\uff08\u672c\u756a\u74b0\u5883\uff09<\/strong>\uff1a\u30e1\u30a4\u30f3\u30d6\u30e9\u30f3\u30c1\uff08\u901a\u5e38\u306f<code>main<\/code>\u3084<code>master<\/code>\uff09\u304b\u3089\u30c7\u30d7\u30ed\u30a4\u3055\u308c\u305f\u74b0\u5883<\/li>\n\n\n\n<li><strong>Preview\uff08\u30d7\u30ec\u30d3\u30e5\u30fc\u74b0\u5883\uff09<\/strong>\uff1a\u30d7\u30eb\u30ea\u30af\u30a8\u30b9\u30c8\u3084\u305d\u306e\u4ed6\u306e\u30d6\u30e9\u30f3\u30c1\u304b\u3089\u306e\u30c7\u30d7\u30ed\u30a4<\/li>\n\n\n\n<li><strong>Development\uff08\u958b\u767a\u74b0\u5883\uff09<\/strong>\uff1a<code>vercel dev<\/code>\u30b3\u30de\u30f3\u30c9\u3067\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u3059\u308b\u969b\u306b\u4f7f\u7528<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Vercel CLI\u3067\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<p>\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># Vercel CLI\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nnpm install -g vercel\n# \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u30ed\u30b0\u30a4\u30f3\nvercel login\n# \u74b0\u5883\u5909\u6570\u3092\u8ffd\u52a0\uff08\u672c\u756a\u74b0\u5883\uff09\nvercel env add DATABASE_URL production\n# \u74b0\u5883\u5909\u6570\u3092\u8ffd\u52a0\uff08\u30d7\u30ec\u30d3\u30e5\u30fc\u74b0\u5883\uff09\nvercel env add DATABASE_URL preview\n# \u74b0\u5883\u5909\u6570\u3092\u8ffd\u52a0\uff08\u958b\u767a\u74b0\u5883\uff09\nvercel env add DATABASE_URL development\n# \u74b0\u5883\u5909\u6570\u306e\u4e00\u89a7\u3092\u8868\u793a\nvercel env ls\n# \u74b0\u5883\u5909\u6570\u3092\u524a\u9664\nvercel env rm DATABASE_URL production<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">vercel.json\u3067\u306e\u8a2d\u5b9a\uff08\u63a8\u5968\u3055\u308c\u306a\u3044\uff09<\/h3>\n\n\n\n<p><code>vercel.json<\/code>\u30d5\u30a1\u30a4\u30eb\u306b\u74b0\u5883\u5909\u6570\u3092\u8a18\u8ff0\u3059\u308b\u3053\u3068\u3082\u6280\u8853\u7684\u306b\u306f\u53ef\u80fd\u3067\u3059\u304c\u3001<span class=\"swl-marker mark_yellow\"><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u63a8\u5968\u3055\u308c\u307e\u305b\u3093<\/strong>\u3002<\/span><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-json\" data-lang=\"JSON\"><code>\/\/ \u975e\u63a8\u5968\uff1avercel.json\u306b\u79d8\u5bc6\u60c5\u5831\u3092\u66f8\u304b\u306a\u3044\n{\n  &quot;env&quot;: {\n    &quot;DATABASE_URL&quot;: &quot;postgresql:\/\/user:password@host:5432\/db&quot;\n  }\n}\n\/\/ \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306fGitHub\u306b\u30b3\u30df\u30c3\u30c8\u3055\u308c\u308b\u305f\u3081\u3001\u79d8\u5bc6\u60c5\u5831\u304c\u6f0f\u6d29\u3057\u307e\u3059<\/code><\/pre><\/div>\n\n\n\n<p><code>vercel.json<\/code>\u306f\u516c\u958b\u8a2d\u5b9a\uff08\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u30eb\u30fc\u30eb\u3001\u30d8\u30c3\u30c0\u30fc\u8a2d\u5b9a\u306a\u3069\uff09\u306b\u306e\u307f\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u3067\u306e\u74b0\u5883\u5909\u6570\u4f7f\u7528<\/h3>\n\n\n\n<p>\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u3067\u306f\u3001<code>.env.local<\/code>\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># .env.local\uff08\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f.gitignore\u306b\u8ffd\u52a0\uff09\nDATABASE_URL=postgresql:\/\/localhost:5432\/mydb_dev\nSTRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxx\nNEXT_PUBLIC_API_URL=http:\/\/localhost:3000\/api<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># .gitignore\n.env.local\n.env.*.local\n.env<\/code><\/pre><\/div>\n\n\n\n<p class=\"is-style-big_icon_point\"><strong>\u91cd\u8981\uff1a<\/strong> <code>.env.local<\/code>\u306f\u5fc5\u305a<code>.gitignore<\/code>\u306b\u8ffd\u52a0\u3057\u3066\u3001GitHub\u306b\u30b3\u30df\u30c3\u30c8\u3055\u308c\u306a\u3044\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vercel\u3067\u74b0\u5883\u5909\u6570\u3092\u30d7\u30eb\u3059\u308b\u65b9\u6cd5<\/h3>\n\n\n\n<p>Vercel\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306b\u8a2d\u5b9a\u3057\u305f\u74b0\u5883\u5909\u6570\u3092\u3001\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u74b0\u5883\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># \u672c\u756a\u74b0\u5883\u306e\u74b0\u5883\u5909\u6570\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\nvercel env pull .env.local\n# \u3053\u308c\u306b\u3088\u308a\u3001Vercel\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u74b0\u5883\u5909\u6570\u304c.env.local\u306b\u66f8\u304d\u8fbc\u307e\u308c\u307e\u3059<\/code><\/pre><\/div>\n\n\n\n<p>\u30c1\u30fc\u30e0\u958b\u767a\u3067\u306f\u3001\u65b0\u3057\u3044\u30e1\u30f3\u30d0\u30fc\u304c\u53c2\u52a0\u3057\u305f\u969b\u306b<code>vercel env pull<\/code>\u3092\u5b9f\u884c\u3059\u308b\u3060\u3051\u3067\u3001\u5fc5\u8981\u306a\u74b0\u5883\u5909\u6570\u3092\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Netlify\u3067\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a\u65b9\u6cd5\u3010\u5b8c\u5168\u30ac\u30a4\u30c9\u3011<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1536\" height=\"864\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006682.jpg\" alt=\"\" class=\"wp-image-13283\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006682.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006682-768x432.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-14.48.08.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>Netlify\u306b\u3064\u3044\u3066\u3082\u8a73\u3057\u304f\u77e5\u308a\u305f\u3044\u3067\u3059\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.08.37.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u3046\u3080\u3002Netlify\u3082\u4eba\u6c17\u306e\u9ad8\u3044\u30db\u30b9\u30c6\u30a3\u30f3\u30b0\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3058\u3083\u3002Vercel\u3068\u4f3c\u305f\u65b9\u6cd5\u3067\u74b0\u5883\u5909\u6570\u3092\u7ba1\u7406\u3067\u304d\u308b\u305e\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">Netlify\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3067\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u8a2d\u5b9a\u624b\u9806<\/h4>\n\n\n\n<p>1. <strong>Netlify\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306b\u30ed\u30b0\u30a4\u30f3<\/strong> <ul><li><a href=\"https:\/\/app.netlify.com\">https:\/\/app.netlify.com<\/a> \u306b\u30a2\u30af\u30bb\u30b9<\/li> <\/ul><\/p>\n\n\n\n<p>2. <strong>\u30b5\u30a4\u30c8\u3092\u9078\u629e<\/strong> <ul><li>\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3057\u305f\u3044\u30b5\u30a4\u30c8\u3092\u30af\u30ea\u30c3\u30af<\/li> <\/ul><\/p>\n\n\n\n<p>3. <strong>Team settings \u2192 Environment variables<\/strong> <ul><li>\u300cTeam settings\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li> <li>\u5de6\u30b5\u30a4\u30c9\u30d0\u30fc\u304b\u3089\u300cEnvironment variables\u300d\u3092\u9078\u629e<\/li> <\/ul><\/p>\n\n\n<div class=\"wp-block-image size_s\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"2560\" height=\"979\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.04.04.jpg\" alt=\"\" class=\"wp-image-13372\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.04.04.jpg 2560w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.04.04-768x294.jpg 768w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.04.04-1536x587.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.04.04-2048x783.jpg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n<\/div>\n\n\n<p>4. <strong>\u74b0\u5883\u5909\u6570\u3092\u8ffd\u52a0<\/strong><br><ul><br><li>\u300cAdd a variable\u300d\u307e\u305f\u306f\u300cNew variable\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li><br><li>\u300cKey\u300d\u306b\u5909\u6570\u540d\u3092\u5165\u529b\uff08\u4f8b\uff1a<code>DATABASE_URL<\/code>\uff09<\/li><br><li>\u300cValues\u300d\u306b\u5024\u3092\u5165\u529b<\/li><br><li>\u9069\u7528\u3059\u308b\u30b9\u30b3\u30fc\u30d7\u3092\u9078\u629e\uff08All\u3001Production\u3001Deploy Previews\u3001Branch deploys\u306a\u3069\uff09<\/li><\/ul><\/p>\n\n\n\n<p>5. <strong>\u4fdd\u5b58<\/strong><ul><li>\u300cSave\u300d\u3092\u30af\u30ea\u30c3\u30af<\/li><\/ul><\/p>\n\n\n<div class=\"wp-block-image size_s\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1628\" height=\"706\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.55.01-1.png\" alt=\"\" class=\"wp-image-13371\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.55.01-1.png 1628w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.55.01-1-768x333.png 768w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-15.55.01-1-1536x666.png 1536w\" sizes=\"(max-width: 1628px) 100vw, 1628px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Netlify CLI\u3067\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<p>Netlify CLI\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u74b0\u5883\u5909\u6570\u3092\u7ba1\u7406\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># Netlify CLI\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nnpm install -g netlify-cli\n# Netlify\u306b\u30ed\u30b0\u30a4\u30f3\nnetlify login\n# \u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\nnetlify env:set DATABASE_URL &quot;postgresql:\/\/user:pass@host:5432\/db&quot;\n# \u74b0\u5883\u5909\u6570\u306e\u4e00\u89a7\u3092\u8868\u793a\nnetlify env:list\n# \u74b0\u5883\u5909\u6570\u3092\u53d6\u5f97\nnetlify env:get DATABASE_URL\n# \u74b0\u5883\u5909\u6570\u3092\u524a\u9664\nnetlify env:unset DATABASE_URL<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">netlify.toml\u3067\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<p><code>netlify.toml<\/code>\u30d5\u30a1\u30a4\u30eb\u3067\u30d3\u30eb\u30c9\u8a2d\u5b9a\u3092\u8a18\u8ff0\u3067\u304d\u307e\u3059\u304c\u3001Vercel\u3068\u540c\u69d8\u306b<strong><span class=\"swl-marker mark_yellow\">\u79d8\u5bc6\u60c5\u5831\u306f\u8a18\u8ff0\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044<\/span><\/strong>\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># netlify.toml\n[build]\n  command = &quot;npm run build&quot;\n  publish = &quot;.next&quot;\n# \u516c\u958b\u60c5\u5831\u306fOK\n[build.environment]\n  NODE_VERSION = &quot;18&quot;\n# \u79d8\u5bc6\u60c5\u5831\u306f\u66f8\u304b\u306a\u3044\n# DATABASE_URL = &quot;postgresql:\/\/...&quot;  # \u3053\u308c\u306f\u5371\u967a<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Netlify\u306e\u74b0\u5883\u30b9\u30b3\u30fc\u30d7<\/h3>\n\n\n\n<p>Netlify\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u3092\u4ee5\u4e0b\u306e\u30b9\u30b3\u30fc\u30d7\u3067\u8a2d\u5b9a\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>All\uff08\u3059\u3079\u3066\uff09<\/strong>\uff1a\u3059\u3079\u3066\u306e\u30c7\u30d7\u30ed\u30a4\u3067\u4f7f\u7528<\/li>\n\n\n\n<li><strong>Production\uff08\u672c\u756a\uff09<\/strong>\uff1a\u672c\u756a\u30d6\u30e9\u30f3\u30c1\u306e\u307f<\/li>\n\n\n\n<li><strong>Deploy Previews\uff08\u30d7\u30ec\u30d3\u30e5\u30fc\uff09<\/strong>\uff1a\u30d7\u30eb\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30d7\u30ec\u30d3\u30e5\u30fc<\/li>\n\n\n\n<li><strong>Branch deploys\uff08\u30d6\u30e9\u30f3\u30c1\uff09<\/strong>\uff1a\u7279\u5b9a\u306e\u30d6\u30e9\u30f3\u30c1\u306e\u30c7\u30d7\u30ed\u30a4<\/li>\n<\/ul>\n\n\n\n<p>\u672c\u756a\u74b0\u5883\u306e\u79d8\u5bc6\u60c5\u5831\uff08\u672c\u756a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001\u672c\u756aAPI\u30ad\u30fc\u306a\u3069\uff09\u306f\u3001\u5fc5\u305a\u300cProduction\u300d\u30b9\u30b3\u30fc\u30d7\u306e\u307f\u306b\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u74b0\u5883\u5909\u6570\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ea\u30b9\u30af\u3068\u5bfe\u7b56<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006683.jpg\" alt=\"\" class=\"wp-image-13284\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006683.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006683-768x512.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-14.40.37.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u9762\u304c\u3061\u3087\u3063\u3068\u4e0d\u5b89\u3067\u3059&#8230;<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.12.07.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u5927\u4e08\u592b\u3058\u3083\uff01\u3053\u3053\u3067\u306f\u3001\u74b0\u5883\u5909\u6570\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u4e3b\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ea\u30b9\u30af\u3068\u3001\u305d\u306e\u5bfe\u7b56\u65b9\u6cd5\u3092\u89e3\u8aac\u3059\u308b\u305e\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u30ea\u30b9\u30af1\uff1aNEXT_PUBLIC_\u306e\u8aa4\u7528<\/h3>\n\n\n\n<p><strong>\u6700\u3082\u591a\u3044\u5931\u6557\uff1a<\/strong> \u79d8\u5bc6\u60c5\u5831\u306b<code>NEXT_PUBLIC_<\/code>\u3092\u4ed8\u3051\u3066\u3057\u307e\u3046<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/\/ \u7d76\u5bfe\u306b\u3084\u3063\u3066\u306f\u3044\u3051\u306a\u3044\nNEXT_PUBLIC_STRIPE_SECRET_KEY=sk_live_abc123\n\/\/ \u3053\u306e\u30b3\u30fc\u30c9\u306f\u30d3\u30eb\u30c9\u5f8c\u306eJavaScript\u306b\u57cb\u3081\u8fbc\u307e\u308c\u308b\nconst secretKey = process.env.NEXT_PUBLIC_STRIPE_SECRET_KEY;\n\/\/ \u2192 \u30d6\u30e9\u30a6\u30b6\u306e\u958b\u767a\u8005\u30c4\u30fc\u30eb\u3067\u8ab0\u3067\u3082\u898b\u3089\u308c\u308b<\/code><\/pre><\/div>\n\n\n\n<p><strong>\u5bfe\u7b56\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>API Key\u3084Secret\u306b\u306f<strong><span class=\"swl-marker mark_yellow\">\u7d76\u5bfe\u306b<\/span><\/strong><code>NEXT_PUBLIC_<\/code>\u3092\u4ed8\u3051\u306a\u3044<\/li>\n\n\n\n<li>\u516c\u958b\u3055\u308c\u3066\u3082\u554f\u984c\u306a\u3044\u60c5\u5831\uff08\u516c\u958bAPI\u306eURL\u3001Google\u30a2\u30ca\u30ea\u30c6\u30a3\u30af\u30b9\u30bf\u30b0\u306a\u3069\uff09\u306e\u307f<code>NEXT_PUBLIC_<\/code>\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u79d8\u5bc6\u60c5\u5831\u306f\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\uff08API Routes\u3001Server Components\uff09\u3067\u306e\u307f\u4f7f\u7528<\/li>\n<\/ul>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/\/ \u6b63\u3057\u3044\u4f7f\u3044\u65b9\n\/\/ \u516c\u958b\u60c5\u5831\uff08NEXT_PUBLIC_\u3092\u4f7f\u7528\uff09\nNEXT_PUBLIC_API_URL=https:\/\/api.example.com\nNEXT_PUBLIC_GA_TRACKING_ID=G-XXXXXXXXXX\n\/\/ \u79d8\u5bc6\u60c5\u5831\uff08\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u306a\u3057\uff09\nSTRIPE_SECRET_KEY=sk_live_abc123\nDATABASE_URL=postgresql:\/\/user:pass@host:5432\/db<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u30ea\u30b9\u30af2\uff1a.env\u30d5\u30a1\u30a4\u30eb\u306eGit\u30b3\u30df\u30c3\u30c8<\/h3>\n\n\n\n<p><strong>\u30ea\u30b9\u30af\uff1a<\/strong> <code>.env<\/code>\u3084<code>.env.local<\/code>\u3092GitHub\u306b\u30b3\u30df\u30c3\u30c8\u3057\u3066\u3057\u307e\u3046<\/p>\n\n\n\n<p><strong>\u5bfe\u7b56\uff1a<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># .gitignore\uff08\u5fc5\u305a\u4ee5\u4e0b\u3092\u8ffd\u52a0\uff09\n.env\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n.env*.local<\/code><\/pre><\/div>\n\n\n\n<p><strong>\u3082\u3057\u8aa4\u3063\u3066\u30b3\u30df\u30c3\u30c8\u3057\u3066\u3057\u307e\u3063\u305f\u5834\u5408\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u3059\u3050\u306bAPI Key\u3084\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u7121\u52b9\u5316\u30fb\u5909\u66f4\u3059\u308b<\/li>\n\n\n\n<li>Git\u306e\u5c65\u6b74\u304b\u3089\u5b8c\u5168\u306b\u524a\u9664\u3059\u308b\uff08<code>git filter-branch<\/code>\u3084<code>BFG Repo-Cleaner<\/code>\u3092\u4f7f\u7528\uff09<\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u30ad\u30fc\u3092\u767a\u884c\u3057\u3001\u74b0\u5883\u5909\u6570\u3092\u66f4\u65b0\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u30ea\u30b9\u30af3\uff1a\u30ed\u30b0\u3078\u306e\u79d8\u5bc6\u60c5\u5831\u51fa\u529b<\/h3>\n\n\n\n<p><strong>\u30ea\u30b9\u30af\uff1a<\/strong> \u30c7\u30d0\u30c3\u30b0\u76ee\u7684\u3067\u74b0\u5883\u5909\u6570\u3092\u30ed\u30b0\u51fa\u529b\u3057\u3066\u3057\u307e\u3046<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ \u5371\u967a\uff1a\u79d8\u5bc6\u60c5\u5831\u3092\u30ed\u30b0\u306b\u51fa\u529b\nconsole.log(&#39;API Key:&#39;, process.env.STRIPE_SECRET_KEY);\n\/\/ Vercel\/Netlify\u306e\u30ed\u30b0\u306f\u8ab0\u3067\u3082\u898b\u3089\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b<\/code><\/pre><\/div>\n\n\n\n<p><strong>\u5bfe\u7b56\uff1a<\/strong><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ \u5b89\u5168\uff1a\u5b58\u5728\u78ba\u8a8d\u306e\u307f\nconsole.log(&#39;API Key is set:&#39;, !!process.env.STRIPE_SECRET_KEY);\n\/\/ \u307e\u305f\u306f\u3001\u6700\u521d\u306e\u6570\u6587\u5b57\u306e\u307f\u8868\u793a\nconst key = process.env.STRIPE_SECRET_KEY;\nconsole.log(&#39;API Key:&#39;, key ? `${key.substring(0, 7)}...` : &#39;not set&#39;);<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u30ea\u30b9\u30af4\uff1a\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u306e\u79d8\u5bc6\u60c5\u5831\u4f7f\u7528<\/h3>\n\n\n\n<p><strong>\u30ea\u30b9\u30af\uff1a<\/strong> \u30d6\u30e9\u30a6\u30b6\u5074\u306e\u30b3\u30fc\u30c9\u3067\u79d8\u5bc6\u306eAPI Key\u3092\u4f7f\u7528\u3057\u3066\u3057\u307e\u3046<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ \u5371\u967a\uff1a\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u79d8\u5bc6API\u3092\u76f4\u63a5\u547c\u3073\u51fa\u3057\n\/\/ pages\/index.tsx\nconst Component = () =&gt; {\n  const fetchData = async () =&gt; {\n    \/\/ \u3053\u308c\u306f\u30d6\u30e9\u30a6\u30b6\u3067\u5b9f\u884c\u3055\u308c\u308b\n    const response = await fetch(&#39;https:\/\/api.stripe.com\/v1\/charges&#39;, {\n      headers: {\n        Authorization: `Bearer ${process.env.STRIPE_SECRET_KEY}` \/\/ \u5371\u967a\uff01\n      }\n    });\n  };\n  \/\/ ...\n};<\/code><\/pre><\/div>\n\n\n\n<p><strong>\u5bfe\u7b56\uff1a<\/strong> \u79d8\u5bc6\u60c5\u5831\u304c\u5fc5\u8981\u306a\u51e6\u7406\u306f\u3001\u5fc5\u305a\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u3067\u5b9f\u884c\u3059\u308b<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ \u5b89\u5168\uff1aAPI Routes\u3067\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u51e6\u7406\n\/\/ pages\/api\/create-charge.ts\nimport type { NextApiRequest, NextApiResponse } from &#39;next&#39;;\nimport Stripe from &#39;stripe&#39;;\nconst stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {\n  apiVersion: &#39;2023-10-16&#39;,\n});\nexport default async function handler(\n  req: NextApiRequest,\n  res: NextApiResponse\n) {\n  \/\/ \u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u3067\u5b9f\u884c\u3055\u308c\u308b\u305f\u3081\u3001\u79d8\u5bc6\u60c5\u5831\u304c\u5b89\u5168\n  const charge = await stripe.charges.create({\n    amount: 2000,\n    currency: &#39;usd&#39;,\n    source: req.body.token,\n  });\n  res.status(200).json({ charge });\n}\n\/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u304b\u3089\u306f\u3001\u3053\u306eAPI\u3092\u547c\u3073\u51fa\u3059\u3060\u3051\n\/\/ pages\/index.tsx\nconst Component = () =&gt; {\n  const createCharge = async (token: string) =&gt; {\n    const response = await fetch(&#39;\/api\/create-charge&#39;, {\n      method: &#39;POST&#39;,\n      body: JSON.stringify({ token }),\n    });\n    const data = await response.json();\n  };\n};<\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">GitHub Secrets\u3068\u306e\u9023\u643a\u3010CI\/CD\u81ea\u52d5\u5316\u3011<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006684.jpg\" alt=\"\" class=\"wp-image-13285\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006684.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006684-768x512.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.00.55.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>Github\u3092\u4f7f\u3063\u305f\u65b9\u6cd5\u3082\u3042\u308b\u3068\u805e\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u672c\u5f53\u3067\u3059\u304b\uff1f<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.09.27.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u3046\u3080\u3002GitHub Actions\u3092\u4f7f\u3063\u3066\u30d3\u30eb\u30c9\u30fb\u30c7\u30d7\u30ed\u30a4\u3092\u81ea\u52d5\u5316\u3059\u308b\u65b9\u6cd5\u304c\u3042\u308b\u3002\u3053\u306e\u65b9\u6cd5\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001GitHub Secrets\u3067\u74b0\u5883\u5909\u6570\u3092\u7ba1\u7406\u3059\u308b\u306e\u3058\u3083\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">GitHub Secrets\u3068\u306f\uff1f<\/h3>\n\n\n\n<p>GitHub Secrets\u306f\u3001GitHub\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u5b89\u5168\u306b\u4fdd\u5b58\u3067\u304d\u308b\u6697\u53f7\u5316\u3055\u308c\u305f\u74b0\u5883\u5909\u6570\u3067\u3059\u3002GitHub Actions\u306e\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u5185\u3067\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u3067\u3001\u30ed\u30b0\u306b\u306f\u8868\u793a\u3055\u308c\u307e\u305b\u3093\uff08\u81ea\u52d5\u7684\u306b<code>***<\/code>\u3067\u30de\u30b9\u30af\u3055\u308c\u307e\u3059\uff09\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GitHub Secrets\u306e\u8a2d\u5b9a\u65b9\u6cd5<\/h3>\n\n\n\n<p>1. GitHub\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u958b\u304f<\/p>\n\n\n\n<p>2. \u300cSettings\u300d\u2192\u300cSecrets and variables\u300d\u2192\u300cActions\u300d<\/p>\n\n\n<div class=\"wp-block-image size_s\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"2560\" height=\"1359\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.30.35.jpg\" alt=\"\" class=\"wp-image-13385\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.30.35.jpg 2560w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.30.35-768x408.jpg 768w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.30.35-1536x815.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.30.35-2048x1087.jpg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n<\/div>\n\n\n<p>4. \u300cNew repository secret\u300d\u3092\u30af\u30ea\u30c3\u30af<\/p>\n\n\n<div class=\"wp-block-image size_s\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"2560\" height=\"1200\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.31.38.jpg\" alt=\"\" class=\"wp-image-13387\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.31.38.jpg 2560w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.31.38-768x360.jpg 768w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.31.38-1536x720.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.31.38-2048x960.jpg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n<\/div>\n\n\n<p>5.\u300cName\u300d\u306b\u5909\u6570\u540d\u3001\u300cSecret\u300d\u306b\u5024\u3092\u5165\u529b<\/p>\n\n\n\n<p>6.\u300cAdd secret\u300d\u3092\u30af\u30ea\u30c3\u30af<\/p>\n\n\n<div class=\"wp-block-image size_s\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"2560\" height=\"1067\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.32.03.png\" alt=\"\" class=\"wp-image-13388\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.32.03.png 2560w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.32.03-768x320.png 768w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.32.03-1536x640.png 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2026-03-30-16.32.03-2048x854.png 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">GitHub Actions\u3067\u306eVercel\u30c7\u30d7\u30ed\u30a4<\/h3>\n\n\n\n<p>GitHub Actions\u304b\u3089Vercel\u306b\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u969b\u306e\u74b0\u5883\u5909\u6570\u306e\u6271\u3044\u65b9\uff1a<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># .github\/workflows\/deploy.yml\nname: Deploy to Vercel\non:\n  push:\n    branches: [main]\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\/checkout@v3\n      - name: Setup Node.js\n        uses: actions\/setup-node@v3\n        with:\n          node-version: 18\n      - name: Install dependencies\n        run: npm ci\n      # GitHub Secrets\u304b\u3089\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\n      - name: Build\n        env:\n          DATABASE_URL: ${{ secrets.DATABASE_URL }}\n          STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}\n          NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}\n        run: npm run build\n      # Vercel\u306b\u30c7\u30d7\u30ed\u30a4\n      - name: Deploy to Vercel\n        env:\n          VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}\n          VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}\n          VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}\n        run: |\n          npm install -g vercel\n          vercel --token $VERCEL_TOKEN --prod<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">\u5fc5\u8981\u306aGitHub Secrets<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>VERCEL_TOKEN<\/code>\uff1aVercel\u306e\u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\uff08Vercel\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306e\u300cSettings\u300d\u2192\u300cTokens\u300d\u3067\u767a\u884c\uff09<\/li>\n\n\n\n<li><code>VERCEL_ORG_ID<\/code>\uff1a\u7d44\u7e54ID\uff08<code>.vercel\/project.json<\/code>\u306b\u8a18\u8f09\uff09<\/li>\n\n\n\n<li><code>VERCEL_PROJECT_ID<\/code>\uff1a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8ID\uff08<code>.vercel\/project.json<\/code>\u306b\u8a18\u8f09\uff09<\/li>\n\n\n\n<li>\u305d\u306e\u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u56fa\u6709\u306e\u79d8\u5bc6\u60c5\u5831<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Vercel\/Netlify\u81ea\u52d5\u9023\u643a vs GitHub Actions<\/h3>\n\n\n\n<p>2\u3064\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u65b9\u6cd5<\/th><th>\u30e1\u30ea\u30c3\u30c8<\/th><th>\u30c7\u30e1\u30ea\u30c3\u30c8<\/th><\/tr><\/thead><tbody><tr><td>Vercel\/Netlify\u81ea\u52d5\u9023\u643a<\/td><td>\u8a2d\u5b9a\u304c\u7c21\u5358\u3001\u74b0\u5883\u5909\u6570\u306f\u5404\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u7ba1\u7406<\/td><td>\u30ab\u30b9\u30bf\u30e0\u30d3\u30eb\u30c9\u30b9\u30c6\u30c3\u30d7\u304c\u9650\u5b9a\u7684<\/td><\/tr><tr><td>GitHub Actions<\/td><td>\u5b8c\u5168\u306aCI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3001\u30c6\u30b9\u30c8\u30fbLint\u3082\u5b9f\u884c\u53ef\u80fd<\/td><td>\u8a2d\u5b9a\u304c\u8907\u96d1\u3001\u74b0\u5883\u5909\u6570\u3092GitHub Secrets\u3067\u7ba1\u7406<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>\u63a8\u5968\uff1a<\/strong> \u5c0f\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306fVercel\/Netlify\u306e\u81ea\u52d5\u9023\u643a\u3001\u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3084\u8907\u96d1\u306a\u30d3\u30eb\u30c9\u30d7\u30ed\u30bb\u30b9\u304c\u3042\u308b\u5834\u5408\u306fGitHub Actions\u3092\u4f7f\u7528\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u74b0\u5883\u5909\u6570\u7ba1\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006685.jpg\" alt=\"\" class=\"wp-image-13286\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006685.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006685-768x512.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.08.37.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u3053\u3053\u3067\u306f\u3001\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883\u3067\u5b89\u5168\u306b\u74b0\u5883\u5909\u6570\u3092\u7ba1\u7406\u3059\u308b\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u7d39\u4ecb\u3059\u308b\u305e\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-14.48.08.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u306f\u3044\uff01\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">1. .env.example\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3059\u308b<\/h3>\n\n\n\n<p>\u30c1\u30fc\u30e0\u30e1\u30f3\u30d0\u30fc\u304c\u5fc5\u8981\u306a\u74b0\u5883\u5909\u6570\u3092\u628a\u63e1\u3067\u304d\u308b\u3088\u3046\u3001\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># .env.example\uff08GitHub\u306b\u30b3\u30df\u30c3\u30c8\u53ef\u80fd\uff09\n# \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u60c5\u5831\nDATABASE_URL=postgresql:\/\/user:password@localhost:5432\/mydb\n# Stripe API Key\nSTRIPE_SECRET_KEY=sk_test_your_key_here\nSTRIPE_PUBLISHABLE_KEY=pk_test_your_key_here\n# Next.js \u516c\u958b\u74b0\u5883\u5909\u6570\nNEXT_PUBLIC_API_URL=http:\/\/localhost:3000\/api\nNEXT_PUBLIC_GA_TRACKING_ID=G-XXXXXXXXXX<\/code><\/pre><\/div>\n\n\n\n<p>\u65b0\u3057\u3044\u30e1\u30f3\u30d0\u30fc\u306f\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u958b\u59cb\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>cp .env.example .env.local\n# .env.local\u3092\u7de8\u96c6\u3057\u3066\u3001\u5b9f\u969b\u306e\u5024\u3092\u5165\u529b<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u74b0\u5883\u3054\u3068\u306b\u7570\u306a\u308b\u5024\u3092\u4f7f\u7528\u3059\u308b<\/h3>\n\n\n\n<p>\u672c\u756a\u74b0\u5883\u3068\u958b\u767a\u74b0\u5883\u3067\u306f\u3001\u5fc5\u305a\u7570\u306a\u308bAPI Key\u3084\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># \u958b\u767a\u74b0\u5883\uff08.env.local\uff09\nDATABASE_URL=postgresql:\/\/localhost:5432\/mydb_dev\nSTRIPE_SECRET_KEY=sk_test_xxxxxxxxx  # \u30c6\u30b9\u30c8\u30e2\u30fc\u30c9\n# \u672c\u756a\u74b0\u5883\uff08Vercel\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\uff09\nDATABASE_URL=postgresql:\/\/production-host:5432\/mydb_prod\nSTRIPE_SECRET_KEY=sk_live_xxxxxxxxx  # \u672c\u756a\u30e2\u30fc\u30c9<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u74b0\u5883\u5909\u6570\u306e\u547d\u540d\u898f\u5247\u3092\u7d71\u4e00\u3059\u308b<\/h3>\n\n\n\n<p>\u30c1\u30fc\u30e0\u5168\u4f53\u3067\u7d71\u4e00\u3055\u308c\u305f\u547d\u540d\u898f\u5247\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u7ba1\u7406\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5927\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2<\/strong>\uff1a<code>DATABASE_URL<\/code>\u3001<code>API_KEY<\/code><\/li>\n\n\n\n<li><strong>\u30b5\u30fc\u30d3\u30b9\u540d\u3092\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u306b<\/strong>\uff1a<code>STRIPE_SECRET_KEY<\/code>\u3001<code>SENDGRID_API_KEY<\/code><\/li>\n\n\n\n<li><strong>\u516c\u958b\u5909\u6570\u306b\u306fNEXT_PUBLIC_<\/strong>\uff1a<code>NEXT_PUBLIC_API_URL<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. \u74b0\u5883\u5909\u6570\u306e\u5b58\u5728\u78ba\u8a8d\u3092\u5b9f\u88c5\u3059\u308b<\/h3>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8d77\u52d5\u6642\u306b\u5fc5\u9808\u306e\u74b0\u5883\u5909\u6570\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ lib\/env.ts\nconst requiredEnvVars = [\n  &#39;DATABASE_URL&#39;,\n  &#39;STRIPE_SECRET_KEY&#39;,\n  &#39;NEXT_PUBLIC_API_URL&#39;,\n] as const;\nexport function validateEnv() {\n  const missing: string[] = [];\n  for (const envVar of requiredEnvVars) {\n    if (!process.env[envVar]) {\n      missing.push(envVar);\n    }\n  }\n  if (missing.length &gt; 0) {\n    throw new Error(\n      `Missing required environment variables: ${missing.join(&#39;, &#39;)}`\n    );\n  }\n}\n\/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8d77\u52d5\u6642\u306b\u5b9f\u884c\n\/\/ next.config.js\nconst { validateEnv } = require(&#39;.\/lib\/env&#39;);\nvalidateEnv();\nmodule.exports = {\n  \/\/ Next.js\u8a2d\u5b9a...\n};<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">5. \u578b\u5b89\u5168\u306a\u74b0\u5883\u5909\u6570\u30a2\u30af\u30bb\u30b9<\/h3>\n\n\n\n<p>TypeScript\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u3001\u74b0\u5883\u5909\u6570\u306e\u578b\u5b9a\u7fa9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>\/\/ env.d.ts\ndeclare global {\n  namespace NodeJS {\n    interface ProcessEnv {\n      DATABASE_URL: string;\n      STRIPE_SECRET_KEY: string;\n      STRIPE_PUBLISHABLE_KEY: string;\n      NEXT_PUBLIC_API_URL: string;\n      NEXT_PUBLIC_GA_TRACKING_ID?: string; \/\/ \u30aa\u30d7\u30b7\u30e7\u30ca\u30eb\n    }\n  }\n}\nexport {};\n\/\/ \u3053\u308c\u3067\u578b\u5b89\u5168\u306b\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\nconst dbUrl = process.env.DATABASE_URL; \/\/ string\u578b\u3068\u3057\u3066\u8a8d\u8b58<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">6. \u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3068\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5b9a\u671f\u7684\u306a\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3<\/strong>\uff1aAPI Key\u3084\u30d1\u30b9\u30ef\u30fc\u30c9\u306f3-6\u30f6\u6708\u3054\u3068\u306b\u5909\u66f4<\/li>\n\n\n\n<li><strong>\u6700\u5c0f\u6a29\u9650\u306e\u539f\u5247<\/strong>\uff1a\u5404\u74b0\u5883\u5909\u6570\u306b\u5fc5\u8981\u6700\u5c0f\u9650\u306e\u6a29\u9650\u306e\u307f\u4ed8\u4e0e<\/li>\n\n\n\n<li><strong>\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u76e3\u8996<\/strong>\uff1a\u4e0d\u6b63\u306a\u30a2\u30af\u30bb\u30b9\u304c\u306a\u3044\u304b\u5b9a\u671f\u7684\u306b\u78ba\u8a8d<\/li>\n\n\n\n<li><strong>\u30c1\u30fc\u30e0\u9000\u8077\u6642\u306e\u5bfe\u5fdc<\/strong>\uff1a\u30e1\u30f3\u30d0\u30fc\u304c\u9000\u8077\u3057\u305f\u969b\u306f\u3001\u3059\u3079\u3066\u306e\u79d8\u5bc6\u60c5\u5831\u3092\u5909\u66f4<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006686.jpg\" alt=\"\" class=\"wp-image-13287\" srcset=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006686.jpg 1536w, https:\/\/withcode.tech\/media\/wp-content\/uploads\/2026\/02\/1000006686-768x512.jpg 768w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n<\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.00.55.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u74b0\u5883\u5909\u6570\u3092\u4f7f\u7528\u3059\u308b\u306b\u3042\u305f\u3063\u3066\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u3053\u3068\u3082\u77e5\u308a\u305f\u3044\u3067\u3059\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.12.07.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong><strong><strong>\u3046\u3080\u3002\u3053\u3053\u3067\u306f\u3001\u4e3b\u306a\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30924\u3064\u7d39\u4ecb\u3059\u308b\u305e\u3044\uff01<\/strong><\/strong><\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u554f\u984c1\uff1a\u74b0\u5883\u5909\u6570\u304c\u8aad\u307f\u8fbc\u307e\u308c\u306a\u3044<\/h3>\n\n\n\n<p><strong>\u75c7\u72b6\uff1a<\/strong> <code>process.env.DATABASE_URL<\/code>\u304c<code>undefined<\/code>\u306b\u306a\u308b<\/p>\n\n\n\n<p><strong>\u539f\u56e0\u3068\u89e3\u6c7a\u7b56\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u958b\u767a\u30b5\u30fc\u30d0\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3066\u3044\u306a\u3044<\/strong>\n<ul>\n<li><code>.env.local<\/code>\u3092\u5909\u66f4\u3057\u305f\u3089\u3001<code>npm run dev<\/code>\u3092\u518d\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u9593\u9055\u3063\u3066\u3044\u308b<\/strong>\n<ul>\n<li><code>.env<\/code>\u3067\u306f\u306a\u304f<code>.env.local<\/code>\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u4f7f\u7528\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b<\/strong>\n<ul>\n<li>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u306f<code>NEXT_PUBLIC_<\/code>\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u304c\u5fc5\u8981\u3067\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u554f\u984c2\uff1aVercel\u3067\u30c7\u30d7\u30ed\u30a4\u5f8c\u306b\u74b0\u5883\u5909\u6570\u304c\u53cd\u6620\u3055\u308c\u306a\u3044<\/h3>\n\n\n\n<p><strong>\u75c7\u72b6\uff1a<\/strong> \u30ed\u30fc\u30ab\u30eb\u3067\u306f\u52d5\u304f\u304c\u3001Vercel\u30c7\u30d7\u30ed\u30a4\u5f8c\u306b\u30a8\u30e9\u30fc<\/p>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Vercel\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3067\u74b0\u5883\u5909\u6570\u304c\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u74b0\u5883\uff08Production\/Preview\/Development\uff09\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d<\/li>\n\n\n\n<li>\u74b0\u5883\u5909\u6570\u3092\u8ffd\u52a0\u30fb\u5909\u66f4\u3057\u305f\u3089\u3001<strong><span class=\"swl-marker mark_yellow\">\u518d\u30c7\u30d7\u30ed\u30a4<\/span><\/strong>\u304c\u5fc5\u8981<\/li>\n<\/ol>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># Vercel CLI\u3067\u518d\u30c7\u30d7\u30ed\u30a4\nvercel --prod\n# \u307e\u305f\u306f\u3001GitHub\u306bpush\u3057\u3066\u81ea\u52d5\u30c7\u30d7\u30ed\u30a4<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u554f\u984c3\uff1a\u30d3\u30eb\u30c9\u6642\u306bNEXT_PUBLIC_\u5909\u6570\u304c\u7a7a\u306b\u306a\u308b<\/h3>\n\n\n\n<p><strong>\u75c7\u72b6\uff1a<\/strong> <code>process.env.NEXT_PUBLIC_API_URL<\/code>\u304c\u7a7a\u6587\u5b57\u5217\u307e\u305f\u306f<code>undefined<\/code><\/p>\n\n\n\n<p><strong>\u539f\u56e0\uff1a<\/strong> <code>NEXT_PUBLIC_<\/code>\u5909\u6570\u306f\u30d3\u30eb\u30c9\u6642\u306b\u57cb\u3081\u8fbc\u307e\u308c\u308b\u305f\u3081\u3001\u30d3\u30eb\u30c9\u6642\u306b\u5b58\u5728\u3057\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vercel\/Netlify\u306e\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3067<code>NEXT_PUBLIC_<\/code>\u5909\u6570\u3092\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u5f8c\u3001\u518d\u30d3\u30eb\u30c9\u30fb\u518d\u30c7\u30d7\u30ed\u30a4<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u554f\u984c4\uff1aGitHub\u306b\u30b3\u30df\u30c3\u30c8\u3057\u3066\u3057\u307e\u3063\u305f\u79d8\u5bc6\u60c5\u5831\u3092\u524a\u9664\u3057\u305f\u3044<\/h3>\n\n\n\n<p><strong>\u624b\u9806\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u3059\u3050\u306b\u79d8\u5bc6\u60c5\u5831\u3092\u7121\u52b9\u5316<\/strong>\n<ul>\n<li>API Key\u306e\u7121\u52b9\u5316\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u5909\u66f4\u306a\u3069<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Git\u5c65\u6b74\u304b\u3089\u524a\u9664<\/strong> <ul><li>BFG Repo-Cleaner\u3092\u4f7f\u7528\uff08\u63a8\u5968\uff09<\/li> <\/ul><\/li>\n<\/ol>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code># BFG Repo-Cleaner\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\n# https:\/\/rtyley.github.io\/bfg-repo-cleaner\/\n# .env.local\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\njava -jar bfg.jar --delete-files .env.local\n# Git\u5c65\u6b74\u3092\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\ngit reflog expire --expire=now --all\ngit gc --prune=now --aggressive\n# \u5f37\u5236\u30d7\u30c3\u30b7\u30e5\uff08\u6ce8\u610f\uff1a\u30c1\u30fc\u30e0\u30e1\u30f3\u30d0\u30fc\u306b\u901a\u77e5\uff09\ngit push --force<\/code><\/pre><\/div>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u65b0\u3057\u3044\u79d8\u5bc6\u60c5\u5831\u3092\u767a\u884c<\/strong>\n<ul>\n<li>\u65b0\u3057\u3044API Key\u3092\u767a\u884c\u3057\u3001Vercel\/Netlify\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3067\u8a2d\u5b9a<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-14.48.08.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u74b0\u5883\u5909\u6570\u306e\u7ba1\u7406\u3063\u3066\u3001\u601d\u3063\u305f\u4ee5\u4e0a\u306b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u304c\u91cd\u8981\u306a\u3093\u3067\u3059\u306d\u3002NEXT_PUBLIC_\u306e\u4f7f\u3044\u5206\u3051\u3092\u3057\u3063\u304b\u308a\u7406\u89e3\u3067\u304d\u307e\u3057\u305f\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-right\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.11.23.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u30da\u30f3\u535a\u58eb<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u305d\u306e\u901a\u308a\u3058\u3083\uff01\u4e00\u5ea6\u79d8\u5bc6\u60c5\u5831\u304c\u6f0f\u6d29\u3059\u308b\u3068\u3001\u53d6\u308a\u8fd4\u3057\u304c\u3064\u304b\u306a\u3044\u3053\u3068\u306b\u306a\u308b\u3002\u5e38\u306b\u300c\u3053\u308c\u306f\u516c\u958b\u3055\u308c\u3066\u3082\u5927\u4e08\u592b\u304b\uff1f\u300d\u3068\u81ea\u554f\u81ea\u7b54\u3059\u308b\u7fd2\u6163\u3092\u4ed8\u3051\u308b\u3053\u3068\u304c\u5927\u5207\u3058\u3083\u305e\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -square\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2025\/06\/\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8-2025-06-15-15.06.05.jpg\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">\u751f\u5f92<\/span><\/div><div class=\"c-balloon__body -speaking -border-none\"><div class=\"c-balloon__text\">\n<p><strong>\u52c9\u5f37\u306b\u306a\u308a\u307e\u3059\uff01\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\uff01<\/strong><\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001Vercel\/Netlify\u3067\u306e\u74b0\u5883\u5909\u6570\u306e\u5b89\u5168\u306a\u7ba1\u7406\u65b9\u6cd5\u306b\u3064\u3044\u3066\u3001\u5b9f\u8df5\u7684\u306a\u5185\u5bb9\u3092\u89e3\u8aac\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"is-style-big_icon_point\"><strong>\u30fb<strong>\u74b0\u5883\u5909\u6570\u306e\u5f79\u5272<\/strong>\uff1a<\/strong>\u79d8\u5bc6\u60c5\u5831\u3092\u30b3\u30fc\u30c9\u304b\u3089\u5206\u96e2\u3057\u3001\u5b89\u5168\u306b\u7ba1\u7406\u3059\u308b\u4ed5\u7d44\u307f<strong><br>\u30fb<strong>NEXT_PUBLIC_\u306e\u6b63\u3057\u3044\u4f7f\u3044\u65b9<\/strong>\uff1a<\/strong>\u516c\u958b\u3055\u308c\u3066\u3082\u554f\u984c\u306a\u3044\u60c5\u5831\u306e\u307f\u306b\u4f7f\u7528\u3057\u3001API Key\u306a\u3069\u306e\u79d8\u5bc6\u60c5\u5831\u306b\u306f\u7d76\u5bfe\u306b\u4f7f\u7528\u3057\u306a\u3044<strong><br>\u30fb<strong>Vercel\/Netlify\u3067\u306e\u8a2d\u5b9a<\/strong>\uff1a<\/strong>\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u304b\u3089\u74b0\u5883\u3054\u3068\u306b\u8a2d\u5b9a\u3057\u3001.env\u30d5\u30a1\u30a4\u30eb\u306fGitHub\u306b\u30b3\u30df\u30c3\u30c8\u3057\u306a\u3044<strong><br>\u30fb<strong>GitHub Secrets\u3068\u306e\u9023\u643a<\/strong>\uff1a<\/strong>CI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3067\u306f\u3001GitHub Secrets\u3067\u74b0\u5883\u5909\u6570\u3092\u7ba1\u7406<strong><br>\u30fb<strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/strong>\uff1a<\/strong>\u30ed\u30b0\u3078\u306e\u51fa\u529b\u3092\u907f\u3051\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u79d8\u5bc6\u60c5\u5831\u3092\u4f7f\u7528\u3057\u306a\u3044<strong><br>\u30fb\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/strong>\uff1a.env.example\u3092\u7528\u610f\u3057\u3001\u578b\u5b89\u5168\u306a\u30a2\u30af\u30bb\u30b9\u3001\u5b9a\u671f\u7684\u306a\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u65bd<\/p>\n\n\n\n<p><strong><span class=\"swl-marker mark_yellow\">\u9069\u5207\u306a\u74b0\u5883\u5909\u6570\u7ba1\u7406\u306f\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u57fa\u672c\u3067\u3042\u308a\u3001\u3059\u3079\u3066\u306e\u30a8\u30f3\u30b8\u30cb\u30a2\u304c\u8eab\u306b\u3064\u3051\u308b\u3079\u304d\u5fc5\u9808\u30b9\u30ad\u30eb\u3067\u3059<\/span><\/strong>\u3002<\/p>\n\n\n\n<p>\u307e\u305a\u306f\u65e2\u5b58\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a\u3092\u898b\u76f4\u3057\u3001.env\u30d5\u30a1\u30a4\u30eb\u304c\u8aa4\u3063\u3066GitHub\u306b\u30b3\u30df\u30c3\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3057\u3066\u3001<code>NEXT_PUBLIC_<\/code>\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u306e\u4f7f\u7528\u7b87\u6240\u304c\u9069\u5207\u304b\u3001\u4e00\u3064\u3072\u3068\u3064\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">WithCode\u3092\u4f53\u9a13\u3067\u304d\u308b\u521d\u7d1a\u30b3\u30fc\u30b9\u516c\u958b\u4e2d\uff01<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" width=\"600\" height=\"500\" src=\"https:\/\/withcode.tech\/media\/wp-content\/uploads\/2024\/04\/\u30d0\u30ca\u30fc_300\u00d7250_20240425.png\" alt=\"\" class=\"wp-image-2650\"\/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">\u521d\u7d1a\u30b3\u30fc\u30b9\uff08\u00a549,800\uff09\u304c\u5b8c\u5168\u7121\u6599\u306b\uff01<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u671f\u9593\uff1a<\/strong>1\u9031\u9593<\/li>\n\n\n\n<li><strong>\u5b66\u7fd2\u5185\u5bb9\uff1a<\/strong>\n\u30ed\u30fc\u30c9\u30de\u30c3\u30d7\/\u57fa\u790e\u77e5\u8b58\/\u74b0\u5883\u69cb\u7bc9\/HTML\/CSS\/LP\u30fb\u30dd\u30fc\u30c8\u30d5\u30a9\u30ea\u30aa\u4f5c\u6210\n<strong><span class=\"swl-marker mark_yellow\">\u2192 \u6b63\u3057\u3044\u5b66\u7fd2\u65b9\u6cd5\u3067\u300c\u78ba\u304b\u306a\u6210\u9577\u300d\u3092\u5b9f\u611f\u3067\u304d\u308b\u30ab\u30ea\u30ad\u30e5\u30e9\u30e0<\/span><\/strong><\/li>\n<\/ul>\n\n\n\n<p>\u526f\u696d\u30fb\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u304c\u4e3b\u6d41\u306b\u306a\u3063\u3066\u3044\u308b\u4eca\u3053\u305d\u3001\u81ea\u3089\u306e\u30b9\u30ad\u30eb\u3067\u7a3c\u3052\u308b\u4eba\u6750\u3092\u76ee\u6307\u3057\u3066\u307f\u307e\u305b\u3093\u304b\uff1f<\/p>\n\n\n\n<p>\u672a\u7d4c\u9a13\u3067\u3082\u5fc3\u914d\u3059\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u521d\u7d1a\u30b3\u30fc\u30b9\u3092\u53d7\u8b1b\u3055\u308c\u308b\u65b9\u306e\u5927\u591a\u6570\u306f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u672a\u7d4c\u9a13\u3067\u3059\u3002\u307e\u305a\u306f\u7121\u6599\u30ab\u30a6\u30f3\u30bb\u30ea\u30f3\u30b0\u3067\u3001\u60a9\u307f\u3084\u4e0d\u5b89\u3092\u304a\u805e\u304b\u305b\u304f\u3060\u3055\u3044\uff01<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-white-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/withcode.tech\/reservation\/\" style=\"background-color:#ffbf00\"><strong>\u516c\u5f0f\u30b5\u30a4\u30c8\u304b\u3089\u7121\u6599\u30ab\u30a6\u30f3\u30bb\u30ea\u30f3\u30b0\u306b\u7533\u3057\u8fbc\u3080 \u2192<\/strong><\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Web\u5236\u4f5c\u306b\u304a\u3044\u3066\u3001API Key\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u60c5\u5831\u3001\u8a8d\u8a3c\u30c8\u30fc\u30af\u30f3\u306a\u3069\u306e\u79d8\u5bc6\u60c5\u5831\u3092\u5b89\u5168\u306b\u7ba1\u7406\u3059\u308b\u3053\u3068\u306f\u6975\u3081\u3066\u91cd\u8981\u3067\u3059\u3002\u7279\u306b\u3001Vercel\u3084Netlify\u3068\u3044\u3063\u305f\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u306f\u3001\u9069\u5207\u306a\u74b0\u5883\u5909\u6570\u7ba1\u7406\u304c\u4e0d [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":13226,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"swell_btn_cv_data":"","footnotes":""},"categories":[9,382],"tags":[76,398,401,402],"class_list":["post-12352","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-learning-content","category-382","tag-github","tag-398","tag-vercel","tag-netlify"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/posts\/12352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/comments?post=12352"}],"version-history":[{"count":17,"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/posts\/12352\/revisions"}],"predecessor-version":[{"id":13427,"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/posts\/12352\/revisions\/13427"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/media\/13226"}],"wp:attachment":[{"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/media?parent=12352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/categories?post=12352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/withcode.tech\/media\/wp-json\/wp\/v2\/tags?post=12352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}