41554 blogs · [ { "id": "01a08790-22d6-7337-9684-8ca02b9ac8bd", "title": "npmx and the open source mindset", "url": "https://jonathanyeong.com/writing/npmx-and-the-open-source-mindset/", "published_at": "2026-03-03T22:17:05+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02c38b67e", "title": "Using Val.town as a webhook middleware", "url": "https://jonathanyeong.com/writing/using-val-town-as-a-webhook-middleware/", "published_at": "2026-01-13T22:06:19+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02c7ecb7b", "title": "Year in Review: 2025", "url": "https://jonathanyeong.com/writing/year-in-review-2025/", "published_at": "2025-12-31T19:44:14+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02d4d39db", "title": "Lessons I learnt from my first year of building a DevEx Team", "url": "https://jonathanyeong.com/writing/lessons-i-learnt-from-my-first-year-of-building-a-devex-team/", "published_at": "2025-12-03T23:58:21+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02dbf3600", "title": "Loading Ghost CMS posts with Astro Content Collections", "url": "https://jonathanyeong.com/writing/loading-ghost-cms-posts-with-astro-content-collections/", "published_at": "2025-11-26T13:31:07+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02dede82a", "title": "Mobile-Friendly Headless CMS's with Astro", "url": "https://jonathanyeong.com/writing/mobile-friendly-headless-cmss-with-astro/", "published_at": "2025-11-23T14:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02e18a679", "title": "Redesigning my site: version 3", "url": "https://jonathanyeong.com/writing/blog-redesign-v3/", "published_at": "2025-04-18T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02e6082f4", "title": "2024 Recapped", "url": "https://jonathanyeong.com/writing/2024-recapped/", "published_at": "2024-12-26T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02f4d3b41", "title": "Building Design Gut Instinct", "url": "https://jonathanyeong.com/writing/building-design-gut-instinct/", "published_at": "2024-12-07T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca02f6e8a3e", "title": "(Re)Building a reading habit", "url": "https://jonathanyeong.com/writing/rebuilding-reading-habit/", "published_at": "2024-12-06T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca030339c2e", "title": "Articles I Enjoyed #1", "url": "https://jonathanyeong.com/writing/articles-i-enjoyed-1/", "published_at": "2024-12-05T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca030896408", "title": "Personal Productivity Handbook", "url": "https://jonathanyeong.com/writing/personal-productivity-handbook/", "published_at": "2024-08-27T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca030a1ac78", "title": "Setting up dev containers in Rails", "url": "https://jonathanyeong.com/writing/setting-up-rails-dev-containers/", "published_at": "2024-06-30T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca031881cef", "title": "30 Days of Posts Retrospective", "url": "https://jonathanyeong.com/writing/30-days-of-posts-retrospective/", "published_at": "2024-06-23T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03193e159", "title": "Reframing Imposter Syndrome", "url": "https://jonathanyeong.com/writing/reframing-imposter-syndrome/", "published_at": "2024-06-21T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca0328910d4", "title": "Dynamic Nested Forms with Rails and Stimulus", "url": "https://jonathanyeong.com/writing/rails-stimulus-dynamic-nested-form/", "published_at": "2024-06-19T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca032903687", "title": "Infrastructure 101: What is a server?", "url": "https://jonathanyeong.com/writing/infra-101-what-is-a-server/", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca033760b73", "title": "How to Effectively Pair Program", "url": "https://jonathanyeong.com/writing/pairing-to-solve-problems/", "published_at": "2024-06-17T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca033f976be", "title": "Moving Slow to Move Fast", "url": "https://jonathanyeong.com/writing/moving-slow-to-move-fast/", "published_at": "2024-06-14T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03428d4cb", "title": "Terraform magic", "url": "https://jonathanyeong.com/writing/terraform-magic/", "published_at": "2024-06-13T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03448f735", "title": "Beginning my Developer Experience journey", "url": "https://jonathanyeong.com/writing/developer-experience-journey/", "published_at": "2024-06-12T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03453365e", "title": "Tools I use daily as a solo dev", "url": "https://jonathanyeong.com/writing/tools-i-use-daily-solo-dev/", "published_at": "2024-06-11T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03483ee36", "title": "Slow productivity framework", "url": "https://jonathanyeong.com/writing/slow-productivity-framework/", "published_at": "2024-06-10T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca0357222a0", "title": "Nested forms in Rails", "url": "https://jonathanyeong.com/writing/nested-forms-in-rails/", "published_at": "2024-06-09T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca035916c11", "title": "Tina CMS: a retrospective", "url": "https://jonathanyeong.com/writing/tina-cms-a-retrospective/", "published_at": "2024-06-08T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca0368d3f4c", "title": "Fixing missing Ruby versions in asdf", "url": "https://jonathanyeong.com/writing/til-missing-ruby-version-in-asdf/", "published_at": "2024-06-07T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03707c034", "title": "Advice for Effective Developers", "url": "https://jonathanyeong.com/writing/advice-for-effective-developers/", "published_at": "2024-06-06T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca037a91152", "title": "Using Github Actions to fetch content", "url": "https://jonathanyeong.com/writing/using-github-actions-to-fetch-content/", "published_at": "2024-06-05T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03873c623", "title": "Scheduling Posts with AstroJS", "url": "https://jonathanyeong.com/writing/changelog-scheduling-posts-with-astrojs/", "published_at": "2024-06-03T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca0391965c0", "title": "Writing blog posts with Obsidian", "url": "https://jonathanyeong.com/writing/writing-blog-posts-with-obsidian/", "published_at": "2024-06-02T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca0395aa26f", "title": "Making a custom kebab case method for pretty URLs", "url": "https://jonathanyeong.com/writing/changing-to-kebabcase/", "published_at": "2024-06-01T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03a1a9f62", "title": "30 Days of Posts", "url": "https://jonathanyeong.com/writing/30-days-of-posts/", "published_at": "2024-05-31T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03a7128e4", "title": "You know what they say about assumptions", "url": "https://jonathanyeong.com/writing/you-know-what-they-say-about-assumptions/", "published_at": "2024-05-30T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03a80bf98", "title": "What I missed about Ruby", "url": "https://jonathanyeong.com/writing/what-i-missed-about-ruby/", "published_at": "2024-05-29T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03ae40e5b", "title": "Taking charge of my onboarding: my personal checklist", "url": "https://jonathanyeong.com/writing/personal-onboarding-checklist/", "published_at": "2024-05-28T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03ba373cc", "title": "Tools I Use: Excalidraw", "url": "https://jonathanyeong.com/writing/tools-i-use-excalidraw/", "published_at": "2024-05-27T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03bceb154", "title": "What is Zeitwerk?", "url": "https://jonathanyeong.com/writing/what-is-zeitwerk/", "published_at": "2024-05-26T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03c7e8bd5", "title": "What I look for in a company", "url": "https://jonathanyeong.com/writing/what-i-look-for-in-a-company/", "published_at": "2024-05-25T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03cd97f6b", "title": "Burnout is a sneaky bugger", "url": "https://jonathanyeong.com/writing/burnout-is-a-sneaky-bugger/", "published_at": "2024-05-24T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03cdc49d8", "title": "Fixing a Timezone bug on my blog", "url": "https://jonathanyeong.com/writing/fixing-blog-timezone-bug/", "published_at": "2023-07-17T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03cfe9bcf", "title": "Adding Topics (aka tags) in Astro", "url": "https://jonathanyeong.com/writing/adding-topics-in-astro/", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03d1211dd", "title": "What is the right amount of testing?", "url": "https://jonathanyeong.com/writing/what-is-the-right-amount-of-testing/", "published_at": "2023-06-11T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03d90313e", "title": "Developer productivity with Github Codespaces", "url": "https://jonathanyeong.com/writing/developer-productivity-with-github-codespaces/", "published_at": "2023-05-19T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03dce755e", "title": "Learning about API First Design", "url": "https://jonathanyeong.com/writing/what-is-api-first-design/", "published_at": "2022-08-08T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03ec13a79", "title": "Redesigning my Blog: 2023", "url": "https://jonathanyeong.com/writing/blog-redesign-2023/", "published_at": "2022-04-06T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca03f8a8e9e", "title": "Learning about Open API", "url": "https://jonathanyeong.com/writing/what-is-open-api/", "published_at": "2022-04-05T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca0402246ef", "title": "Redesigning my Blog: 2021", "url": "https://jonathanyeong.com/writing/blog-redesign-2021/", "published_at": "2021-11-09T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca0411d1da1", "title": "Excerpts with Eleventy", "url": "https://jonathanyeong.com/writing/excerpts-with-eleventy/", "published_at": "2020-08-28T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca041f25758", "title": "How to setup CI with Phoenix and Github Actions", "url": "https://jonathanyeong.com/writing/how-to-setup-ci-with-phoenix-github-actions/", "published_at": "2020-07-24T00:00:00+00:00" }, { "id": "01a08790-22d6-7337-9684-8ca041f68667", "title": "Building a blog with Phoenix: Getting started", "url": "https://jonathanyeong.com/writing/building-a-blog-with-phoenix-part-one/", "published_at": "2020-07-09T00:00:00+00:00" } ] posts Claim your blog
Back to jonathanyeong.com
Blog · corpus.blog/blogs/jonathanyeong.com/posts

jonathanyeong.com

jonathanyeong.com

2026

2025

2024

2023

2022

2021

2020