Skip to content

Commit 073ee59

Browse files
Add stack description
1 parent 7592bd1 commit 073ee59

File tree

1 file changed

+63
-31
lines changed

1 file changed

+63
-31
lines changed

README.md

Lines changed: 63 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,6 @@
33
A quick way to start a full-stack Clojure app with server-side rendering.
44
Based on SQLite, HTMX, AlpineJS, and TailwindCSS v4.
55

6-
## Features
7-
8-
- **Server-Side Rendering**: Use Hiccup for HTML generation
9-
- **Modern Frontend Stack**: Dynamic frontend with AlpineJS and HTMX for interactive components
10-
- **Styling**: Pre-configured with TailwindCSS v4 for modern, utility-first styling
11-
- **Database**: SQLite integration for simple yet powerful data persistence
12-
- **Development Tools**:
13-
- Hot reloading for rapid development
14-
- REPL-driven development support
15-
- Integrated testing setup
16-
- **Deployment Ready**:
17-
- Docker configuration included
18-
- Deployment setup with Kamal
19-
- GitHub Actions workflows for CI/CD
20-
- **Code Quality**:
21-
- Clojure formatting (cljfmt)
22-
- Linting configuration (clj-kondo)
23-
- Test infrastructure
24-
25-
## Stack:
26-
27-
286
## Usage
297

308
1. Create a new Clojure project using Clojure CLI:
@@ -40,22 +18,76 @@ Based on SQLite, HTMX, AlpineJS, and TailwindCSS v4.
4018
neil new io.github.abogoyavlensky/clojure-stack-lite myproject
4119
```
4220

43-
2. Update the project configuration:
44-
- Edit image label in `Dockerfile`
45-
- Edit project domain in `resources/public/manifest.json`
46-
- Edit project description in `README.md`
21+
2. Start development:
4722

48-
3. Start development:
49-
Manage project and start server from built-in REPL:
5023
```shell
5124
cd myproject
52-
# Run server in dev mode
5325
bb repl
5426
(reset)
5527
```
56-
28+
5729
The server should be available at `http://localhost:8000`.
58-
Check out README.md for more information on how to use the project.
30+
Check out project's README.md and template documentation for more information on how to use the project.
31+
32+
> [!TIP]
33+
> You might need to update the project configuration for going to production:
34+
- Edit image label in `Dockerfile`
35+
- Edit project domain in `resources/public/manifest.json`
36+
- Edit project description in `README.md`
37+
38+
## Features
39+
40+
- **Server-Side Rendering**: Use Hiccup for HTML generation
41+
- **Modern Frontend Stack**: Dynamic frontend with AlpineJS and HTMX for interactive components
42+
- **Styling**: Pre-configured with TailwindCSS v4 for modern, utility-first styling
43+
- **Database**: SQLite integration for simple yet powerful data persistence
44+
- Migration system with Ragtime
45+
- SQL query building with HoneySQL
46+
- WAL mode enabled for better concurrency
47+
- **Development Tools**:
48+
- Hot reloading for rapid development
49+
- REPL-driven development support
50+
- Integrated testing setup with code coverage
51+
- Dependency management with deps.edn
52+
- Babashka tasks for common operations
53+
- **Deployment Ready**:
54+
- Deployment setup with Kamal
55+
- GitHub Actions workflows for CI/CD
56+
- **Code Quality**:
57+
- Clojure formatting (cljfmt)
58+
- Linting configuration (clj-kondo)
59+
- Test infrastructure with eftest and cloverage
60+
- Dependency version checking (antq)
61+
62+
## Stack
63+
64+
### Backend
65+
- **Integrant**: Component lifecycle management for applications
66+
- **Reitit**: Fast data-driven routing
67+
- **Ring/Jetty**: HTTP server adapter
68+
- **Hiccup**: HTML generation from Clojure data structures
69+
70+
### Database
71+
- **SQLite**: Lightweight, file-based database
72+
- **next.jdbc**: JDBC-based database access
73+
- **HoneySQL**: SQL as Clojure data structures
74+
- **Ragtime**: Database migrations
75+
76+
### Frontend
77+
- **HTMX 2.0**: HTML extensions for AJAX, WebSockets without writing JavaScript
78+
- **AlpineJS 3.x**: Lightweight JavaScript framework for adding behavior
79+
- **TailwindCSS 4**: Utility-first CSS framework
80+
81+
### Development
82+
- **Babashka**: Project management with tasks
83+
- **clj-kondo**: Static analyzer and linter
84+
- **cljfmt**: Code formatter
85+
- **eftest/cloverage**: Testing and code coverage
86+
87+
### Deployment
88+
- **Docker**: Containerization
89+
- **Kamal**: Zero-downtime deployments
90+
- **GitHub Actions**: CI/CD workflows
5991

6092
## Project structure
6193

0 commit comments

Comments
 (0)