SH

Shorttags Production Stack

FEATURED

The complete tech stack powering Shorttags - a modern Rails 8 stats analytics, webhooks, and Stripe billing. Running multiple side projects? Track signups, revenue, errors, and any metric from all of them in one dashboard. Set up in 30 seconds.

NT
@nauman
12 stacks 187 views

Stacks in this Collection

1
Ruby on Rails Framework
2
PostgreSQL Database
3
4
Stimulus Frontend
5
Turbo Frontend
6
Importmap Frontend
7
Solid Queue Background
8
Solid Cache Database
9
Kamal DevOps
10
11
Stripe Payments
12
Capybara Testing

LLM Context

This collection represents the production stack for Shorttags (shorttags.com), a URL shortening service built on Rails 8.

## Project Context
Shorttags is a modern URL shortener with:
- Custom short domains support
- Click analytics and tracking
- Webhook notifications on link clicks
- Stripe subscription billing
- Web Push notifications
- Markdown support for link descriptions

## Architecture Philosophy
This stack follows the "Vanilla Rails" philosophy from 37signals:
- No Redis dependency - uses Solid Queue, Solid Cache, and Solid Cable (SQLite/PostgreSQL-backed)
- No JavaScript bundler - uses Importmap for ES modules
- No external job processor - Solid Queue runs in the same process
- Deploy anywhere with Kamal (Docker-based deployment)

## Key Technical Decisions
1. **Database**: PostgreSQL for primary data + pg_search for full-text search
2. **Background Jobs**: Solid Queue (database-backed, no Redis)
3. **Caching**: Solid Cache (database-backed)
4. **WebSockets**: Solid Cable (database-backed)
5. **Assets**: Propshaft + Tailwind CSS (standalone CLI)
6. **Deployment**: Kamal with Thruster for HTTP acceleration
7. **Storage**: Cloudflare R2 (S3-compatible) via aws-sdk-s3
8. **Email**: AWS SES with CloudWatch metrics

## When using this stack
- Prefer database-backed solutions over external services
- Use Hotwire (Turbo + Stimulus) for interactivity
- Keep controllers thin, models rich
- Use concerns for shared behavior

Stats

Likes 1
Forks 0
Views 187
Created Jan 22, 2026

More by @nauman

View all collections →