Proposal: Fomo Nouns Android & iOS mobile apps

Fomo nouns has been a hit for the DAO, and I propose expanding its functionality with iOS and Android mobile applications.

Many people participate in selecting the next best noun daily, and mobile apps will be a tangible addition to what is available for them. It’ll also bring some vital functionality and enrich the gameplay.

As a usual player, I have missed things, such as Fomo play start notifications and tactile/sound feedback during the “play” to make it easier to play in volatile blockchain timings. I want to bring these improvements and more to the Fomo players with this app.

Scope of work:

I propose to develop the apps and release them on corresponding Android and iOS mobile platforms marketplaces.

With the following functionality:

Choose the nouns as on fomonouns.wtf website

First of all, I bring what we all do on the website into well working mobile form.

This includes communication with Fomo nouns API and Ethrereum blockchain(though Alchemy, incl getting blocks and noun auctions state). Making the UI, rewriting nouns-sdk libraries in Dart for noun generation since I can’t use TypeScript libraries.

Work-in-progress mock-ups for the play screen:

With additional functionality:

Notifications

Notifications for the start of Fomo voting.

Many people currently have notifications through other spaces like the Noun Calendar Twitter account. It is usually notifying 4 minutes before the end of the auction, and it’s when active bidding starts, so it actually takes around 10-15 minutes to end, in which you have to always check if the auction has ended.

I checked with the timer on January 20, and it took 23 more minutes for the auction to reach the end after I received notification from NounsCalendar.

It takes time and distracts from other things.

Now I get a notification, get the idea that voting will start in around 15-20 minutes, wait for the second notification, and jump into playing.

Check on the video:

Link to the video on Vimeo

With the mobile app I basically want to cut all player interactions into 3 basic and fast steps:

  1. Receive notification that auction is actually ended and Fomo is starting
  2. Click on notification → app opens
  3. Start playing Fomo

And remove the need to open the browser, website, and remove waiting for auction end.

App will also have notifications 5 and 10 minutes before the projected auction end. You can see what it will look like on the settings screen mock-up:

A big part of work on notifications is making a custom back-end that checks the auction state on the blockchain, so notification on the auction end is even possible.

Vibration feedback

To improve the gameplay.

It will be used when you actually “play” the fomo. As you may have noticed, sometimes block comes fast, sometimes not. You may end up waiting for the block to come for more than a few seconds, then turn your attention to something else(like looking out of the window to watch the snow falling), and you miss the start of the voting and several blocks already pass by. Optional vibration/sound notification could solve this as you may feel the vibration holding your phone in hand and turning your attention back to the voting.

Or you are texting in the chat about just missed noun, and of course, you shift your attention into typing, and you are easy to miss a new noun. You will always know when to draw attention back to voting with vibration feedback.

Sound feedback

That will work and have a similar basis as vibration feedback.

Chat

The app will also include chat, one of the most asked features, so you could have fun while waiting for the next noun to appear.

I plan to develop a custom chat tailored to the fomo gameplay with some cool features:

  1. With a push of a button, you can send to chat a previous noun that we all just missed to grieve it. So no more taking screenshots and then sending them to the chat. All are built-in. There will be access to the five previous nouns, so even hectic block reorderings won’t stop us from keeping some perfect nouns, at least in the chat history.
  2. There will be custom made animated stickers with easy access, so you can fully express yourself over a missed noun. All will be there: crying, RIP, devastated, happy…with some special all-time classic stickers.

Some design ideas on how chat might look like:

With the layout above, you could have fun in the chat and have the voting window hovering around, so you keep voting without switching back and forth.

The main Fomo team will also strive to include the chat on their website, so everyone on mobile and web will have the same fun.

Information page

To educate people on what nouns/nouns selection is, in case non-crypto involved people download an app and want to understand what is going on.

This also includes intro pages on the first app open, pop-ups that suggest turning on notifications, etc

Other

