ShipClojure Datom Documentation
Welcome to the ShipClojure Datom documentation! This stack provides a powerful, data-centric approach to building modern web applications with Clojure and ClojureScript.
What is ShipClojure Datom?
ShipClojure Datom is a full-stack Clojure template optimized for building SaaS applications, AI tools, and data-rich web applications. It uses:
- Frontend: Replicant (pure data UI), DataScript (client-side Datalog), Nexus (action/effect system)
- Backend: Datomic (immutable database), Ring, Reitit, Integrant
- Styling: Tailwind CSS + DaisyUI
The Datom stack is ideal for:
- Applications with complex data relationships
- Offline-first capabilities
- Functional, immutable architecture
- Data-intensive applications with powerful queries
Key Features
- Local-First Architecture: Build offline-capable apps with automatic sync
- Datalog Queries: Powerful graph queries with time-travel and historical data
- Immutable UI: Replicant's declarative components with automatic reactivity
- CQRS Pattern: Clear separation between commands and queries
- Type-Safe: Schema validation across the stack with Malli
Getting Started
New to ShipClojure Datom? Start here:
- Getting Started - Set up your development environment
- Stack Overview - Understand the technology choices
- REPL Workflow - Learn interactive development
- Code Structure - Navigate the codebase
Core Concepts
Authentication & Security:
- Authentication - JWT tokens, OAuth2, session management
- OAuth2 Providers - Setting up social login
Data & Backend:
- CQRS - Commands and queries pattern
- Organisations - Multi-tenant organisations with memberships and invitations
- Role-Based Access Control - Route and CQRS role enforcement
- Ring API - Building HTTP endpoints
- Using System Components - Dependency injection
Frontend Development:
- UI Pages - Creating pages with the standard page pattern
- Frontend Navigation - Client-side routing
- Icons - SVG sprite system
- Toasts - Notification system
Payments:
- Payments - Stripe integration for subscriptions and one-time purchases
Production & Deployment
- Secrets Management - Managing environment variables
- Going to Production - Deployment guide
- Docker Build Guide - Building Docker images
- Frontend Release - Optimizing frontend builds
Additional Resources
- Static Pages - Server-side rendering
- Troubleshooting - Common issues and solutions
- Privacy Policy Template - GDPR-compliant template
Need Help?
- Check out the GitHub repository
- Email support: support@shipclojure.com