Miru Web Architecture

Rails 8 + React 19 + Vite application for time tracking, invoicing, expenses, payments, and reporting.

HTTPS SSR + JSON Active Record jobs cache / pubsub uploads payments email / notifications Devise + OAuth / JWT Users Browser / Team Identity Devise / OAuth Render deployment and supporting services Frontend React 19 + TS Vite + React Router TanStack Query served by Rails / Vite Miru Rails App Rails 8 on Falcon HTML + JSON endpoints time, invoices, expenses, reports Active Storage + Action Cable Devise, JWT, Stripe integration Solid Queue / Active Job PostgreSQL primary app database Solid Queue Worker async mailers, jobs, processing Redis cache S3 / Object Storage attachments and uploads Stripe payments and invoicing Email SMTP / delivery provider Legend Frontend Backend Data Infrastructure Security / auth Queue / async

App Surface

  • • React 19 and TypeScript power the main interactive UI.
  • • Vite handles frontend bundling in local development and production builds.
  • • Users move from time tracking to invoicing and payments in one app.

Core Backend

  • • Rails 8 serves HTML, APIs, auth, business logic, and integrations.
  • • PostgreSQL stores product data, billing records, and reporting inputs.
  • • Solid Queue workers handle asynchronous jobs and background processing.

External Systems

  • • Stripe handles payment collection and invoice-related payment flows.
  • • Object storage backs uploads through Active Storage.
  • • Redis and email delivery complete the operational support layer.