<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Giwan&apos;s Blog</title><description>Personal technical blog by Giwan – built with Astro.</description><link>https://giwan.github.io/</link><item><title>Narrative Coding &amp; Decoupling Logic from Framework</title><link>https://giwan.github.io/blog/2026-06-16-narrative-code/</link><guid isPermaLink="true">https://giwan.github.io/blog/2026-06-16-narrative-code/</guid><description>Many frameworks mix logic and framework glue-code. Narrative Code and Hexagonal Architecture restore readability and future-proof your tech stack.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The Agent Standard Wars: Comparing Developer Platforms for the LLM Era</title><link>https://giwan.github.io/blog/2026-03-05-llm-developer-platforms-comparison/</link><guid isPermaLink="true">https://giwan.github.io/blog/2026-03-05-llm-developer-platforms-comparison/</guid><description>From AGENTS.md to MCP and Skills.sh, the LLM dev ecosystem is fragmenting. We compare leading platforms, pricing, and protocols to help you choose your stack.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Solo Dev Force Multipliers: Mastering the Agent Skills Ecosystem</title><link>https://giwan.github.io/blog/2026-02-18-leveraging-agent-skills-in-web-development/</link><guid isPermaLink="true">https://giwan.github.io/blog/2026-02-18-leveraging-agent-skills-in-web-development/</guid><description>Stop using AI agents as simple chatbots. Learn how to use Agent Skills to codify complex workflows, automate design systems, and manage specialized subagents.</description><pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Best AI Coding Models 2026 in OpenCode: Comparing Free Options</title><link>https://giwan.github.io/blog/2026-02-05-opencode-ai-coding-agent/</link><guid isPermaLink="true">https://giwan.github.io/blog/2026-02-05-opencode-ai-coding-agent/</guid><description>Compare free AI models (Kimi, MiniMax, Trinity) available via OpenCode CLI with Gemini 3 Pro and Claude Opus 4.5. Find the best AI coding assistant in 2026.</description><pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Essential Google AI Tools for Developers (2026)</title><link>https://giwan.github.io/blog/2026-01-14-google-tools-for-developers/</link><guid isPermaLink="true">https://giwan.github.io/blog/2026-01-14-google-tools-for-developers/</guid><description>Explore Google&apos;s AI developer ecosystem in 2026: Gemini API, Stitch UI generator, Antigravity IDE, Jules coding agent, and NotebookLM for research.</description><pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Universal Commerce Protocol: The New Language of AI Shopping</title><link>https://giwan.github.io/blog/2026-01-13-ucp-protocol/</link><guid isPermaLink="true">https://giwan.github.io/blog/2026-01-13-ucp-protocol/</guid><description>A critical look at Universal Commerce Protocol (UCP). While it promises a unified standard for AI agents, it raises questions about privacy and centralization.</description><pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Free AI Courses 2026 (NVIDIA, Hugging Face, Google &amp; Microsoft)</title><link>https://giwan.github.io/blog/2026-01-05-free-ai-learning-resources-nvidia-google-microsoft/</link><guid isPermaLink="true">https://giwan.github.io/blog/2026-01-05-free-ai-learning-resources-nvidia-google-microsoft/</guid><description>Master AI development in 2026 with free courses from NVIDIA, Hugging Face, Google &amp; Microsoft. Learn Agents, RAG, and LLMs—no fluff, just code.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Hacking the AI Vending Machine: Security Lessons from Project Vend</title><link>https://giwan.github.io/blog/2025-12-19-project-vend-ai-vending-machine/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-12-19-project-vend-ai-vending-machine/</guid><description>Anthropic&apos;s Project Vend Phase Two was a controlled experiment designed to expose the edge cases and security vulnerabilities of autonomous AI agents.</description><pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate></item><item><title>The Windows 11 Crisis</title><link>https://giwan.github.io/blog/2025-12-16-the-windows-11-crisis/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-12-16-the-windows-11-crisis/</guid><description>Exploring the concerns raised about Windows 11 regarding hardware requirements, forced AI integration, and planned obsolescence.</description><pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate></item><item><title>How RemixJS Works: A Deep Dive</title><link>https://giwan.github.io/blog/2025-12-15-remix-run-how-it-works/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-12-15-remix-run-how-it-works/</guid><description>Explore the core architecture of RemixJS: The Compiler, Server Handler, Server Framework, and Browser Framework in this deep dive.</description><pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Building Basic Pomodoro with Antigravity</title><link>https://giwan.github.io/blog/2025-11-24-building-basic-pomo-with-antigravity/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-11-24-building-basic-pomo-with-antigravity/</guid><description>A quick look at building the basic-pomo project using the Antigravity IDE.</description><pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Global Giants and European Leaders Blocking OpenAI&apos;s Bot</title><link>https://giwan.github.io/blog/2025-10-29-top-10-sites-blocking-openai-bot/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-10-29-top-10-sites-blocking-openai-bot/</guid><description>A look at the major websites, including European and Dutch companies, that are blocking OpenAI&apos;s GPTBot and why they are doing it.</description><pubDate>Wed, 29 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Note-Taking Tools for Web Developers in 2025</title><link>https://giwan.github.io/blog/2025-08-27-best-note-taking-tools/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-08-27-best-note-taking-tools/</guid><description>A developer-focused guide to the best note-taking tools for technical documentation, code snippets, project planning, and knowledge management. Find your perfect coding companion.</description><pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Sentence Segmentation with JavaScript&apos;s Intl.Segmenter</title><link>https://giwan.github.io/blog/2025-08-20-intl-segmenter/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-08-20-intl-segmenter/</guid><description>Explore how the Intl.Segmenter API can be used to split text into sentences.</description><pubDate>Wed, 20 Aug 2025 00:00:00 GMT</pubDate></item><item><title>How Claude Code Helped Ship an Image Generation Feature in Half the Time</title><link>https://giwan.github.io/blog/2025-06-14-claude-code-feature-output/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-06-14-claude-code-feature-output/</guid><description>I leveraged Claude Code to implement an AI image generation feature for Mytoori, comparing different AI models and sharing key learnings.</description><pubDate>Sat, 14 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Prompt Engineering: Essential Do&apos;s and Don&apos;ts for Beginners</title><link>https://giwan.github.io/blog/2025-05-31-prompt-engineering-do-dont/</link><guid isPermaLink="true">https://giwan.github.io/blog/2025-05-31-prompt-engineering-do-dont/</guid><description>Master the art of prompt engineering with these essential do&apos;s and don&apos;ts to get the best results from AI language models.</description><pubDate>Sat, 31 May 2025 00:00:00 GMT</pubDate></item><item><title>Deploy Astro Static on Deno Deploy</title><link>https://giwan.github.io/blog/2024-01-21-deploy-astro-static-on-deno-deploy/</link><guid isPermaLink="true">https://giwan.github.io/blog/2024-01-21-deploy-astro-static-on-deno-deploy/</guid><description>With a little bit of workaround it&apos;s possible to deploy a static Astro site to deno deploy. Initially Astro&apos;s docs indicated only SSR was supported.</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Applicants demo app</title><link>https://giwan.github.io/blog/2022-09-19-applicant-list/</link><guid isPermaLink="true">https://giwan.github.io/blog/2022-09-19-applicant-list/</guid><description>This is a simple demo app that get&apos;s a list of applicants from the server. Those applicants are listed in a table. The user can filter and sort them.</description><pubDate>Fri, 30 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Finding tools on the web 🌍</title><link>https://giwan.github.io/blog/2022-05-02-tools/</link><guid isPermaLink="true">https://giwan.github.io/blog/2022-05-02-tools/</guid><description>Finding tools on the web is getting increasingly difficult with a regular search engine. This post talks about some of the places on the web that make this easy.</description><pubDate>Mon, 02 May 2022 00:00:00 GMT</pubDate></item><item><title>Recursive JS function</title><link>https://giwan.github.io/blog/2022-01-10-recursive-function/</link><guid isPermaLink="true">https://giwan.github.io/blog/2022-01-10-recursive-function/</guid><description>Loop over an array with a recursive function. In this case the array entry has a URL that should be validated before moving on to the next</description><pubDate>Mon, 10 Jan 2022 00:00:00 GMT</pubDate></item><item><title>The basics of publishing on NPM</title><link>https://giwan.github.io/blog/2021-10-09-publish-pagination/</link><guid isPermaLink="true">https://giwan.github.io/blog/2021-10-09-publish-pagination/</guid><description>The pagination component created in another post will be published on NPM. It allows others to use the component in their React projects.</description><pubDate>Thu, 14 Oct 2021 00:00:00 GMT</pubDate></item><item><title>Pagination component in React</title><link>https://giwan.github.io/blog/2021-08-07-pagination/</link><guid isPermaLink="true">https://giwan.github.io/blog/2021-08-07-pagination/</guid><description>Let&apos;s build a pagination component. It should adhere to some basic UI interaction requirements. The goal is deliver an extra light component.</description><pubDate>Wed, 18 Aug 2021 00:00:00 GMT</pubDate></item><item><title>Electron&apos;s main and renderer process communication</title><link>https://giwan.github.io/blog/2021-04-11-electron-save-file/</link><guid isPermaLink="true">https://giwan.github.io/blog/2021-04-11-electron-save-file/</guid><description>After setting up a basic ElectronJS, this article discusses the preload.js script. It&apos;s used to communicate between the main electron process and the unsafe renderer process. The latter is not allowed to access the fs API for security reasons.</description><pubDate>Sun, 18 Apr 2021 00:00:00 GMT</pubDate></item><item><title>Basic ElectronJS project using React</title><link>https://giwan.github.io/blog/2021-04-11-electron-basics/</link><guid isPermaLink="true">https://giwan.github.io/blog/2021-04-11-electron-basics/</guid><description>Setup a basic electron (desktop) app using snowpack for ReactJS. This article demonstrates how to get up and running.No webpack and no create-react-app.</description><pubDate>Sun, 11 Apr 2021 00:00:00 GMT</pubDate></item><item><title>VueJS introduction: Solar system</title><link>https://giwan.github.io/blog/2021-03-06-vue-js-solar/</link><guid isPermaLink="true">https://giwan.github.io/blog/2021-03-06-vue-js-solar/</guid><description>Not having worked very much with VueJS, this is a simple app that goes through the basics. It covers architecture and the way information is shared between components.</description><pubDate>Sat, 06 Mar 2021 00:00:00 GMT</pubDate></item><item><title>NextJS blogging with MDX</title><link>https://giwan.github.io/blog/2021-01-23-next-js-blog/</link><guid isPermaLink="true">https://giwan.github.io/blog/2021-01-23-next-js-blog/</guid><description>NextJS is great for blogging. MDX adds more power to that by allowing JSX components to be directly rendered in the blog. This post will discuss setup and show examples.</description><pubDate>Sat, 23 Jan 2021 00:00:00 GMT</pubDate></item><item><title>WhatsApp issued an ultimatum!</title><link>https://giwan.github.io/blog/2021-01-12-whatsapp-by-facebook/</link><guid isPermaLink="true">https://giwan.github.io/blog/2021-01-12-whatsapp-by-facebook/</guid><description>The ball is in our court: &apos;Accept the TOS or stop using WhatsApp&apos; says Facebook. Most people might be OK with this. I&apos;m not. Here are some good alternatives.</description><pubDate>Tue, 12 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Animation basics. Radar animation screen.</title><link>https://giwan.github.io/blog/2020-12-23-animation/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-12-23-animation/</guid><description>A look at making some basic animations using vanilla JS. Creating a radar animation demonstrates the basics.</description><pubDate>Wed, 23 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Store your resume as a JSON file</title><link>https://giwan.github.io/blog/2020-12-03-jsonresume/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-12-03-jsonresume/</guid><description>Store your resume in a JSON doc and then apply various styles to it</description><pubDate>Thu, 03 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Using a function instead of a loop</title><link>https://giwan.github.io/blog/2020-10-18-loop-vs-function/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-10-18-loop-vs-function/</guid><description>Using for loops is basic however JS offers several ways of looping with functions.</description><pubDate>Sun, 18 Oct 2020 00:00:00 GMT</pubDate></item><item><title>Browser debugging with breakpoints (React)</title><link>https://giwan.github.io/blog/2020-10-15-browser-debugging-with-breakpoints/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-10-15-browser-debugging-with-breakpoints/</guid><description>Breakpoints are great but seem to be troublesome in some cases</description><pubDate>Thu, 15 Oct 2020 00:00:00 GMT</pubDate></item><item><title>Deploy a React SPA with serverless functions to Netlify</title><link>https://giwan.github.io/blog/2020-10-06-deploy-serverless-function-on-netlify/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-10-06-deploy-serverless-function-on-netlify/</guid><description>Deploy and test the project directly from the remote server.</description><pubDate>Thu, 08 Oct 2020 00:00:00 GMT</pubDate></item><item><title>Getting started with serverless functions on Netlify</title><link>https://giwan.github.io/blog/2020-10-05-serverless-functions-on-netlify/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-10-05-serverless-functions-on-netlify/</guid><description>Setup a simple demo login function to see serverless functions in action</description><pubDate>Tue, 06 Oct 2020 00:00:00 GMT</pubDate></item><item><title>Using UUIDs as passwords?</title><link>https://giwan.github.io/blog/2020-09-29-uuid-as-apassword/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-09-29-uuid-as-apassword/</guid><description>What if a user&apos;s passwords were a list of UUIDs instead? A list that can be generated in a less traditional means.</description><pubDate>Tue, 29 Sep 2020 00:00:00 GMT</pubDate></item><item><title>JavaScript&apos;s Uncanny Valley</title><link>https://giwan.github.io/blog/2020-09-24-javascript-uncanny-valley/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-09-24-javascript-uncanny-valley/</guid><description>The uncanny valley is time needed for browsers to process JS code and build your application</description><pubDate>Fri, 25 Sep 2020 00:00:00 GMT</pubDate></item><item><title>Server side rendering with React &amp; Redux</title><link>https://giwan.github.io/blog/2020-05-19-ssr-with-react-redux/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-05-19-ssr-with-react-redux/</guid><description>When handling server side rendering, the Redux data should be populated as well</description><pubDate>Tue, 19 May 2020 00:00:00 GMT</pubDate></item><item><title>Svelte Introduction</title><link>https://giwan.github.io/blog/2019-12-15-svelte/</link><guid isPermaLink="true">https://giwan.github.io/blog/2019-12-15-svelte/</guid><description>A small demo project to work on Svelte. Svelte is a UI Framework, like ReactJS or ViewJS. However it takes a different approach by acting as a compiler.</description><pubDate>Sun, 15 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Browser dev tools</title><link>https://giwan.github.io/blog/2019-12-13-browser-tools/</link><guid isPermaLink="true">https://giwan.github.io/blog/2019-12-13-browser-tools/</guid><description>The dev tools in the browser grow more advanced every day. This post keeps track of some of the most useful features. Where possible key differences between browsers is highlighted. Most features are in Chrome on MacOS.</description><pubDate>Fri, 13 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Jest coverage in Create React App</title><link>https://giwan.github.io/blog/2020-02-04-jest-coverage/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-02-04-jest-coverage/</guid><description>Configure Jest coverage in Create React App. Coverage indicates how much of the code is tested. A higher than 80% coverage is a decent indicator that the code is working as expected. </description><pubDate>Fri, 13 Dec 2019 00:00:00 GMT</pubDate></item><item><title>CSS grid</title><link>https://giwan.github.io/blog/2020-1-16-css-grid/</link><guid isPermaLink="true">https://giwan.github.io/blog/2020-1-16-css-grid/</guid><description>CSS grid makes it a pleasure to create layouts. Here we&apos;ll create a resume using CSS grid. Only HTML and CSS will be used. No JavaScript required. Another goal is to keep it all in one file to make it easy to distribute and fast.</description><pubDate>Fri, 13 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Free static site</title><link>https://giwan.github.io/blog/2018-12-29-free-static-site/</link><guid isPermaLink="true">https://giwan.github.io/blog/2018-12-29-free-static-site/</guid><description>How to create and host a static site, including SSL and domain name for 0 euros! Static sites can be hosted for free thanks to some amazing services available as of 2018.</description><pubDate>Sat, 29 Dec 2018 00:00:00 GMT</pubDate></item><item><title>React App Served by Express in Docker</title><link>https://giwan.github.io/blog/2018-11-22-react-served-by-express-running-in-docker/</link><guid isPermaLink="true">https://giwan.github.io/blog/2018-11-22-react-served-by-express-running-in-docker/</guid><description>Running in Docker requires special considerations in the front-end. It should dynamically retrieve the backend end-point. For multiple environments, the same docker image could be used while moving from TST to ACC for example.</description><pubDate>Thu, 22 Nov 2018 00:00:00 GMT</pubDate></item><item><title>React Server Pages</title><link>https://giwan.github.io/blog/2018-11-11-react-instead-of-jsp/</link><guid isPermaLink="true">https://giwan.github.io/blog/2018-11-11-react-instead-of-jsp/</guid><description>React can replace Java Server Pages (JSP), HandlebarJS, etc. as a templating language on the server.</description><pubDate>Sun, 11 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Server Side Rendering - React &amp; NodeJS</title><link>https://giwan.github.io/blog/2018-11-11-ssr-with-react/</link><guid isPermaLink="true">https://giwan.github.io/blog/2018-11-11-ssr-with-react/</guid><description>Web crawlers can&apos;t parse JS which means that Single Page Applications need to render on the server if they want to be indexed by the search engines.</description><pubDate>Sun, 11 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Debugging with Visual Studio Code</title><link>https://giwan.github.io/blog/2018-01-05-vscode-debugging/</link><guid isPermaLink="true">https://giwan.github.io/blog/2018-01-05-vscode-debugging/</guid><description>How debugging works with visual studio code. It&apos;s especially useful when debugging server side projects like NodeJS. Set breakpoint in the editor while developing.</description><pubDate>Tue, 23 Jan 2018 00:00:00 GMT</pubDate></item></channel></rss>