corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a0878c-e12c-73f4-ae67-c44507fdf299", "title": "Fonts that apparently help you read faster", "url": "https://jenchan.biz/blog/fonts-for-reading-faster/", "published_at": "2026-06-29T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450897acde", "title": "My Pet NAS", "url": "https://jenchan.biz/blog/my-pet-nas/", "published_at": "2026-03-19T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44508f9869f", "title": "The Great Home Network Upgrade", "url": "https://jenchan.biz/blog/the-great-home-network-upgrade/", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c445090c8038", "title": "Recovering from accidentally deleting my main user on NixOS", "url": "https://jenchan.biz/blog/that-time-i-locked-myself-out-of-nix/", "published_at": "2025-12-20T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44509489f63", "title": "Installing Lazyvim and Oh-My-Zsh on NixOS without Home Manager or flakes", "url": "https://jenchan.biz/blog/installing-lazyvim-on-nixos/", "published_at": "2025-10-17T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44509dadfb4", "title": "Building a vanilla Node CLI for bootstrapping projects with Cursor rules", "url": "https://jenchan.biz/blog/building-a-vanilla-node-cli/", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450a7779a6", "title": "Recovering webmentions from the Fediverse after migrating to Cloudflare", "url": "https://jenchan.biz/blog/recovering-webmentions-after-migrating-to-cloudflare/", "published_at": "2025-09-23T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450af9513c", "title": "Who Moved My Cookies? Of Cookies On Subdomains", "url": "https://jenchan.biz/blog/who-moved-my-cookies/", "published_at": "2025-07-09T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450bdc341f", "title": "Block AI Crawlers, Save Tears: Ditching Vercel for Cloudflare Pages", "url": "https://jenchan.biz/blog/blocking-ai-crawlers/", "published_at": "2025-07-03T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450c6f698c", "title": "Agentic AI Workflow Woes: Cursor Edition", "url": "https://jenchan.biz/blog/agentic-ai-workflow-woes/", "published_at": "2025-04-27T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450c815ae0", "title": "The Thankless Complexity of Custom Form Validations", "url": "https://jenchan.biz/blog/the-thankless-complexity-of-custom-form-validations/", "published_at": "2025-03-29T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450d306675", "title": "A Mid-career Retrospective of Stores for State Management", "url": "https://jenchan.biz/blog/a-mid-career-retrospective-of-stores-for-state-management/", "published_at": "2024-11-24T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450e25703c", "title": "The Dual Nature of Seniority in Software Development", "url": "https://jenchan.biz/blog/the-dual-nature-of-seniority/", "published_at": "2024-07-09T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450e9211b3", "title": "🛑 Stop resizing your browser: improve testing for responsiveness", "url": "https://jenchan.biz/blog/stop-resizing-your-browser-improve-responsive-testing/", "published_at": "2024-05-19T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450ea9c610", "title": "Error monitoring and bug triage: Whose job is it?", "url": "https://jenchan.biz/blog/error-monitoring-and-bug-triage/", "published_at": "2024-03-02T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450eb54ac8", "title": "Dissecting the hell that is Jest setup with ESM and Typescript", "url": "https://jenchan.biz/blog/dissecting-the-hell-jest-setup-esm-typescript-setup/", "published_at": "2023-12-31T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4450f62f24c", "title": "Crossing the senior chasm", "url": "https://jenchan.biz/blog/crossing-the-senior-chasm/", "published_at": "2023-10-26T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4451051789c", "title": "Bug Triage", "url": "https://jenchan.biz/blog/bug-triage/", "published_at": "2023-06-04T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44510917de3", "title": "Closing, Cloning, or Disabling the Shadow DOM", "url": "https://jenchan.biz/blog/closing-cloning-or-disabling-shadow-DOM/", "published_at": "2023-01-28T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44511783f7a", "title": "Maintaining a Healthy-Enough Mindset through Uncertainty", "url": "https://jenchan.biz/blog/maintaining-a-healthy-enough-mindset-through-uncertainty/", "published_at": "2022-12-03T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44511c842b1", "title": "Build Time, Runtime, Execution time... What \"time\" is it in Javascript?", "url": "https://jenchan.biz/blog/what-time-is-it-in-javascript/", "published_at": "2022-11-23T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44512081ad5", "title": "Git Rebase for Preventing Merge Commits", "url": "https://jenchan.biz/blog/git-rebase-for-preventing-merge-commits/", "published_at": "2022-10-30T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44512e239d7", "title": "Things Strong Developers Do That Drive Their Team Crazy", "url": "https://jenchan.biz/blog/things-strong-developers-do-that-drive-their-team-crazy/", "published_at": "2022-10-27T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c445137d5799", "title": "Ask Good Questions; Get Unblocked Faster", "url": "https://jenchan.biz/blog/ask-good-questions-get-unblocked-faster/", "published_at": "2022-09-06T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44513973142", "title": "On Levelling Up", "url": "https://jenchan.biz/blog/on-levelling-up/", "published_at": "2022-03-06T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44513f4c52e", "title": "Unit Testing Components in Storybook", "url": "https://jenchan.biz/blog/unit-testing-components-in-storybook/", "published_at": "2021-09-22T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44514cb75f2", "title": "Storybook and Chromatic for Visual Regression Testing", "url": "https://jenchan.biz/blog/storybook-and-chromatic-for-visual-regression-testing/", "published_at": "2021-09-20T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44514efb854", "title": "How good am I? Reflections on 5th year designer-developer doldrums", "url": "https://jenchan.biz/blog/how-good-am-i/", "published_at": "2021-03-05T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c445159677fa", "title": "Differential Loading for Legacy Browser Support in Angular 9", "url": "https://jenchan.biz/blog/differential-loading-for-legacy-browser-support-in-angular9/", "published_at": "2020-07-21T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c445161d385c", "title": "A Stab at Performance Testing with Intersection Observer and Scroll events", "url": "https://jenchan.biz/blog/a-stab-at-performance-testing-with-intersection-observer/", "published_at": "2020-06-29T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44516c21c41", "title": "On Being Wrong", "url": "https://jenchan.biz/blog/on-being-wrong/", "published_at": "2020-05-09T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4451799317c", "title": "Running IE 11 with VirtualBox on Mac", "url": "https://jenchan.biz/blog/running-ie11-on-virtualbox-on-mac/", "published_at": "2020-05-06T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44517c7eb1c", "title": "Challenge: Cross-browser testing for IE11 and IE Edge on Mac for free", "url": "https://jenchan.biz/blog/cross-browser-testing-ie11-edge-for-free/", "published_at": "2020-04-28T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c445181e89a9", "title": "What is helpful, if you want to help", "url": "https://jenchan.biz/blog/what-is-helpful-if-you-want-to-help/", "published_at": "2020-03-08T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44518af8de2", "title": "Removing Accidentally Committed Files From Remote History", "url": "https://jenchan.biz/blog/removing-accidentally-committed-files-from-remote-history/", "published_at": "2020-02-19T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44518d9c8db", "title": "How To Plan Scalable CSS for Large Projects?", "url": "https://jenchan.biz/blog/how-to-plan-scalable-css-for-large-projects/", "published_at": "2020-02-10T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c44519c5eb54", "title": "First Impressions: learning Angular after React/Redux", "url": "https://jenchan.biz/blog/first-impressions-learning-angular-after-react-redux/", "published_at": "2019-12-17T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4451aa95f5c", "title": "How I Approach Whiteboard Interviews", "url": "https://jenchan.biz/blog/how-i-approach-whiteboarding/", "published_at": "2019-11-30T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4451b233cbc", "title": "A laundry list of things I never heard of from bootcamp", "url": "https://jenchan.biz/blog/a-laundry-list-of-things-i-never-heard-from-bootcamp/", "published_at": "2019-05-02T00:00:00+00:00" }, { "id": "01a0878c-e12c-73f4-ae67-c4451b999aa9", "title": "Watching the future of coding accelerate into a simulated black hole", "url": "https://jenchan.biz/blog/watching-the-future-of-code-accelerate-into-a-black-hole/", "published_at": "2019-03-09T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580dad771b05", "title": "What I Learned From Trying To Be a Team Player For 2 Years", "url": "https://jenchan.biz/blog/what-i-learned-from-trying-to-be-a-team-player-for-2-years/", "published_at": "2019-02-26T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580dae738df5", "title": "Hastily Deploying a Node App on NearlyFreeSpeech.net (Mac OS)", "url": "https://jenchan.biz/blog/hastily-deploying-a-node-app-on-nearlyfreespeechnet/", "published_at": "2018-10-17T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580daf6fbb48", "title": "What I learned from only using Select in PostgreSQL", "url": "https://jenchan.biz/blog/what-i-learned-from-only-using-select-in-psql/", "published_at": "2018-04-09T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580db06074b0", "title": "What I Learned From Not Planning A Web App (from start to finish)", "url": "https://jenchan.biz/blog/what-i-learned-from-not-planning-a-web-app-from-start-to-finish/", "published_at": "2017-12-12T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580db10540e7", "title": "A no-fail workflow for starting a Mongo App", "url": "https://jenchan.biz/blog/nofail-workflow-mongo/", "published_at": "2017-10-17T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580db1bf2563", "title": "Adapting Greensock (GSAP) SVGs for Firefox", "url": "https://jenchan.biz/blog/adapting-greensock-svgs-for-firefox/", "published_at": "2017-09-06T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580db23d7f3f", "title": "Last Day on Termination Notice", "url": "https://jenchan.biz/blog/last-day-on-termination-notice/", "published_at": "2017-08-14T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580db2d23b19", "title": "Junior Dev Interview Questions", "url": "https://jenchan.biz/blog/junior-dev-interview-questions/", "published_at": "2017-08-08T00:00:00+00:00" }, { "id": "01a0878c-e12d-7176-a30b-580db3d08cfc", "title": "Fixing emails for Outlook 2007, 2013, 2016", "url": "https://jenchan.biz/blog/fixing-emails-for-outlook-2007-2013-2016/", "published_at": "2017-06-17T00:00:00+00:00" } ] posts
Claim your blog
Back to jenchan.biz
Blog · corpus.blog/blogs/jenchan.biz/posts
jenchan.biz
jenchan.biz
2026
Fonts that apparently help you read faster
original ↗
29 Jun 2026
My Pet NAS
original ↗
19 Mar 2026
The Great Home Network Upgrade
original ↗
18 Mar 2026
2025
Recovering from accidentally deleting my main user on NixOS
original ↗
20 Dec 2025
Installing Lazyvim and Oh-My-Zsh on NixOS without Home Manager or flakes
original ↗
17 Oct 2025
Building a vanilla Node CLI for bootstrapping projects with Cursor rules
original ↗
1 Oct 2025
Recovering webmentions from the Fediverse after migrating to Cloudflare
original ↗
23 Sept 2025
Who Moved My Cookies? Of Cookies On Subdomains
original ↗
9 Jul 2025
Block AI Crawlers, Save Tears: Ditching Vercel for Cloudflare Pages
original ↗
3 Jul 2025
Agentic AI Workflow Woes: Cursor Edition
original ↗
27 Apr 2025
The Thankless Complexity of Custom Form Validations
original ↗
29 Mar 2025
2024
A Mid-career Retrospective of Stores for State Management
original ↗
24 Nov 2024
The Dual Nature of Seniority in Software Development
original ↗
9 Jul 2024
🛑 Stop resizing your browser: improve testing for responsiveness
original ↗
19 May 2024
Error monitoring and bug triage: Whose job is it?
original ↗
2 Mar 2024
2023
Dissecting the hell that is Jest setup with ESM and Typescript
original ↗
31 Dec 2023
Crossing the senior chasm
original ↗
26 Oct 2023
Bug Triage
original ↗
4 Jun 2023
Closing, Cloning, or Disabling the Shadow DOM
original ↗
28 Jan 2023
2022
Maintaining a Healthy-Enough Mindset through Uncertainty
original ↗
3 Dec 2022
Build Time, Runtime, Execution time... What "time" is it in Javascript?
original ↗
23 Nov 2022
Git Rebase for Preventing Merge Commits
original ↗
30 Oct 2022
Things Strong Developers Do That Drive Their Team Crazy
original ↗
27 Oct 2022
Ask Good Questions; Get Unblocked Faster
original ↗
6 Sept 2022
On Levelling Up
original ↗
6 Mar 2022
2021
Unit Testing Components in Storybook
original ↗
22 Sept 2021
Storybook and Chromatic for Visual Regression Testing
original ↗
20 Sept 2021
How good am I? Reflections on 5th year designer-developer doldrums
original ↗
5 Mar 2021
2020
Differential Loading for Legacy Browser Support in Angular 9
original ↗
21 Jul 2020
A Stab at Performance Testing with Intersection Observer and Scroll events
original ↗
29 Jun 2020
On Being Wrong
original ↗
9 May 2020
Running IE 11 with VirtualBox on Mac
original ↗
6 May 2020
Challenge: Cross-browser testing for IE11 and IE Edge on Mac for free
original ↗
28 Apr 2020
What is helpful, if you want to help
original ↗
8 Mar 2020
Removing Accidentally Committed Files From Remote History
original ↗
19 Feb 2020
How To Plan Scalable CSS for Large Projects?
original ↗
10 Feb 2020
2019
First Impressions: learning Angular after React/Redux
original ↗
17 Dec 2019
How I Approach Whiteboard Interviews
original ↗
30 Nov 2019
A laundry list of things I never heard of from bootcamp
original ↗
2 May 2019
Watching the future of coding accelerate into a simulated black hole
original ↗
9 Mar 2019
What I Learned From Trying To Be a Team Player For 2 Years
original ↗
26 Feb 2019
2018
Hastily Deploying a Node App on NearlyFreeSpeech.net (Mac OS)
original ↗
17 Oct 2018
What I learned from only using Select in PostgreSQL
original ↗
9 Apr 2018
2017
What I Learned From Not Planning A Web App (from start to finish)
original ↗
12 Dec 2017
A no-fail workflow for starting a Mongo App
original ↗
17 Oct 2017
Adapting Greensock (GSAP) SVGs for Firefox
original ↗
6 Sept 2017
Last Day on Termination Notice
original ↗
14 Aug 2017
Junior Dev Interview Questions
original ↗
8 Aug 2017
Fixing emails for Outlook 2007, 2013, 2016
original ↗
17 Jun 2017