Home
Softono
ShipShipShip

ShipShipShip

Open source Apache-2.0 Docker
290
Stars
14
Forks
8
Issues
2
Watchers
3 months
Last Commit

About ShipShipShip

# ๐Ÿšข ShipShipShip A modern, self-hostable changelog and roadmap platform with emoji reactions, custom themes, and automated newsletters. ![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg) ![Go Version](https://img.shields.io/badge/go-1.21-blue.svg) ![Node Version](https://img.shields.io/badge/node-20+-green.svg) ![Docker](https://img.shields.io/badge/docker-ready-blue.svg) <img width="1280" height="832" alt="SSSBanner" src="https://github.com/user-attachments/assets/cc286bff-7838-4b35-b065-44ef3c99bc50" /> ## ๐Ÿ”— Links - **๐Ÿ“‹ [Website](https://shipshipship.io/)** - **๐Ÿ”— [Live Demo](https://demo.shipshipship.io/admin)** (Login: `demo` / `demo`) - **๐Ÿณ [Docker Hub](https://hub.docker.com/r/nelkinsky/shipshipship)** ## โœจ Features - ๐Ÿ“‹ **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 ...

Platforms

Web Self-hosted Docker

Languages

Docker

๐Ÿšข ShipShipShip

A modern, self-hostable changelog and roadmap platform with emoji reactions, custom themes, and automated newsletters.

License Go Version Node Version Docker

SSSBanner

๐Ÿ”— Links

โœจ Features

  • ๐Ÿ“‹ 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

๐Ÿ—๏ธ Tech Stack

Admin: SvelteKit 2 ยท Svelte 5 ยท TailwindCSS ยท shadcn-svelte ยท TipTap
Backend: Go 1.21 ยท Gin ยท SQLite ยท GORM
Deploy: Docker (AMD64 & ARM64)

๐Ÿš€ Quick Start

๐Ÿ”‘ Admin Panel: /admin Visit http://localhost:8080/admin (or https://your-domain/admin) right after installation to complete setup.

Docker (Recommended)

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:latest

๐Ÿ”‘ Admin Panel: http://localhost:8080/admin

Docker Compose

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:

๐Ÿ”‘ Admin Panel: http://localhost:8080/admin

Local Development

git clone https://github.com/GauthierNelkinsky/ShipShipShip.git
cd ShipShipShip

# Start backend + admin dev server
./start-dev.sh

# Or backend only
./quick-start.sh

Dev URLs:

โš™๏ธ Configuration

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

๐ŸŽจ Theme System

ShipShipShip separates the admin interface from the public-facing changelog through installable themes:

  1. Install Theme: Upload via /admin/customization/theme
  2. Configure: Customize theme settings (colors, layout, etc.)
  3. Map Statuses: Connect your event statuses to theme categories
  4. Publish: Your themed changelog appears at the root URL

Without a theme, the root URL shows the admin interface for initial setup.

๐Ÿ“ง Newsletter Setup

  1. Go to /admin/newsletter/settings
  2. Configure SMTP settings (Gmail, Outlook, SendGrid, etc.)
  3. Test configuration
  4. Enable automation for status-based triggers
  5. Customize email templates

Automation: Automatically send newsletters when events move to specific statuses (e.g., "Released").

๐Ÿ› ๏ธ Development

# Full dev mode (hot reload)
./start-dev.sh

# Rebuild everything
./start-dev.sh --rebuild

# Backend only
./quick-start.sh

Project Structure

admin/              # 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

๐Ÿ“– API Examples

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":"[email protected]"}'

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":"..."}'

๐Ÿค Contributing

Contributions welcome! Fork the repo, create a feature branch, and submit a PR.

๐Ÿ“ License

Apache 2.0 - see LICENSE

๐Ÿ’ฌ Support


Built with โค๏ธ and shipped with ShipShipShip ๐Ÿšข