←back to thread

207 points todsacerdoti | 1 comments | | HN request time: 0s | source
Show context
williamcotton ◴[] No.46004377[source]
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 DSL itself (written in Rust):

https://github.com/williamcotton/webpipe

And an LSP for the language:

https://github.com/williamcotton/webpipe-lsp

And of course my blog is built on top of Web Pipe:

https://github.com/williamcotton/williamcotton.com/blob/mast...

It is absolutely amazing that a solo developer (with a demanding job, kids, etc) with just some spare hours here and there can write all of this with the help of these tools.

replies(5): >>46004648 #>>46004743 #>>46005872 #>>46005982 #>>46006162 #
1. mike_hearn ◴[] No.46005982[source]
FWIW if someone wants a tool like this with better support, JetBrains has defined a .http file format that contains a DSL for making HTTP requests and running JS on the results.

https://www.jetbrains.com/help/idea/http-client-in-product-c...

There's a CLI tool for executing these files:

https://www.jetbrains.com/help/idea/http-client-cli.html

There's a substantially similar plugin for VSCode here: https://github.com/Huachao/vscode-restclient