Skip to content

A collection of tools and defaults to start a fast clojure saas project

Notifications You must be signed in to change notification settings

ovistoica/clojure-saas-boilerplate

Repository files navigation

Clojure SaaS Boilerplate

This is a boilerplate for Clojure SaaS applications. It is based on:

Problems this boilerplate solves

There are many examples in the Clojure ecosystem but often times there is no place or codebase that keeps all the pieces together. This boilerplate aims to solve that problem by providing a complete solution for building a SaaS application that is truly production and enterprise ready.

Features

  • Authentication
  • Role based access control
  • User management - through the Cognito Console
  • Database migrations
  • Database seeding
  • Database backups
  • Database restores
  • Database snapshots
  • Frontend Web Application
  • UI Design System
  • UI Components
  • UI Boilerplate pages
  • Error handling
  • Logging
  • Monitoring
  • Testing
  • CI/CD
  • Deployment
  • Documentation
  • Email templates
  • Email sending

Development

Backend

cp saas-secrets.example.edn ~/.saas-secrets.edn

Populate the secrets with relevant information about you AWS Cognito pool and you local DB

To start a development environment, start a REPL with these aliases dev,backend,frontend,test, than call (user/reset)

Frontend

To connect a frontend repl run

npm run dev

OR

npm run devcards # for the UI docs

Then connect remotely to this REPL on port 70002 and run (shadow/repl :app) or :devcards depending on build