Maple 1.0
Maple v1.0
Release date: March 5, 2026
Maple is a lightweight, self-hosted blog built with Spring Boot 3.
Features
Posts
- Create, edit, and delete posts (admin only)
- Markdown with GFM tables and image attributes
- Home page shows auto-generated excerpts
Auth
- Form login with BCrypt password hashing
ROLE_USER/ROLE_ADMIN— all write actions require admin- Public registration is disabled
Media
- Upload images (JPEG, PNG, GIF, WebP) and videos (MP4, WebM) up to 50 MB
- MIME type validated server-side; UUID filenames; path-traversal protected
- Files embeddable in posts;
<video>tags from/uploads/pass through the Markdown sanitizer
Database
- Embedded H2 file database, no setup required
- Seed data (admin account + sample posts) inserted on first run
Frontend
- Thymeleaf + Bootstrap, server-side rendered
- Shared footer fragment, custom 404 page, favicon
Tech Stack
| Language | Java 21 |
| Framework | Spring Boot 3.2.4 |
| Persistence | Spring Data JPA + H2 |
| Templates | Thymeleaf |
| Markdown | commonmark-java 0.22 |
| Build | Gradle |
Getting Started
./gradlew bootRunOpens at http://localhost:8080. Default credentials (seeded on first run):
- Email:
admin.admin@domain.com - Password:
password
⚠️ Change the default credentials before exposing the app to a network.
The database console is available at http://localhost:8080/h2-console.
- JDBC URL:
jdbc:h2:file:./data/blogapp - Username:
admin - Password:
password
⚠️ These credentials are set inapplication.propertiesand should be changed deployment.
Known Limitations
- Single admin, no multi-author support
- No post pagination
- H2 is not suited for production — swap for PostgreSQL/MySQL if needed