Rails 8 template for shipping real apps fast.
Web, JSON API, and admin panel — wired together with auth, jobs, event sourcing, push, moderation, billing, AI, and a Hotwire Native iOS shell.
Or run bin/dev and explore /admin as master_admin.
What's wired up
- Five-DB Postgres setup (primary / cache / queue / cable / events)
- JWT API + payload encryption + Apple/Google ID token verifiers
- Per-domain RES Configuration pattern + 9 service base classes
- Phlex layouts, ~17 email components, ~20 Stimulus controllers
- Stripe checkout + portal + webhook + monthly reset job
- Slack handlers, FCM push, ActionCable JWT auth
- Moderation framework with 24h auto-unlock + admin tools
- Marketing dashboard with deterministic SHA256 variance
What's included
Per-feature docs →Devise + JWT auth
Web sessions via Devise + magic-link, Google OAuth, JWT bearer for the API with refresh-token rotation and Apple/Google ID-token verifiers.
Payload encryption
RSA-OAEP + AES-256-GCM end-to-end envelope for mobile API requests/responses, with key rotation + retired-key handling.
Moderation framework
Polymorphic Moderation model + Moderatable concern on User. 24h auto-unlock, suspended-user login block, admin approve/confirm flow.
Push + realtime + Slack
FCM push notifications, ActionCable channel with JWT auth, persisted Notification + UserNotification, Slack incoming-webhook handlers wired to RES events.
Hotwire Native bridge
User-Agent detection sets Current.hotwire_native, conditional native stylesheet, /configurations/ios_v1.json path-config endpoint, ready-to-rename iOS Xcode shell.
Web + admin shells
Authenticated /dashboard, master-admin gated /admin/* with Roles, FeatureFlags, Bug Reports, Feature Requests, Changelog, Investigations (LLM audit log).
Web onboarding
8-state machine on the existing Onboarding model + reminder sweep job. Stimulus polling controller, Phlex view, idempotent first-lesson-reminder mail.
Stripe billing
Checkout + portal + webhook controllers, Billing::Purchase / Product / ProviderReference / WebhookEvent, daily ResetSubscriptionsJob for monthly/weekly plans.
AI infrastructure
RubyLLM with use_new_acts_as, multi-provider clients (OpenAI / Gemini / Grok / Qwen / ElevenLabs TTS), AiUsage logging, ai_audit_logs, generic tool-calling agent framework.
Marketing tooling
Singleton MarketingScenario + deterministic SHA256-variance snapshot generator. Build-in-public dashboards from a baseline + growth config; reproducible across runs.
Multi-DB + RES
Five Postgres databases (primary / cache / queue / cable / events). Rails Event Store + per-domain Configuration pattern. Eight base classes for Callable / Eventable / ApplicationService.
Phlex + Hotwire + Bun
Phlex 2 components & layouts (no ERB), Tailwind v4 + DaisyUI v5, Bun-bundled JS, ~20 Stimulus controllers, Lexxy rich-text editor, Lucide icons.
Waitlist landing page
Public /waitlist form with encrypted local storage + background ActiveCampaign list sync. Honeypot anti-spam, admin index, ships dormant until waitlist_list_id is set.
N+1 query detection
Prosopite scans every dev request and every test for N+1 queries via call-stack + SQL fingerprint matching. Logs in dev, raises in tests so regressions break the build.
Stack
Ready to fork it?
Clone, set config/master.key, run bin/setup, and ship.