Our inspiration for Greenfinch started with what might be possible with the Neo blockchain and specifically what might be possible with NeoFS. Our starting point was whether we could build a decentralized version of Dropbox. For us, that would validate our initial assumptions whilst also providing us both with the knowledge of what else might be possible with that functionality in place. As it happens that work opened up a whole world of possibilities.
What it does
Greenfinch allows any user to upload/download and store any content on the NeoFS decentralized network. Greenfinch is a user-friendly GUI and desktop application that opens up the world of decentralized storage in a way not yet seen.
As it stands, the version of Greenfinch that is currently live, allows a user to:
- Create a new wallet
- Load a wallet
- Create containers
- Upload objects (files) to containers
- Create contacts and share containers and permissions with contacts
- The 'Container as a website' and 'NFT Management' functionality are currently work in progress
How we built it
Greenfinch was built using a lean development approach. Alex is a back-end developer by nature, Robin is a front-end developer. Alex and Robin would discuss potential functionality and plan out what to include for an end-user. Alex would build out the functionality, test it and Robin would then come in and clean-up the look and feel, implement the necessary user interface and make sure the app had a cohesive design. The back-end was created in Go, the front-end in React app.
Challenges we ran into
Learning a new technology and how you might implement it into a working app, as you build is very challenging. But it's also a very good way to learn the specifics. And as a large amount of what they were doing was new, there are always hurdles to navigate. As a result at some points progress was slow, but they have got to a good position in the time allocated. NeoFS is very much a new technology and extremely complex. Working through the capabilities of NeoFS created its own hurdles that we overcame to offer something we think is awesome.
Accomplishments that we're proud of
Alex and Robin are really proud of where Greenfinch has got to in the past 3 weeks. A lot of work has been undertaken to take our initial version of the functionality to something that actually feels like an app. Connecting up the various screens and implementing live functionality has highlighted what is possible moving forward with the technology. Sharing containers is something they are both very excited about. Greenfinch has a number of potential end-users on their Discord server and are looking forward to using them in a round of user testing, and user development over the coming month. Alex is particularly proud of the database optimisation he undertook last week to make the end-user experience as fluid as possible.
What we learned
The team learned a huge amount not just about Neo and NeoFS, but also what it means to build a decentralized ecosystem for end-users. Innovation is hard, and learning as you go is even harder. But with each new development, Alex and Robin could both see the extensive potential of the app. The Polaris Launchpad has solidified their attitude to taking Greenfinch forward as much as possible after the deadline.
What's next for Greenfinch
Based on where we have got with the Polaris Launchpad, there is an ever-growing list for the backlog. Key specifics on what we'd like to explore next include:
- Decentralized databases. This will offer huge opportunity for the decentralized world. This becomes especially exciting when database entries can 'auto expire'. Watch this space.
- Limited time access tokens. The ability to offer 'early bird' access to data and limit the time any single account can access data.
- Pick-up the work required to push 'Container as a website' functionality live and demonstrate the potential of web hosting, static site generation and document handling.
- NFT management; the team would like to undertake a discovery phase that allows them to understand exactly what is needed to manage an NFT collection and how Greenfinch could be at the centre of that process.
- Fully end-to-end encrypted decentralized storage capabilities. To then tie this in with the database option.