← All articles

AI app guides

Design a member directory with visibility chosen field by field

Decide which profile details members may share, who can search them and how changes take effect.

Zocri · 2 min read · Sources checked

Separate membership from publication

Supabase documents row-level security as authorization rules evaluated inside PostgreSQL. For a directory, access rules need to reflect a clear sharing decision. Being a member does not necessarily mean every profile detail belongs in a searchable list. Decide which information establishes membership and which information a person deliberately publishes to other members.

Create a field map. A name and professional description might be visible to members, while a personal phone number remains optional and private by default. Administrative notes should have a separate purpose and audience. Avoid storing everything in one profile and hoping the page hides the sensitive parts correctly.

Give members understandable controls

Let a member preview how their profile appears to the intended audience. Use labels that explain the audience directly, such as visible to signed-in members. Avoid an ambiguous public switch if it is unclear whether public means the whole internet or everyone in the organization.

Decide how editing works. A person may update their own bio while membership status remains an administrative decision. If changes require moderation, show a pending state and keep the currently published version clear. The user should know whether a saved change is already visible or awaiting review.

Review search and direct access

Specify whether inactive members appear in search and whether their existing profile links remain accessible. Consider both the list and detail page. Removing someone from a list does not answer what a person with an old link can see, so include that case in the acceptance checks.

Test with an owner, an ordinary member, another member and a signed-out visitor. Check private fields in responses as well as on the page. If the backend supports row policies, ask the implementer how those policies combine with any field-level restrictions and administrative access.

Make departure and correction routine

Define what happens when someone leaves: membership ends, the directory entry is hidden and any retained administrative record follows the organization's policy. Keep these decisions separate so a directory removal does not accidentally delete information the business still needs or preserve a public profile indefinitely.

Pilot with a few invented profiles containing distinct visibility choices. Change a phone number from shared to private, refresh another account and revisit an old link. A directory is ready for broader review when people can understand and verify who sees each detail, rather than simply trusting that sign-in exists.

Put it into practice.

Open Zocri →