Skip to main content

Overview

The Community Feed is the heart of iStory’s social experience. Browse public stories from creators worldwide, discover trending narratives, and connect with writers who share your interests.
Access the feed at /social — no wallet connection required to browse, but you’ll need to connect to interact.

Browsing Stories

The feed offers three curated views to help you discover content:

Latest

Real-time feed of recently published stories, sorted by creation date.

Trending

Stories with high engagement (5+ likes) that are gaining traction in the community.

Following

Stories from creators you follow — your personalized content stream.

Search and Filter

Use the search bar to find stories by:
  • Title keywords
  • Content text
  • Tags like #mindfulness, #tech, or #travel
Click any trending tag in the sidebar to filter instantly.

Story Cards

Each story in the feed displays:
  • Author Profile: Avatar, name, username, badges, and follower count
  • Story Metadata:
    • Date of memory (story_date)
    • Privacy status (Public/Private indicator)
    • Audio availability (Headphones icon for voice recordings)
  • Content Preview: Full text for public stories, teaser for paywalled content
  • Verified Badge: Quality tier from Chainlink CRE analysis (Gold/Silver/Bronze)
  • Key Moment Indicator: Star icon for canonical/important stories
  • Engagement Stats: Likes, comments, and shares

Story Tones

Stories with AI-analyzed emotional tones display a colored left border:
  • Reflective: Thoughtful, introspective moments
  • Joyful: Happy, celebratory memories
  • Anxious: Worried, uncertain feelings
  • Hopeful: Optimistic, forward-looking
  • Peaceful: Calm, serene experiences
  • Grateful: Thankful, appreciative sentiments
The emotional tone is automatically detected by Gemini AI during story creation.

Real-Time Updates

The feed uses server-side rendering with periodic refreshes:
// Source: app/social/SocialPageClient.tsx:118-146
const res = await fetch("/api/stories/feed");
const { stories } = await res.json();
Follow status is fetched in batch for all visible authors:
// Source: app/social/SocialPageClient.tsx:164-179
const followRes = await fetch(
  `/api/social/follow?follower_wallet=${address}&followed_wallets=${authorWallets.join(",")}`
);
The right sidebar showcases top creators:
  • Follower count and story count stats
  • Specialty tags (e.g., “Life Philosophy”, “Travel Adventures”)
  • Quick follow buttons for one-tap connections
Featured writers are curated based on engagement metrics and content quality.

Community Stats

The dashboard displays live metrics:
1

Stories Today

Total count of stories published in the last 24 hours
2

Active Writers

Number of creators who have published this week
3

Trending Topic

Most-used hashtag across recent stories (e.g., #mindful)
4

Your $STORY Balance

Real-time token balance from your connected wallet

Privacy and Access

The feed respects creator privacy settings:
  • Public stories: Full content visible to everyone
  • Paywalled stories: Teaser + unlock prompt (see Earning)
  • Private stories: Never appear in the community feed
Row-Level Security (RLS) policies ensure private stories are never exposed, even via API routes.

Technical Implementation

Data Flow

Follow Status Check

Batch follow lookups optimize performance:
// Source: app/api/social/follow/route.ts:38-42
const { data } = await admin
  .from("follows")
  .select("followed_wallet")
  .eq("follower_wallet", followerWallet)
  .in("followed_wallet", followedWallets);

Story Card Components

The StoryCard component (source: components/StoryCard.tsx:49-368) handles:
  • Optimistic UI updates for likes and follows
  • Verified metrics display from CRE analysis
  • Paywall unlock flow with token approval checks
  • Responsive layouts (default, compact, featured variants)
Use variant="compact" in library/grid views for space-efficient story cards.

Next Steps

Engagement Actions

Learn how to like, follow, share, and tip creators

Earning $STORY

Monetize your stories with tips and paywalls

Build docs developers (and LLMs) love