A modern website for ParenWorks Systems built with Common Lisp using the Radiance web application framework.
ParenWorks Systems is a systems development company that specialises in using Common Lisp to find solutions to problems and innovating in Common Lisp.
- A Common Lisp implementation (SBCL recommended)
- Quicklisp
- Radiance framework
(ql-dist:install-dist "http://dist.shirakumo.org/shirakumo.txt")(ql:quickload :radiance)By default, Radiance uses Hunchentoot. To use a different server (e.g., Woo), you can configure the environment.
For Woo server (recommended for production):
;; In your Radiance configuration
(setf (mconfig :radiance-core :interfaces :server) "r-woo")For Clack (flexible backend):
(setf (mconfig :radiance-core :interfaces :server) "r-clack")Make sure this directory is in a location ASDF can find (e.g., ~/common-lisp/ or Quicklisp's local-projects):
(ql:register-local-projects)
(ql:quickload :parenworks)(radiance:startup)The website will be available at: http://localhost:8080/
(radiance:shutdown)parenworks/
├── parenworks.asd # ASDF system definition
├── module.lisp # Radiance module definition
├── pages.lisp # Page definitions and routing
├── static/
│ └── parenworks.css # Stylesheet
└── template/
├── home.ctml # Home page template
├── about.ctml # About page template
├── services.ctml # Services page template
└── contact.ctml # Contact page template
- Home (
/) - Landing page with hero section and feature highlights - About (
/about) - Company information and philosophy - Services (
/services) - Detailed service offerings - Contact (
/contact) - Contact form and information
Edit static/parenworks.css to modify the visual appearance. The site uses CSS custom properties (variables) for easy theming:
:root {
--color-primary: #8b5cf6;
--color-accent: #22d3ee;
/* ... */
}Templates use Clip templating with XHTML5. Edit files in the template/ directory.
- Add a new template file in
template/ - Define a new page in
pages.lisp:
(define-page my-page "parenworks/my-page" (:clip "my-page.ctml")
(r-clip:process T))Radiance supports multiple server backends through its interface system:
| Server | Package | Notes |
|---|---|---|
| Hunchentoot | r-simple-server |
Default, pure CL |
| Woo | r-woo |
High performance, requires libev |
| Clack | r-clack |
Flexible, multiple backends |
To change the server, modify the interface mapping in your Radiance environment configuration.
(setf radiance:*debugger* T)Templates are cached. To reload after changes:
(asdf:load-system :parenworks :force t)Use SLIME/SLY for REPL-driven development. Changes to page definitions take effect immediately after recompilation.
Copyright © 2026 ParenWorks Systems. All rights reserved.
- Website: parenworks.systems
- Email: hello@parenworks.systems