Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

General website requirements #535

Closed
larrysalibra opened this issue Mar 15, 2018 · 10 comments
Closed

General website requirements #535

larrysalibra opened this issue Mar 15, 2018 · 10 comments

Comments

@larrysalibra
Copy link
Contributor

We're building a new internet for decentralized apps. We talk about a future there are no trusted 3rd parties, unknown 3rd parties aren't tracking you and users own their own data. We want to reach the whole world no matter where they live, not just certain countries or groups. We are an open source movement where we want anyone to make it easy for anyone to contribute.

These imply a set of engineering guidelines:

  • Whenever possible, we should host things on our own website instead of linking to 3rd party CDNs or services because we want to:

    • avoid increasing the number of unknown 3rd parties tracking our users.
    • avoid adding additional points of failure whenever possible
    • avoid adding content linked from domains we don't control because these are often blocked in countries with censorship regimes which then makes our website also inaccessible
  • Avoid using services where changes cannot be made without the creation of credentials on a 3rd party service

  • Minimize the number of different technologies and tools in a project. This makes it easier for contributors to get started and reduces the number of dependencies.

  • Avoid servers running code - a static site presents a smaller attack service to potential bad guys and has fewer moving parts that might break.

Would love to hear what other people think

@aulneau
Copy link
Contributor

aulneau commented Mar 15, 2018

I think this is great! thanks for writing this up.

A couple initial questions:

  1. The website is currently using Mixpanel and Google Analytics. Do we know if it's respecting the Do Not Track header that can be set by users? Does the use of these services go against the things outlined in this document?
  2. Who determines what a trusted 3rd party is? If we host on netlify, use cloudflare, etc, how have those been determined to be acceptable where other things might not be? Just because a tool or service is unfamiliar should not warrant dismissal or a default bias towards not using it.

It'd be great to set up a process to vet new technologies that could be added to the site based off of these requirements. I think while these requirements should be enforced, I'd hope that ultimately one of the primary goals would be to enable the best user experience and performance for end users, while also respecting the things outlined here. (also considering the developer experience for us and for new contributors)

Minimize the number of different technologies and tools in a project.

I agree completely! I think the current site is over engineered and its complexity should be reduced.

Avoid servers running code - a static site presents a smaller attack service to potential bad guys and has fewer moving parts that might break.

I think a world exists where the blockstack site can be static but also leverage existing technologies like react + blockstack.js.

Thanks for writing this up and starting the discussion @larrysalibra !

@stackatron stackatron added this to Backlog in Website Updates Mar 15, 2018
@GinaAbrams
Copy link

Today at lunch we were thinking about different ways to convey what Blockstack is to our technical developer audience. Below are some ideas that were brainstormed. I'm paraphrasing, so feel free to add or correct me if I'm wrong:

@jcnelson : Blockstack is a decentralized firebase, where users have unilateral control over their data.

@muneeb-ali : Blockstack is a decentralized computing platform where apps are usable today. Apps do not store user data. Users own their identity, and login credentials are tied to your data.

@kantai : Blockstack is a tool to build decentralized apps where users own their data.

Current Work In Progress:
Blockstack is a network for building decentralized apps where users own and control their own data. The processes which govern interactions with others are open and verifiable.

Other ideas: Blockstack is a decentralized network, where the Stacks Tokens determine access control and rate limit.

We want to continue to get feedback on this, but recording here for now.

@vsund
Copy link
Contributor

vsund commented Mar 20, 2018

I'd like to throw in a "Blockstack is a software stack for apps that [...]" for targeting developers. In my opinion software stack describes this project best.

Feedback on the used words:

  • firebase: Would require developers to first know Firebase (builds on former associations with it which might be a problem).
  • computing platform: In my opinion too abstract, doesn't convey where computations are made.
  • tool: Even more abstract than the previous.
  • network: Pretty abstract too, but describes it well I guess.

@jcnelson
Copy link
Contributor

"Blockstack is an open network and software stack for building scalable decentralized applications. Unlike the Web, Blockstack ensures users own their data and identities, and do so via transparent and verifiable processes."

@vsund
Copy link
Contributor

vsund commented Mar 20, 2018

What about "framework"?

