Context
A final non-Dubupdate post coming your way - no Dub again, but support for profiles and spaces coming soon:
Overview
This week has been the final week of Dub Restructuring (!).
This has been a few weeks in the making - and basically required a rewrite of the entire Dub app (and a rewrite of the frontend is also needed - coming soon).
As of now, we have support for profiles, spaces (instances of those profiles with their own set of tabs), and the amazing things that that enables-
Profiles are basically collections of browsing/blockchain history and wallets - allowing you to group your web3 and web2 personas and context switch easily.
A space is the tangible manifestation of a profile - pulling on its history/wallets and layering in a set of browser tabs. These tabs can pull from any of the wallet in the space and contribute to its history.
For example:
- Have a profile for Work and Personal, each with 2 wallets
- Have a browsing space for Research (Work), Development (Work), and Entertainment (Personal) with a unique set of tabs
Research and Development will have access to the same set of wallets and browsing histroy, while your entertainment space will be kept distinct (so you can’t accidentally transact with the wrong wallet)
Process
I changed (literally) every single file in Dub:)
This has been a LONG time in the making - and I’m really excited to finally be handing off a first version.
A lot of the past week’s work simply involved refactoring - changing file A causes errors in file B causes errors in file C, etc… and so forth and so on.
Now that we have a first version done, I’ll be pushing forward to get it all integrated into the front end - which will likely require some bug fixes on my part :)
Next Steps
A couple quality of life improvements are needed before moving on to the next big thing:
- Rigorous testing - I’m currently setting up my own temporary views to make sure everything works as expected / creating sample code
- Parsing out and separating all front-end functions (so that Cam & team have a really easy place they can look to)
I’m already partially done with this, just need to push it over the line - Error Catching (I’m basically ignoring when errors happen and logging them to console, but I need to set up a more robust error tracking and handling solution so we can track in the wild)
If possible, this new structure makes Data Persistence MUCH EASIER - I’ve already taken a few first steps towards implementing this, but need to wrap up pushing and loading all data from disk.
More to come soon. See everyone next week! 👋