A modern, self-hostable changelog and roadmap platform with emoji reactions, custom themes, and automated newsletters.
- ๐ Website
- ๐ Live Demo (Login:
demo/demo) - ๐ณ Docker Hub
- ๐ Rich Event Management - TipTap editor with markdown support, tags, and media uploads
- ๐ Emoji Reactions - 8 reaction types (๐โค๏ธ๐ฅ๐๐๐ก๐ค๐) for community feedback
- ๐ณ๏ธ Voting System - Let users vote on proposed features
- ๐ Kanban Board - Drag-and-drop interface with customizable statuses
- ๐จ Theme System - Install custom themes with manifest-based configuration
- ๐ง Newsletter Automation - Auto-send emails when events change status
- ๐ฎ Email Templates - Customizable templates for different event types
- ๐ง Admin Dashboard - Full-featured SvelteKit admin panel
- ๐ RESTful API - Complete API for integrations
Admin: SvelteKit 2 ยท Svelte 5 ยท TailwindCSS ยท shadcn-svelte ยท TipTap
Backend: Go 1.21 ยท Gin ยท SQLite ยท GORM
Deploy: Docker (AMD64 & ARM64)
docker run -d \
-p 8080:8080 \
-e ADMIN_USERNAME=admin \
-e ADMIN_PASSWORD=changeme \
-e JWT_SECRET=your-secret-key \
-e BASE_URL=https://changelog.yourdomain.com \
-v shipshipship_data:/app/data \
nelkinsky/shipshipship:latestAccess: http://localhost:8080/admin
version: "3.8"
services:
shipshipship:
image: nelkinsky/shipshipship:latest
ports:
- "8080:8080"
environment:
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=changeme
- JWT_SECRET=your-secret-key
- BASE_URL=https://changelog.yourdomain.com
- GIN_MODE=release
volumes:
- shipshipship_data:/app/data
restart: unless-stopped
volumes:
shipshipship_data:git clone https://github.com/GauthierNelkinsky/ShipShipShip.git
cd ShipShipShip
# Start backend + admin dev server
./start-dev.sh
# Or backend only
./quick-start.shDev URLs:
- Backend: http://localhost:8080
- Admin Dev: http://localhost:5173
| Variable | Default | Description |
|---|---|---|
ADMIN_USERNAME |
admin |
Admin username |
ADMIN_PASSWORD |
admin |
Admin password |
JWT_SECRET |
your-secret-key-change-in-production |
JWT signing key |
BASE_URL |
(auto-detected) | Base URL of your instance (e.g., https://changelog.yourdomain.com) - used for email unsubscribe links |
PORT |
8080 |
Server port |
GIN_MODE |
debug |
debug or release |
DB_PATH |
./data/changelog.db |
Database path |
ShipShipShip separates the admin interface from the public-facing changelog through installable themes:
- Install Theme: Upload via
/admin/customization/theme - Configure: Customize theme settings (colors, layout, etc.)
- Map Statuses: Connect your event statuses to theme categories
- Publish: Your themed changelog appears at the root URL
Without a theme, the root URL shows the admin interface for initial setup.
- Go to
/admin/newsletter/settings - Configure SMTP settings (Gmail, Outlook, SendGrid, etc.)
- Test configuration
- Enable automation for status-based triggers
- Customize email templates
Automation: Automatically send newsletters when events move to specific statuses (e.g., "Released").
# Full dev mode (hot reload)
./start-dev.sh
# Rebuild everything
./start-dev.sh --rebuild
# Backend only
./quick-start.shadmin/ # SvelteKit admin panel (SPA)
โโโ src/routes/admin/
โ โโโ events/ # Kanban board
โ โโโ newsletter/ # Email management
โ โโโ customization/ # Themes & branding
โโโ build/ # Static output (served by backend)
backend/ # Go API server
โโโ handlers/ # API endpoints
โโโ models/ # Database models
โโโ services/ # Business logic (email, automation)
โโโ main.go # Server entry point
data/ # SQLite + uploads + themes
Public:
# Get public events
curl http://localhost:8080/api/events
# Add reaction
curl -X POST http://localhost:8080/api/events/1/reactions \
-H "Content-Type: application/json" \
-d '{"reaction_type":"thumbs_up"}'
# Subscribe to newsletter
curl -X POST http://localhost:8080/api/newsletter/subscribe \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com"}'Admin (requires JWT):
# Create event
curl -X POST http://localhost:8080/api/admin/events \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"New Feature","status":"Proposed","content":"..."}'Contributions welcome! Fork the repo, create a feature branch, and submit a PR.
Apache 2.0 - see LICENSE
- Issues: GitHub Issues
- Website: shipshipship.io
- Demo: demo.shipshipship.io
Built with โค๏ธ and shipped with ShipShipShip ๐ข