The increasing AI-content consumption fatigue
🔥 Trending

The increasing AI-content consumption fatigue

Why AI-generated content can feel exhausting, and what that means for reading, writing, and attention....

Ai Apr 19, 2026
Are we amusing ourselves to death?
🔥 Trending

Are we amusing ourselves to death?

Reflections on McLuhan, Postman, and why the medium still has a habit of quietly eating...

Books Jan 06, 2025
Chasing Peace
🔥 Trending

Chasing Peace

A personal reflection on chasing calm in a society that keeps handing you more inputs....

Mindfulness Aug 01, 2023
3 Books for Productivity
🔥 Trending

3 Books for Productivity

Three productivity books that were actually useful, plus what stuck after reading them.

Productivity Jun 21, 2020

Recent Posts

How to make a scroll-driven video animation with FFMPEG, WebP frames, and canvas

How to make a scroll-driven video animation with FFMPEG, WebP frames, and canvas

How I turned a short video into a scroll-controlled WebP frame animation using FFMPEG, canvas, an...

Coding Apr 26
Set up a Buttondown newsletter with Jekyll and a custom signup form

Set up a Buttondown newsletter with Jekyll and a custom signup form

How to add a custom Buttondown signup form to a Jekyll blog without exposing API keys or building...

Coding Apr 26
The increasing AI-content consumption fatigue

The increasing AI-content consumption fatigue

Why AI-generated content can feel exhausting, and what that means for reading, writing, and atten...

Ai Apr 19
Are we amusing ourselves to death?

Are we amusing ourselves to death?

Reflections on McLuhan, Postman, and why the medium still has a habit of quietly eating the message.

Books Jan 06
🍍 Pinia Stores - Manage Vue State With Ease

🍍 Pinia Stores - Manage Vue State With Ease

How Pinia simplifies Vue state management for location and language settings compared with manual...

Vue Mar 13
Firestore + Firebase Hosting with Nuxt 3

Firestore + Firebase Hosting with Nuxt 3

How to deploy a Nuxt 3 frontend with Firebase Hosting and Firestore-backed data.

Firebase Feb 14
Styled code blocks

Styled code blocks

How to style Jekyll code blocks with Rouge instead of leaving snippets to fend for themselves.

Coding Feb 12
Vue pagination component

Vue pagination component

How to build a reusable pagination component in Vue for cleaner list navigation.

Coding Feb 11
Firebase Emulator Suit

Firebase Emulator Suit

How to test Firebase Cloud Functions locally with the Firebase emulator suite.

Coding Feb 03
Nuxt + Tailwind

Nuxt + Tailwind

A quick setup guide for using Tailwind in a Nuxt project.

Coding Jan 10
DaisyUI ❤️ Tailwind

DaisyUI ❤️ Tailwind

A quick look at using DaisyUI with Tailwind to move faster without hand-rolling every component.

Coding Jan 10
Tailwind Safelist

Tailwind Safelist

Why Tailwind can drop dynamic classes and how to use a safelist when generated class names disapp...

Coding Jan 08

Current Projects

Vegan Monkey

  • Nuxt
  • Vue
  • Firebase
  • Algolia
  • Cloudinary

A webapp that consolidates plant-based products, dishes, services, and experiences in Bangkok.

Visit Site

15 Pages

  • Nuxt
  • Vue
  • Tailwind
  • Supabase

Book summaries and tools to help incentivize more reading. Work in progress.

Visit Site

Em Dash Patrol

  • Nuxt
  • Vue
  • Gemini

Rule-based scan for AI-writing tells in pasted prose (em dashes, throat-clearing openers, hype verbs), optional Gemini roast, privacy-minded logging.

Visit Site

Previous Projects

Blue Tiki

  • Crypto

Crypto token launched to reward eco-positive actions through collaboration with sustainability partners.

Visit Site

Stop Football Plastic

  • Impact

Vision to stop 1.34 million single-use plastic bottles through collaboration with football clubs in South East Asia.

Visit Site