This proposal also includes additional time for bug fixes and minor additions for a year. In case of a need to add a significant future/majorly change functionality that will require a substantial time investment, I’ll reach for additional funding.

What is also included in the proposal:

  • Marketplaces costs for three years.
  • Money for hiring an artist to make animated stickers, custom icons and emojis.

Other Mock-ups

Here are also some UI designs for the other parts of the app I did to better show my view:

Funding:

I ask Nouns DAO for funding of 22 ETH for developing and delivering the apps with the scope outlined above.

Who is behind this:

@ng. I have created a bunch of mobile apps released on iOS and Android marketplaces. You can find the links on my website. I hold a CS bachelor’s degree where I concentrated on mobile app development. I also create different things using my software knowledge. With the nouniverse, I’m involved in making NounsNeedNames and drop some nounish things from time to time.

Project Ethos

The project code will be released alongside Fomo nouns codebase, so it’ll be open sourced under GNU GPLv3 with all code shared on GitHub. You can see the current progress in the mobile-app branch, though the app is still in its early days.

And the main thing I want to achieve is to bring the first-class play experience to the Fomo player. That is the goal, and no subpar approach will work.

1 Like

this looks awesome - FOMO Nouns has been a huge success and expanding it onto mobile seems like a no brainer to me

2 Likes

Agreed with @noun22, this looks awesome and is clearly useful to Nouns. Easy yes from me.

2 Likes

I think it’s important to confirm - what portion of this budget are you allocating for gas fees to settle the auctions?

2 Likes

Auctions will be settled via the existing infrastructure through the back-end and contracts the main Fomo team made. Mobile apps will function as another “front-end” that will send the voting data to the back-end that will trigger auction settling. You can think of mobile apps as another form of the current website. This proposal is for the development of mobile apps only, and auction settling costs will be handled as they are currently handled.

1 Like

A very well written proposal! I appreciate all the time and work that you put into this.

FOMO nouns has indeed been a hit, and from decentralization standpoint I guess it makes sense to work on alternative means of settling auctions and picking future nouns.
I have a few points I would like to discuss though:

  • Cooperation with current FOMO: How are these two going to cooperate? Is the app going to work in tandem with the website and display the same votes or are they going to compete?
    If they compete: Is this what we want? Given the current number or FOMO players, more dilution could lead to settling less desirable nouns. I assume the app will have fewer players than the web version, but if they manage to find consensus, this might “overthrow” the majority playing on web as it would be harder for the bigger group to find consensus.

  • The chat: In discord you said you are working on Discord integration, is this still the plan? Is it going to display the general chat or is there other plan?

  • Lack of demand: Given the relatively low number of players on web version of FOMO, has there been any survey to gauge interest in an app version? From what I´ve seen, people in crypto tend to be pretty hesitant when it comes to installing additional software and I don´t remember seeing people showing demand for an app version in the discord server.

  • Funding: This very much ties into the previous points. I honestly don´t know how much it costs to develop an app, but at this point in time 22 ETH does not seem justified to me, given the utility and demand problems I´ve highlighted above. Even compared to previously passed proposals (after discounting premium for the very early proposals and idea originality).

From my POV this app would serve a very specific purpose that for me would not justify installing it (even if what I wrote in the first bullet point turned out to be wrong) as it would be unused 99% of the day + whenever FOMO does not fit my timeline (so a lot). I would very much like to see Discord chat integration the the web version and maybe even notifications, both of these are valid points, but I am not convinced a dedicated app is the way to do it.

2 Likes

Thank you, Maty, for raising all these critical questions!

Let me go through them:

On Cooperation with current FOMO:

Mobile apps will work alongside the current FOMO. In tandem. Here is the picture to show it better:

There is current infrastructure with the website as the main place where everyone votes. There also will be mobile apps that will add votes to the same “pool” as the website. So every player will be on the same “page”.

On the chat:

