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

PRIVACY POLICY

Last updated: August 20, 2026.

This website (https://charpeni.com) is the personal website of Nicolas Charpentier. It is intended to collect as little personal information as practical while still keeping the site reliable and understandable.

Hosting and Analytics

This website is hosted on Cloudflare (https://www.cloudflare.com). When loading this website, your IP address and request details may be available to Cloudflare and stored in their access logs.

The site uses Pirsch Analytics to understand aggregate usage. This service may process request, device, browser, and page information.

The site also uses Cloudflare Web Analytics, which loads a small measurement script on each page. It reports page views along with information such as the referring page, country, device type, browser, and page performance timings. According to Cloudflare, this service does not use cookies, local storage, or fingerprinting, and does not track visitors across websites.

The site does not use these tools to identify individual visitors.

Cookies and Local Storage

This website uses a first-party cookie named retro-os to remember whether retro mode is enabled. The cookie is used only for this preference and expires after one year.

Retro mode may also use your browser's local storage to remember the terminal cursor position. This value stays in your browser unless you clear your site data.

Comments and Embeds

Some pages include third-party features, such as Giscus comments backed by GitHub Discussions or interactive CodeSandbox/Sandpack examples. When those features load or when you interact with them, the relevant third parties may receive information from your browser and process it under their own privacy policies.

External Links

This website links to external websites. Those sites may have different privacy policies and terms which are outside the author's control. See this website's Legal Disclaimer for more information.