profile.txt
ssh blog@charpeni.com 'archive agent'
List charpeni.com blog posts
Archive mapped to commit log
tool: archive.list_posts --format=git-log
$ git log --graph --oneline --all --date=short
connected to charpeni.com · 38 commits · 6 branches · HEAD at 000a7c8
000a7c82026-08-21(tooling)The Bun CVE Gap, Closed: Surgical Updates Land in Bun 1.4be3330a2026-08-06(tooling)Surgical Transitive Updates with pnpm: audit --fix5b939dc2026-08-04(homelab)Visualizing Garmin Data and Building a Personal AI Training Assistant3a217862026-07-14(tooling)Speeding Up Checkout in a Fast-Growing Monorepo with Blacksmith6a3837e2026-06-08AI Turned Every Engineer Into a Tech Lead. Most Don't Know It Yet.3c2e7952026-05-21(tooling)The Bun CVE Gap: When Your Package Manager Can't Do Surgical Updatesc033da42026-05-13(tooling)Migrating from ESLint, Biome, and Prettier to Oxlint and Oxfmt5552adf2026-05-07(tooling)Stop Using Yarn Classicc189c702026-04-29(tooling)Protecting Against Compromised Packages with Minimum Release Age669f4782026-02-19(homelab)Access Your Homelab Services Without Memorizing IPs and Ports3f112c62025-12-09(testing)Bun Code Coverage Gap66afafd2025-11-19(typescript)Configure "Go to Definition" to Open TypeScript Source3e239de2025-11-06(react)Don't Blindly Use useTransition Everywhered23e2902025-03-28(testing)How to Easily Reproduce a Flaky Test in Playwright8faa51b2024-10-04(tooling)Minimizing Risk: Properly and Safely Resolving CVEs in Your Dependencies57916c62024-05-28(typescript)TypeScript Tips: Safely Using includes With ReadonlyArraysba2f1432024-04-25(tooling)Speeding up ESLint—Even on CI96664f92024-01-22(graphql)Apollo Client's Hidden Gems: Interface-Based Type Policies199cb202023-10-10(graphql)UI Flickering With Apollo Client: Previous Data to the Rescue!fa82b462023-09-26(graphql)GraphQL Enums Are Unsafe96125072023-09-26(typescript)Open-Ended Unions and Autocomplete With TypeScripte0f42b22023-09-25(tooling)Graphite: The End of Mammoth Pull Requests? My Experience0701f5d2023-08-09(testing)Testing TypeScript Types: Part 2 (Advanced Solutions)0601f442023-08-08(testing)Testing TypeScript Types: Part 12b9727b2023-08-07(typescript)Properly type Object.keys and Object.entries373b85c2023-08-03(tooling)Use Custom Merge Driver to Simplify Git Conflicts76bfdef2023-08-02(tooling)Enforce Best Practices Incrementally With Betterer7a40d2e2022-12-20Agile Rotisserie90e6ce62022-11-03(typescript)Be Careful With JavaScript Default Parameters!2cefceb2022-11-01Find What Commit Introduced a Bug With Git Bisect898dbb92021-12-15Array.prototype.groupBy to the rescue!04d89352021-11-30(typescript)Wrapping Gatsby's <Link> with TypeScriptdcaf5ec2019-04-01(tooling)Setting up an Example App for Your React Native Library9ae44e12018-07-23(react)React Native at Classcraft8e58f352017-11-16(react)Arrow Functions in Class Properties Might Not Be As Great As We Thinkc16fef92017-07-145 Things You Should Know About ES8c59d0262017-07-13Continuous Integration with Angular CLIa929f9b2017-01-18(testing)Reliable Continuous Integration in JavaScript
38 commits · branch tooling · cursor 01/3838 posts · 1 selected↑/↓ move · enter show · dbl-click open · F6 switch · drag ◢ to resize

DISCLAIMER

Last updated: June 29, 2026.

WEBSITE DISCLAIMER

The information provided by Nicolas Charpentier on https://charpeni.com is for general informational and educational purposes only. Although the information is shared in good faith, no representation or warranty is made regarding its accuracy, completeness, reliability, availability, or suitability for any particular purpose.

TECHNICAL CONTENT DISCLAIMER

Articles, code snippets, configuration examples, security notes, and dependency-management guidance are provided as-is. Software ecosystems change quickly, and examples may become outdated or may not fit your environment. You are responsible for reviewing, testing, and validating anything you use from this site before applying it to your own systems, projects, or organization.

Your use of the site and reliance on any information from it is at your own risk. To the fullest extent permitted by law, Nicolas Charpentier is not responsible for any loss or damage resulting from your use of the site or its content.

EXTERNAL LINKS DISCLAIMER

The site contains links to third-party websites and may include third-party embeds or widgets, such as comments or interactive code examples. These third-party resources are provided for convenience and context only. They are not controlled, monitored, or guaranteed by the author, and their content, availability, accuracy, security, and policies remain the responsibility of their respective providers.

COMMENTS AND USER CONTENT

Some pages may display comments or discussions hosted by third-party services. User-generated content belongs to its respective authors and does not necessarily reflect the views of Nicolas Charpentier.

NO ENDORSEMENT

References to tools, libraries, services, companies, or projects do not imply endorsement, sponsorship, or affiliation unless explicitly stated.