Skip to main content
Every member has a page that lists the sites they have made public. It sits at /<credit>/sites on your company’s own domain, where <credit> is the member’s username:
A member can share that one address instead of a link for each site. This page covers what the page lists, how a site gets onto it, what a visitor sees, and how a theme or builder reads the same list with an API.
Member sites must be turned on for your company. Without them, the page doesn’t exist, and neither does the API below. See the overview.

Know what the page lists

The page lists a member’s sites that anyone can open, newest first by when each was created. It shows the member’s first name as its heading, such as Sites by Riley, and each site’s name as a link to the site. Each link opens the site at /accounts/<site-handle> on your company’s own domain. See what a member site is. The page lists a site only when all of these are true: The page never lists: The list is the same for every visitor. A signed-in member, a share holder, the site’s owner and a company admin all see what a guest sees. So a member sees their own private sites in their account menu, and never on this page. See Member sites in the account menu.

Make a site appear

A site appears on its owner’s page when it is published and its visibility is public. There is nothing else to set.
  1. Publish the site. A draft is never listed.
  2. Set its visibility to public. A new site is private.
The page follows the site. A site you publish shows on the visitor’s next request. A site you make private, take down or delete is gone on the next request.

Know what a visitor sees

  • A member with no public sites gets an empty page, not a 404. The page says the same whether the member has no sites or only private ones, so it never tells a visitor that a private site exists.
  • An unknown name is a 404, unlike most credit paths. A storefront page with an unknown username in its credit segment renders as home and shows no error. This page shows your theme’s 404 page instead, or Fluid’s standard one when the theme has none. See Style storefront error pages.
  • home isn’t a member. /home/sites is a 404, and so is the address of a member who is no longer active.
  • The page claims one address. /<credit>/sites lists the sites. /sites, /<credit>/sites/<anything> and /accounts/sites don’t.
  • A site name shows as plain text. A member can’t put markup on the page through a site’s name.

Know how search engines and caches treat it

  • Search engines don’t index it. The page tells them not to index it or follow its links. A listed site is still a public site, and its own address can be found like any other.
  • It is never cached. Fluid doesn’t store the page, and it tells browsers and shared caches not to store it either. A change to a site shows on the next visit, for the 404 page and the empty page too.

Know how a visit is credited

A visit to /<credit>/sites is credited to that member, like a visit to any of their other credit links. The address starts with the member’s username, and the page loads your storefront’s global embeds, which carry FairShare. So a member who shares their sites page earns credit for the visitors it brings, with no extra setup. See How credit is established and kept.

Read the list with the API

A theme or builder can read the same list as JSON with the public storefront API:
  • It takes no credential. Don’t send a token.
  • The company comes from the host. Call it on your company’s storefront domain.
  • It returns the list the page shows. The sites are newest first, and there is no paging.
  • A site is four fields: id, handle, name and url.
For example, GET https://shop.example.com/api/v202604/credits/riley-kim/sites returns:
  • A member with no public sites gets 200 and an empty member_sites list.
  • An unknown name gets 404. That covers home and a member who is no longer active. A storefront that Fluid has disabled also gets 404.
  • It is never cached. Every answer, a 404 too, carries Cache-Control: private, no-store, so a change shows on the next request.
  • It leaves out everything the page leaves out. It returns no member field and no field of a site beyond the four above.