Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #13952

W

William Cotton

Personal blog · williamcotton.com/articlesprogrammingaiwriting

William Cotton's personal blog at williamcotton.com covers programming, ai and writing. Since 2010, 5 different Hacker News readers have linked it 56 times, most often “Writing Web Applications with LLMs”. No feed was found, so read it on the site itself.

No feed foundVisit the blog
56mentions?
5HN people?
2010–2026first – last linked?
Links on Hacker News per year · peak 22 in 2023

Too few sampled comments (2) to say how often HN recommends it.?

Why HN links it

Linked in HN threads on a web-application writing experiment and a browser-based code-publishing idea. The comments mostly cite the posts as related examples, and none judge the writing directly.

Summarised by Claude from a sample of 2 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Writing Web Applications with LLMs
    2 people · 3 mentions · first linked 2023-04-20
  2. /another-way-to-publish-code
    2 people · 3 mentions · first linked 2013-09-11
  3. PageRank Explained with Javascript
    2 people · 2 mentions · first linked 2010-07-30

What Hacker News says?

  1. I've been writing an experimental pipeline-based web app DSL with Claude Code for the last little while in my spare time. Sort of bash-like with middleware for lua, jq, graphql, handlebars, postgres, etc. Here's an already out of date and unfinished blog post about it: https://williamcotton.com/articles/introducing-web-pipe Here's a simple todo app: https://github.com/williamcotton/webpipe/blob/webpipe-2.0/to... Che…

    Comment linking /articles/introducing-web-pipe

    on “Ask HN: How can I get better at using AI for programming?”
  2. Submitted How to Publish Open-Source Code as a story · 97 points

    HN discussion
  3. https://github.com/williamcotton/webpipe Shhh, WIP blog post (on webpipe powered blog) https://williamcotton.com/articles/introducing-web-pipe Yes, I wrote my own DSL, complete with BDD testing framework, to write my blog with. In Rust! GET /hello/:world |> jq: `{ world: .params.world }` |> handlebars: `<p>hello, {{world}}</p>` describe "hello, world" it "calls the route" when calling GET /hello/world then status is…

    Comment linking /articles/introducing-web-pipe

    on “AI coding”
  4. Submitted A Burrito Is a Monad as a story · 52 points

    HN discussion
  5. this is fun but also sort of startling to see https://www.williamcotton.com/articles/writing-web-applicati... .. the exact same content for a screensaver with Todd Rundgren in 1987 on the then-new color Apple Macintosh II in Sausalito, California. A different screensaver called "Flow Fazer" was more popular and sold many copies. The rival at the time was "After Dark" .. whose founder had a PhD in physics from UC Ber…

    Comment linking /articles/writing-web-applications-with-llms

    on “Effects of Gen AI on High Skilled Work: Experiments with Software Developers”
  6. Submitted PageRank Explained with Javascript as a story · 21 points

    HN discussion
  7. Somewhat related, at least with regards to government-issued digital ID, but what are your thoughts on: https://williamcotton.com/articles/the-tyranny-of-the-anonym... I’m of the opinion that entities other than, eg Meta, should be responsible for identity verification.

    Comment linking /articles/the-tyranny-of-the-anonymous

    on “I got hacked and Facebook banned me”
  8. Submitted A Burrito Is a Monad as a story · 3 points

    HN discussion
  9. This may help? (Just an example of a monad pattern in use to build a burrito!) https://www.williamcotton.com/articles/a-burrito-is-a-monad

    Comment linking /articles/a-burrito-is-a-monad

    on “I learned Haskell in just 15 years”
  10. Submitted Basic Introduction to Web Pipe as a story · 2 points

    HN discussion
  11. A web app DSL that looks like: GET /hello |> jq: `{ world: ":)"}` pipeline getPage = |> jq: `{ sqlParams: [.params.id | tostring] }` |> pg: `SELECT * FROM pages WHERE id = $1` |> jq: `{ team: .data.rows[0] }` GET /page/:id |> pipeline: getPage WIP article that explains more: https://williamcotton.com/articles/introducing-web-pipe I would love feedback!

    Comment linking /articles/introducing-web-pipe

    on “Ask HN: What are you working on? (July 2025)”
  12. Submitted Show HN: GraphQL DataLoader Pattern in Custom DSL as a story · 2 points

    HN discussion
  13. I've been working on my own web app DSL, with most of the typing done by Claude Code, eg, GET /hello/:world |> jq: `{ world: .params.world }` |> handlebars: `<p>hello, {{world}}</p>` describe "hello, world" it "calls the route" when calling GET /hello/world then status is 200 and output equals `<p>hello, world</p>` Here's a WIP article about the DSL: https://williamcotton.com/articles/introducing-web-pipe And the DS…

    Comment linking /articles/introducing-web-pipe

    on “FAWK: LLMs can write a language interpreter”
  14. Submitted The Discoverable Evidence of AI-Assisted Software Porting as a story · 1 points

    HN discussion
  15. The explanation is easy. An analytic prompt contains the facts necessary for the response. This means the LLM acts as a translator. A synthetic prompt does not contain the facts necessary for the response. This means the LLM acts as a synthesizer. A complete baseball box score being converted into an entertaining paragraph description of the game is an analytic prompt and it will reliably produce a factual outcome.…

    Comment linking /articles/chatgpt-and-the-analytic-synthetic-distinction

    on “Bing AI Can't Be Trusted”
  16. Submitted The Discoverable Evidence of AI-Assisted Software Porting as a story · 1 points

    HN discussion
  17. A Burrito is a Monad: https://williamcotton.com/articles/a-burrito-is-a-monad

    Comment linking /articles/a-burrito-is-a-monad

    on “Death to type classes”
  18. Submitted The Discoverable Evidence of AI-Assisted Software Porting as a story · 1 points

    HN discussion
  19. Here's my blog with a work in progress article [0], written in a DSL I wrote called Web Pipe [1] that I started four days ago [2] with probably about 12 hours worth of work: [0] https://williamcotton.com/articles/introducing-web-pipe [1] https://github.com/williamcotton/williamcotton.com/blob/mast... [2] https://github.com/williamcotton/webpipe-rs/commits/main/?af...

    Comment linking /articles/introducing-web-pipe

    on “I tried coding with AI, I became lazy and stupid”
  20. Submitted How a New DSL May Survive in the Era of LLMs as a story · 1 points

    HN discussion
  21. What happens if this need isn’t filled? Well, the focus of this article for one, more and more astroturfing and fraud. How about riling up another country’s voting public with lies? Various forms of harassment and bullying? And do you think AIs are going to make this better or worse? Should we ignore all of this because we’re worried about the outcome matching the plot of a Gibson or Stephenson story? I can’t come u…

    Comment linking /articles/authentically-human-in-a-world-of-chat-gpt

    on “Three Companies Impersonated Millions to Influence Internet Policy”
  22. Submitted The Evolution of a DSL as a story · 1 points

    HN discussion
  23. I made a similar example a few years ago. It even works in IE6! http://williamcotton.com/pagerank-explained-with-javascript

    Comment linking /pagerank-explained-with-javascript

    on “Exploration of the Google PageRank Algorithm”
  24. Submitted Writing Web Applications with LLMs as a story · 1 points

    HN discussion
  25. A Burrito Is a Monad (2024): https://www.williamcotton.com/articles/a-burrito-is-a-monad let burrito = tortilla >>= addMeat Chicken >>= addMissionBurritoIngredients >>= holdThe Cheese >>= addIngredient PicoDeGallo >>= addIngredient Salsa >>= addIngredient Guacamole >>= addIngredient SourCream

    Comment linking /articles/a-burrito-is-a-monad

    on “Monads are like burritos (2009)”
  26. Submitted ChatGPT and the Analytic-Synthetic Distinction as a story · 1 points

    HN discussion
  27. One thing I'm just now realizing is that I'm not very good at making screencasts! Did you happen to notice the link at the bottom of the page to this article? http://williamcotton.com/another-way-to-publish-code I'm thinking I might need to move a lot of elements from that article to the front-page of CorsLIT! If you did read the follow-up article, I apologize for not being able to present a clear explanation of how…

    Comment linking /another-way-to-publish-code

    on “How to Publish Open-Source Code”
  28. Submitted Authentically Human in a World of ChatGPT as a story · 1 points

    HN discussion
  29. A lot of questions are hopefully answered in this follow-up post that I linked to at the bottom of the CorsLIT front page! http://williamcotton.com/another-way-to-publish-code

    Comment linking /another-way-to-publish-code

    on “How to Publish Open-Source Code”
  30. Submitted Authentically Human as a story · 1 points

    HN discussion

Search all of HN for williamcotton.com