Overview
EZ Storage is a self-storage operator with more than 40 years in business and 15 facilities across Detroit, Philadelphia, Pittsburgh, and St. Louis. We took over support in 2024, when the public site was still an ASP.NET 2.0 application more than fifteen years old.
The first phase added something that application had never done: an integration with a third-party storage management API, so customers could see real availability and real prices and start a lease online instead of calling an office. When the legacy stack ran out of room, we planned a ground-up redevelopment with the client and rebuilt the site on TanStack with React, TypeScript, Vite, Tailwind, and Nitro.
Alongside it we built a custom internal dashboard on the same stack, putting real-time reporting and automated SEO audit reports in the operator's hands. That is the same audit program running for Bluebird Creative Co and Schneider Law Firm. The site itself is retail work: fifteen storefronts that have to close the sale.
The Challenge
Services
- Legacy ASP.NET Support and Maintenance
- Storage Management API Integration
- Online Lease Processing
- Real-Time Inventory and Pricing
- Ground-Up Redevelopment
- TanStack Start & React
- Multi-Location SEO Architecture
- Custom Internal Dashboard
- Real-Time Reporting
- Automated SEO Audits and Reports
- 15
- Facilities across Detroit, Philadelphia, Pittsburgh, and St. Louis
- ASP.NET 2.0
- The application we inherited, supported, and replaced
- Real-Time
- Unit availability, pricing, and discounts from the storage API
- Dashboard
- Internal reporting and automated SEO audit reports
The Handoff
A fifteen-year-old application, taken over and kept running.
When Select Interactive took over support in 2024, EZ Storage was running an ASP.NET 2.0 application that had been in service for more than fifteen years. Nobody gets to pause the business while a rebuild happens, so the first job was operational: understand a codebase nobody on the current team wrote, keep it stable, and keep fifteen facilities bookable. That period is also where the real requirements came from. You learn what a site actually has to do by maintaining it, not by interviewing about it.
API Integration
Real inventory, real prices, a lease that starts online.
The largest addition to the legacy site was an integration with the storage management platform EZ Storage runs its operation on. That turned a static list of facilities into a live storefront: unit sizes from 5x5 through 10x30 with availability and pricing read in real time, list price shown against the discounted price, promotions attached at the unit level, and feature attributes like climate control or drive-up access that customers can filter on. Reserve and Rent Now both became in-site actions instead of a phone call, so a customer can go from a search result to a signed lease without leaving the site. Nothing on the page is a nightly snapshot. What a customer sees is what the system of record says at that moment, which is what keeps a rented unit from being sold twice.
The Rebuild
Rebuilt on TanStack, with the integration intact.
The legacy stack eventually stopped being a constraint we could work around and became the constraint. We planned the redevelopment with the client rather than presenting it, then rebuilt the entire site on TanStack with React, TypeScript, Vite, Tailwind, and Nitro. The API layer was refactored rather than reimplemented from scratch, so online lease processing, real-time inventory, and pricing and discount handling carried over intact. The measure of a rebuild like this is that nothing a customer relies on quietly disappears in the move.
Local Search
Fifteen facilities, fifteen local search footprints.
A self-storage operator competes address by address, so the site is structured that way. Market hubs sit at /detroit, /philadelphia, /pittsburgh, and /st-louis, with each facility on its own page underneath. Every facility page carries the things a nearby searcher and a search engine both want: office hours against gate access hours, amenities, photos, reviews, long-form local area content covering neighborhoods and nearby cities, and cross-links to the other locations in that market. Structured data is emitted per facility using the schema.org SelfStorage type, alongside Organization, WebSite, and BreadcrumbList markup site-wide.
Internal Dashboard
The reporting and SEO tooling the operator actually opens.
The second half of the engagement is a custom internal dashboard built on the same TanStack stack with Shadcn/UI. It gives the EZ Storage team real-time reporting on their own numbers, runs SEO audits against the site, and produces automated audit reports on a schedule. It is the same audit program we run for other clients, moved inside a product the operator owns instead of arriving as a monthly attachment. The public site and the dashboard share a stack, which means one set of conventions and one team maintaining both.
Built With
A TypeScript rebuild on TanStack Start, with a third-party storage management API supplying live inventory, pricing, and lease processing, plus an internal dashboard on the same stack.
- Nitro
- React
- Shadcn/UI
- Tailwind CSS
- TanStack Form
- TanStack Query
- TanStack Router
- TanStack Start
- TypeScript
- Vite
- Zod
Insights
Related articles
Your Website Redesign is Bigger than a New Look: A Modern Process For Your Team
A modern website redesign is half UX process and half platform, AI, and discoverability decisions. Here is what the work actually looks like for the marketing and BD teams who own the result.
Beyond WordPress: Why Real Web Applications Deserve a Real Tech Stack
WordPress, Wix, and Squarespace are fine for brochure websites, but if your business runs through your website, you need purpose-built tools. Here is what that looks like and why it matters.
From Audit to Action: How We Use Cursor’s SEO Skill and Agents for Full-Stack SEO
A case study in running a comprehensive SEO audit with Cursor’s SEO skill, then using agents to implement technical fixes and align content with what the audit recommends, so clients move from findings to shipped improvements in days, not weeks.
The TanStack Ecosystem: How We Build Websites and Web Apps the Right Way
A deep dive into how and why we use TanStack Start, Router, Query, Form, DB, Table, and AI, and why choosing the right rendering strategy from the start changes everything.
Internal Web App
MJEC: Internal App & Client Tools
A dual-platform solution for McMillan James Equipment Company: a secure internal app for managing 125+ manufacturers and partners, and a public-facing client tool that lets MJEC staff generate on-demand PDF brochures for prospective customers.
Arts & Entertainment
Dallas Art Fair
Online ticketing, a custom CRM, and a dedicated Exhibitor Portal serving 90+ galleries annually, for one of the most celebrated contemporary art fairs in the country.