Writing
Long-form articles, every newsletter issue, and an archive of older articles.
Articles
- Complete introduction to using Effect in TypescriptComplete introduction to using Effect in Typescript: why using Effect, what is the Effect type, how to use it, and what are the main modules of Effect.
- Creative ConstraintsI have so many ideas, so many interesting topics to explore. How exciting. Where do I start? Let's think, think, think, complete freedom. Yeah, but no action. If that's you, you need less freedom, not more. Constraints.
- Structured GoalsI never failed a goal after breaking it down into small, daily, actionable steps. There is a formula behind reaching goals. They can be structured, planned. And it invariably works, every time the same.
- The Rules of the GameA game is a set of constraints that guide you towards a meaningful destination. What constraints? Turns out video games can teach us some lessons. In this case, the game is Genshin Impact (原神).
- The 4 PillarsYour healthy is in your control. It anchors on 4 pillars: sleep, hydration, diet, physical activity. Taking care of these 4 is in your direct control and your responsibility. Some notes on how.
- The 6 growth stages of ideasI picture the process of refining ideas in 6 growth stages. The more an idea is refined, the more confidence you have on applying it in a variety of situations.
- useState, useReducer and State machines for state managementImplement a form using useState, useReducer, and state machines with XState. Understand the differences and tradeoffs of state machines for state management.
- State machines will save you from useStateuseState is easy to use and learn. But it's definitely not ideal for complex state management. This is how state machines and XState will save your project.
- NextJs Authentication with Effect and React 19Implement authentication in nextjs using Effect: dependency injection, configuration variables, cookies service, middleware, everything composable and testable.
- Why using Effect in Typescript: refactoring example and benefitsWhy should I use Effect? What benefit does Effect provide? What are some real world examples of using Effect? Learn how to use Effect to refactor a real world example from plain Typescript.
- Scale complexity in software applicationsA new paradigm to scale complexity in software applications: use types to define errors and dependencies, and use the compiler to guide the implementation and unlock local reasoning.
- State machines and Actors in XState v5Learn how to implement a state machine using actors in XState v5, how to organize the code for context, input, events, and actions, and how to invoke and use actors in a state machine.
Archive118 older articles, 2020–2025. Kept for reference; some content is out of date.
2025
2024
- The Reality of life as a Game
- Wizard Mastery
- Notes on writing a 100k fiction novel draft
- 5 days habits reset retreat
- 心が折れる
- Going about learning something
- Come to life
- Extend and advance
- Pawn Raising
- How to compile and run MDX in React
- Build and publish an npx command to npm with Typescript
- Macros, Static Metaprogramming, and Primary Constructors in Dart and Flutter
- How to build a complete Flutter app: step by step example
- Create a blog with Effect, NextJs and MDX
- Flutter State Management: Riverpod, Bloc, Signals, GetX
- How to implement a data structure in Typescript
2023
- How to implement State Machines and Statecharts in dart and Flutter
- Getting started with XState and Effect - Audio Player
- Making Games with Flutter - Getting started using flame
- Getting started with OCaml and Functional Programming
- How to implement a Dart CLI using fpdart
- How to test a Typescript app using vitest and msw
- How to implement a Custom Newsletter form with ConvertKit and Effect
- Covariant, Contravariant, and Invariant in Typescript
- How "this" works in Typescript
- How to model a Typescript app using Effect: docgen
- Japanese Kanji with Furigana parser in Typescript
- How to execute an Android intent in Flutter
- Testing fpdart code using mocktail | Fpdart and Riverpod Functional Programming in Flutter
- How creating a Game in a week looks like
- Complete Platformer Game Camera Setup
- Pixel art Platformer level design - Full Guide
- How to implement a State Machine in Godot
- Pixel Art Game Tileset made easier
- How to create a Pixel Art Tileset - Complete Guide
- Business logic with fpdart and the Do notation | Fpdart and Riverpod Functional Programming in Flutter
- Pixel art Character Animations guide
- How to implement Top-down Grid Movement in Godot
- Pixel art eyes design - Techniques and styles
- Top-down game Pixel art - Design and Animations
- How to use fpdart and riverpod in Flutter | Fpdart and Riverpod Functional Programming in Flutter
- Getting started with fpdart and Functional programming in dart
- The History of fpdart | Functional programming in Dart
- Godot game engine introduction for beginners
- Infinite HTML canvas with zoom and pan
- Getting started with Pixel Art - A beginner perspective
- The meaning of a Personal Project
- From fp-ts to effect-ts: How to guide
- Dependencies and Errors in Functional Programming | Fpdart and Riverpod Functional Programming in Flutter
- Game rendering loop using HTML canvas and Typescript
- Data model and Storage interface | Fpdart and Riverpod Functional Programming in Flutter
- Project objectives and configuration | Fpdart and Riverpod Functional Programming in Flutter
- Trie | Data structure implementation in Typescript
- Records and Pattern Matching in dart - Complete Guide
- Supabase functions in dart - Complete Guide
- Type validation in dart
2022
- Open Meteo API - Functional programming with fpdart (Part 2)
- Flutter Supabase Functional Programming with fpdart
- Flutter Supabase Database - Complete tutorial
- Users sign up and Row Level Security - Supabase Database tutorial
- Either - Error Handling in Functional Programming
- Open Meteo API - Functional programming with fpdart (Part 1)
- Future & Task: asynchronous Functional Programming
- Option type and Null Safety in dart
- Local Storage Database with Typescript
- Flutter Supabase Authentication - Complete tutorial
- How to make API requests with validation in fpdart
- zod and newtype-ts | Full type-safety in Typescript
- How to implement Dependency Injection in Flutter
- How to setup Routing in a Flutter app
- How to use Environmental Variables in Flutter
- The Joy and Curse of Game Development
- isNotNullable - Check if a variable is not nullable in Typescript
- Why Open Source libraries are missing documentation
- How to add a Dynamic Sitemap to your NextJs Blog
- How to create a Blog with Contentlayer and NextJs
- How to use TaskEither in fpdart
- How to map an Either to a Future in fpdart
- Form data validation hook with fp-ts and functional programming
- Pure function to shuffle an array in Typescript using fp-ts
- Pure function to update elements in array that are equal in Typescript
2021
- useDebounceUpdate - Running an effect after a timeout
- useCounterSelection - Increment and Decrement number with fp-ts
- Collecting payments using Stripe Elements – Subscription with Supabase and Stripe Billing | Part 3
- Create a NextJs project with Typescript, ESLint, Prettier and TailwindCSS
- Loops using fold – Practical Functional Programming | Part 4
- Immutability – Practical Functional Programming | Part 3
- Pure Functions - Practical Functional Programming | Part 2
- Static Metaprogramming in Dart and Flutter: macro_prototype overview
- Redux with Typescript for State Management
- Practical Functional Programming - Find repeated characters | Part 1
- Unlimited resources, limited attention
- Chain functions using Option type - Functional Programming
- Functional Programming Option type - Introduction
- Pure Functional app in Flutter - Pokemon app using fpdart and Functional Programming
- 5 Lessons from Functional Programming in Scala, By Paul Chiusano and Runar Bjarnason
- How to use fpdart Functional Programming in your Dart and Flutter app
- Fpdart, Functional Programming in Dart and Flutter
- Maybe | Practical Functional Programming
- Stripe Billing Tutorial: Products, Prices, and Webhook – Subscription with Supabase and Stripe Billing | Part 2
- Supabase Authentication and create Stripe customer - Subscription with Supabase and Stripe Billing | Part 1
- Flutter Supabase Authentication
2020
- Setup Typescript with NuxtJs
- Auto-generate usecase classes from your repository - Clean Architecture Flutter
- The key to consistency
- My first-time pure functional programming
- The time to write has come
- How To Use Tween | Learn All About Flutter Animations – Part 2
- Overcome Your Endurance Limits | Endure, by Alex Hutchinson
- AnimationController and setState | Learn All About Flutter Animations - Part 1
- Reaching Real Success | The Third Door, by Alex Banayan
- How to develop a Flutter package | Flutter Tutorial
- Guide To The Startup World | Lost and Founder, by Rand Fishkin
- Netflix before you knew it | That Will Never Work, by Marc Randolph
- Step Progress Indicator | Flutter package tutorial