41554 blogs · [ { "id": "01a08790-5b0a-70ae-98a2-d6c661395f62", "title": "Summer notes", "url": "https://jon.recoil.org/blog/2026/09/summernotes.html", "published_at": "2026-09-08T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c661b2a004", "title": "First Class Docs in OCaml", "url": "https://jon.recoil.org/blog/2026/06/first-class-docs.html", "published_at": "2026-06-22T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c6626fa804", "title": "Weeknotes 2026 week 24-25", "url": "https://jon.recoil.org/blog/2026/06/weeknotes-25.html", "published_at": "2026-06-22T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c66336957f", "title": "Week 23, June 2026", "url": "https://jon.recoil.org/blog/2026/06/weeknotes-23.html", "published_at": "2026-06-08T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c6639e108f", "title": "Weeknotes May 2026 weeks 18-19", "url": "https://jon.recoil.org/blog/2026/05/weeknotes-18-19.html", "published_at": "2026-05-11T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c663e165f0", "title": "Weeknotes 2026 weeks 16-17", "url": "https://jon.recoil.org/blog/2026/04/weeknotes-2026-16-17.html", "published_at": "2026-04-28T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c6640d474b", "title": "Weeknotes 2026 week 15", "url": "https://jon.recoil.org/blog/2026/04/weeknotes-2026-15.html", "published_at": "2026-04-14T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c664a25b09", "title": "Odoc and OCaml Notebooks", "url": "https://jon.recoil.org/blog/2026/04/odoc_and_ocaml_notebooks.html", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c664ed51ea", "title": "Weeknotes 2026 week 13", "url": "https://jon.recoil.org/blog/2026/03/weeknotes-2026-13.html", "published_at": "2026-03-31T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c6654e9483", "title": "Weeknotes 2026 week 12", "url": "https://jon.recoil.org/blog/2026/03/weeknotes-2026-12.html", "published_at": "2026-03-23T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c665835662", "title": "Weeknotes 2026 week 11", "url": "https://jon.recoil.org/blog/2026/03/weeknotes-2026-11.html", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c665b66d65", "title": "Weeknotes 2026 week 10", "url": "https://jon.recoil.org/blog/2026/03/weeknotes-2026-10.html", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c6665d9d32", "title": "Weeknotes 2026 week 9", "url": "https://jon.recoil.org/blog/2026/03/weeknotes-2026-09.html", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c666e360b9", "title": "Weeknotes weeks 7-8", "url": "https://jon.recoil.org/blog/2026/02/weeknotes-2026-08.html", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c666f03263", "title": "Weeknotes for week 6", "url": "https://jon.recoil.org/blog/2026/02/weeknotes-2026-06.html", "published_at": "2026-02-09T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c6673130a8", "title": "Weeknotes for weeks 4-5", "url": "https://jon.recoil.org/blog/2026/01/weeknotes-2026-04-05.html", "published_at": "2026-01-30T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c667e2f1c4", "title": "Weeknotes for week 3", "url": "https://jon.recoil.org/blog/2026/01/weeknotes-2026-03.html", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c668c7dff6", "title": "Claude and Dune", "url": "https://jon.recoil.org/blog/2025/12/claude-and-dune.html", "published_at": "2025-12-18T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c669b5397b", "title": "An SVG is all you need", "url": "https://jon.recoil.org/blog/2025/12/an-svg-is-all-you-need.html", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c669c49d54", "title": "Foundations of Computer Science", "url": "https://jon.recoil.org/blog/2025/11/foundations-of-computer-science.html", "published_at": "2025-11-14T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c669ce2574", "title": "Caching opam solutions - part 2", "url": "https://jon.recoil.org/blog/2025/09/caching-opam-solutions2.html", "published_at": "2025-09-23T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c66a29de0b", "title": "Odoc bugs", "url": "https://jon.recoil.org/blog/2025/09/odoc-bugs.html", "published_at": "2025-09-22T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c66a2f7ca2", "title": "Caching opam solutions", "url": "https://jon.recoil.org/blog/2025/09/caching-opam-solutions.html", "published_at": "2025-09-09T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c66a530c00", "title": "Build IDs for Day10", "url": "https://jon.recoil.org/blog/2025/09/build-ids-for-day10.html", "published_at": "2025-09-08T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c66ae20a9d", "title": "Giving hub.cl an upgrade", "url": "https://jon.recoil.org/blog/2025/09/giving-hub-cl-an-upgrade.html", "published_at": "2025-09-07T00:00:00+00:00" }, { "id": "01a08790-5b0a-70ae-98a2-d6c66b75367d", "title": "Using ocaml-lsp-server via an MCP server", "url": "https://jon.recoil.org/blog/2025/08/ocaml-lsp-mcp.html", "published_at": "2025-08-27T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d17e85b40d", "title": "An OCaml MCP server", "url": "https://jon.recoil.org/blog/2025/08/ocaml-mcp-server.html", "published_at": "2025-08-20T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d17ea1bb2e", "title": "Week 33", "url": "https://jon.recoil.org/blog/2025/08/week33.html", "published_at": "2025-08-19T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d17f840ff8", "title": "4 months in, a retrospective", "url": "https://jon.recoil.org/blog/2025/07/retrospective.html", "published_at": "2025-07-18T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d1800f457f", "title": "Odoc 3 is live on OCaml.org!", "url": "https://jon.recoil.org/blog/2025/07/odoc-3-live-on-ocaml-org.html", "published_at": "2025-07-14T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d18029e0f0", "title": "Week 28", "url": "https://jon.recoil.org/blog/2025/07/week28.html", "published_at": "2025-07-14T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d181107084", "title": "Weeks 24-27", "url": "https://jon.recoil.org/blog/2025/07/week27.html", "published_at": "2025-07-07T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d181b824a5", "title": "Week 23", "url": "https://jon.recoil.org/blog/2025/06/week23.html", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d181c7ae50", "title": "Progress in OCaml docs", "url": "https://jon.recoil.org/blog/2025/05/docs-progress.html", "published_at": "2025-05-29T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d182c1c61e", "title": "Lots of things have been happening", "url": "https://jon.recoil.org/blog/2025/05/lots-of-things.html", "published_at": "2025-05-20T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d1832db836", "title": "Solving First-year OCaml exercises with AI", "url": "https://jon.recoil.org/blog/2025/05/ticks-solved-by-ai.html", "published_at": "2025-05-07T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d18369be22", "title": "OxCaml is getting closer...", "url": "https://jon.recoil.org/blog/2025/05/oxcaml-gets-closer.html", "published_at": "2025-05-02T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d183af16d2", "title": "AI for Climate & Nature Community Day", "url": "https://jon.recoil.org/blog/2025/05/ai-for-climate-and-nature-day.html", "published_at": "2025-05-01T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d18456c732", "title": "OCaml-Docs-CI and Odoc 3", "url": "https://jon.recoil.org/blog/2025/04/ocaml-docs-ci-and-odoc-3.html", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d1851f2e09", "title": "Odoc 3: So what?", "url": "https://jon.recoil.org/blog/2025/04/odoc-3.html", "published_at": "2025-04-25T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d185a721f4", "title": "Semantic Versioning in OCaml is Hard", "url": "https://jon.recoil.org/blog/2025/04/semantic-versioning-is-hard.html", "published_at": "2025-04-20T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d185c26c65", "title": "Meeting the Team", "url": "https://jon.recoil.org/blog/2025/04/meeting-the-team.html", "published_at": "2025-04-08T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d1867bced5", "title": "This site", "url": "https://jon.recoil.org/blog/2025/04/this-site.html", "published_at": "2025-04-07T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d186aa80e5", "title": "The Road to Odoc 3: Module Type Of", "url": "https://jon.recoil.org/blog/2025/03/module-type-of.html", "published_at": "2025-03-08T00:00:00+00:00" }, { "id": "01a08790-5b0b-7226-aa9a-24d186f04ec2", "title": "Code block metadata", "url": "https://jon.recoil.org/blog/2025/03/code-block-metadata.html", "published_at": "2025-03-07T00:00:00+00:00" } ] posts Claim your blog
Back to jon.recoil.org
Blog · corpus.blog/blogs/jon.recoil.org/posts

jon.recoil.org

jon.recoil.org

2026

2025