Building Farcaster mini apps is a fantastic way for developers to build, experiment, have fun and ship ideas. It takes roughly 1 minute to turn any web app into a mini app. You can instantly plug into a rich network of users. Not only can you ship to tech-forward users directly in their social feeds, but you can also leverage the entire social graph of the network using Neynar for free, or just $9/month for more capabilities. On top of that, each user has a crypto wallet that enables permissionless transactions. No creating a Stripe account, providing a Tax ID, explaining what you're selling, or any of that. Just charge the user USDC for your product, and you can have them send you money directly in the app permissionlessly. In this article, I'm going to walk through a mini app I built in one weekend using Next.js, and a Node server. Links below for the app:
Play the mini app on Farcaster
Fire is a mini app I hacked together last weekend. It's modeled after Nikita Bier's Gas app. I never played the Gas app, but I knew it was an app targeted for teens that was just anonymous polls/compliments and a "God mode" you could pay for to see who was gassing you up. I don't think my app has the same mechanics, but I made it as similar as I could.
I designed my app to generate a poll and options for the poll based on your recent interactions on Farcaster including your likes, replies and recasts. My endpoint on my Node backend does the logic of generating this question. In a nutshell, it does the following:
Uses Neynar to get the last 50 replies/recasts, and the last 50 likes from you
const recentReplies = await client.fetchRepliesAndRecastsForUser(fid, {
limit: 50,
});
const recentLikes = await client.fetchUserReactions(fid, "likes", {
limit: 50,
});
Looks at who you've interacted in them, pulls some recent casts for those users too, manipulates this data a bit, then pulls previous questions you've been asked, and passes all this context to a function for generating the question.
const pollQuestion = await generatePollGoogle(
recentRepliesContent,
recentLikesContent,
options
.map((option) => {
return `${option.name} (${option.followers} followers). Bio: ${option.bio}. Recent casts: ${option.recentCasts}`;
})
.join(", "),
previousQuestions.map((q) => q.question)
);
The generatePollGoogle
function writes a really long Markdown prompt for the LLM, mine is like 50 lines, and tells the AI to role-play as editors for Cards Against Humanity, as well as some information about the Gas app, the functions of the app and explains what the context it's receiving from the Farcaster content pulled from Neynar. Then it returns a question.
const response = await ai.models.generateContent({
model: "gemini-2.0-flash-lite",
contents: prompt,
config: {
responseMimeType: "application/json",
responseSchema: {
type: "object",
properties: {
question: { type: "string" },
},
required: ["question"],
},
},
});
This prompt seems to be returning interesting results, for example there was a discussion over the weekend about airdrops, that warranted the question below I saw while I was testing the mini app with the dev tools. Just when everyone on the timeline is debating whether or not to do an airdrop for an app, the Fire mini app gives me this poll.
Now, if I had ironically picked Dan for this poll, and Dan had added the Fire mini app and turned on notifications, he would've got a notification that I picked him.
And if Dan taps the notification to open the Fire mini app, he can go to the Received tab, where he has the option to Pay $1 USDC to reveal what poll I picked him for.
Tapping the reveal button opens up your wallet and you can one-click send $1 USDC to my wallet address, revealing the poll you were picked for and who picked you. I can see that @thedude revealed a poll he was picked for, amongst the many other microtransactions I'm sending and receiving in my wallet activity tab.
You can see that there's a lot of possibilities for what you can do with mini apps, out of the box. What's most interesting to me, is the richness of the data you can leverage, especially as the network continues to grow. On top that, every user has a wallet and the means to pay for your product with a few taps directly in their social feed. It's like Apple Pay, but permissionless and with open data. An app like Fire, though it's a low effort attempt at it, evolves with the user. As the user interacts with the Farcaster network, the poll questions change. There's so much to work with as a developer. There's infinite possibilities to build something that is simple, fun and generates revenue for you or your users. Whether there's crypto involved in your app or not, you can still build something fun. Not to mention the continued growth of the developer rewards you can get a slice of. I definitely recommend making a mini app. Once you do, I guarantee you will realize how easy it is and you will go down a rabbit hole of ideas that you will want to build. Check out the docs to build your own mini app here.
https://paragraph.com/@sean07.eth/social-farcaster-mini-apps