Make websites the fun way
Parsley is a friendly little programming language. Basil is the web server it lives in. Together they bring back the way the web used to feel: write a file, refresh the browser, smile.
No compiler. No npm. No TypeScript. No build step. One small binary.
What does it look like?
Here's a CSV file becoming a web page. This is the whole program:
let Page = fn({title, users}) {
<html>
<body>
<h1>title</h1>
<ul>
for (user in users) {
<li><b>user.name</b> " — " user.email</li>
}
</ul>
</body>
</html>
}
let emailList <== CSV(@./email-list.csv)
<Page title="Active Users" users={emailList}/>
Dates, money, file paths, and URLs are all real types you can write literally: @2024-01-15, $99.99, @./config.json. HTML is part of the language, not a template bolted on the side.
Try it
One line installs both basil (the server) and pars (the language and REPL):
curl -fsSL https://herbaceous.net/install.sh | shOr grab a binary for your platform from the releases page. macOS, Linux, and Windows; Apple Silicon and Intel.
Why?
Because building for the web in the early 2000s was fun, and somewhere between then and now we buried that fun under toolchains. Parsley and Basil are an attempt to dig it back up — with modern niceties like passkeys, full-text search, an image server, and a built-in SQL database, but without the ceremony.
Read the whole story — or skip straight to a working website in ten minutes.