Cover photo

Ghost Town Mini App

FAQ and Changelog

New Features

Full Following Scan (Pagination)

  • Previously only scanned the first 100 accounts you follow

  • Now scans ALL accounts using API pagination

  • Added loading message: "This may take a moment if you follow a lot of people..."

Pinned Post Fix

  • Fixed issue where pinned posts (which can be months old) were being treated as the user's most recent activity

  • Now sorts posts by timestamp to find the actual most recent post

Activity Indicator

  • Shows "Replied or recasted in last 3 days" badge for users who are still active but not posting original content

Bug Fixes

  • Fixed profile link to open in Warpcast's main window (not new tab)Empty Cast Filtering

    • Problem: Accounts with no fetchable cast text (showing as "") often have broken profiles that crash the SDK

    • Solution: Now filters out accounts where lastCast is empty

    • Exception: If the cast is an image/video only (has embeds but no text), it shows "[Media post]" instead of being filtered out

    Accurate Unfollow Count

    • Problem: The completion screen said "Unfollowed X accounts" based on how many cards you clicked "Next" on - confusing since Next doesn't actually unfollow anyone

    • Solution: Now compares your actual following count at scan start vs. completion

      • Captures your following count when you hit "Start Cleanup"

      • Re-fetches your following count when you finish reviewing

      • Shows the real difference: "You unfollowed X accounts"

      • Shows "Calculating unfollows..." while fetching

      • If you didn't unfollow anyone, shows "Review complete!" instead

    • Share text updated: Only mentions unfollows if you actually unfollowed someone

Known Issues

Farcaster SDK viewProfile Bug

  • Certain accounts (e.g., @popfi) cause the Farcaster SDK to crash when attempting to view their profile

  • The SDK enters a corrupted state and all subsequent profile views fail

  • Workaround: Skip these accounts using the "Next" button. If the app breaks, close and reopen it.

  • If anyone knows how to solve for these deleted accounts feel free to reach out


Why Can't "Unfollow" Be a Button in the Mini App?

The Technical Limitation

Farcaster mini apps run inside an iframe sandbox within the Warpcast app. To perform write actions (like following, unfollowing, posting, or liking), an app needs a signer - a cryptographic key that proves the user has authorized the app to act on their behalf.

There are two ways to get a signer:

  1. Signer UUID from Neynar - This requires a full authentication flow where the user explicitly grants your app permission to perform actions on their account. It's designed for full-fledged apps, not lightweight mini apps.

  2. Farcaster SDK Actions - The SDK provides actions like viewProfile, openUrl, composeCast etc. However, there is no unfollowUser action in the SDK. The SDK only exposes read operations and navigation - not social graph mutations.

Why This Design Choice Exists

Farcaster intentionally restricts write actions in mini apps for security reasons:

  • Prevents malicious apps from mass-unfollowing or spamming on behalf of users

  • Keeps the trust model simple - users know mini apps can't modify their account

  • Write actions should be explicit and visible in the main Warpcast UI

Our Solution: View Profile → Manual Unfollow

Since we can't programmatically unfollow, we use sdk.actions.viewProfile({ fid }) to:

  1. Navigate the main Warpcast window to the user's profile

  2. Keep the mini app open in the sidebar

  3. Let the user manually tap the "Unfollow" button on the profile

This is the best UX we can achieve within the platform's constraints. The user still gets the value of discovering inactive accounts - they just have to tap one extra button to actually unfollow.


Future Improvements (If Farcaster Adds Support)

If Farcaster ever adds sdk.actions.unfollowUser() to the mini app SDK, we could:

  • Add a direct "Unfollow" button that works inline

  • Re-enable bulk unfollow functionality

  • Make the whole flow much faster

Until then, the current "View Profile → Unfollow → Next" flow is the best we can do.