Skip to content

Lambda-X/lambone

Repository files navigation

Lambone

Lambone (/lamˈbone/) is an project template for bare backend + frontend projects.

It proudly features boot Boot Logo and does not at the moment generate a Leiningen project.clj.

The backend is materialized by default, with +frontend enabling both. This division is present throughout the project, from boot dependencies (backend-deps vs frontend-deps in build.boot) to source files organization (src/backend vs src/frontend).

It is bare in the sense that it does not include anything more than:

Why would you want to use lambone then?

This template does not want by any means to compete against Luminus, which the current maintainer is actually trying to enhance with boot support, but it does provide a couple of neat features that you can setup by yourself but are a bit cumbersome to remember every time you bootstrap a project:

  • Three ready to use boot build, boot dev and boot test tasks
  • boot dev with no option launches two Repl instances within the same JVM
  • Easy to configure, flavor-like boot task configuration through multi-methods and -f|--flavor option
  • Consistent hooks for taming Java logging and redirect all of it to log4j2
  • Canonical reload workflow and browser refreshing
  • Ready to use test harness (you only need to have PhantomJS on the target machine)
  • Switch from a Clojurescript Repl to a Dirac Repl at will (-d/--dirac option to the dev task)
  • Dependency hotload (backend only at the moment)

Don't skip reading the README once the project has been created to know more.

Usage

Very simply:

lein new lambone <project-name>

Or:

lein new lambone <project-name> +frontend

While boot-new users can:

boot -d seancorfield/boot-new new -t lambone -n <project-name>

Or:

boot -d seancorfield/boot-new new -t lambone -n <project-name> -a +frontend

Thanks

The authors and contributors of the following paved the way magnificently:

License

Copyright © 2016 Scalac Sp. z o.o.

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.