/ethereum-org-website

Ethereum.org is a primary online resource for the Ethereum community.

Primary LanguageJavaScriptMIT LicenseMIT

All Contributors

ethereum logo

πŸ‘‹ Welcome to ethereum.org!

Ethereum.org is a primary online resource for the Ethereum community. The purpose of the site is to β€œBe the best portal to Ethereum for our growing global community" - read more about what this means here.

Ethereum.org is improved and changed over time through the contributions of community members who submit content, give feedback, or volunteer their time to managing its evolution. If you’re interested in helping to improve ethereum.org, start here. This contribution guide will help you get started.


Core Principles

Ethereum.org’s design and content is guided by three core principles:

🌏 1. Ethereum.org is a portal to resources created by the community

  • It will never be β€œencyclopedia ethereum” - we can’t add every link, or cover every topic
  • Rather, its purpose is to direct people to community-built resources
  • Ethereum.org trends toward minimal native-content

πŸ›  2. Ethereum.org is a work in progress, because Ethereum is a work in progress

  • It will change over time, as Ethereum evolves and the community evolves with it
  • To accommodate long-term changes, the site has a simple design system & modular structure
  • Changes to the site are iterative, as we learn more about how people use it and what the community wants from it
  • Changes can be proposed by anyone, and we aim to cultivate a community of open-source contributors

πŸ¦„ 3. Ethereum.org is not a typical product website

  • Ethereum is multifaceted. It's a project, a platform, a product, a vision of the future, a set of ideologies, a community, and much more.
  • The site won't look like every other product site, because Ethereum isn't like every other product.

How can I contribute?

Keeping in mind the above core principles, there are many ways you can get involved in improving the website!

  • Check out our open issues and see if there are any you can help with
  • Join our Translation Program
  • Add information or links to specific sections that are incomplete, by submitting a pull request
  • Identify out-of-date information on ethereum.org (or linked to from ethereum.org) and submit a pull request
  • Submit new designs for the front-page HERO image - find the specs here and contact us at website@ethereum.org
  • Suggest improvements to our user persona research
  • Suggest ideas for new pages, new content, or other ways to improve ethereum.org by opening an issue

Learn how to submit a pull request in the Development Lifecycle section.

Content contributions

As mentioned in ethereum.org's core principles, the goal is for ethereum.org to serve as a portal to resources created by the community. We strive to direct people to community-built resources vs. replace them. While we trend towards minimal native-content, we have received feedback from the community that it's valuable for us to have some.

When proposing a new page or updating an existing page, keep in mind the goal is not to be a comprehensive encyclopedia of Ethereum but rather to be a stepping stone for someone’s journey into Ethereum. Each page should provide a story: e.g. introducing a topic, answering a question & providing next steps for the visitor to learm more or take a particular action.

Notes on specific kinds of contributions

When proposing new items to Ethereum.org we ask contributors to add their new addition(s) to the bottom of each section/list. This helps keep things fair for all contributors. In the future, we may consider adding a ranking system for the sections but for now this is the practice we are employing.

I want to add a developer tool or project

Developer tool submissions will be assessed by the following criteria:

  • Is it meaningfully differentiated from tools already listed?
    • New categories or types of tools
    • New features compared to existing similar tools
    • Targeted at a distinct use-case not covered by existing similar tools
  • Is the tool well documented?
    • Does documentation exist?
    • Is it sufficient to use the tool?
    • Has it been recently updated?
  • Is the tool widely used?
    • We will consider metrics such as GitHub stars, download statistics, and whether it is used by known companies or projects
  • Is the tool of sufficient quality?
    • Are there recurring bugs?
    • Is the tool reliable?

I want to add an educational article or resource

Learning resources will be assessed by the following criteria:

  • Is the content up to date?
  • Is the information accurate? Is it factual or opinion-based?
  • Is the author credible? Do they reference their sources?
  • Does this content add distinct value that existing resources/links don't cover?
  • Which user persona does this content serve?

I want to add an Ethereum-based application

Dapp submissions will be assessed on the following criteria:

  • Is the dapp a "user" application? This page is targeted at a new user, which means it wouldn't be appropriate to list a dev tool or app targeted at sophisticated technical users.
  • Does the application have a good user on-boarding process, such that a user can follow the link, and find all the instructions they need to get started?
  • Does the application "round out" the list by adding a new kind of application not already present?
  • Is there evidence that the application is popular and well established?

Translation Program

Ethereum is a global project, and we believe it's critical that Ethereum.org is accessible to everyone, regardless of their nationality or language. Our community has been working hard to make this vision a reality.

Looking for a specific translation?

We're constantly working to add additional language support & to keep our existing translations up to date. You can view available translations and the progress of all our translations here.

Looking to get join our community of translators?

Great! We'd love to get you involved. Follow the instructions here. Thank you in advance for your particpation!

πŸ€” How are decisions about the site made?

