Property management · Drupal
Lapham Company — Long-Term Drupal Property Management Platform
Long-term technical ownership of a property management platform that I carried from Drupal 5 to Drupal 9 — listings with radius search, saved-search alerts, maintenance workflows, task and hour tracking, and admin reporting.

Overview
Lapham Company runs its property business on a custom Drupal platform: homes and apartments for rent and sale, a public search experience, and the internal workflows that keep properties maintained.
This project is defined by time. Rather than a single build, it is a long-running engagement in which I have been responsible for the platform as Drupal itself changed underneath it — from Drupal 5 through to Drupal 9.
The business need
A property company's website is not a brochure. It is where prospective tenants and buyers search, where enquiries begin, and — behind the login — where maintenance work is requested, assigned and tracked. The business needed:
- A searchable, location-aware catalogue of properties for rent and for sale
- A way for prospects to save searches and hear about new matches without returning every day
- An operational system for maintenance requests that tracks who is doing what, and for how long
- Reporting the administrative team could rely on
- A platform that stayed secure and supported as Drupal versions reached end of life
My role
I own the platform's technical evolution and day-to-day engineering: custom module development, version upgrades and migrations, integrations, ongoing maintenance, and new features as the business's workflows change.
Technical architecture
The platform is built on Drupal with a set of custom modules that encode Lapham's business rules, on top of contributed modules where they are a good fit.
- Listings: structured property content types for rentals and sales, with the attributes people actually filter on.
- Location search: addresses are geocoded through a Geocoder integration, and Mapbox powers map display and radius ("within X miles") search.
- Saved searches: users can store search criteria and receive email alerts when matching properties appear.
- Operations: maintenance requests flow into task assignment, with hourly time tracking against tasks.
- Reporting: administrative reports built on the same data the workflows produce.
Key implementation decisions
Treating major upgrades as migrations, not rewrites. Drupal 5 and the modern Drupal 9 architecture are fundamentally different platforms. Moving between them meant re-implementing custom modules against new APIs and migrating content and data while the business kept running on the system.
Keeping business logic in custom modules. Concentrating Lapham-specific behaviour in purpose-built modules, rather than scattering it across configuration and theme code, made each upgrade more tractable and kept the system understandable.
Integrating mapping services rather than building them. Geocoder and Mapbox provide address geocoding, maps and radius search, so engineering effort goes into the property-specific search experience rather than geospatial infrastructure.
Key features
- Property listings for rent and for sale
- Mapbox map views and radius search
- Geocoder-based address geocoding
- Saved searches with email alerts
- Maintenance request workflows
- Task assignment with hourly tracking
- Administrative reporting
- Custom module development and ongoing maintenance
Delivery status
The platform is in long-term production use and has been continuously maintained and upgraded through Drupal 9. The value here is sustained technical ownership: a business system kept current, secure and useful across successive generations of its underlying framework.

