Gravy's product sits between everyday rent payments and a future home purchase. Renters need a trustworthy mobile experience. The Gravy team needs internal tools that keep up as the customer list grows. We joined to harden the systems behind both.
The challenge
The mobile app depended on an API that had to stay fast and reliable as usage grew. Operational work was still too manual for a team trying to serve more customers without adding friction. Database health, API structure, and admin workflows all needed attention at once.
What we built
We focused on the server-side foundation and the tools operators use every day:
- A more robust, scalable API surface for the mobile app
- PostgreSQL performance, health, and scalability improvements
- An admin tool tailored to how the Gravy team manages and supports customers
The admin experience made day-to-day support and operations clearer, so the team could spend less time fighting tooling and more time helping renters move toward homeownership.
How we built it
The product stack mixed a Rails-backed API and data layer with a modern web admin built in React, Next.js, TypeScript, and Tailwind CSS. We treated the API, database, and admin UI as one system: clearer data access, better operational visibility, and interfaces that matched real support workflows.
API and data reliability
Strengthened the Rails API and improved PostgreSQL performance so the mobile app could depend on a healthier backend as traffic grew.
Operator-first admin tooling
Built admin workflows around how Gravy actually serves customers, not generic CRUD screens.
Mobile-ready backend
Kept the API shaped for the mobile product so features and benefits could ship without the app fighting the server.
Our role
Hardihood contributed backend engineering, database work, and frontend admin tooling. The outcome was a sturdier platform for Gravy's mobile product and a clearer internal system for the team running it.