Decisions about individual PRs, design evolution, and major upgrades to the website are made by a team of people from across the Ethereum ecosystem. This team includes project managers, developers, designers, marketing and communications, and subject matter experts. Community input informs every decision: raising questions in issues, submitting PRs, or contacting the team at website@ethereum.org is helpful!

This team currently includes:

  • Anuj Gupta (Ethereum Foundation)
  • Amanda Gutterman (ConsenSys)
  • Hudson Jameson (Ethereum Foundation Devops)
  • Taeyeon Kim (Ethereum Foundation)
  • Jamie Pitts (Ethereum Foundation Devops)
  • Sam Richards (Ethereum Foundation)
  • Joseph Schweitzer (Ethereum Foundation)
  • Josh Stark (L4, ETHGlobal, Ethereum Foundation)
  • Charles St. Louis (MakerDAO & Ethereum Cat Herders)
  • Evan Van Ness (ConsenSys & Ethereum Foundation)
  • Alan Woo (Independent designer & developer)

Development

Unix/Mac

# In the root folder:
yarn global add vuepress
yarn
yarn dev

Windows

  • Download node.js & npm
  • Download Yarn
  • Download Git Bash
  • Download the master branch
  • Navigate to the /ethereum-org-website folder
  • Right click and select Git Bash Here

Run the following commands:

npm install -g yarn
npm install -g vuepress
yarn
yarn dev

Build

# In the root folder:
yarn build

The build should be exported to /docs/.vuepress/dist which can be deployed to a static host. We are hosting the site on Netlify, which handles this for us.

Deployment Lifecycle

How updates are made to ethereum.org