@floramica
Copy link

Sometimes with messaging it helps to describe what something does, in verb form as an action, versus stating right off the bat what something is. Many times it's not just one thing but many things (which also seems to be the case here). So this gives the opportunity to leave it open to all of the accurate terms of what it "is". The fun comes in when deciding which verb to express it: connects? provides? makes? empowers? This will have to do with the identity ("brand") vein that everyone designs into the project. Also the action verb choice should try to reflect the values: Blockstack Team Values: (voted and decided collaboratively by the team)

  • Humility
  • Extreme Ownership
  • Collaborative Mindset
  • Possibilist
  • Mission-driven

Example:

Blockstack empowers users to own their data, by empowering developers to decentralize it. Connecting a growing community in distributed computing, Blockstack provides an open-source bridge stack for building dApps and giving ownership power back to the people.

Now I know that the real point of this discussion was the substance "object" of what/how Blockstack is -- In this case maybe an idea could be a bridge stack. Why make up a term? Because if the goal of a bridge is to enable cross-over and interactions between end points (in this case devs and users), and the explanation of a stack is a bundle of software/s together to achieve some goal, then Blockstack is both. Whether it's this or something else, in any case it could be a good idea for the team to come up with some other kind of "creative mashup" or 'new' term.... actually this would be a great design sprint!

Open for any thoughts or comments

@jcnelson
Copy link
Contributor

Hey @gabriellemic, thank you for your input! I like the term "empowers" here--I think that succinctly captures the value proposition better than just "own [your] data."

I get what your'e saying about using the term "bridge stack," but I'm wondering if there is an already widely-known word or phrase that captures the same idea without having to create a new term. Developers know what a "software stack" and "open network" are, for example. Do you think those two terms convey the same idea as "bridge stack"?

@floramica
Copy link

@jcnelson Hey Jude! 🎤 ("dont make it bad") 🎤 :D Thanks, happy to contribute.

I understand your points, and they are valid. I just want to clarify that the thought wasn't intended to sacrifice 'precision' for 'originality' or as if we were creating something from nothing/scratch, if those were part of the concern.
NOT a scientific paper or primary research, to be clear, but what I was referring to was more along the lines of this: https://www.brainpickings.org/2013/08/14/how-einstein-thought-combinatorial-creativity/

But, to your point, if 'developers know what a "software stack" and "open network" are', what stops them from associating their ideas and thinking about Blockstack to what came before, as opposed to what could come with the evolutions in computing we're living through right now and helping to build?
Plus, though I understand the feeling is to cater to the early adopters of the space and hone in on the "developer" community, the way Blockstack exists currently also bridges the applications and their user communities as an end-user client, no?

Also, sorry in advance for the song line -- I'm sure that one has probably seen its day throughout your whole life, but being the Beatles it was too tempting!

Do you feel like there could be a happy medium between a concept people are already familiar with, and a newer paradigm?

@kantai
Copy link
Contributor

kantai commented Mar 22, 2018

Sometimes with messaging it helps to describe what something does, in verb form as an action, versus stating right off the bat what something is.

I like this approach to messaging, but I think both the verb and the noun are important. The way I think about it is vision (good as verbs) versus steps toward that vision (more concretely answers what a project is).

So I'd say, the vision is:

Blockstack empowers users to own their data, by empowering developers to decentralize that data and fostering an open community for decentralized computing.

The steps toward that vision:

Blockstack is a free and open-source platform to build decentralized applications-- applications where users own their data and the processes which govern that data are open and verifiable.

@floramica
Copy link

floramica commented Mar 22, 2018

@kantai great inputs, Aaron, especially for vision. Agreed.

Regarding the word platform (and do let me say that I tend to like it) this might be food for thought 😅 : https://twitter.com/paulg/status/394538726816116736

What about this?:

Blockstack empowers users to own their data, by empowering developers to decentralize that data.

We believe in fostering an open community for the next generation of computing -- so we've created a free, open-source space for decentralized applications.

Here developers have a stack to build on, users have ownership of their data, and everyone has the means to safeguard that data which are open and verifiable.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
No open projects
Website Updates
  
Backlog
Development

No branches or pull requests

8 participants