> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gohaven.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish a member directory: public, members-only, or hidden

> Configure your organization's member directory. Choose who can see it, which fields appear by default, and whether search engines should index it. Each member still controls their own visibility on top of your settings.

The member directory is where prospective members, current members, and search engines (when you opt in) discover the people who make up your community. You choose the access level and the default field visibility; each member decides whether to appear and which of their own contact fields to share.

## Choose a visibility mode

From your admin sidebar, go to **Settings → Directory**. Pick one of three modes:

<Tabs>
  <Tab title="Public">
    Anyone can view the directory at `{slug}.gohaven.co/directory` without signing in. Best for chambers of commerce, professional associations, and any club whose membership is itself a credential. Fields visible to non-members default to name + photo + organization — email, phone, and address stay hidden unless you opt them in below.
  </Tab>

  <Tab title="Members only">
    Only signed-in members of your organization can view the directory. Anonymous visitors are redirected to the sign-in page. Best for clubs, alumni groups, and any community where the directory is a member benefit rather than a marketing surface.
  </Tab>

  <Tab title="Hidden">
    The directory is fully off. The `/directory` route returns 404. Members can still update their privacy settings in their portal so they're ready if you turn it back on later.
  </Tab>
</Tabs>

<Note>
  New organizations default to **Members only**. Switching to **Public** is an explicit opt-in to avoid surprising members with public listings on day one.
</Note>

## Choose which fields appear by default

When the visibility mode is **Public** or **Members only**, you can pick which of the standard contact fields show up in the listing. For each audience (non-members and signed-in members) tick the boxes for fields you're comfortable defaulting to visible:

* Name (always shown — required)
* Photo / avatar
* Organization / employer
* Email
* Phone

Address is intentionally never available as a default for non-members. It is admin-only by Haven design — a member's home address never surfaces to other members or to the public, regardless of these settings.

<Tip>
  For the **Public** audience, leave email and phone off unless your members have explicitly opted into being contacted by anyone who finds the directory. Most chambers turn on email but leave phone off.
</Tip>

## Allow search engines to index public profiles

When your directory is **Public**, you have an additional toggle: **Allow search engines to index member profiles**. It's off by default — Haven adds a `noindex` meta tag to the directory list and member detail pages, so Google leaves them alone.

Turn this on when:

* You want prospective members to find your community by searching member names or affiliations.
* You're a chamber, association, or industry group where directory listings are part of the value proposition.

When indexing is on, Haven also embeds JSON-LD `Person` structured data on each member detail page so search engines understand the listing.

<Warning>
  Turning indexing on can take days for Google to fully reflect. Turning it off later does *not* immediately remove already-indexed pages — Google's normal recrawl cadence handles removal. Switch with intent.
</Warning>

## What members control on top of your settings

Your settings define the *defaults*. Each member can override their own visibility from their portal at `{slug}.gohaven.co/member/profile`:

* **Show in member directory** — master toggle. Off → they don't appear at all.
* **Per-field visibility** — a member can hide their email even if you allow it for the audience as a whole.
* **Custom field visibility** — if you've added custom fields and marked any of them **Show in directory** under Settings → Custom Fields, members get a per-field toggle too.

A member's choice always wins. Your settings determine what's *eligible* to show; the member decides what actually shows for their row.

## How the public directory looks

The public route at `{slug}.gohaven.co/directory` renders as a responsive card grid (1 column on mobile, 2 on tablet, 3 on desktop). Each card shows the member's avatar, name, and organization. Tapping a card opens a member detail page at `/directory/{memberId}` with the full set of fields they've made visible.

Card grid is the only view in v1. A table view, gallery view, and external embed widget are tracked as future enhancements.

## What happens during migration from WildApricot

When Haven migrates a club from WildApricot, the migration scraper reads the source directory gadget configuration and seeds your new org's settings automatically:

* The source's visibility (was the gadget on a public WA page or members-only?) is reflected in `directory_visibility_mode`.
* The source's visible fields are reflected in your default field visibility.
* Address never carries over to the non-member allowlist regardless of source.
* Indexing always defaults to off — you opt in explicitly post-migration after reviewing the imported settings.

After migration, visit Settings → Directory and confirm the imported configuration matches what you want before you announce the move to your members.
