Skip to content
A web framework for Common Lisp never finished.
Common Lisp JavaScript HTML CSS
Failed to load latest commit information.
roswell Delete default routing because it's hard to organize and cannot tell … Mar 1, 2016
skeleton Add lake db:seed for inserting initial data. May 19, 2016
.gitignore Initial commit. Jun 3, 2011
README.markdown README Feb 22, 2016
app.lisp Parse nested parameters. Apr 18, 2016
db.lisp Prototyping. Feb 20, 2016
package.lisp Delete default routing because it's hard to organize and cannot tell … Mar 1, 2016
skeleton.lisp Add roswell/utopian.ros. Feb 21, 2016
tasks.lisp Add lake db:seed for inserting initial data. May 19, 2016
utopian.asd Define app for each controllers. Feb 25, 2016
view.lisp Set *action* even when the routing rule is a string. Mar 2, 2016



Quicklisp dist

The caveman in offering the first garland to his maiden thereby transcended the brute. He became a utopian in thus rising above the crude necessities of nature. He entered the realm of art when he perceived the subtle use of the useless. -- Okakura Tenshin, "The Book of Tea"

3 steps to write a better web application:

  1. Choose the right language.
  2. Choose the right web framework.
  3. Write less.

Utopian is a web application framework for encouraging rapid web development.


Getting started


$ git clone
$ ros -l utopian/utopian.asd install utopian

Ensure ~/.roswell/bin is in your shell $PATH.

Creating a new project

$ utopian new blog
writing blog/blog.asd
writing blog/qlfile
writing blog/package.lisp
writing blog/package.json
writing blog/gulpfile.js
writing blog/app.lisp
writing blog/README.markdown
writing blog/Lakefile
writing blog/.gitignore
writing blog/.babelrc
writing blog/assets/javascripts/app.js
writing blog/assets/stylesheets/app.less
writing blog/config/webpack.config.js
writing blog/config/routes.lisp
writing blog/config/assets.js
writing blog/config/application.lisp
writing blog/config/environments/development.lisp
writing blog/config/environments/production.lisp
writing blog/controllers/root.lisp
writing blog/db/development/migrations/.keep
writing blog/db/production/migrations/.keep
writing blog/log/.keep
writing blog/models/.keep
writing blog/views/
writing blog/views/errors/404.html
writing blog/views/layouts/

Starting a server

$ cd blog/
$ qlot exec lake server

Generating a new controller

$ utopian generate controller welcome index
writing controllers/welcome.lisp
writing views/welcome/index.html
writing assets/stylesheets/welcome/index.less

Generating a new model

$ utopian generate model user name:varchar:20 email:varchar:255
writing models/user.lisp

Run qlot exec lake db:generate-migrations after this for generating a migration file and apply it with qlot exec lake db:migrate.


$ APP_ENV=production clackup app.lisp --server woo --port 8080

See Also



Copyright (c) 2016 Eitaro Fukamachi


Licensed under the LLGPL License.

Something went wrong with that request. Please try again.