I was considering making the Discord based chat running in the app through WidgetBot, as this will be the easiest way to go for everyone, but some things put me off this idea:

  • It supports sending only text, so no reactions and stickers. This sounds rather boring. And leading to the second point:
  • There are some problems with how the text input field is displayed with the keyboard open on the page that I will have to load in the app…and some other bugs. And it will always feel “out of place” as it still will be a web page rendered inside the app. This looks like a not good enough approach to me.
  • WidgetBot also requires a lot of permissions. One of them is the ability to create webhooks, which are considered a vulnerability in the crypto discord world. I honestly didn’t ask if nouners that look over Discord would agree to include this bot to Nouns Discord, but I would refuse in their place, and I won’t ask to go with a solution that I see as potentially not safe. We could also have created a special server for FOMO chat that no one would care if it were hacked, but what’s the point with that will be anyway?
  • WidgetBot also seems to have outage problems…while I was testing it out, 3-4 times I couldn’t send a message…and it looked like it was not only me who had the same problems…

I have tried it out, and I sadly didn’t really like what I saw in the process:

I also checked many other possibilities to make this, and I personally think I went through all possible ways it could be done. All popular/not so chat software, Telegram chats, custom chat services that cost $500 a month, ones that are a bit cheaper… And in the end, I was left with the understanding that the best would be to build a simple custom chat. And given some things I described in the chat proposal, it looks worthy of me making some DIY thing.

If there are other good/convenient ways to go with it, I would love to go through them.

Of course, all I have written is valid if we consider having a chat on both the web and mobile. If having chat only on the web, things are easier.

On lack of demand:

Let me get back in history a bit, as it might be helpful to show how it’s all was coming up:
For me, this started after I asked forager and rayo if they planned to realise notifications for the time action ends and voting starts, as I was missing quite some time waiting for the bidding wars to end. It’s quite a view, but I wasn’t interested in that. Guys replied that it might be better to see if the iOS team can make notifications in their app, as it might be more efficient. It still was to figure out if they would add it. And I also mostly use Android, so when and if there will be an app on Android was a really big question.

I have been running with Twitter Calendar notifications for some time, and at one point, I thought about why not make the apps myself and bring a native mobile play experience. After one FOMO round, I asked how everyone would see if I jumped on and created apps. There was a pretty positive response. The FOMO team was very supportive of me making the FOMO apps. I started working on them and asking for funding on this in the meantime. I agree that the response to having the apps was rather cool after that moment, but wag(nouner) helped me big(big thanks to him and noun22) with checking with other nouners for feedback on the app. It sounded that there was support for it.

Given that FOMO is now a big part of a DAO, why not expand it to mobile apps that, even without huge novelty, will bring some tangible additions to the gameplay? Yes, there might not be many people asking for the app asap, but given DAO is here to stay we might see growing interest in people playing FOMO, and giving them different good choices on how they can participate will play only good IMO. And I see how fire playing on mobile will be. Of course, I’m biased here, but I want to show everyone what I see in this direction and give everyone the ability to experience it themselves.

Also, as I know, Joel Cares is now working on a Discord bot that will have some sort of notifications on when auctions end, so there also might be a possibility to have notifications through the Discord, I guess. This will be great if it happens, as I think the more choices, the better, so everyone can have what fits him best. Anyway, why not just sit down and relax as Joel is now at work, you may ask? As I have started all this already, I also uncovered other things that won’t be possible when playing on a website on mobile. This includes a chat gameplay layout that I think will be an absolute beast and tactile feedback.

I know many crypto people are cautious with installing apps…but there is an iOS app in the making, and quite some people have it installed… why they would be against installing the FOMO app? Anyway, all code is open-sourced, so you could even check everything and build and install the app from your local computer, as I will write all the instructions(though it’ll require some basic dev knowledge).

On funding:

The biggest basis for the costs is voting on nouns, chat and notifications. The latest two require work on back-ends too.

