v0 · Rails 8 template

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

Rails 8.1.2Ruby 4.0.1PostgresSolid Queue/Cache/CablePhlex 2Tailwind v4DaisyUI v5HotwireBunDeviseRails Event StoreFlipperSentryLogrageStripeKamal 2

Ready to fork it?

Clone, set config/master.key, run bin/setup, and ship.

Cookies i prywatność

Używamy plików cookies, aby zapewnić działanie strony, mierzyć ruch i pokazywać dopasowane treści. Możesz wybrać, na które kategorie się zgadzasz. Szczegóły w Polityce Prywatności.