A lightning-fast, lightweight bookmark manager with AI-powered auto-categorization, built with Go + TypeScript + SQLite.
- 🚀 Blazingly Fast: Single Go binary with embedded frontend
- 🪶 Ultra Lightweight: <50MB RAM usage, minimal resource footprint
- 🔍 Full-Text Search: Powered by SQLite FTS5 with ranked results
- 🏷️ Smart Tagging: Interactive tag cloud with auto-categorization
- 🎨 Cyberpunk UI: Futuristic design with neon effects
- ⚡ Real-Time: Instant search and updates
- 🐳 Container Ready: Docker & Kubernetes deployment configs
- 🤖 AI Ready: Learning system for intelligent categorization
# Clone and build
git clone <repo>
cd bookmark.arcbjorn.com
./build.sh
# Run
./torimemo
# Open http://localhost:8080# Build and run
docker build -t torimemo .
docker run -p 8080:8080 -v torimemo_data:/data torimemo
# Or use docker-compose
docker-compose up -dkubectl apply -f k8s.yamlGET /api/bookmarks- List bookmarks (with pagination, filtering)POST /api/bookmarks- Create bookmarkGET /api/bookmarks/{id}- Get bookmarkPUT /api/bookmarks/{id}- Update bookmarkDELETE /api/bookmarks/{id}- Delete bookmarkGET /api/bookmarks/search?q={query}- Full-text search
GET /api/tags- List tagsGET /api/tags/cloud- Tag cloud with sizesGET /api/tags/popular- Popular tagsPOST /api/tags- Create tagPUT /api/tags/{id}- Update tagDELETE /api/tags/{id}- Delete tag
GET /api/health- Health checkGET /api/stats- Database statistics
- Backend: Go 1.25 (standard library only)
- Database: SQLite with FTS5, WAL mode
- Frontend: TypeScript + Lit Web Components + TailwindCSS
- Search: Full-text search with ranking and snippets
- Tags: Many-to-many with weighted tag cloud
- Deployment: Single binary with embedded assets
- Binary Size: 12MB (with embedded frontend + AI)
- Memory Usage: <50MB RAM
- Cold Start: <100ms
- Search Latency: <10ms for 10k+ bookmarks
- Database: SQLite with FTS5 indexing
# Frontend development
cd web
pnpm install
pnpm run dev
# Backend development
go run main.go
# Build optimized
./build.shThe simplest deployment - just copy the binary:
# Build single binary (includes frontend)
./build.sh
# Deploy anywhere - single 12MB binary
scp torimemo user@server:/usr/local/bin/
ssh user@server 'torimemo'Quick production setup with SSL and reverse proxy:
# Copy and edit environment variables
cp .env.example .env.production
# Edit .env.production with your values
# Deploy with SSL-enabled reverse proxy
./deploy.shPORT: Server port (default: 8080)DB_PATH: Database path (default: ./torimemo.db)LOG_LEVEL: Logging level (DEBUG, INFO, WARN, ERROR)ALLOWED_ORIGINS: CORS allowed originsRATE_LIMIT: Rate limit (requests per minute)RATE_BURST: Rate limit burst sizeJWT_SECRET: JWT signing secret (change in production!)JWT_EXPIRY: JWT token expiry duration
# Development
docker-compose up -d
# Production with nginx reverse proxy
docker-compose -f docker-compose.prod.yml up -d- Set strong
JWT_SECRETin production - Configure
ALLOWED_ORIGINSfor your domain - Use real SSL certificates (replace self-signed)
- Set up database backups
- Configure log rotation
- Monitor health endpoint at
/api/health - Set appropriate
LOG_LEVEL(WARN for production)
Three-layer AI system for intelligent bookmark categorization:
- Rule-based: Domain patterns, URL analysis (always active)
- FastText: Lightweight text classification (optional)
- ONNX Models: Advanced content understanding (optional)
# Create model directories
mkdir -p ./models/fasttext ./models/onnx
# Start application (Layer 1 works immediately)
./torimemo
# Check AI predictive analysis
curl -X POST http://localhost:8080/api/ai/predict-tags \
-H "Content-Type: application/json" \
-d '{"url":"https://github.com","title":"GitHub","description":"Code repository"}'
# Find duplicate bookmarks
curl -X POST http://localhost:8080/api/ai/duplicates/check \
-H "Content-Type: application/json" \
-d '{"url":"https://github.com/golang/go","title":"Go Programming"}'POST /api/ai/predict-tags- Get predictive tag suggestionsPOST /api/ai/duplicates/check- Check for duplicate bookmarksPOST /api/ai/duplicates/find-all- Find all duplicate groupsPOST /api/ai/cluster- Cluster bookmarks by similarityPOST /api/ai/cluster/analyze- Analyze clustering potentialPOST /api/ai/predict/learn- Submit learning feedback
📖 Full AI Setup Guide: See AI_SETUP.md for detailed model installation and configuration.
MIT License - see LICENSE file for details.
Built with ❤️ in Go and TypeScript