allo-protocol / allo-v2

Core Allo V2 Contracts
GNU Affero General Public License v3.0
86 stars 65 forks source link

(spike) recommend AlloScan tech stack #310

Closed nfrgosselin closed 1 year ago

nfrgosselin commented 1 year ago

timebox to half a day

We need to figure out our tech stack for AlloScan (i.e. NextJs, React, something else?).

The scope of this ticket is to research options and provide a recommendation back to the team on standup. Remember that we need to ship a completed project by Aug 22, so the proposed solution must fit into that appetite. Let's try to prioritize tools that we know well (to limit learning curve) and that are pre-built.

Resources:

0xZakk commented 1 year ago

POC of Spec x Allo:

https://github.com/allo-protocol/allo-v2-spec

thelostone-mc commented 1 year ago

Tech Stack Decision for Allo Scan

Front-end Stack: Next.js vs. React

Next.js would be selected as front-end framework for building Allo Scan.

This choice is rooted in several compelling reasons:

State Mgmt

We would use React context to manage states

UI library

We would use tailwind and tailwind-ui. The goal here would to avoid building anything custom / complex. Use what is library and avoid complicating the UI for v1 Another option is using daisy-ui which is built on top of tailwind

Deploying

Data Fetching Options: Chain, The Graph, and Spec

We've thoroughly explored three options for data fetching and have formulated the following recommendation:

Final Recommendation

The proposal proceeds with The Graph for data fetching due to its compatibility with our multi-chain requirements and its strong foundation. We'll keep an eye on the Spec framework's development for potential future use, this would mean carving out time to build on spec and evaluate when the switch should be made.

By selecting Next.js and The Graph, we aim to balance development ease, performance, and scalability. The use of Vercel for deployment will further enhance our development workflow.

@0xKurt @codenamejason This would mean we build allo-scan in a ways where switching data adapters can be done without affecting the business logic

codenamejason commented 1 year ago

I was able to utilize Tailwind UI today with out-of-the-box components and have a decent look and feel. With this, we should be able to use any of the UI components within the app seamlessly without a lot of css work if any at all. We just have to then update the data for the UI.

codenamejason commented 1 year ago

I agree with @thelostone-mc on the final recommendation. I think this will allow us to ship and maintain a simple version while we then plan any new features and/or upgrades.

Vercel is an excellent choice, it's very simple to use and has very large community for as new as it is. I am also very familiar with the CI flows and is very simple to set up.