Mini Apps vs Farcaster Frames, what's the difference?
What is the difference between Mini Apps and Farcaster Frames?
First we from a user experience side mini apps are way more capable then frames, but that also means we need to build them way better! If we don’t, then users will be confused and not use your app.
With Frames the user experience is clear, there is an image (or animation) shown, up to four buttons to press and optionally an input field. As long as the developer makes sure the Frame returns fast, then the Frame experience is clear to the user and fast! In case you’re Frame isn’t fast enough, let us help you!
Though what do these differences mean for the experiences we can build?
What can we build with Farcaster Frames?
We think of Farcaster Frames as a Gameboy without Audio support. If you want to learn frames, check our Frames Documentation.
Just imagine what you can do with a Gameboy. Pokemon and other incredible Nintendo games only required a few buttons and a clunky image in the middle to be fun.
Frames are similar in that you need to get creative to really make a consumer experience fun, though you may not need to make it fun. You may just need to make it useful.
How can Frames be useful? They are right there with the user! The user doesn’t need to visit your webpage, they don’t want to. You can remove friction by letting them complete actions right from another app.
This removed friction will increase conversion rates for you, leading to more business and happier users.
What can we build with Mini Apps?
Mini Apps are apps within an app. We can build everything we could have a webpage do. There may be some restrictions depending on where the mini app is present, but that’s generally how to think about it!
This means we can do everything! yep everything. We could have our whole ecommerce page present within the app and the user can just access it right there without having to leave their favorite platform.
We could also build full fleged 3D games and anything in between. Within Farcaster the great part about mini apps is, they allow you to prompt the user to post! That provides the chance for the best ad you can get, a user referral!
How does the user experience differ between Mini Apps and Farcaster Frames?
Mini Apps open pandoras box, while Frames set a clear guideline where the user knows what to expect. With Frames directly in the Feed of users, they know how to interact with it and it looks just like the app they already have open.
On the other hand mini apps open a seperate webpage that you have built, which means you have to ensure the user feels welcome and has a pleasant experience.
The main challenge in Frames is that everytime the user does something you have to respond from the server side very fast! if you don’t design around this the experience will be clunky and slow.
With Mini Apps you are providing a full blown web application, where you may not need any server interaction besides initially serving the page, which could be way faster and provides more surface for interaction.
As a user in the end my experience is dictated by how easy it is to achieve my intended goal. That goal usually is entertainment or getting something done.
As developer we can provide a great user experience in both form factors, we just need to make sure we know how to do it.
Are Farcaster Frames and Mini Apps the same technically?
No they are not. Frames call your backend server everytime the user does anything, while mini apps serve a web application where you are in control of how many times your backend is called or not.
Let’s look at the differences
The technical difference between Farcaster Frames and Mini Apps
The technology used to build Frames is any server that returns HTML Meta tags as covered in How Farcaster Frames work. While Mini Apps are regular web requests!
Yes the Farcaster client will ask your webpage to be rendered and you return the webpage. If your webpage then calls some API or something else, then this is on you. While with frames the Farcaster client calls your backend each time!
This also means that with Mini Apps you can generate a session token at the beginning for the user, which serves as authentication but then everything is client side. With Frames since the interface is so restricted and each action is sent to the server firstly you have server side analytics and no blocker so you can track all actions , but secondly you have authentification through the user’s farcaster account and signer each time!
If you want to authenticate the user in a mini app the first request to ask for which webpage to be served is the Farcaster client sending your server a message and asking it. Here it sends a Frame message that you can authenticate as shown in this tutorial. From there on all actions are client side and could be manipulated unless you send API requests somewhere.
That could make a difference for games, as the user may spoof the game score on the client side and cheat, unless you synchronize the game state with your server to ensure no cheats can be done.
But as you already noticed how to build mini apps is the same as building a responsive web application. The only difference is you need to respond to a GET request about metadata, and a POST request to then link to the mini app webpage. How to handle these two requests is explained here
Why is there more latency in Farcaster Frames?
With Farcaster Frames the client sends each user action to the server and waits for the response.
This roundtrip between server and client takes time, which is latency. There also maybe some complex action going on the server before it returns.
As a developer your goal is to minimize this time delay as much as possible!
Here is a visualization of how many roundtrips (server to client communications) are down in Frames vs Mini Apps. It’s pretty clear how big the difference is.