For example, with notifications, I thought of spending 10-14 hours to make them, which is a normal time for web2 + some buffer for possible web3 problems. But it turned out I had to spin up a special back-end with quite complicated AWS Step Functions setup to notify on auction end, as there is no easy way to get that information. I already spent 40+ hours on that and am not finished with cross-platform code and haven’t even touched iOS platform code.

And, of course, releasing apps on both Android and iOS marketplaces is considerable overhead compared to the websites. Creating profiles on marketplaces, app signing, making binaries, copy, images…this sadly adds to quite a time.

My initial ask for small grants was lower as I planned for a simpler version, and I underestimated time requirements for notifications, for example. Adding here time for making good chat, beautiful animations, more helpful information pages throughout the app, and getting artists to make some custom art for the app(chat stickers, icons, etc.) also adds time and money. If going to have an on-chain proposal, why not aim to spend more time making a better application?

Compared to other proposals…DAO has funded the iOS app with 100 ETH and during a higher ETH-USD rate(in the 3000+ range). If we discount 15% as it’s in the first 10 proposals and divide by 6(team members) price align more-less with what I’m asking. They deliver iOS and Apple Watch apps, while I’ll deliver iOS and Android apps. Yes, I haven’t created an idea to vote to select nouns from scratch, and I’m starting on what is already available, but it’s also realistically reflected in the funding amount. This comparison is very blatant, but if to take something into comparison… hope to hear your(and everyone’s) thoughts on that.

My apologies, I have written quite much. I hope this answers your questions!

1 Like

(1)
I think from the decentralization standpoint it would make sense to have multiple versions of FOMO when/if there is a larger amount of people playing. This to me would make sense if it existed as a separate thing, with its own backend and probably a different hosting provider.

(2)
The custom chat service would make sense if there were a lot of people playing the app version of FOMO, not sure how useful it would be at this point ifs going to exclude the majority of FOMO players (web players).

(3)
With the lack of demand, I was getting more at the actual number of players. The biggest player count I have ever seen was around 45 if I remember correctly, out of these I´d say 30 were voting. Out of these, how many do you think would want to install the app and switch to the app version (which would no doubt be better given the notifications and chat, but it´s also much much easier to open one more tab in a browser on any device, than getting the app)? I would estimate no more than 10% (and that is a very generous number IMO) which would be like 3-4 active users daily. And 45 was the most I have seen, yesterday I was finally able to play again after a long time and there were under 10 players with around 5 actively voting.

The app would IMO not bring any new players, just move some from web to app version. Would it be worth it to build an app for such a low number of active users (which could still be playing FOMO on web, so it’s not like they would be completely cut off)?

Some ideas:

  • It would make more sense to me to improve the web experience at this point, as we dont have that many players yet and it might help to get more people to play - have you talked to rayo and forager if it would be possible to work with them on the web version? Adding the notifications and figuring out the discord integration with web version?

  • You mentioned the discord chat plugin was not very good, maybe it would even make sense for the DAO to fund the development of such plugin?

  • Depend on what the others think, but if there is a will to go through with the FOMO app, I would suggest cutting out the unnecessary expenses (custom stickers and design work) and doing a simpler version with basic functionality (without the chat probably, maybe only on one platform - android/iOs) and funding closer to your original proposal to check what the response is and if people want to use an app to play FOMO.

1 Like

(1)
There is no problem in spinning up the separate parallel back-end and having the apps send information there. However, I don’t see a need for that in the foreseeable future. And why do this as it will create two fighting forces problem you described yourself before?

P.S. In need, it’ll probably take 2-3 hours to take online another parallel
version of the current Fomo infrastructure(back-end with or without website) and channel everything there. But it’s still will be with Alchemy as a blockchain access provider

(2)
As I have said in the proposal, the chat will be on the website too. The Fomo team is also into having it on the website. And everyone both on web and mobile will be on the same chat. I’m making sure this is happening since I absolutely understand that there is no point in having a chat only for mobile app players.

About DAO funding Discord plugin development:

What benefits it’ll bring over creating chat using the other ways? For example, using the usual DB solution, which will be faster in implementation and better in general(it’s hard to recreate 1:1 Discord functionality, and prob would require funds much bigger that this proposal)?

Many people complained about the need to alt-tab to get to discord chat, so what would be the benefit of having the chat available from the discord app? Someone not playing on the Fomo website/app, but chatting with people on Discord in fomo-trollbox channel? When you could just chat from the Fomo website/app?

(3)
The main point of the mobile apps(not only this one but in general) is to bring a better user experience to the users, those who see the more comfort using the smartphone for playing. Including those who come from the web. Even if it’s only 4 active DAO participants, I think it worth spending resources rewarding them with a better experience, considering they play a big part in getting better nouns that result in higher money incoming in the DAO. Yes, they could play opening the browser on their smartphone, but why not spend 1/3 of what the DAO gets daily and bring them something substantially better?

And I don’t think we should discard the point that DAO is actually just starting, and it’s only 243 members in it. I think it’s worth looking at how things will compound and where we’ll be in the years to come, with much-grown participants number.

I also would like to see an improved web experience, but as I have extensively written above, this all rose from the point that Fomo dev saw it better to go with a mobile app solution for notifications. And chatting with them, I didn’t see them now wanting to spend time making notifications on the web, for example. And this is important to me, and for others too. Working with them is also complicated for me as I haven’t ever worked with React framework and, as I have also described above, I now see more things that could be done, that are hardly possible on the web.

Anyway, I’m all into doing how DAO members see the best, as I’m doing this for DAO members, not for myself only. If they see better fund it for just part of what I have proposed, I’m into that(though it’ll be a pity not seeing the chat gameplay yet, as I see it as an absolute killer feature). If the DAO members see that they don’t need apps(though, there are members seeing the opposite), I’m into it too.

1 Like

Here is also additional costs breakdown for the functionalities that will be implemented:

Infrastructure and artist costs 2 ETH

  • Paying Android marketplace fees($25 one time)
  • Paying iOS marketplace fees($99 a year) for three years
  • Paying for possible website(domain registration) and email costs
  • Paying for artist to make custom icons to use in mobile app, animated stickers and emojis to use in chat

Design work 2 ETH

  • Design process on different elements of the app. Incl. working through different versions of voting, chat, settings, info screens and other app elements to make them look and work best on mobile

Voting for the next noun (Cross-Platform code) 6 ETH

  • Porting of nouns-sdk libraries to Dart(It’s not possible to use TypeScript library) language so it’ll be possible to create noun seed and noun SVG to display in the app
  • Communication with FOMO back-end to send and receive votes on the noun
  • Retrieving bloc data through Alchemy web-socket
  • App UI that shows possible noun, buttons for voting, time left to vote and whether votes are enough to attempt minting a noun
  • Making animations so UI will look fluid and appealing

Chat (Cross-Platform code) 6 ETH

  • Back-end that will store chat messages and authenticate users(using Firebase, or similar service, or current AWS backend)
  • Messages send and view in the app
  • Functionality to send to the chat image of current noun with one button
  • Functionality to send to the chat images of the last 5-7 nouns from easy access menu
  • Functionality to send animated stickers from easy access menu
  • A hovering element that allows voting on nouns while being in the chat screen
  • Work on helping bring this chat to the current FOMO website
  • Making animations so UI will look fluid and appealing

Notifications (Cross-Platform and iOS, Android specialised code) 3 ETH

  • Back-end with AWS Step Functions that checks blockchain state in coordinated periods and organise notifications send when the auction ends and 5,10 minutes before the end
  • Firebase Cloud Messaging set up that receives notifications data from AWS Lamda Function and make delivery to the apps
  • Android platform notifications set up so the app will correctly receive notifications
  • iOS platform notifications set up so the app will correctly receive notifications
  • Cross-platform code for storing user notifications preferences
  • Cross-platform app UI in the settings screen for selecting notifications preferences and screen to explain how notifications work
  • Making animations so UI will look fluid and appealing

