[{"content":"TIL: Menggunakan Cloudflare Workers untuk Redirect Hari ini saya perlu membuat redirect URL yang simpel untuk project pribadi. Instead of spinning up a full server, saya pakai Cloudflare Workers yang gratis dan sangat cepat.\nKenapa Cloudflare Workers? Gratis — 100,000 requests/hari gratis Edge location — Dekat dengan user, latency rendah Mudah — Hanya beberapa baris JavaScript Cara Buat Buka Cloudflare Dashboard Pilih domain → Workers \u0026amp; Pages Create Worker Paste kode berikut: export default { async fetch(request) { const url = new URL(request.url); // Redirect rules const redirects = { \u0026#39;/old\u0026#39;: \u0026#39;https://yehartanto.my.id/new\u0026#39;, \u0026#39;/blog\u0026#39;: \u0026#39;https://yehartanto.my.id/posts\u0026#39;, }; const destination = redirects[url.pathname]; if (destination) { return Response.redirect(destination, 301); } return fetch(request); } }; Save and Deploy Hasil Redirect /old → /new dengan status code 301 (Permanent Redirect).\nSimpel dan efektif!\n#TIL #Cloudflare #DevOps\n","permalink":"https://yehartanto.my.id/posts/2026-04-14-til-cloudflare-workers-redirect/","summary":"\u003ch1 id=\"til-menggunakan-cloudflare-workers-untuk-redirect\"\u003eTIL: Menggunakan Cloudflare Workers untuk Redirect\u003c/h1\u003e\n\u003cp\u003eHari ini saya perlu membuat redirect URL yang simpel untuk project pribadi. Instead of spinning up a full server, saya pakai \u003cstrong\u003eCloudflare Workers\u003c/strong\u003e yang gratis dan sangat cepat.\u003c/p\u003e\n\u003ch2 id=\"kenapa-cloudflare-workers\"\u003eKenapa Cloudflare Workers?\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGratis\u003c/strong\u003e — 100,000 requests/hari gratis\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEdge location\u003c/strong\u003e — Dekat dengan user, latency rendah\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMudah\u003c/strong\u003e — Hanya beberapa baris JavaScript\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cara-buat\"\u003eCara Buat\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eBuka \u003ca href=\"https://dash.cloudflare.com/\"\u003eCloudflare Dashboard\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePilih domain → Workers \u0026amp; Pages\u003c/li\u003e\n\u003cli\u003eCreate Worker\u003c/li\u003e\n\u003cli\u003ePaste kode berikut:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-javascript\" data-lang=\"javascript\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eexport\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003edefault\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003easync\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efetch\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003erequest\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003enew\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eURL\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003erequest\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e// Redirect rules\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eredirects\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;/old\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;https://yehartanto.my.id/new\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;/blog\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;https://yehartanto.my.id/posts\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    };\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edestination\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eredirects\u003c/span\u003e[\u003cspan style=\"color:#a6e22e\"\u003eurl\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003epathname\u003c/span\u003e];\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#a6e22e\"\u003edestination\u003c/span\u003e) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eResponse\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eredirect\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003edestination\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e301\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efetch\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003erequest\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e};\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003col start=\"5\"\u003e\n\u003cli\u003eSave and Deploy\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"hasil\"\u003eHasil\u003c/h2\u003e\n\u003cp\u003eRedirect \u003ccode\u003e/old\u003c/code\u003e → \u003ccode\u003e/new\u003c/code\u003e dengan status code 301 (Permanent Redirect).\u003c/p\u003e","title":"TIL: Menggunakan Cloudflare Workers untuk Redirect"},{"content":"Tentang Saya Halo! Saya Yehartanto, seorang developer yang tertarik dengan teknologi, pemrograman, dan hal-hal teknis lainnya.\nMinat Software Development Cloud Computing Open Source DevOps Tools \u0026amp; Stack Language: Go, Python, JavaScript Framework: Hugo, SvelteKit, Next.js Cloud: AWS, Cloudflare Tools: Docker, Git, Linux Kontak GitHub: git.yehartanto.my.id/tantojos4 Email: hartantoyohanes4@gmail.com Tulisan di blog ini adalah catatan belajar dan pemikiran pribadi.\n","permalink":"https://yehartanto.my.id/about/","summary":"\u003ch1 id=\"tentang-saya\"\u003eTentang Saya\u003c/h1\u003e\n\u003cp\u003eHalo! Saya \u003cstrong\u003eYehartanto\u003c/strong\u003e, seorang developer yang tertarik dengan teknologi, pemrograman, dan hal-hal teknis lainnya.\u003c/p\u003e\n\u003ch2 id=\"minat\"\u003eMinat\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSoftware Development\u003c/li\u003e\n\u003cli\u003eCloud Computing\u003c/li\u003e\n\u003cli\u003eOpen Source\u003c/li\u003e\n\u003cli\u003eDevOps\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"tools--stack\"\u003eTools \u0026amp; Stack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLanguage\u003c/strong\u003e: Go, Python, JavaScript\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFramework\u003c/strong\u003e: Hugo, SvelteKit, Next.js\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCloud\u003c/strong\u003e: AWS, Cloudflare\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTools\u003c/strong\u003e: Docker, Git, Linux\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"kontak\"\u003eKontak\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGitHub: \u003ca href=\"https://git.yehartanto.my.id/tantojos4\"\u003egit.yehartanto.my.id/tantojos4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmail: \u003ca href=\"mailto:hartantoyohanes4@gmail.com\"\u003ehartantoyohanes4@gmail.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cem\u003eTulisan di blog ini adalah catatan belajar dan pemikiran pribadi.\u003c/em\u003e\u003c/p\u003e","title":"About"},{"content":"Setup Hugo dengan PaperMod Theme Tutorial ini akan membantu kamu membuat blog statis dengan Hugo dan PaperMod theme. Cocok untuk blog personal atau dokumentasi projekt.\nPrerequisites Hugo v0.120+ Git Langkah 1: Install Hugo # macOS brew install hugo # Linux (Ubuntu/Debian) sudo apt install hugo # Verifikasi hugo version Langkah 2: Buat Project Baru hugo new site my-blog cd my-blog Langkah 3: Tambah PaperMod Theme git init git submodule add https://github.com/adityatelange/hugo-PaperMod themes/PaperMod Langkah 4: Konfigurasi Buat hugo.toml dengan konfigurasi dasar:\nbaseURL = \u0026#34;https://example.com/\u0026#34; languageCode = \u0026#34;id\u0026#34; title = \u0026#34;My Blog\u0026#34; theme = \u0026#34;PaperMod\u0026#34; [params] description = \u0026#34;Deskripsi blog\u0026#34; Langkah 5: Buat Konten hugo new posts/my-first-post.md Langkah 6: Run Development Server hugo server -D Buka http://localhost:1313 untuk melihat hasilnya.\nDeployment Deploy ke Cloudflare Pages atau GitHub Pages:\nhugo --minify Folder public/ siap di-deploy.\n#Tutorial #Hugo #Blog\n","permalink":"https://yehartanto.my.id/posts/2026-03-20-setup-hugo-dengan-papermod/","summary":"\u003ch1 id=\"setup-hugo-dengan-papermod-theme\"\u003eSetup Hugo dengan PaperMod Theme\u003c/h1\u003e\n\u003cp\u003eTutorial ini akan membantu kamu membuat blog statis dengan Hugo dan PaperMod theme. Cocok untuk blog personal atau dokumentasi projekt.\u003c/p\u003e\n\u003ch2 id=\"prerequisites\"\u003ePrerequisites\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHugo v0.120+\u003c/li\u003e\n\u003cli\u003eGit\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"langkah-1-install-hugo\"\u003eLangkah 1: Install Hugo\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# macOS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebrew install hugo\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Linux (Ubuntu/Debian)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo apt install hugo\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Verifikasi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehugo version\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"langkah-2-buat-project-baru\"\u003eLangkah 2: Buat Project Baru\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehugo new site my-blog\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecd my-blog\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"langkah-3-tambah-papermod-theme\"\u003eLangkah 3: Tambah PaperMod Theme\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit init\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit submodule add https://github.com/adityatelange/hugo-PaperMod themes/PaperMod\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"langkah-4-konfigurasi\"\u003eLangkah 4: Konfigurasi\u003c/h2\u003e\n\u003cp\u003eBuat \u003ccode\u003ehugo.toml\u003c/code\u003e dengan konfigurasi dasar:\u003c/p\u003e","title":"Setup Hugo dengan PaperMod Theme"},{"content":"Halo! Selamat datang di blog ini.\nBlog ini akan menjadi tempat saya menulis catatan-catatan teknis seputar programming, cloud computing, open source, dan hal-hal lain yang saya pelajari atau pikirkan.\nMengapa Hugo? Hugo dipilih karena:\nCepat — Static site generator yang sangat cepat Sederhana — Tidak perlu database, tinggal file Markdown Fleksibel — Banyak theme berkualitas tinggi Gratis — Open source dan gratis digunakan Konten yang Akan Ditulis Tutorial — Step-by-step teknis TIL (Today I Learned) — Pengetahuan singkat berguna Opini — Pandangan tentang tools dan trend Review — Review tools, buku, atau kursus Stay tuned!\n","permalink":"https://yehartanto.my.id/posts/2024-01-01-selamat-datang/","summary":"\u003cp\u003eHalo! Selamat datang di blog ini.\u003c/p\u003e\n\u003cp\u003eBlog ini akan menjadi tempat saya menulis catatan-catatan teknis seputar programming, cloud computing, open source, dan hal-hal lain yang saya pelajari atau pikirkan.\u003c/p\u003e\n\u003ch2 id=\"mengapa-hugo\"\u003eMengapa Hugo?\u003c/h2\u003e\n\u003cp\u003eHugo dipilih karena:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eCepat\u003c/strong\u003e — Static site generator yang sangat cepat\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSederhana\u003c/strong\u003e — Tidak perlu database, tinggal file Markdown\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFleksibel\u003c/strong\u003e — Banyak theme berkualitas tinggi\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGratis\u003c/strong\u003e — Open source dan gratis digunakan\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"konten-yang-akan-ditulis\"\u003eKonten yang Akan Ditulis\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTutorial\u003c/strong\u003e — Step-by-step teknis\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTIL (Today I Learned)\u003c/strong\u003e — Pengetahuan singkat berguna\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOpini\u003c/strong\u003e — Pandangan tentang tools dan trend\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eReview\u003c/strong\u003e — Review tools, buku, atau kursus\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStay tuned!\u003c/p\u003e","title":"Selamat Datang di yehartanto.my.id"}]