All work

Three Roses Property Management

A rental site for homes in Memphis, Detroit and Alabama, with a secure online tenant application that produces a signed PDF and stores documents privately.

Client
Three Roses Property Management
Location
Memphis, TN · Detroit, MI · Birmingham and Pinson, AL
What we built
Rental listings · secure online application
Stack
Astro · Vercel · Cloudflare R2 · Resend
The Three Roses Property Management home page, with a full-width photo of one of its Memphis apartment communities.
The Three Roses home page on a phone, with the “find your alabama home” hero and Apply now and Browse rentals buttons.

At a glance

Three Roses rents Section 8 and affordable homes in Memphis, Detroit and Alabama. It needed a page for every rental, and an application renters could finish on a phone without anyone retyping it at the other end.

A rental application is some of the most sensitive paperwork a person fills in: identity, income, rental history, references. So half the job was the form, and the other half was where that information goes and who can see it.

  • 10 rental listings Memphis · Detroit · Birmingham · Pinson
  • 9 application steps signed and delivered as a PDF
  • 25 × 30 MB supporting documents PDFs and phone photos, stored privately
  • 7 days document links signed, then expired

Source: the live site, its property catalog and its application, September 2026.

Before and after

The home page before we started, and today. Drag the line, or focus it and use the arrow keys.

The Three Roses Property Management home page, with a full-width photo of one of its Memphis apartment communities. The owner’s previous site, Gordillo Holdings Management: a line-drawn logo of buildings and trees, “Private owner rentals” and a phone number, above a row of property photos.

Before: the owner’s previous rental site, ghmrental.com, under the Gordillo Holdings Management name, rebuilt from a copy we saved in July 2026. After: the new Three Roses site.

Every home, honestly listed

All the rentals live in one catalog, and every listing page is generated from it, so adding a property means adding a record, not designing a page. The rentals page filters by Tennessee, Michigan, Alabama or Available only, with a live count of what’s showing.

The catalog says so when something isn’t known yet. Pending details read Details coming soon, prices appear only where they’ve been confirmed, and a rented home keeps its page but drops out of the application and loses its apply button. Each residence page carries structured data for search engines and, on a phone, a slim apply bar that follows the reader down the page.

The rentals catalog filtered to Alabama, showing 3 of 10 homes, starting with the 1125 Thomason Ave house and apartment in Birmingham.
One tap narrows the catalog to a state: Alabama shows 3 of 10.
The Grand Oaks residence page: a full-bleed photo of the Memphis apartment community, with its address, “From $750/mo”, 1 and 2 bedroom layouts, utilities included, and an Apply for this residence button.
Grand Oaks in Memphis, from the same template as every other home.

Nine steps, one screen at a time

The application asks for everything screening needs, in nine short steps, each checked before you move on so problems surface one screen at a time. Inputs are at least 48px tall, Next sits under the thumb, and every field carries the keyboard and autocomplete hints that let a phone fill in names and addresses. With JavaScript off, the whole form still renders on one page and still submits.

Five of the nine steps, from the live form, shown empty:

Step 1 of 9 of the empty rental application, “Application & Applicant”, with property, move-in date, legal name, date of birth and ID fields.

Signed, delivered, kept private

On submit, the server builds a signed PDF of the whole application: every answer, the certification text, the signature and a signature record. It goes to the managers who cover the property’s state, with a copy to the applicant, and the submission is added to a private log only authorized staff can open.

Documents go straight from the phone to private storage, including the HEIC photos iPhones take by default. The server reads the first bytes of every file to confirm it really is a PDF or an image, and staff get signed links that expire after seven days. Uploads were tested on real iPhones and Android phones, and production downloads were checked byte for byte.

  • Bot protection. An invisible Cloudflare Turnstile challenge, a honeypot field and a minimum time on the form, with no puzzle for real people.
  • Sensitive details out of sight. The most sensitive screening details never appear in an email subject, preview, URL or log.
  • No secrets in the browser. Storage and email credentials live only on the server, and emailed links point at the Three Roses site, never the storage bucket.
For engineersThe signature record, the PDF and state routing

The certification text lives in one constant that both the page and the server read. The browser sends a hash of the text it showed; the server recomputes the hash from its own copy and compares, so the signed words and the recorded words can’t drift apart. The signing time comes from the server clock, never the form.

The PDF is drawn with pdf-lib in a module with no framework or email imports, so it can be tested on its own. Routing keys off each property’s state field, so a new listing in a covered state routes correctly the moment it’s added, and a state with no managers assigned goes to everyone rather than no one. The applications log is appended through short-lived federated credentials, so no long-lived key is stored anywhere.

The empty Supporting documents step on a phone: up to 25 PDF or image files, 30 MB each, with a “Click to choose files or drag them here” area and a Submit application button.
Supporting documents, on a phone

The result

Three Roses is live at threerosespm.com on Astro and Vercel: ten rentals and a home for sale, each on its own page, and an application a renter can finish on a phone. Every submission arrives as a signed PDF with its documents one private link away, and Google Analytics counts applications, calls, emails and requests for directions.

A rental site that shows every home honestly, and an application that gets signed paperwork to the right people without exposing anyone’s details on the way.

Need a site that takes applications, not just inquiries?

Tell us what your customers have to send you. We’ll build the pages that sell it and the secure form that collects it, delivered to the right people every time.