Skip to main content

Key Concepts

Before diving into the codebase, familiarize yourself with these core concepts.

Intent System

Unlike traditional social media where users just "post," CommonPlace requires users to declare their intent before sharing. This creates mindful posting rather than impulse sharing.

Available Intents (defined in src/lib/constants/intents.js):

KeyLabelDescription
thinking_out_loudThinking AloudProcessing thoughts out loud. Not necessarily looking for solutions.
open_to_discussionInvite to DiscussThe author welcomes different perspectives on this.
sharing_personalPersonal ShareSomething personal. Handle with care.
asking_for_helpAsking for HelpLooking for advice, support, or practical help.
just_for_funJust for FunLighthearted -- just sharing for the joy of it.
sharing_informationOffering ResourceSharing something useful -- an article, tool, idea, or recommendation.

The intent affects post styling and helps friends understand the poster's context before responding.

HomeRoom

Each user has a HomeRoom — their personal space in CommonPlace. Think of it as a profile page that feels more like a room you're visiting than a profile you're viewing.

HomeRooms can be customized with:

  • Color themes
  • Modules (customizable content blocks)
  • Featured content

Circles

Circles are friend groupings that allow selective sharing. Instead of sharing with all friends or making content public, users can share with specific circles.

  • Work Friends
  • Close Friends
  • Family
  • etc.

MeBook

The MeBook is a personal narrative feature where users can share deeper information about themselves through guided prompts. It's designed for genuine self-expression rather than performance.

Relationship Types

CommonPlace allows nuanced relationship types beyond simple "friend" status:

  • Friend (default)
  • Close Friend
  • Family
  • Acquaintance
  • Custom types

These affect visibility and sharing defaults.

Voice Narration

Posts can include voice narration — audio recordings that accompany written content. This adds a personal touch without the performance pressure of video.

Block = Disappear

When users block each other, they completely disappear from each other's experience. No "you've been blocked" messages — just 404 errors as if they don't exist.

Rate Limiting

To prevent spam and encourage thoughtful posting, CommonPlace implements rate limiting on various actions. Users have daily/hourly limits based on their account tier.

Row Level Security (RLS)

All database access is controlled by RLS policies in PostgreSQL. This means security is enforced at the database level, not just the application level.


Last updated: 2026-02-07