Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/sam-shervin/space7/llms.txt

Use this file to discover all available pages before exploring further.

A Space is the core unit of discussion in Space7. Each Space is a named room focused on a single topic where participants exchange messages in real time. You can browse public Spaces without an account, but you need to be signed in to create one, join one, or send messages.

Space structure

Every Space exposes the following fields:
type Space = {
  space_id: string;
  title: string;
  description: string;
  visibility?: "public" | "private";
  creator: SpaceCreator;
  participant_count: number;
  tags: SpaceTag[];
};

type SpaceCreator = {
  user_id: string;
  username: string;
  profile_picture: string;
};

type SpaceTag = {
  tag_id: number;
  tag_name: string;
};
FieldDescription
space_idUnique identifier for the Space
titleShort, descriptive name shown in feeds and the Space header
descriptionLonger text explaining the topic of discussion
visibility"public" (default) or "private" — controls discoverability
creatorThe user who created the Space, including their avatar
participant_countRunning count of users who have joined
tagsList of hashtags attached to the Space for search and filtering

Feature highlights

Trending feed

Browse the most active public Spaces right from the home screen, sorted by engagement. No sign-in required.

Recommended feed

Personalised recommendations fetched with your auth token so you see Spaces aligned with your interests.

Hashtag support

Tag your Space with relevant keywords. Tags are searchable independently, making your Space easier to discover.

Public & private

Public Spaces appear in search and feeds. Private Spaces are invite-only and never surface in public results.

Creating a Space

1

Open the New Topic tab

Tap the New Topic tab (pink plus icon) in the bottom navigation bar. You must be signed in to proceed.
2

Fill in the details

Provide the following:
  • Title — a concise name for your topic (required)
  • Description — context that helps others decide whether to join (required)
  • Hashtags — add one or more tags as a comma-separated list (e.g. typescript, gaming)
Visibility is fixed to public in the current release of the New Topic screen. All spaces created through the app are public.
3

Submit

The app calls POST /api/spaces with the payload below. On success the form clears and the app navigates to the My Discussions tab where the new Space appears.
type CreateSpacePayload = {
  title: string;
  description: string;
  visibility?: "public" | "private";
  hashtags: string[];  // e.g. ["react", "mobile"]
};
Hashtags are stored as SpaceTag records and returned in the tags array of the Space. You supply them as plain strings when creating — no # prefix needed.

Discovering Spaces

The home screen shows two feeds simultaneously, both filtered to public Spaces only. The trending feed calls GET /api/spaces/trending (no auth required) and returns up to 10 public Spaces ordered by current activity. Pull down on the home screen to refresh. The recommended feed calls GET /api/spaces/recommended (auth required) and returns up to 10 personalised Spaces. If you are not signed in, this feed is unavailable.

My Spaces

You can retrieve only the Spaces you belong to via GET /api/spaces/my. This returns all your Spaces regardless of visibility. Type any query into the search bar on the home screen to run a full-text and tag-based search simultaneously. See Search for details.

Joining a Space

1

Select a Space

Tap any Space card in the trending or recommended feed, or in search results. The app fetches the full Space details via GET /api/spaces/:spaceId.
2

Join

Tapping a Space card navigates you into it and automatically attempts to join via POST /api/spaces/:spaceId/join. For public Spaces no extra input is needed.For private Spaces you must supply a valid invite code:
type JoinSpacePayload = {
  invite_code?: string;
};
3

Start participating

Once joined, your participant_count increments and you can send messages. If you were already a member, the app silently skips the join call and proceeds directly into the chat.
Attempting to join a private Space without a valid invite_code returns an error. Obtain the invite code from the Space creator before trying to join.

Space detail view

When you enter a Space you see:
  • The Space title and description at the top
  • The creator’s avatar and @username
  • The full message thread below, defaulting to the recent sort order
  • A message composer at the bottom with text input and a media attach button
  • A sort picker (Recent / Top) accessible from the header overflow menu
The view connects to Socket.IO on mount so new messages from other participants appear instantly without a manual refresh. Pulling down on the message list triggers a full reload of both the Space metadata and the message list.

Build docs developers (and LLMs) love