A curated list of awesome Phel libraries, tools, projects, and resources.
Phel is a functional, Lisp-inspired language that compiles to PHP. Persistent data structures, macros, and Clojure-style idioms on top of the PHP ecosystem.
- Core
- Editor / IDE Plugins
- Project Skeletons
- Packages & Libraries
- Projects & Apps
- Articles & Blog Posts
- Community
- Ideas & Wishlist
- Contributing
- phel-lang - The Phel language compiler and runtime.
- phel-lang.org - Official Phel website source.
- clojure-test-suite - Clojure test suite support for Phel.
- phel-vs-code-extension - VS Code extension for Phel.
- phel-intellij-plugin - Official IntelliJ / PhpStorm plugin.
- web-skeleton - Skeleton for building a website with Phel.
- cli-skeleton - Skeleton for building a CLI app with Phel.
- phel-cli-gui - Functions to render UI in the terminal.
- phel-getopt - Command-line argument parsing for Phel CLI programs.
- phel-pdo - PDO wrapper for database interaction.
- phel-sql - Data-driven SQL DSL inspired by HoneySQL. Pure data in,
[sql params]out.
- phel-schema - Schema validation library inspired by zod.
- phel-snake - Snake game for the CLI terminal.
- phel-tic-tac-toe - Tic-tac-toe in the terminal.
- phel-lifegame - Conway's Game of Life simulation.
- phel-cellular-automaton - Cellular automaton simulation.
- phelgeon - Community Phel project (game/experiment).
- mariobasic-n7 - Personal website built in Phel.
- phel-old-school-guestbook - Old-school message board with MySQL backend.
- lisp-webscript-examples - Web apps combining Phel with ClojureScript via GraphQL.
- zo3ja - CLI RSS feed checker.
- phel-saraudon - Git log visualization utility.
- phel-mml2wav - WAV file generation from MML notation.
- Destructuring Deep Dive in Phel - Nested vectors/maps,
:keys,:or,:as,& rest, JSON payloads. - Writing Your First Macro in Phel - Step-by-step intro to macros.
- Pattern Matching: Writing Cleaner Code with Less Conditional Logic -
caseandcondoverif/elseifchains. - Immutability in Phel: Why Your Data Should Never Change - Persistent data structures and predictable code.
- Threading Macros: Thread-First vs. Thread-Last - Readable data pipelines.
- Loop and Recur: Tail-Recursive Iteration Made Easy - Tail recursion without losing clarity.
- Map, Filter, Reduce: Your First Functional Toolkit in Phel - Functional fundamentals with REPL examples.
- Functional Programming in PHP: Lessons from My First Experiments - Early FP exploration that influenced Phel.
Missing from the ecosystem - good candidates to build:
Packages & Libraries
- HTTP client wrapper (inspired by Guzzle / clj-http)
- Routing library (inspired by Reitit / FastRoute)
- HTML generation from data structures (inspired by Hiccup)
- Logging library (inspired by Timbre / Monolog)
- Date/time utilities (inspired by Carbon / clj-time)
- Fake data generator (inspired by Faker / clojure.spec generators)
- Environment / config management (inspired by cprop / phpdotenv)
- Filesystem abstraction (inspired by Flysystem)
- Event dispatcher (inspired by Symfony EventDispatcher)
- UUID library (inspired by ramsey/uuid)
- CSV / YAML parser (inspired by league/csv / clojure.data.csv)
- Code formatter / linter (inspired by cljfmt / PHP-CS-Fixer)
Projects & Apps
- Minimal web framework (inspired by Ring + Compojure / Slim)
- Blog engine (inspired by Luminus / Sculpin)
- Static site generator
- REST API starter kit (inspired by Mezzio / Pedestal)
- Admin panel generator (inspired by Filament / Nova)
- CLI task manager (inspired by Task / Robo)
PRs welcome. Add new entries in alphabetical order within their section.
Each entry:
- [name](url) - short description ending with a period.