Remix.run Logo
simonw 13 hours ago

I just shipped a new one of these a few minutes ago (from my phone).

I found out about a new Python HTML parsing library - https://github.com/EmilStenstrom/justhtml - and wanted to try it out but I'm out without my laptop. So I had Claude Code for web build me a playground interface for trying it out: https://tools.simonwillison.net/justhtml

It loads the Python library using Pyodide and lets you try it out with a simple HTML UI.

The prompts I used are in this PR: https://github.com/simonw/tools/pull/156

mirekrusin 10 hours ago | parent | next [-]

You can use react with jsx without any build step in single html file as well.

simonw 10 hours ago | parent [-]

Yeah I used it for this one via Babel from a CDN but it felt pretty crufty: https://tools.simonwillison.net/box-shadow

mirekrusin 7 hours ago | parent [-]

Yes, I guess it would start showing advantage for complex ones.

The idea is interesting, shame there is nothing for full stack like this, something like opinionated fossil-scm setup - which already has project management built in (for llm to use for its dev progress); together with backend and runtime state squashed inside single sqlite so you can create/delete them independently without a fuss.

dotancohen 13 hours ago | parent | prev [-]

Serious question. How do you "try out" a library if somebody else (or something else) is writing the code?

Thank you.

simonw 13 hours ago | parent [-]

The thing that matters for me when considering a new library is what it can do. Once I know that I can decide if it's worth learning how to use it at a code level.

In the case of JustHTML I've now been able to try it against a few different HTML documents, seen it do good pretty-printing, played with its CSS selector implementation and got a feel for its event-based streaming parser. I'm very impressed! I think I'll be using it in the future next time I need an HTML parser.

dotancohen 13 hours ago | parent [-]

I see, thank you.

Until vibe coding came along, the ergonomics of a library were no less important than its functionality. But I understand how LLM assisted coding changes that perspective.

I'll go tend to my empty lawn now.