=== Barbican – Real Estate Platform on the RESO Standard ===
Contributors: b10f
Tags: real estate, listings, mls, reso, idx
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Turn WordPress into a RESO-native real estate platform: listings, agents, offices, open houses, and optional live MLS import over the RESO Web API.

== Description ==

Barbican makes WordPress a first-class real estate platform, built on the [RESO](https://www.reso.org/) standard: the same Data Dictionary and Web API the MLS industry runs on. Your listings, agents, offices and open houses are stored in the exact RESO shape the MLS uses, not squeezed into generic posts, and served over a real RESO Web API, so your data speaks the language every real estate system already understands. No proprietary lock-in, no lossy field mapping.

Think of it as the standards-native foundation for a real estate site: free and open at the core, with ready-made blocks to build your pages, and an optional paid add-on when you're ready to pull in live MLS listings.

**Build your site from ready-made blocks**

Barbican breaks the public site into small WordPress blocks (a listing card, a property gallery, agent profiles, office pages, open-house agendas, a signed-in contact area) that you assemble and restyle right in the block editor. No shortcodes, no page-builder lock-in. Every block is customizable at three levels: its own settings, the native WordPress colour / typography / spacing controls, and documented CSS hooks for total control, on any theme.

**Everything a listings site needs**

* **Property listings** — the full RESO Property record, with search and filters, and rich detail pages: photo gallery, price history, map, rooms, unit types, green / energy features, and open houses.
* **Agents, offices & teams** — staff directories and public profiles, built from blocks.
* **Open houses** — a day-grouped public agenda and per-event pages, with a calendar in the admin.
* **A contact area** — a signed-in area where buyers manage their profile, saved listings and notes.
* **A bundled theme (optional)** — a clean block theme tuned for real estate, ready to activate.

**A real RESO Web API**

Every record is served over a standards-compliant RESO Web API (OData), with a three-tier public / staff / self authorization model, so your data is queryable, portable, and ready for integrations instead of locked inside a plugin.

**Own your data**

Your listings, agents, offices and open houses live entirely inside your own WordPress database. No proprietary data host, no per-record fee.

**MLS Import — bring in live listings (paid add-on)**

The optional MLS Import add-on connects your MLS Grid feed and imports listings (photos, rooms, unit types and open houses) straight into Barbican's RESO tables, over the official RESO Web API. It's a paid add-on; the core plugin is free and fully functional without it.

Full documentation is at [docs.barbicanwp.com](https://docs.barbicanwp.com).

Barbican connects to two external services: Freemius, for optional (opt-in) usage analytics and to power its paid add-ons; and OpenStreetMap, only to draw the optional map on a public property page. See the **External Services** section below for exactly what each involves.

== Installation ==

1. Upload the `barbican` folder to the `/wp-content/plugins/` directory, or install the plugin through the **Plugins** screen in WordPress.
2. Activate the plugin through the **Plugins** screen.
3. Manage listings, agents, offices and open houses from the plugin's admin menu.
4. Add the public blocks (Listings, Agent Profile, Open Houses, Sign In) to any page with the block editor.

== Frequently Asked Questions ==

= Do I need to know how to code? =

No. You build your pages from Barbican's WordPress blocks in the standard block editor, and manage listings, agents and offices from the plugin's admin, with no code required. If you *want* to fine-tune the look, every block also exposes documented CSS hooks.

= Which themes does it work with? =

Any theme. Barbican is theme-agnostic: its blocks and pages work on whatever theme you run. It also ships an optional block theme tuned for real estate, which you can activate if you'd like a ready-made starting point.

= Can I customize how listings and pages look? =

Yes, at three levels: each block's own settings, the native WordPress colour / typography / spacing controls, and documented CSS classes for anything else. See the documentation at docs.barbicanwp.com.

= Does this connect to my MLS? =

The core plugin stores and serves your data in the RESO shape and exposes a standard RESO Web API. Automatically importing listings from your MLS is the job of the paid **MLS Import** add-on, which connects to MLS Grid; support for other RESO-compliant MLSs can be added on request.

= Is there a paid version? =

The core Barbican plugin is free and open. Optional paid add-ons, such as MLS Import, extend it and are distributed through Freemius. You never need an add-on to use the free plugin.

= Where is my data stored? =

In your own WordPress database. Your listings, agents, offices and open houses never leave your site. Barbican connects to two external services: Freemius (optional, opt-in usage analytics and paid add-ons) and OpenStreetMap (only to draw the optional map on a public property page), both described in full in the **External Services** section below.

= Is the Web API standards-compliant? =

Yes. The API implements the RESO Web API (OData) and its metadata follows the RESO Data Dictionary.

== Screenshots ==

1. A public property page — photo gallery, price, key specs and map, all rendered from your RESO data.
2. Further down the same property page — the full RESO detail, presented as richly as the photos.
3. The listings browse page, with search and filters.
4. An agent's public profile.
5. An office page — the brokerage, its agents and its listings.
6. Open houses — a day-grouped public agenda across all your listings.
7. Building a page from Barbican's ready-made blocks and patterns, right in the WordPress editor.
8. Managing a listing in the Barbican admin — the full RESO field set, straight from your data.

== External Services ==

Barbican connects to two external services, Freemius and OpenStreetMap, for the specific purposes below, and for nothing else.

**Freemius** — for two purposes:

* **Usage analytics (opt-in only).** When you activate Barbican it asks whether you would like to share basic diagnostic information to help improve the plugin. This is optional: if you skip the prompt, nothing is sent. If you agree, Freemius receives details about your site and environment: your site URL and title, your administrator email address, your WordPress and PHP versions, and the active plugins and theme. This information is sent when you opt in and periodically afterwards while the plugin is active.
* **Paid add-on licensing and updates.** Barbican supports paid add-ons distributed outside the WordPress.org directory. When you purchase, activate, renew, or update one of those add-ons, Freemius handles the checkout, verifies your license key, and delivers the update, which requires exchanging your license key and the site and environment details listed above with Freemius.

Freemius is provided by Freemius, Inc. Your use of it is subject to Freemius's Terms of Service (https://freemius.com/terms/) and Privacy Policy (https://freemius.com/privacy/).

**OpenStreetMap** — for the property location map:

* **Map tiles.** A public property page can display a small map of the listing's location, rendered with map images ("tiles") served by the OpenStreetMap Foundation. When a visitor opens such a page, their browser requests these tiles directly from tile.openstreetmap.org, which necessarily receives the visitor's IP address and the map area being viewed (derived from the listing's published coordinates). No other visitor or site data is sent. The map is shown only for listings that carry coordinates, and only when it is enabled. The page editor can turn it off per property page with the block's "Map" toggle, and a listing whose seller withheld the address has no coordinates to map.

OpenStreetMap tiles are provided by the OpenStreetMap Foundation. Their use is subject to the OpenStreetMap Tile Usage Policy (https://operations.osmfoundation.org/policies/tiles/) and Privacy Policy (https://wiki.osmfoundation.org/wiki/Privacy_Policy).

Barbican's core real-estate data (listings, agents, offices, open houses, and everything served over the RESO Web API) is always stored in your own WordPress database and is never transmitted to Freemius, OpenStreetMap, or any other external service.

== Development ==

Barbican's admin and block interfaces are built from the TypeScript/React sources in the `src/` directory, which is included in this package. They are compiled with @wordpress/scripts (webpack); the compiled output ships in `build/`. To rebuild from source:

1. `npm install`
2. `npm run build`

The build configuration is in `webpack.config.js`, `tsconfig.json` and `package.json`. Barbican is developed inside a monorepo: the `src/` files reference two shared internal packages for the RESO data layer, imported as `@workspace/reso-core` and `@workspace/reso-client`. Their full source is included in this package under `workspace-src/`, so every line that compiles into `build/` is present in readable form.

== Changelog ==

= 1.0.0 =
* First stable release.
* RESO-native storage for listings, agents, offices, teams and open houses, served over a standards-compliant RESO Web API.
* A full set of customizable public blocks (listings, property details, agent and office pages, open-house agenda, contact area), plus an optional bundled block theme.

== Upgrade Notice ==

= 1.0.0 =
First stable release of Barbican.