Submit

  • Create a new issue
  • Submit a pull request (PR) to the dev branch (you'll need to fork the repo in order to submit a PR)
    • In your PR commit message, reference the issue it resolves
  • Netlify (our hosting service) deploys all PRs to a publicly accessible preview URL, e.g.: Netlify deploy preview
  • Confirm your Netlify preview deploy looks & functions as expected

Review

Release

  • master is continually synced to Netlify and will automatically deploy new commits to etheruem.org
  • The website team will periodically merge dev into master (typically multiple times per week)
  • You can view the history of releases, with PR highlights

Website Structure

Site content is in /docs folder. Everything else in /docs/.vuepress

Testing

We use Jest to create unit test for Vue components under /docs/.vuepress/component and /dosc/.vuepress/theme/components.

The unit tests are placed next to the Vue components under /docs/.vuepress/component/__tests__ and /dosc/.vuepress/theme/components/__tests__. And module mocks are created under /dosc/.vuepress/theme/utils/__mocks__ for @theme/utils module.

Below commands will be helpful when you develop or test the Vue components.

  1. Run all the Jest unit tests,
yarn test
  1. Run unit tests for the changed file,
yarn test -o
  1. Update the snapshot if you're sure the old results are obselete,
yarn test --update-snapshot

Contributors

Thanks goes to these wonderful people (emoji key):


ExodusActual

🌍

Anna KarpiΕ„ska

🌍

8bitp

πŸ–‹

Rousos Alexandros

πŸ–‹

EvanVanNessEth

πŸ–‹

JesseAbram

πŸ–‹

Lililashka

🎨 πŸ›

vrde

πŸ–‹

Richard McSorley

πŸ’»

Alejandro Santander

πŸ–‹

Jason Carver

πŸ–‹

Chaitanya Potti

πŸ–‹

chriseth

πŸ–‹

Craig Williams

πŸ–‹

Damian Rusinek

πŸ–‹

Danny Ryan

πŸ–‹

Franco Zeoli

πŸ–‹

Guy Lando

πŸ–‹

James Connolly

πŸ–‹

Jacob Burden

πŸ–‹

joshorig

πŸ–‹

mariapaulafn

πŸ–‹

MartΓ­n

πŸ–‹

Mattias Nystrom

πŸ–‹

nabetse

πŸ–‹

Nick Savers

πŸ–‹

Nina Breznik

πŸ–‹

Ven Gist

πŸ–‹

Paul Fletcher-Hill

πŸ–‹

Phil

πŸ–‹

RΓ©mi PrΓ©vost

πŸ–‹

Shane

πŸ–‹

Andrey Petrov

πŸ–‹ πŸ€” ️️️️♿️

Santiago Palladino

πŸ–‹

Tim Beiko

πŸ–‹

Wanseob Lim

πŸ–‹ 🌍

Wil Barnes

πŸ–‹

Aniket

πŸ–‹

Chris Chinchilla

πŸ–‹

George Spasov

πŸ–‹

Pierrick TURELIER

πŸ’»

Solexplorer

πŸ–‹

Sunghee Lee

πŸ–‹

awallendahl

πŸ–‹

Boris Mann

πŸ–‹

carumusan

πŸ–‹

econoar

πŸ–‹

Gustavo Esquinca

πŸ–‹

Javier Tarazaga

πŸ–‹

Kendall Cole

πŸ–‹

Brendan Lee

πŸ–‹

Mahesh Murthy

πŸ–‹

Patrick Gallagher

πŸ–‹

Ali Abbas

πŸ–‹

wtf

πŸ’» πŸ‘€ πŸš‡

Aleksandr Sobolev

πŸ–‹

Zak Cole

πŸ–‹

Bogdan Habic

πŸ–‹

Nick Sawinyh

πŸ–‹

Miguel Angel GordiΓ‘n

πŸ’»

Eswara Sai

πŸ’»

ethers

πŸ–‹

Felipe Faraggi

πŸ–‹ 🌍

Maurelian

πŸ’» πŸ‘€ πŸ–‹

CPSTL

πŸ–‹ πŸ‘€ πŸ“–

Hudson Jameson

πŸ–‹ πŸ“–

Shayan Eskandari

πŸ’» 🌍

Lukas SΓ€gesser

πŸ’»

Virgil Griffith

πŸ–‹

Eugene Aseev

πŸ–‹

Jannis Pohlmann

πŸ–‹

think-in-universe

πŸ’» πŸ–‹

Josh Stark

πŸ–‹ πŸ‘€ πŸ“†

Alan Woo

πŸ’» 🎨

Manank Patni

πŸ–‹

RogΓ©rio AraΓΊjo

🌍

Natacha Souza

🌍

sorumfactory

🌍 πŸ“† πŸ–‹

Sam Richards

πŸ’» πŸ–‹ πŸ“– πŸ“†

Antonio Della Porta

πŸ’»

Abhimanyu Shekhawat

πŸ–‹

William Entriken

πŸ–‹

Sangphil Kim

🌍

peijie

🌍

Jokyash

🌍

Pedro Rivera

🌍

Gabriele Rigo

🌍

Tilen DrΕΎan

🌍

jJosko1986

🌍

ECN

🌍

Damiano Azzolini

🌍

matteopey

🌍

Hun Ryu

🌍

nake13

🌍

alexiskefalas

🌍

Behrad Khodayar

🌍

Frankaus

🌍

hacktar

πŸ’» 🌍

Jaroslav Macej

🌍

Eman Herawy

🌍 πŸ’»

Bellinas

🌍

Alexander Cherkashin

🌍

Enoch Mbaebie

🌍

inlak16

🌍

Bob Jiang

🌍

Suhun Kim

🌍

Jean Zundel

🌍

Hachemi

🌍

hanzoh

🌍

Vincent Le Gallic

🌍

Enigmatic331

πŸ–‹

Ganesh Prasad Kumble

πŸ–‹ 🌍

Pandiyaraja Ramamoorthy

πŸ–‹ 🌍

Archan Roychoudhury

πŸ–‹ 🌍

SAI PRASHANTH VUPPALA

πŸ–‹ 🌍

Sayid Almahdy

🌍

jeedani

🌍

Akira

🌍

karansinghgit

πŸ’»

Marc Garreau

πŸ–‹

mul53

πŸ’»

Apoorv Lathey

πŸ’»

Ken Sato

πŸ–‹

Sesamestrong

πŸ’»

ChrisK

πŸ–‹

Stefan van As

πŸ–‹

GrΓ©goire Jeanmart

πŸ–‹

nysxah

πŸ–‹

Rachel

πŸ–‹

wschwab

πŸ’»

Edson Ayllon

πŸ–‹

Peteris Erins

πŸ–‹

jimmyshi

πŸ–‹

Jefte Costa

🌍 πŸ’»

Jinho Jang

πŸ–‹

Julien Klepatch

πŸ–‹

Yaz Khoury

πŸ–‹

Yos Riady

πŸ–‹

Andrew Cohen

πŸ›

Wesley van Heije

πŸ–‹

gr0uch0dev

πŸ–‹

sooyoung

πŸ–‹

Adria Massanet

πŸ–‹

Alex Singh

🎨

Carl Fairclough

🎨 πŸ’» πŸ›

Kaven C

πŸ–‹

Markus Hatvan

πŸ’»

Evans Tucker

πŸ–‹

Adina Cretu

🌍

tvanepps

πŸ› πŸ–‹

Victor Guyard

️️️️♿️

Abhranil Das

πŸ›

Ahmet Emin Koçal

🌍

Aqeel

πŸ€”

Linda Xie

πŸ‘€ πŸ–‹

Ian Eck

πŸ‘€ πŸ–‹

Chris Waring

πŸ’»

Ev

πŸ€”

Ivan Martinez

πŸ–‹

Sebastian T F

πŸ’»

Anett Rolikova

πŸ–‹

Pooja Ranjan

πŸ–‹

sassal

πŸ–‹

This project follows the all-contributors specification. Contributions of any kind welcome!

A note on emojis We use Twemoji, an open-source emoji set created by Twitter. These are hosted by us, and used to provide a consistent experience across operating systems.