Snapshot App development

Last updated by Egor Milyukov 6 months ago

Snapshot plugin/app development 


Grindery Snapshot App  is a standalone React app, powered by Nexus workflows and hosted independently from Snapshot (Heroku, Google Cloud, etc). 
Grindery Snapshot plugin  is a small Vue app pushed to the Snapshot github repo. 


The project consists of two parts: App and Plugin. 
App is responsible for: 
Receiving Snapshot space and proposal IDs from URL query 
User authentication 
Workflow configuration 
Workflow saving/editing 
Handling notifications 
Plugin is responsible for: 
Rendering UI to enable integration in the Snapshot interface (sidebar) 
Getting specific Snapshot space id 
Getting specific Snapshot proposal id 
Sending user to the App to complete configuration 
Optionally getting user address 

User story 

Click on the button in the sidebar of the Snapshot proposal screen to enable notifications. Button redirects user to the Grindery Snapshot App 
Authenticate in the App 
Configure notification type: 
Channel (initially only browser notification, later email, telegram, etc) 
Event (proposal created, deleted, started, ended, etc)  
Save configured workflow 
Receive notification when event happens 
User redirected to the Snapshot proposal when notification clicked 

Project requirements 

Firebase driver (ready) 
Snapshot driver with triggers to listen for proposal events (not ready) 
Snapshot driver CDS (not ready) 

Required developer skills 

Snapshot (optional, can be learned in process) 
Browser notifications (optional, can be learned in process) 

Estimated effort 

Grindery Snapshot App: 8-12hrs 
Grindery Snapshot plugin: 2-4hrs  



Snapshot plugin: 


Nexus JS client: 
Nexus Authentication React hook: 
Nexus UI React components:  
Refreshed On: Jan 27, 2023 16:51:38 UTC+00:00