|
| 1 | +--- |
| 2 | +title: 'Mini App Search and Discovery' |
| 3 | +description: 'Learn how users discover and access Mini Apps in the Base ecosystem, including discovery surfaces, ranking systems, and optimization strategies for maximum visibility.' |
| 4 | +--- |
| 5 | + |
| 6 | +> **What you’ll learn** |
| 7 | +> By the end of this guide, you’ll be able to: |
| 8 | +> - Structure your Mini App’s metadata to create rich, visually compelling user experiences. |
| 9 | +> - Get your Mini App indexed in Base App search and understand how indexing works. |
| 10 | +> - Design compelling embeds that drive clicks and engagement from social feeds. |
| 11 | +> - Choose the right categories and implement strategies to rank higher in “Trending Today.” |
| 12 | +> - Apply best practices to increase discoverability across all Base App surfaces. |
| 13 | +
|
| 14 | + |
| 15 | +## Metadata |
| 16 | + |
| 17 | +### Manifest |
| 18 | +Your Mini App's [metadata](https://miniapps.farcaster.xyz/docs/specification) is defined in your manifest file located at `/.well-known/farcaster.json`. This JSON file contains all the essential information that Base App needs to display and categorize your Mini App. |
| 19 | + |
| 20 | +<Warning> Mini Apps require a complete manifest. You can read more [here](base-app/introduction/mini-apps#example-manifest) </Warning> |
| 21 | + |
| 22 | +### How Metadata Works |
| 23 | +Each specification element in your manifest serves a specific purpose in Base's interface and directly translates into compelling visual experiences that drive user engagement. |
| 24 | + |
| 25 | +<Frame caption="Manifest data spec"> |
| 26 | +<img src="/images/minikit/spec_image.jpeg" alt="Manifest data spec" height="200"/> |
| 27 | +</Frame> |
| 28 | + |
| 29 | +### Why It's Important |
| 30 | +Your metadata determines how your Mini App appears across all Base App surfaces: |
| 31 | + |
| 32 | +- **App icon (1024x1024px)**: Becomes the primary touchpoint users interact with across all surfaces |
| 33 | +- **Embed image (3:2 aspect ratio)**: Creates the visual hook that stops users scrolling in social feeds |
| 34 | +- **Tagline (50 characters max)**: Provides the instant value proposition that converts browsers into users |
| 35 | +- **Categories**: Determines where your app appears in Base App's browsing sections |
| 36 | +<Note> |
| 37 | +You can find the Figma file for visual guide [here](https://www.figma.com/design/4wx6s24NB0KLgprQAyMT8R/TBA-Mini-App-Specs?node-id=0-1&t=vs3713Z2RarbGRYi-1) |
| 38 | +</Note> |
| 39 | +## Design |
| 40 | + |
| 41 | +### Embeds |
| 42 | +When a user pastes your Mini App's link into a feed, the Base App automatically fetches your page's Open Graph metadata before the post is published. This metadata is used to render a rich embed—complete with your image, title, and call-to-action—that appears instantly in the composer and in followers' feeds. Well-designed embeds make your app stand out in fast-scrolling social contexts and can turn casual impressions into active launches. |
| 43 | + |
| 44 | +<Frame caption="Mini App in the feed"> |
| 45 | +<img src="/images/minikit/feed_mini.jpg" alt="mini app feed" height="200"/> |
| 46 | +</Frame> |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | +## Search |
| 52 | + |
| 53 | +### How Search Works |
| 54 | +Users discover Mini Apps through direct search queries in Base App. |
| 55 | + |
| 56 | +<Frame caption="Here in The Base App you can see searching based on partial titles"> |
| 57 | +<img src="/images/minikit/search.jpg" alt="search bar in base app" height="200"/> |
| 58 | +</Frame> |
| 59 | + |
| 60 | +Your Mini App will only appear in search results after it has been indexed. To ensure indexing, share your Mini App at least once in Base App. Indexing typically takes ~10 (approx) minutes after the first share. |
| 61 | + |
| 62 | +### Managing Search Indexing |
| 63 | + |
| 64 | +**Development Environment:** |
| 65 | +Add `"noindex": true` to your manifest to prevent development versions from appearing in search results: |
| 66 | + |
| 67 | +```json |
| 68 | +{ |
| 69 | + "frame": { |
| 70 | + "noindex": true, |
| 71 | + "name": "Your App (Dev)", |
| 72 | + // ... other fields |
| 73 | + } |
| 74 | +} |
| 75 | +``` |
| 76 | + |
| 77 | +**Removing from Search:** |
| 78 | +To remove your Mini App from search results: |
| 79 | + |
| 80 | +- **Invalidate manifest:** Update your manifest to make it invalid (removes from all discovery). |
| 81 | + |
| 82 | +<Warning> |
| 83 | +If your Mini App does not show in search please follow the debugging guide [here](/base-app/build-with-minikit/debugging#1-app-discovery--indexing-issues) |
| 84 | +</Warning> |
| 85 | + |
| 86 | +## Discovery |
| 87 | + |
| 88 | +### Trending |
| 89 | +The "Trending Today" section showcases the most popular Mini Apps being actively used and shared. |
| 90 | + |
| 91 | +<Frame caption="Trending Today"> |
| 92 | +<img src="/images/minikit/trending_today.jpg" alt="Mini App showing trending view" height="200"/> |
| 93 | +</Frame> |
| 94 | + |
| 95 | +**What determines trending status:** |
| 96 | +- Social sharing frequency |
| 97 | +- Current user engagement metrics |
| 98 | + |
| 99 | +### Saved |
| 100 | +Multiple surfaces help users discover Mini Apps through social interactions: |
| 101 | + |
| 102 | +**Saved Apps** - Personal launcher and quick access hub |
| 103 | +<Frame caption="Saved Apps"> |
| 104 | +<img src="/images/minikit/my-apps.jpg" alt="saved apps" height="200"/> |
| 105 | +</Frame> |
| 106 | + |
| 107 | +This surface functions like the iPhone homescreen for onchain applications. Users see their saved apps and Mini Apps in a personalized view. |
| 108 | + |
| 109 | +**What appears here:** |
| 110 | +- User's saved Mini Apps |
| 111 | +- Recently used applications |
| 112 | + |
| 113 | +**How users access your Mini App:** |
| 114 | +- Click on your Mini App icon after they've saved it |
| 115 | +- Access through recent usage if they've interacted with it recently |
| 116 | + |
| 117 | +<Tip> |
| 118 | +You can prompt users to save your Mini App using the [useAddFrame hook](/base-app/build-with-minikit/overview#useaddframe). Consider waiting until users experience value - after completing their first action or reaching a milestone - for better conversion rates. |
| 119 | +</Tip> |
| 120 | + |
| 121 | +**App Categories** - Browsable directory organized by interest |
| 122 | +<Frame caption="App Categories"> |
| 123 | +<img src="/images/minikit/categories.jpg" alt="app categories" height="100"/> |
| 124 | +</Frame> |
| 125 | + |
| 126 | +<Warning> |
| 127 | +Choose your primaryCategory carefully as it determines where your app appears in Base App's category browsing. Available categories are: games, social, finance, utility, productivity, developer-tools, and art-creativity |
| 128 | +</Warning> |
| 129 | + |
| 130 | +<Frame caption="Ranking for the Social Category"> |
| 131 | +<img src="/images/minikit/ranking.jpeg" alt="app categories" className="h-18 w-auto" /> |
| 132 | +</Frame> |
| 133 | +<Tip> The Base app uses aggregated data (7-day rolling window) to generate dynamic category rankings and identify trending applications.</Tip> |
| 134 | + |
| 135 | + |
| 136 | +### Sharing |
| 137 | + |
| 138 | +**Technical implementation:** |
| 139 | +```html |
| 140 | +<meta name="fc:frame" content='{"version":"next","imageUrl":"https://your-app.com/embed-image","button":{"title":"Play Now","action":{"type":"launch_frame","name":"Your App","url":"https://your-app.com"}}}' /> |
| 141 | +``` |
| 142 | + |
| 143 | +**Specs** |
| 144 | +**Best practices for embeds:** |
| 145 | +- Add `fc:frame` meta tags to make pages shareable as embeds |
| 146 | +- Optimize embed images for 3:2 aspect ratio |
| 147 | +- Include compelling call-to-action text in embed buttons |
| 148 | +- Use dynamic embed generation for personalized content |
| 149 | + |
| 150 | +<Warning> |
| 151 | +If your Mini App does not show as an embed please follow the debugging guide [here](/base-app/build-with-minikit/debugging#3-embed-rendering-issues) |
| 152 | +</Warning> |
| 153 | + |
| 154 | +**Build for Discovery:** |
| 155 | + |
| 156 | +- [ ] **Implement proper manifest files:** Ensure your `/.well-known/farcaster.json` includes all required metadata including proper categorization. [Example here](base-app/introduction/mini-apps#example-manifest) |
| 157 | + |
| 158 | +- [ ] **Choose relevant categories:** Select the most appropriate primary category in your manifest to appear in the right discovery sections |
| 159 | + |
| 160 | +- [ ] **Create shareable moments:** Build features that naturally encourage users to share their achievements, creations, or experiences. Follow our [Thinking Social Guide](/base-app/guides/thinking-social) |
| 161 | + |
| 162 | +- [ ] **Design compelling embeds:** Create eye-catching embed images and clear value propositions that encourage clicks from social feeds |
| 163 | + |
| 164 | +- [ ] **Encourage saves:** Implement prompts for users to save your Mini App to their personal launcher for easy return access |
| 165 | + |
| 166 | +## Next Steps |
| 167 | + |
| 168 | +Continue building your Mini App with these resources: |
| 169 | + |
| 170 | +- [MiniKit Documentation](/base-app/build-with-minikit/overview): Complete MiniKit integration guide |
| 171 | +- [Thinking Social](/base-app/guides/thinking-social): Social mechanics and sharing best practices |
| 172 | + |
| 173 | + |
| 174 | + |
| 175 | +By understanding and optimizing for these discovery mechanisms, you'll increase your Mini App's visibility and user engagement in the Base ecosystem. Focus particularly on social sharing mechanics and proper technical implementation to maximize your app's discoverability. |
0 commit comments