Vibration, audio feedback, info screen, etc. (Cross-Platform code) 1.5 ETH

  • Vibration feedback when a new noun is ready for voting
  • App UI in the settings screen for selecting vibration feedback preferences
  • Audio sound feedback when a new noun is ready for voting. Incl search and payment for good fitting audio
  • App UI in the settings screen for selecting audio feedback preferences
  • Info screen that describes what Nouns are and general information about nouns ecosystem
  • Intro screen that user sees on first app launch that briefly describes what app provides
  • Modals and pop-ups that ask if the user wants to turn on notifications. Toasts to notify in the app that voting started, show errors.
  • Making animations so UI will look fluid and appealing

Marketplaces deployment costs (iOS and Android code and platforms) 1.5 ETH

  • iOS icon and splash screen adding
  • Android icon and splash screen adding
  • Preparing iOS app for beta releases. Incl registering app in App Store Connect, preparing app metadata, making release builds. Publishing to TestFlight.
  • Preparing Android app for beta releases. Incl registering app in Google Play Console, preparing app metadata, signing the app, making release builds. Publishing app for open beta.
  • Making iOS and Android app screenshots and writing store descriptions.
  • Publishing iOS and Android production apps

Selectable back-ends

As interestingly raised by Maty and wag, the app may also feature a customisable back-end. The user will have two choices:

  1. United back-end. In this case, all votes will go to the same back-end as the website. So, all votes from the website and mobile app will be united and the decision on what noun to mint will be based on votes from both web and mobile. And mobile apps will function as extensions of web fomo.
  2. Apps only back-end. In this case, all votes from the mobile app will go to the back-end made for the mobile apps only. This will feature distinct infrastructure (back-end, smart contracts) and gas costs will be funded separately from the current contract.

Why adding another app only infrastructure:

As you know, websites are somewhat irresistible to Sybil-type attacks. A malicious actor can open dozens of tabs and hugely affect voting. And this could be done easily. With the mobile apps, it’s much more problematic to spin up 100 apps instances, and it’ll require significantly more resource investment, making it less interesting for the casual attacker.

However, there is a possibility for considerable cons in having separate back-ends as it might create fighting forces. A platform with fewer players might easily overthrow the other one as it may be faster to find consensus on a noun.

At the same time, it may end up being a fascinating turning point in the fomo gameplay and an interesting experiment to try.

I think it still doesn’t make much sense yet, but having a second iteration with its own back end (or selectable back end but with the second selected by default) could be valuable once we reach much higher player count (Id say over 100, as opposed to 5 players in Europe timezone and 40 in US).

Also I completely disagree with “even if it’s only 4 active DAO participants, I think it worth spending resources rewarding them with a better experience” , spending 20 ETH to bring better experience to 4 players, given the experience with web version is pretty good as it is, is in my eyes definitely not a good allocation of resources.

The thought behind DAO funding a Discord chat plugin for the web was that it could be used not only by Nouns but also by the hundreds (thousands?) of other crypto and non-crypto projects that mainly utilize Discord. Basically everything in the NFT space happens either on Discord or Twitter, and the attempts to bring the conversation outside the discord server have not received much traction so far (this discourse page being a great example, notion pages being another /even though both of these are pretty good at what they try to do/). So I was just trying to come up with a way to bring “what we want people to see and interact with” to people, instead of trying the other way around, as that clearly doesn’t work :slight_smile:
Maybe this sort of plugin, bearing the Nouns name could help proliferate the brand in a very specific way and be a general improvement for the crypto space.
What if it worked in a way that a new discourse page/proposal would open up a new discord channel and all the conversations would happen in the same place (instead of having to engage both here AND in discord) but it could be viewable from this page as well? Im not sure if its possible or not, but it could be the thing that would bring more feedback on proposals.

2 Likes