witness roadmap (potentially) for @jesta in 2018

in #witness-update7 years ago

Being that January has come to an end, I wanted to take a bit today to write and explain where my head is at for 2018 and a bit of a recap on 2017. Man, what a crazy year for crypto overall!

Please note - none of what I'm about to say is set in stone, I welcome suggestions and discussion, and am happy to change my point of view if/when needed. I make a lot of assumptions throughout this post and you're free to call me out on them.


Looking back at 2017

To kick things off, I figured it'd be wise to look back at what 2017 was for me. In my 20 years of web development, I don't think I've ever created so many functional prototypes and products all within in a single year.

  • Vessel: Desktop wallet for Steem
  • chainBB: Forum interface for Steem
  • opBuilder: Transaction/Operation Builder
  • Steem Rewards History: python CSV exporter for accounting
  • Block Explorers: multiple blockchains, including Steem, Peerplays, Karma, Muse, Golos, Decent
  • Setup of dozens of RPC, seed and witness nodes
  • Powerbot (discontinued)
  • ICO Bot (Experiment, discontinued)
  • Steem Wallet API (in progress)

The year before (2016) also included SteemDB, Reprint (aka SteemPress), SteemStats, and a handful of witness scripts.

The point of this isn't to brag or beg for witness votes, it's to illustrate something I felt through most of 2017: I am spreading myself too thin.

A common saying I've constantly been thinking about in 2017 is "do one thing, and do it well", which I haven't been living by at all. I've been doing a ton of things, all that Steem arguably needs, but they've all been done with varying levels of "completeness" and there isn't a single one that's perfect.

I hope to change that this year and focusing on fewer, but more finished projects.


Prioritization with regards to other projects

When considering all of the projects I've started and all I'd like to do, I needed to take a moment and step back to consider what else is happening outside of my control in the larger ecosystem. In a very broad sense, what I see happening in 2018 (hopefully) is:

  • More frontends and websites being built with the Steem blockchain
  • Smart Media Token launch and some level of adoption within the year
  • Improvements to the onboarding of new users into the ecosystem
  • Technical improvements to the Steem blockchain software to assist with scaling

The development, progression, and adoption of many of these things are outside of my control as an independent developer. As a witness, I can push for these as priorities, but ultimately my only role as a witness is to approve proposed consensus changes via HF voting and to ensure the blockchain remains operational.

All of this should be accounted for when considering my own priorities.


Needs vs Wants

A lot of what I started in 2017 was things I "wanted" to see within the Steem ecosystem. To be completely honest, I don't think I knew exactly what Steem "needed" until I thoroughly explored every facet of the system. A lot of the projects I started, while awesome, aren't really what we "need" at this point of the Steem life cycle.

I think I have a better grasp on these "needs" today than I ever have before. It's a matter of analyzing the difference between "needs" and "wants", both personally and for the community.

Considering that, and considering I'd like to focus harder on fewer projects, I need to make some tough decisions about what to continue with and what to slow down on. I think I have a pretty solid idea of what's what, and I'd like to know your opinions on the matter.

Here's a list of what I've worked on recently, separated into what I believe are the needs/wants of the Steem community:

The Needs

  • Vessel: A desktop wallet for users to stay safe and secure.
  • SteemDB: A block explorer for users to reference blockchain data.
  • opBuilder: An integration tool for other developers to build upon Steem.
  • Wallet API: A secondary layer (besides the blockchain) for useful information within a wallet.

The Wants

  • chainBB: A forum interface
  • Reprint: A wordpress replacement
  • SteemStats: A fancy account dashboard
  • Powerbot: A delegation bot

Personal Needs != Steem Needs

This is something I've come to realize in this process. A common theme in the projects I've classified as wants is that they were fulfilling personal needs (primarily in the form of income) and really aren't needs to the ecosystem as a whole. chainBB, Reprint, and Powerbot were all projects that generated revenue to help me sustain my work with the ultimate goal of setting up a business around them.

chainBB - an example of a breakdown in its needs

For the past 8 months I've worked countless hours building the chainBB.com engine. I still use it, it has some great features, but fundamentally there are still roadblocks standing in the way of its success.

To illustrate this, let's talk about one roadblock involving account security. Two of the features I've been promising for chainBB's next release are: custom moderation teams and custom beneficiary payout structures.

These two features require a higher level of security - much more security than a posting key within Steem should be allowed to perform. You don't want an unauthorized user altering the payout structure of a forum you run, nor do you want this user to be able to change who's allowed to moderate its content.

