---
# System prepended metadata

title: Notifications Feature RFP Notes
tags: [' spec', RFP]

---

---
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/)
