foldout
Free + Pro Real estate template

Harbor — real estate agency website template

An estate agency in Tailwind: listings with filters as real links, a property page with gallery, room sizes, floor plan, map and enquiry form, agents with direct numbers, plus a valuation funnel and a 404 in Pro. No JavaScript, RealEstateListing markup.

  • HTML5
  • Tailwind 4
  • Schema.org
  • Dark mode
  • No JS
  • 360px+

Free and Pro

Pro

$9

Every page, the Pro-only pages, the source files, no attribution, and 12 months of updates and email support.

Home page, compiled CSS
yes
Listings, property, agents, contact
yes
Valuation funnel + 404 pages
yes
Tailwind source and partials
yes
Dark mode (follows system)
yes
Scroll animations (reveal, stagger, header shadow; reduced-motion aware)
yes
Credit link in footer
not required
Updates and support
12 months, email

Free archive

  • index.html
  • assets/css/style.css
  • README.md · LICENCE.txt

Pro archive

  • index.html · listings.html · property.html
  • agents.html · contact.html
  • sell.html · 404.html (Pro only)
  • assets/css/style.css
  • src/pages/ · src/partials/ · build.mjs
  • assets/js/motion.js · assets/css/motion.css
  • README.md · LICENCE.txt (Pro)

Licence

Use it in unlimited personal and commercial projects, including client work.
Do not resell the template itself, alone or in a bundle.

Full licence terms →

Built around the property page

The property page has to hold a gallery, the price and facts, a description, room sizes, a floor plan and a map, a spec table, similar homes, and an agent with a viewing form — and still read as one page. Harbor puts the agent card and the form in a sticky column on desktop so the phone number never scrolls away, and stacks it under the content on a phone.

The listings sidebar is a list of <a> elements, not a JavaScript state. Every combination of area, price and bedrooms is an address a search engine can index and a person can share. Wire the hrefs to your backend’s query strings and the page needs no other changes.

Connecting a feed

The listing card is one partial with a stable set of class names. Render it from your CRM or feed and drop the assembler; nothing on the page depends on JavaScript.

What you will need to replace

Every .ph block is a photo placeholder with its subject written on it. The two <script type="application/ld+json"> blocks — RealEstateAgent on the home page and RealEstateListing on the property page — carry example addresses, prices and URLs.

Compatibility

  • Chrome / Edge 109+
  • Safari 15.4+
  • Firefox 115+
  • iOS 15+
  • Android 10+

Read before you build

Version history

  • 1.0.0 2026-09-11

    First release

  • 32 KB
    home page + CSS
  • 0
    external requests
  • 0
    JavaScript
  • 7
    pages in Pro

Related templates

Fathom — agency website template preview

A design-and-engineering studio site that leads with the case study: results as big numbers, a 'what didn't work' section, sticky team and stack. Big type, one accent colour, no logo soup. Work, services with prices, team, contact, plus careers and a 404 in Pro.

Reedbank — hotel website template preview

A hotel site in Tailwind: the date form on the first screen with the rate beside it, rooms with what is in them, sauna, weddings and events, gallery and a booking page. Eight pages, no JavaScript needed.

Aurora — SaaS landing page template preview

A one-page SaaS landing template with pricing, testimonials and FAQ, plus a full pricing page and a 404 in Pro. Tailwind, dark mode, zero external dependencies.

Tell us what happened

Goes straight to a person. No account, no ticket number.

What is this about?

We keep the message and the page it came from. Nothing else — not your IP, not your browser. Privacy.