For ultimate security, it's my belief that these operations need to be signed with an accounts active key. The active key shouldn't be entered on chainBB (or any website really) - which led me to develop the Steem custom protocol and integrate it with Vessel.

Projects like chainBB need Vessel to keep users safe.

For the past 3 months now I have been bouncing between chainBB and Vessel development, trying to unblock myself, and Vessel still isn't ready to support what chainBB needs. This unfortunately has caused chainBB to stall in development and leaving me needing to rethink many things about Vessel. A simple analogy to the situation would be that I'm having to build the highway before I can ship any products, and building highways takes time.

This isn't the only roadblock either, with others including aspects of account creation, beneficiaries, and the actual content organization itself.


The 3 projects of greatest importance

With all of the above considered, I believe I have 3 projects that really stand out as important to the ecosystem, and they really need more attention to be the best they can be:

  1. A desktop wallet (Vessel 2.0): an app users can download to secure their account
  2. A block explorer (SteemDB 2.0): an app users can use to reference blockchain data
  3. A dedicated API backend (SteemDB 2.0 API): an api that anyone can host, providing data to both the block explorer and the desktop wallet.

This trio isn't a new concept and I've taken a lot of inspiration from what BitPay has done for Bitcoin. You can see this same setup within their products:

  1. Copay/Bitpay - A desktop/mobile wallet
  2. Insight - Bitcoin based block explorer
  3. Bitcore - wallet services - API backend

Their API backend powers both their block explorer and wallet, the wallet references the block explorer, and the block explorer can be used to trigger the wallet.

Why version 2.0?

In retrospect, the way that both SteemDB and Vessel were built wasn't optimal.

Vessel at its core has some fundamental issues in how accounts are stored, the way electron is configured, and the way the interface is setup. Features were continuously added to support features with little regard to its entire UX and its gotten somewhat messy. Now consider multiplying those features with the introduction of SMTs and it gets crazy. I have been thinking about a version 2 of Vessel for some time now exploring newer software and better user flows. These all will be easier from the ground up, as opposed to reworking existing code.

SteemDB falls into the same category and is growing exponentially right now, making it hard to scale. Beyond scaling, the way SteemDB was setup was for a single token ecosystem (STEEM/VESTS/SBD), and adding the concept of SMTs to it would currently be a nightmare. A new data structure is needed. I'd also really like to move from Phalcon/PHP to Python API's and a ReactJS frontend. SteemDB was my 2nd(?) project for Steem and started in 2016, and was absolutely a "learning" project for my understanding of the Steem blockchain.

Both of these projects deserve to be more.

Regarding other projects (revisited)

Earlier in this post I mentioned 4 bullet points, 3 of which I'll reiterate here. Each of these needs wallet and block explorer support to really maximize their potential.

  • More Steem frontends/websites: As more websites integrate STEEM and/or SMTs, a wallet will be needed so you don't have to trust these websites. These websites may also need to point to external data sources for "more information", which is where a block explorer comes in.
  • Smart Media Tokens: As new SMTs are created, we will need a block explorer capable of viewing the details of each token. We also will need a wallet for managing SMTs and keeping them secure.
  • Ease of onboarding of new users: Users need an external source of truth and a way to research the blockchain itself, via a block explorer. Those with significant investments will also need a wallet to protect their account.

Currently, the existing versions of Vessel and SteemDB have no/limited support for these upcoming efforts.


So, a possible 2018 roadmap

The 2018 plans I have include some hard choices, but I'd like to share what I am considering so far. Below is a high level overview of what I'd like to accomplish this year:

  • Development of a V1 API platform/backend for use in the wallet and explorer.
  • Development of a V2 desktop wallet for Steem/SMTs (and rebranding).
  • Development of a V2 block explorer for Steem/SMTs.

It's a shorter list, much more focused, and while it's not "do one thing, and do it well", it's much closer to the principal since they're all components of a single platform.

I'll also likely have to do much more than just be a developer. I am planning on dusting off the skills I've long neglected for management and organization building, and am currently exploring the creation of a business entity, using witness rewards, in order to hire additional talent to push the envelope.

As a footnote - I am also planning to make all of these as platform/blockchain agnostic as possible, especially the API + Explorer combo. This is unrelated to my activities as a Steem witness, but an important aspect of the plan to hedge risks and encourage growth of other chains. Steem is obviously the most popular of all these other similar blockchains, but I believe building software to benefit the greater crypto community has a significant amount of merit and will go a long ways to improving inter-community relationships.

