--- tags: RFP, spec --- # Notifications Feature RFP Notes [GitHub Link](https://github.com/HausDAO/daohaus-monorepo/issues/138) ## General Notes and Questions (to be organized) Catch all for various questions -- added a header for grouped questions ### Scope - Do we want to focus on this being *read only* (reading proposals and having notifications sent) or do we want to also support *write* (creating, supporting, voting, processing, executing proposals) - This probably depends on our user stories and what we identify as the *core pain points* we want to address with this -- - There is likely still benefit to being able to read proposals / be notified of proposals through an app, but I also think there'd be an expectation of *interacting* with the proposals that are in a DAO feed - Would our initial app build tackle *only notifications* or would we want to build an app that is a DAO hub/feed and notifications? - What is the benefit of one over the other? - For example, what's the benefit to users of having an app that provides notifications but *without* a DAO hub/feed? What is the benefit of a DAO hub/feed *without* notifications? ## Inspiration - Mobile-first approach to DAO notifications and a proposal feed. - A "DAOist On the Go" tool for DAOists who need to be able to interact with their DAOs while away from their laptop/desktop. ## Pain Points - DAO participation (on DAOhaus, but on other platforms as well) is difficult when relying on a mobile device. Awareness of DAO activities such as voting on proposals -- even being aware of proposals -- tend to rely on being at a laptop/desktop with a dedicated browser. ## Initial User Stories - As a DAO operator/participant, I want to view a list of the DAOs that I'm in. - As a DAO operator/participant, I want to be able to click one of my DAOs to go to a dedicated 'hub' for that DAO. - As a DAO operator/participant, I want to see a list of proposals at all stages in the proposal lifecycle. - As a DAO operator/participant, I want to be able to receive **notifications** on my mobile device for key actions such as proposals entering the voting period. - As a DAO operator/participant, I want to be able to select what I receive notifications for. - As a DAO operator/participant, I wan to be able to do important DAO actions (such as sponsoring, voting, processing, and executing proposals) from my mobile device. ## Potential Ideas - [Discord Integrations](https://discord.com/developers/docs/intro) - Similar to the DAOhaus v2 Discord boost → notifications in specified Discord channels - Can this be customized and configured by the user? Would this accomplish the same goals as our initial pain points and user stories? → - User would see the feed in Discord and take action from there, but it's still separate from an actual app that would do this as its specific focus - [Hal](https://www.hal.xyz/products/hal-notify) - Seems similar to [Zapier](https://zapier.com/) but with a web3 focus - [MetaMask Snaps](https://metamask.io/snaps/) - [Push Protocol](https://push.org/) ## Design and Architecture Ideas - Jotting down some basic ideas here -- we'll definitely want to refine our design goals based on the user stories ### Design - Mobile-first design approach regardless of architecture choice - UX focused on a few core features done well and with a clean, minimalist mobile UI with the main goal of *removing friction* - Likely use neutral color and an often used, fairly netural UI typeface (such as Inter) -- leave room for gradual refinement and/or branding integration ### Architecture The data fetching and wallet connection would (likely) be the same for each approach. ### Data Fetching - [DAOhaus Moloch v3 Data Library](https://www.npmjs.com/package/@daohaus/moloch-v3-data) - [React Query](https://tanstack.com/query/v3/) for data fetching from the Data Library and for handling lifecycles - Hook pattern that wraps React Query that'll leverage the data calls from the library ### Wallet Connection and Interaction - [RainbowKit](https://www.rainbowkit.com/) and [wagmi](https://wagmi.sh/) https://web.dev/progressive-web-apps/ ### Option 1: Progressive Web App (PWA) - [Progressive Web App (PWA)](https://web.dev/progressive-web-apps/) - [Next.js PWA](https://github.com/vercel/next.js/tree/canary/examples/progressive-web-app) - [Vite PWA](https://github.com/vite-pwa/vite-plugin-pwa) - Style options: - [Chakra UI](https://chakra-ui.com/) - [Tailwind](https://tailwindcss.com/) ### Option 2: React Native App - Utilize [Expo](https://expo.dev/) for scaffolding - [Expo Notifications](https://docs.expo.dev/versions/latest/sdk/notifications) - Potentially leverage [Solito](https://solito.dev/) for a React Native + Next.js app (depending on scope and goals -- do we also want this to be a web app as well?) - Style options: - [NativeWind](https://nativewind.dev/) - [NativeBase](https://nativebase.io/)