All Projects → Deraen → Saapas

Deraen / Saapas

Example project for Cljs using Boot instead of Lein. Inspired by Chestnut.

Programming Languages

clojure
4091 projects
clojurescript
191 projects

Labels

Projects that are alternatives of or similar to Saapas

Multibootusb
Create multiboot live Linux on a USB disk...
Stars: ✭ 1,042 (+666.18%)
Mutual labels:  boot
Boot Cljs Repl
Boot task providing a REPL for ClojureScript development.
Stars: ✭ 74 (-45.59%)
Mutual labels:  boot
Confetti
🎉 A tool to help creating and deploying static sites with AWS
Stars: ✭ 96 (-29.41%)
Mutual labels:  boot
Boot Cljs Test
Boot task to run ClojureScript tests.
Stars: ✭ 53 (-61.03%)
Mutual labels:  boot
Geolocator
Location tracking & geofencing the easy way. Supports background, killed app, rebooted device different update intervals.
Stars: ✭ 60 (-55.88%)
Mutual labels:  boot
Mortar
Framework to join Linux's physical security bricks.
Stars: ✭ 80 (-41.18%)
Mutual labels:  boot
Secure Boot
UEFI SecureBoot for ArchLinux
Stars: ✭ 48 (-64.71%)
Mutual labels:  boot
Xps 9360 Macos
XPS 13 (9360) with macOS Catalina
Stars: ✭ 118 (-13.24%)
Mutual labels:  boot
Docker Pxe
A virtualized implementation of PXE supported by DNSMasq
Stars: ✭ 72 (-47.06%)
Mutual labels:  boot
Kindd
A kindful dd, written in qt-quick.
Stars: ✭ 93 (-31.62%)
Mutual labels:  boot
Bootstrap
Tools to bootstrap micro computers
Stars: ✭ 55 (-59.56%)
Mutual labels:  boot
Boot Http
A simple HTTP serve task for the Boot build tool
Stars: ✭ 60 (-55.88%)
Mutual labels:  boot
Hex Arch Kotlin Spring Boot
Reference JVM multi module project for a reactive micro service and lambda using a hexagonal architecture, DDD, Kotlin, Spring Boot, Quarkus, Lambda, Gradle.
Stars: ✭ 83 (-38.97%)
Mutual labels:  boot
Boot Figreload
Boot task providing live-reload using Fighweel client
Stars: ✭ 50 (-63.24%)
Mutual labels:  boot
Overlayroot
mounts an overlay file system over root
Stars: ✭ 104 (-23.53%)
Mutual labels:  boot
Debootstick
Generate a bootable live image from any Debian/Ubuntu filesystem tree.
Stars: ✭ 48 (-64.71%)
Mutual labels:  boot
Supergrub
Super Grub2 Disk
Stars: ✭ 79 (-41.91%)
Mutual labels:  boot
Tunnel
Use Ngrok In Termux With Advanced Options
Stars: ✭ 133 (-2.21%)
Mutual labels:  boot
Booster
Fast and secure initramfs generator
Stars: ✭ 113 (-16.91%)
Mutual labels:  boot
Zfs Installer
Shell script program that prepares ZFS on a system, and installs Linux
Stars: ✭ 88 (-35.29%)
Mutual labels:  boot

Saapas

Opinionated example project for ClojureScript using Boot instead of Leiningen. Was inspired by chestnut but has grown since to include other stuff to demonstrate Boot.

This is not an Leiningen template as I don't believe in setting up complex projects automatically. Instead you should study this project and copy only stuff you need and understand.

Prerequisites

You should first install Boot. Also you should be running the latest version.

Features

  • Uses component and reloaded.repl to provide utilities to start, stop and reset (reload) the app.
  • Simple Compojure backend
  • Simple Reagent frontend
  • LESS to write CSS
    • less4clj is able to import files from classpath
    • You can add dependency to e.g. bootstrap from webjars to your regular dependencies and then use @import "bootstrap/less/bootstrap.less" on your .less files.
  • or alternatively, Sass to write CSS
    • sass4clj is also able to import files from classpath
  • dev task starts the whole development workflow
    • Check boot dev --help for options
    • Browser repl included
    • Watches for file changes
      • *.less changes trigger less compilation
      • *.cljs changes trigger cljs compilation
    • Live-reloading
      • *.js, *.css, *.html changes send notification to browser thought WebSocket and browser loads the new files
  • autotest task to run Clj and Cljs tests whenever files are changed
    • Uses boot-alt-test to run Clojure tests as fast as possible and only running the changed tests are file changes
    • Uses boot-cljs-test to run ClojureScript tests with Doo, allowing the tests to run in many of JS environments, like browsers, Node or PhantomJS.
  • Provides package task that creates Uberjar that can be used to run the app on a server
    • Cljs will be compiled using :advanced optimization and uses minified foreign libraries, like React
    • Only backend.main is AOT compiled, so that it is possible to start the application with java -jar saapas.jar but so that rest of the code is compiled at application startup to avoid problems with AOT compilation.

Usage

To start everything run:

$ boot dev
boot.user=>
# App should now be running, you can use following commands to restart the app
boot.user=> (stop) ; Stop app
boot.user=> (start) ; Start app
boot.user=> (reset) ; Stop, reload all namespaces, start

If you want a repl where you can execute commands, you can start a nrepl client which connects to the nrepl server started by the dev task by running

$ boot repl -c

License

CC0
To the extent possible under law, Juho Teperi has waived all copyright and related or neighboring rights to Saapas. This work is published from: Suomi.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].