They should all be using Steem as their preferred social media anyways, right? :)

What does this mean for my other projects?

As much as I hate to say it, if I go through with this prioritization, they will be put on hold until further notice. This includes chainBB, steemstats, all existing v1 block explorers, and Vessel (1.0). This very likely isn't permanent (though it could be), because I'd rather be building community software (like chainBB).

chainBB itself will need further discussion, since it's in a more sticky situation (seeing as how it has paying customers). I can go two routes with how to respectfully shelf the project:

  1. Refund everyone what they paid for forums in the past and shut it down.
  2. Leave chainBB as is and allow the current system to operate as-is.

During this conversation and before a decision is made, I plan on reaching out to those users who have purchased forums to see what their opinions on the matter are. Hopefully some will see this news here.

I don't intend to screw anyone over, and the @chainbb account still has the funds required to refund everyone if I end up following through with this potential roadmap. I may have sold the SBD during the recent craze, but there's more than enough Steem to compensate everyone and repurchase any SBD needed.

Feedback - what do you think of this plan?

I started by stating this isn't set in stone, but I'd like to collect feedback so I can set plans into motion. What I need to do that though is feedback.

If you've followed along with this massive train of thought, I'd appreciate your thoughts.

Tell me what ideas you love and which are dumb, what's not entirely clear, how this could be improved, or what you'd rather see. I'm willing to consider all viewpoints here and I'll try to reward (with votes) those who participate in the discussion.

It's 4am now though - so I'm going to get some sleep before I chew through comments and engage in discussion.

Sort:  

Hi @jesta, I am a relative newbie to Steemit, but already I use a lot of the tools that you have created and I find them extremely useful. Firstly I just want to say thank you to your commitment to such a great and revolutionary platform. I am fairly technical and work in the ICT space, but as a new user of the platform, getting your head around all the 'steem tools' available is a very steep learning curve and as you say they all offer value, but they can definitely do with some refinement and focus which will help the less technical users as they continue to come onto the platform.

I believe your focused roadmap for 2018 is a very good idea. One of the greatest think I have found about the community on Steemit is the focus on quality of posts and content. Likewise I believe that if you focus your attention on the three key projects you mentioned above (Vessel 2.0, SteemDB 2.0, and SteemDB 2.0 API) you will be able to create great quality, robust applications that are built for the long-term.

As a user of the platform, I intend to be here for the long-term, so I am more than happy to do without the 'goodies' or 'wants' for a while and be patient for the quality and rigidity that the 'platform' needs for the long-term.

I do not pretend to know what the platform needs, but I know you are a very influential member of the community who most likely knows better than most what the platform needs. I just want to say that I support your strategy of focus and quality. I as a user are happy to be patient and watch this space to see the masterpieces your create.

Good Luck and thanks again for being such a force for good on the platform.

Loading...

I will admit that I've also felt like I was losing focus this year for trying to do too many things at the same time, and have not been as efficient as I would have liked. As you said, working on base infrastructure makes you want to write software that's as "perfect" as possible, just being OK doesn't really cut it in the long run, and you want to find time to focus more on the important parts.

I like the separation in 3 components: api, wallet, explorer, it makes a lot of sense. My opinion on each part is:

  • for the api/platform, you need something that is well-designed and flexible, and eventually very efficient. It doesn't need to be optimized at the beginning, because if the design is well thought out, you will be able to properly optimize later for sure. But you should make sure that the wallet and block explorer can easily be built on top of it. Eat your own dog food :)

  • most important criteria for the wallet is to be secure. A nice UX is of course always welcome, but again, this can be fixed later. However, if you want devs or advanced users to start using the wallet you'll need to be 100% secure.

  • block explorer: could be very helpful for debugging during development of wallet, but given that we already have other block explorers available, it doesn't sound as urgent as the api and the wallet.

But I'm sure you already know that :)

All in all, it looks like you've got yourself a pretty solid plan... Good luck for 2018! I will definitely be following closely what comes out of all of this ;)

hey mate,

I put out a post today regarding a large-scale idea to advance Steemit’s development, and was recommended to share with the witnesses for it to gain some proper exposure:


The $1 Billion Steem Development Fund: How Steemit Inc.'s Stake Could Be Best Allocated To Grow A Thriving Network Of Applications And Users...

would be cool if you could have a read through, and IF you like the idea, share it with some other peeps who may be in a proper position to advance the discussion started here.

