56,966 blogs · [ { "id": "01a0878e-4a72-7079-8255-379f8a3472ca", "title": "I got caught up in design again", "url": "https://jlongster.com/caught-up-in-design", "published_at": "2025-12-03T12:00:00+00:00" }, { "id": "01a0878e-4a72-7079-8255-379f8b23b31c", "title": "About", "url": "https://jlongster.com/about", "published_at": "2025-11-22T12:00:00+00:00" }, { "id": "01a0878e-4a72-7079-8255-379f8c022535", "title": "Work", "url": "https://jlongster.com/work", "published_at": "2025-11-21T12:00:00+00:00" }, { "id": "01a0878e-4a72-7079-8255-379f8cea8b2a", "title": "Warp any DOM element with this bookmarklet", "url": "https://jlongster.com/warp-any-dom-element-with-this-bookmarklet", "published_at": "2025-11-19T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68b256a77", "title": "Building an AI REPL with QuickJS", "url": "https://jlongster.com/building-an-ai-repl-with-quickjs", "published_at": "2025-11-18T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68b3595c2", "title": "Wrangling my email with Claude Code", "url": "https://jlongster.com/wrangling-email-claude-code", "published_at": "2025-11-14T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68c100911", "title": "Ball", "url": "https://jlongster.com/ball", "published_at": "2025-09-20T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68c4752b7", "title": "Grass", "url": "https://jlongster.com/grass-demo", "published_at": "2025-09-19T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68c499aa4", "title": "Exploding words", "url": "https://jlongster.com/exploding-words", "published_at": "2025-04-12T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68cba22f1", "title": "Verlet cloth", "url": "https://jlongster.com/verlet-cloth", "published_at": "2025-04-11T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68d640e19", "title": "Subverting control with weak references", "url": "https://jlongster.com/subverting-control-weak-refs", "published_at": "2025-02-24T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68e4dda4c", "title": "Quick synthesizer with harmonics", "url": "https://jlongster.com/quick-synthesizer-with-harmonics", "published_at": "2024-09-29T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68e822b79", "title": "Little learnings", "url": "https://jlongster.com/little-learnings", "published_at": "2024-09-02T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68f520a0b", "title": "Intro to the new site", "url": "https://jlongster.com/intro-new-site", "published_at": "2024-07-09T12:00:00+00:00" }, { "id": "01a0878e-4a73-7282-b176-12b68fd64b94", "title": "Why does the chromaticity diagram look like that?", "url": "https://jlongster.com/why-chromaticity-shape", "published_at": "2024-01-08T12:00:00+00:00" }, { "id": "01a0821c-d774-719a-bdeb-f3fb46bf20ae", "title": "How one word in PostgreSQL unlocked a 9x performance improvement", "url": "https://archive.jlongster.com/how-one-word-postgresql-performance", "published_at": "2020-05-26T00:00:00+00:00" }, { "id": "01a0821c-d774-719a-bdeb-f3fb476fcb1b", "title": "A case study of complex table design", "url": "https://archive.jlongster.com/case-study-complex-table-design", "published_at": "2020-05-06T00:00:00+00:00" }, { "id": "01a0821c-d774-719a-bdeb-f3fb47d9c08a", "title": "Joining Stripe", "url": "https://archive.jlongster.com/joining-stripe", "published_at": "2020-04-06T00:00:00+00:00" }, { "id": "01a0821c-d774-719a-bdeb-f3fb47ec47b0", "title": "The wonderful sound of an atomic commit", "url": "https://archive.jlongster.com/wonderful-sound-atomic-commit", "published_at": "2020-02-11T00:00:00+00:00" }, { "id": "01a0821c-d774-719a-bdeb-f3fb4896d1b5", "title": "Thinking about growth and profit", "url": "https://archive.jlongster.com/thinking-growth-profit", "published_at": "2020-01-09T00:00:00+00:00" } ] posts Claim your blog
Back to James Long
Blog · corpus.blog/blogs/jlongster.com/posts

James Long

jlongster.com

2025

21 Nov 2025
20 Sept 2025
19 Sept 2025

2024

2020