Core Perl only · zero CPAN dependencies

Perl by Clay Grace

Five dependency-free Perl libraries, and the site they build.

Try the template playground How this site works

This site is not a description of the libraries — it is them. The page you are reading is a flat file rendered by Loom, the visit was counted by Tally, and every demo below runs the real library code on this server. There are 8 entries in the navigation above, counted by a template tag in this very page.

Loom

Template engine & flat-file site engine

Jinja-style tags, layout inheritance, Markdown pages, a responsive admin with page CRUD and a media manager. It is serving this page.

Render a template →

Tally

Visitor tracker & stats

Server-side recording, a JS beacon, access-log import, and fully offline IP→country geolocation. No third-party calls, ever.

See live stats →

Cookie

Read, write, delete HTTP cookies

Injection-safe by default, RFC 6265 name validation, flexible expiry, and correct __Secure- / __Host- prefix semantics.

Bake one →

Mailer

MIME composition & address validation

Local address validation with no third-party service, MIME with attachments, header-injection sanitising, sendmail or SMTP transport.

Compose a message →

FileUpload

Hardened multipart parsing & storage

Streaming parser, magic-byte sniffing, double-extension defence, O_NOFOLLOW writes. Loom's media manager is built on it.

Try a hostile filename →

The admin

Log in and edit this site

Sign in as demo / demodemo and edit these pages for real. Everything resets to pristine at the top of every hour.

Open the admin →