<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>bouwe.io</title>
        <link>https://bouwe.io</link>
        <description>bouwe.io, a blog by Bouwe Westerdijk</description>
        <lastBuildDate>Tue, 09 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>bouwe.io</title>
            <url>https://bouwe.io/bouwe-react-amsterdam.png</url>
            <link>https://bouwe.io</link>
        </image>
        <copyright>All rights reserved 2019 - 2026, Bouwe Westerdijk</copyright>
        <item>
            <title><![CDATA[When green tests lie]]></title>
            <link>https://bouwe.io/when-green-tests-lie</link>
            <guid isPermaLink="false">https://bouwe.io/when-green-tests-lie</guid>
            <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tests should verify requirements instead of reusing implementation details from the code they are testing.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Simplifying Frontend Development with Temba: A Quick Backend Solution]]></title>
            <link>https://bouwe.io/simplifying-frontend-development-with-temba</link>
            <guid isPermaLink="false">https://bouwe.io/simplifying-frontend-development-with-temba</guid>
            <pubDate>Fri, 12 Jul 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Temba is a library I created to help developers quickly spin up a backend web API]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Throwing errors, just to be sure]]></title>
            <link>https://bouwe.io/throwing-errors-just-to-be-sure</link>
            <guid isPermaLink="false">https://bouwe.io/throwing-errors-just-to-be-sure</guid>
            <pubDate>Sun, 26 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Why I think it's a bad idea to throw errors in your own code yourself, as a convenience, or just to be sure...]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[How (and why!) to start with content creation]]></title>
            <link>https://bouwe.io/how-and-why-to-start-with-content-creation</link>
            <guid isPermaLink="false">https://bouwe.io/how-and-why-to-start-with-content-creation</guid>
            <pubDate>Thu, 23 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Content creation is a great way to level up as a developer, and improve your hard and soft skills. It makes you more visible, and distinguishes you from other developers.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[My career path - Where do I want to go?]]></title>
            <link>https://bouwe.io/my-career-path-where-do-want-to-go</link>
            <guid isPermaLink="false">https://bouwe.io/my-career-path-where-do-want-to-go</guid>
            <pubDate>Tue, 17 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[My reflection on my career and what a possible next step could be.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[What is a finite state machine?]]></title>
            <link>https://bouwe.io/what-is-a-finite-state-machine</link>
            <guid isPermaLink="false">https://bouwe.io/what-is-a-finite-state-machine</guid>
            <pubDate>Wed, 11 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's talk about state machines, a very nice way to structure application logic.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Elm: User interaction]]></title>
            <link>https://bouwe.io/elm-user-interaction</link>
            <guid isPermaLink="false">https://bouwe.io/elm-user-interaction</guid>
            <pubDate>Tue, 13 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A web app is not a web app if you can not interact with it. Let's build an app that handles user input!]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Elm: Rendering HTML]]></title>
            <link>https://bouwe.io/elm-rendering-html</link>
            <guid isPermaLink="false">https://bouwe.io/elm-rendering-html</guid>
            <pubDate>Mon, 05 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[How do we render HTML with Elm, the functional language for creating web applications?]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Elm baby steps: The language]]></title>
            <link>https://bouwe.io/elm-baby-steps</link>
            <guid isPermaLink="false">https://bouwe.io/elm-baby-steps</guid>
            <pubDate>Sun, 04 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Before building a real app with Elm, let's look at the language first.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Expected and Unexpected Errors]]></title>
            <link>https://bouwe.io/expected-and-unexpected-errors</link>
            <guid isPermaLink="false">https://bouwe.io/expected-and-unexpected-errors</guid>
            <pubDate>Sun, 09 Jan 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Runtime errors can be expected. Not all of them of course, but most can. Let me explain.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[How I sort out my ideas and thoughts]]></title>
            <link>https://bouwe.io/how-i-sort-out-my-ideas-and-thoughts</link>
            <guid isPermaLink="false">https://bouwe.io/how-i-sort-out-my-ideas-and-thoughts</guid>
            <pubDate>Thu, 07 Oct 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[I use voice recording to brainstorm with myself, and it's super helpful for me!]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[What is a reducer?]]></title>
            <link>https://bouwe.io/what-is-a-reducer</link>
            <guid isPermaLink="false">https://bouwe.io/what-is-a-reducer</guid>
            <pubDate>Thu, 25 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Let me explain how a reducer converts an array to any type of value. Oh, and what the useReducer hook has got to do with it.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Composition with currying]]></title>
            <link>https://bouwe.io/composition-with-currying</link>
            <guid isPermaLink="false">https://bouwe.io/composition-with-currying</guid>
            <pubDate>Tue, 23 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's use partial application to compose curried functions together.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Currying: What is it?]]></title>
            <link>https://bouwe.io/currying-what-is-it</link>
            <guid isPermaLink="false">https://bouwe.io/currying-what-is-it</guid>
            <pubDate>Sun, 14 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[Discovering a confusing, but very cool functional programming concept: Currying.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Learn React basics by creating a simple calculation game (part 3)]]></title>
            <link>https://bouwe.io/learn-react-basics-by-creating-a-simple-calculation-game-part-3</link>
            <guid isPermaLink="false">https://bouwe.io/learn-react-basics-by-creating-a-simple-calculation-game-part-3</guid>
            <pubDate>Thu, 07 Jan 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[We improve the simple calculation game by using the useReducer hook.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Learn React basics by creating a simple calculation game (Part 2)]]></title>
            <link>https://bouwe.io/learn-react-basics-by-creating-a-simple-calculation-game-part-2</link>
            <guid isPermaLink="false">https://bouwe.io/learn-react-basics-by-creating-a-simple-calculation-game-part-2</guid>
            <pubDate>Tue, 29 Dec 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[By using the useEffect hook we can make our app a lot more interesting.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Learn React basics by creating a simple calculation game (Part 1)]]></title>
            <link>https://bouwe.io/learn-react-basics-by-creating-a-simple-calculation-game-part-1</link>
            <guid isPermaLink="false">https://bouwe.io/learn-react-basics-by-creating-a-simple-calculation-game-part-1</guid>
            <pubDate>Tue, 22 Dec 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's learn React, by using JSX, conditional rendering, event handling, and the useState hook]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[My urge to share what I learn]]></title>
            <link>https://bouwe.io/my-urge-to-share-what-i-learn</link>
            <guid isPermaLink="false">https://bouwe.io/my-urge-to-share-what-i-learn</guid>
            <pubDate>Wed, 04 Nov 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Sharing what you learn, while you learn, is the most effective way to learn new things.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Goodbye Gatsby, hello static site generator]]></title>
            <link>https://bouwe.io/goodbye-gatsby-hello-static-site-generator</link>
            <guid isPermaLink="false">https://bouwe.io/goodbye-gatsby-hello-static-site-generator</guid>
            <pubDate>Wed, 28 Oct 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Why and how I switched from Gatsby to my own solution for publishing my blog.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Using Twitter for blog commenting]]></title>
            <link>https://bouwe.io/using-twitter-for-blog-commenting</link>
            <guid isPermaLink="false">https://bouwe.io/using-twitter-for-blog-commenting</guid>
            <pubDate>Sat, 18 Apr 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's not implement our own blog commenting system, but just use Twitter for that.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[useEffect for handling side effects]]></title>
            <link>https://bouwe.io/useeffect-for-handling-side-effects</link>
            <guid isPermaLink="false">https://bouwe.io/useeffect-for-handling-side-effects</guid>
            <pubDate>Tue, 17 Mar 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's learn about the useEffect hook!]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Wat je leert in mijn React Foundation training]]></title>
            <link>https://bouwe.io/wat-je-leert-in-mijn-react-foundation-training</link>
            <guid isPermaLink="false">https://bouwe.io/wat-je-leert-in-mijn-react-foundation-training</guid>
            <pubDate>Wed, 25 Sep 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Deze training geeft jou het fundament om een goede React developer te worden.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Render Props Part IV - Keep It Simple Stupid]]></title>
            <link>https://bouwe.io/render-props-part-4</link>
            <guid isPermaLink="false">https://bouwe.io/render-props-part-4</guid>
            <pubDate>Wed, 18 Sep 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Part IV of discovering the render props pattern.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[My own React presentation tool]]></title>
            <link>https://bouwe.io/my-own-react-presentation-tool</link>
            <guid isPermaLink="false">https://bouwe.io/my-own-react-presentation-tool</guid>
            <pubDate>Sat, 29 Jun 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's build a React app to render presentation slides.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Render Props Part III - A flexible and reusable Toggle component]]></title>
            <link>https://bouwe.io/render-props-part-3</link>
            <guid isPermaLink="false">https://bouwe.io/render-props-part-3</guid>
            <pubDate>Thu, 30 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Part III of discovering the render props pattern.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Render Props Part II: using the Toggle component]]></title>
            <link>https://bouwe.io/render-props-part-2</link>
            <guid isPermaLink="false">https://bouwe.io/render-props-part-2</guid>
            <pubDate>Mon, 20 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Part II of discovering the render props pattern.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[5 Days of Code]]></title>
            <link>https://bouwe.io/5-days-of-code</link>
            <guid isPermaLink="false">https://bouwe.io/5-days-of-code</guid>
            <pubDate>Sat, 18 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Evaluating my first 5 days of my 100 Days of Code challenge.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Day 4 - Render props]]></title>
            <link>https://bouwe.io/day-4-render-props</link>
            <guid isPermaLink="false">https://bouwe.io/day-4-render-props</guid>
            <pubDate>Fri, 17 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Render what? Render props! Let's discover this React pattern.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Day 3 - Switched to another Gatsby starter]]></title>
            <link>https://bouwe.io/day-3-switched-to-another-gatsby-starter</link>
            <guid isPermaLink="false">https://bouwe.io/day-3-switched-to-another-gatsby-starter</guid>
            <pubDate>Thu, 16 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Switching templates for my Gatsby blog.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Day 2 - Publishing my first blog posts]]></title>
            <link>https://bouwe.io/day-2-publishing-my-first-blog-posts</link>
            <guid isPermaLink="false">https://bouwe.io/day-2-publishing-my-first-blog-posts</guid>
            <pubDate>Wed, 15 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Finally I publish my first blog post!]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[My React workshops]]></title>
            <link>https://bouwe.io/my-react-workshops</link>
            <guid isPermaLink="false">https://bouwe.io/my-react-workshops</guid>
            <pubDate>Wed, 15 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[This year I started giving React workshops. In this blog post I want to share with you how I got into this and why and how I am doing this.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Day 1 - Setting up a Gatsby blog on Netlify]]></title>
            <link>https://bouwe.io/day-1-setting-up-a-gatsby-blog-on-netlify</link>
            <guid isPermaLink="false">https://bouwe.io/day-1-setting-up-a-gatsby-blog-on-netlify</guid>
            <pubDate>Tue, 14 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's create a blog with Gatsby and go live!]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
        <item>
            <title><![CDATA[Day 0 - A new challenge - 100 Days of Code]]></title>
            <link>https://bouwe.io/day-0-a-new-challenge-100-days-of-code</link>
            <guid isPermaLink="false">https://bouwe.io/day-0-a-new-challenge-100-days-of-code</guid>
            <pubDate>Mon, 13 May 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Who am I and what are my goals for my 100 Days of Code challenge.]]></description>
            <author>bouwe@bouwe.nl (Bouwe Westerdijk)</author>
        </item>
    </channel>
</rss>