regards,

Rok

From my PoV, that one is the most wanted:

  • Development of a V2 desktop wallet for Steem/SMTs (and rebranding).

...and I'm keeping my fingers crossed for it.

Well, except re-branding ;-)

Of course "Personal Needs != Steem Needs", I'm not using Vessel myself (yet?), but I can hear what people are saying in town(*) ;-)
(*) Seriously, I just met a guy in person, who was asking me about Steem and he mentioned Vessel.

Hah, that's awesome. Grass roots movement for wallet adoption :)

I don't really want rebrand either - but I also don't want to compete with the company that makes physical wallets and is also named Vessel. I figure people are going to google for "vessel wallet", and end up looking at actual leather wallets. Might as well find a better name that's not going to be competed against!

How much for that company? ;-)

Hahah, that'd be a first.

"Crypto wallet company buys actual wallet company to use their name"

I really wanted to write a feedback for you, but even after several minutes of brainstorming and re-reading of the article I’m not sure whether I’ll be adding anything that you wouldn’t already know.

I fully agree that Vessel is top priority and even more so with the SMT. You said you want to concentrate on fewer things. You obviously are a capable man BUT STILL the list of fewer project contains a LOT OF projects!:D I think you should do a "step by step" method.

Priorities:

  1. Vessel - SMT tokens included (obvious reasons)
  2. Block explorer even for SMT (will be extremely needed...we don’t want to see quadrillion block explorers for each SMT token

I really don’t see any other NEEDS until those applications are perfectly secure and working. This year will be hell of a ride for Steem (because of the SMT) and if I trust any developer to do the necessary job it’s you. I would disregard all the other wants and needs UNTIL you FINISH those 2 projects (Wallet 1st, explorer 2nd). Then when it’s ready you can do a brainstorm v. 2.0.

That’s what I call a step by step method… for me as an Information scientists the list of priorities seems a bit too big and I see potential “focus disruption danger”. But I only am using my own subjective opinion of a “non-developer entity” …Maybe the way you outlined will not hinder your efficiency…it would to me:D

I appreciate the reinforcement of the ideas :)

The prioritization of the projects also makes sense, though it may have to be slightly more granular. The wallet itself will actually be dependent on a some of the explorers APIs so I'll likely be bouncing between projects.

Thank you though, the discussion and external thoughts are much appreciated!

"Do one thing and do it well" is great, but I prefer a lot of new features/tools that are good, than one that is perfect. And it's hard to tell if something is perfect, everyone has their own opinion.

When you are saying you are going to put these projects on hold until further notice, does it means you just won't update them? what happens if SteemDB has a bug for example? will you fix it?

I think 2018 roadmap looks amazing. do everything you got to do to make these plans more than just good, even if it means putting older projects on hold.

Thank you for the update. Voted for you as a witness just now ( What's wrong with me?? )

"Do one thing and do it well" is great, but I prefer a lot of new features/tools that are good, than one that is perfect. And it's hard to tell if something is perfect, everyone has their own opinion.

I agree, and there's a fine line between good and perfect. The big problem now is that the foundation of both products themselves isn't even good, it's just OK, which makes it hard to add lots of new features/tools.

When you are saying you are going to put these projects on hold until further notice, does it means you just won't update them? what happens if SteemDB has a bug for example? will you fix it?

I'll fix things if they're critical on a site like SteemDB. I still do occasional work on it, but really I should be replacing the site with it's V2 rather than spending a ton of time fixing bugs on V1.

I think 2018 roadmap looks amazing. do everything you got to do to make these plans more than just good, even if it means putting older projects on hold.

Thank you for the update. Voted for you as a witness just now ( What's wrong with me?? )

Haha, thank you :)

Haha @jesta waiting projects, it is greats ptoject

i just listened to this discussion @yairdd @jesta ,,

Hi Jest'a ,great work! you are the best witness on Steemit ,congratulations.You already set a new goals for upcoming months.Im planning to vote on my witnesses soon and checking all out.Do i get any benefits from having a witnesses?Im a new user and still learning. I'll be very glad if you check my blog and give me some tips.All the best from @gym-info

I could really use a mentorship with you, 20 years is a lot of experience, I'm hardly 25 and I've got up-to 3 years experience building mobile apps for Android. I don't have a great portfolio as you do. But you look like a role model I'd like to have,.

hope you complete your goals for the year !

I'd invite you to join in the SteemDevs discord chat if you're ever looking for help! We're trying to build a community of developers who can all help each other out and learn as we forge our path in the wild west of crypto.

https://discord.gg/hPJkr (link valid for 24h)

While I have too much on my plate to personally commit to helping anyone learn specifically, I'd be more than happy to occasionally contribute an answer via chat :)

Thanks, i Just Joined. You have contributed a lot already.

I'd also like to join but the link is not valid anymore @jesta

https://discord.gg/SUepvV

Try that one. Discord links expire after so many hours and maybe after they're used :)

@Jesta this is Charles1. I joined steemit last year and your chainbb helped me a lot (comment upvotes ) to start well. I voted for you since last year too and proud of it. I wanted to contact you via steem chat however the link is no longer working . Moreover the discord link https://discord.gg/SUepvV you shared is faulty too. Can you please let me know how to reach you or at least join the developers group on discount? I wish you more success

Hey @jesta, thanks for all your contributions to Steem. The conundrum in this post resonates with me. The trio of priorities makes sense; infrastructure is where the ecosystem needs the most help IMO. So many cool dev-tools and user-apps to build, but your experience lends itself to writing important services others couldn't.

I don't know what your exact requirements are for chainBB but I wonder if there could be any overlap with hive/communities going forward. The goal is that the backend is good enough that devs want to use it as a shared service/standard.

There may be some overlap in the future - I have yet to really dig into hive besides the couple times I poked at the code. It'll definitely be something I look at when I revisit the concept of chainBB.

I'm also glad you took the time to response and that this resonates with you as well. I have a lot of respect for what you're building and working on within the Steem ecosystem and think that work is crucial towards our growth. Thanks :)

