Pricklypear: Vibeslop Interpreted Lisp with Postgres AST, Written in OCaml

sroerick1 pts1 comments

Pricklypear

Pricklypear<br>What if WordPress was a Lisp Machine? (Nobody has asked this question)<br>Explore the sourceDownload the book (PDF)BackgroundRoadmapEmail signupLog in

No, seriously, what is this?<br>Honestly, I don't know. It's kind of like a Smalltalk. You, or your agent, can write functions. They get saved in the database and reloaded. Those functions can render web pages, so it's kind of a web framework.<br>I gotta tell ya. Using it is beautiful. You don't need an API at all. Even your local agent can just use the REPL. I plugged in an LLM to it and it just... worked? It understood the harness and successfully started writing functions.<br>Look, I don't even care if anybody uses this at all. I just want people to know about this design pattern. For small and medium business this is insanely powerful.

Fully Interpreted Lisp in Postgres<br>The AST is stored in Postgres. You can browse all the functions in the system. It's like the PHP interface of WordPress, except not terrifying.

htmx forward<br>A lot of functions render htmx partials. This makes things pretty modular and composable. We have sexp wrappers for HTML and CSS.

The Great American Codebase<br>I designed the codebase to be read like a book. I like to print codebases out to read them. There's a lot of AI slop in here, but I mark where I've inserted my own comments. My LaTeX pipeline is kind of weird rn so please consider this PDF incomplete and aspirational.

I live here now<br>It's multiuser, and it's fun. I have bible study, todo, zettelkasten, flashcards, calendar. Writing apps is insanely easy. You aren't stuck with weird elisp or everything is a buffer rules.

5-minute tour<br>After you log in (or from scripts/repl.sh against a local image):<br>scripts/repl.sh<br>(define hi-page (lambda () (render-html "Hello")))<br>(route "/hello" "hi-page")<br>open /hello in the browser<br>edit at /edit/hi-page<br>optional: (propose-function "double" "lambda of int x -> (* x 2)")

Get in<br>Browse the source or download the book without an account. To run code in the image, log in — workspace home, Functions, Pages, Data, and the REPL stay private.<br>Code browser Book PDF Sign in

Pricklypear · hosted release · background · roadmap · signup · concepts (after login)

functions pricklypear book like repl lisp

Related Articles