Top all-time · #13952
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.
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?
- Writing Web Applications with LLMs2 people · 3 mentions · first linked 2023-04-20
- /another-way-to-publish-code2 people · 3 mentions · first linked 2013-09-11
- PageRank Explained with Javascript2 people · 2 mentions · first linked 2010-07-30
What Hacker News says?
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?”Submitted How to Publish Open-Source Code as a story · 97 points
HN discussionhttps://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”Submitted A Burrito Is a Monad as a story · 52 points
HN discussionthis 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”Submitted PageRank Explained with Javascript as a story · 21 points
HN discussionSomewhat 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”Submitted A Burrito Is a Monad as a story · 3 points
HN discussionThis 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”Submitted Basic Introduction to Web Pipe as a story · 2 points
HN discussionA 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)”Submitted Show HN: GraphQL DataLoader Pattern in Custom DSL as a story · 2 points
HN discussionI'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”Submitted The Discoverable Evidence of AI-Assisted Software Porting as a story · 1 points
HN discussionThe 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”Submitted The Discoverable Evidence of AI-Assisted Software Porting as a story · 1 points
HN discussionA 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”Submitted The Discoverable Evidence of AI-Assisted Software Porting as a story · 1 points
HN discussionHere'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”Submitted How a New DSL May Survive in the Era of LLMs as a story · 1 points
HN discussionWhat 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”Submitted The Evolution of a DSL as a story · 1 points
HN discussionI 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”Submitted Writing Web Applications with LLMs as a story · 1 points
HN discussionA 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)”Submitted ChatGPT and the Analytic-Synthetic Distinction as a story · 1 points
HN discussionOne 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”Submitted Authentically Human in a World of ChatGPT as a story · 1 points
HN discussionA 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”Submitted Authentically Human as a story · 1 points
HN discussion