Hi @jesta

I am new to Steem but the last two month's has no less than a whirlwind journey to catch up and understand as much as possible about the Crypto world terminologies and tools. Thanks largely to @acdevan, my mentor who encourages me everyday.

Coming back to your plan for 2018, two things strike chord with me.

One is where you mentioned "It's a shorter list, much more focused, and while it's not "do one thing, and do it well", it's much closer to the principal since they're all components of a single platform."
This sounds like a good plan as you will be working towards solidifying a single platform by strengthening the building blocks. Go for it. My well wishes are with you on this one.

The other where you mentioned "I'll also likely have to do much more than just be a developer. I am planning on dusting off the skills I've long neglected for management and organization building, and am currently exploring the creation of a business entity, using witness rewards, in order to hire additional talent to push the envelope."

You have done an amazing amount of work as a developer and the solution architect of these platforms. You can only move up the value chain and add more values by assuming management role where you could contribute multi-fold. You can also mentor new generation of developers to equip them with the knowledge and empower them to contribute more to this cause.

I am also gonna leave a shameless plug here that I am interested to hear more about your development resource needs.

Sunil C Sharma.gif

Thanks for the mention. You are on the right track. Since software dev is one of your competences, you may be able to contribute to jesta’s projects

This seems like a great plan to me!

If you considered VueJS instead of ReactJS for SteemDB, I'd like to help ;) I use Flask/Python APIs for everything I can.

Regardless, thanks for the huge effort you put into work on Steem, and being one of the most approachable/helpful 'senior' developers as far as us newer devs are concerned as well.

I haven't really looked at VueJS too much, one of the reasons I was drawn into ReactJS in the first place was because the CSS framework I've become accustomed to (semantic-ui) had native bindings for React. I also worry about changing tech stacks and learning a new technology when time is at a premium :)

Regardless, thanks for the huge effort you put into work on Steem, and being one of the most approachable/helpful 'senior' developers as far as us newer devs are concerned as well.

You're welcome, and thanks for the kind words. I definitely try when I have time, fostering a healthy community of devs is an important part of keeping this train rolling!

I totally understand. Whilst it seems like a noble aim to keep learning new technologies, we also have to try and be proficient with what we use. I sometimes forget that, and spend too much time changing stacks. Perhaps similarly though, I like Bootstrap, and am now using Bootstrap Vue.

I'd never come across semantic-ui, but I see it does have a Vue Integration, but think it's very immature.

Perhaps I can help with back-end anyway, if it's Python :)

Oh yup, had no idea that existed! Looks pretty similar, just slightly different syntax using <sui-header ...> instead of <Header ...> for example.

The backends themselves will definitely be in python. I also want the API itself to be portable/modular enough that others will be able to use it for other project needs as well. SDBS I feel was trying to go that route, but it wasn't customizable enough for my needs in building a DB.