#EmberJS2019: Build a Larger Community
Tags: ember, javascript, writing
Published: 2019-05-27 12:20:36

*Originally posted on [crunchingnumbers.live](https://crunchingnumbers.live/2019/05/26/emberjs2019-build-a-larger-community/)*

In 2018, the Ember core teams [asked for community input](https://blog.emberjs.com/2018/05/02/ember-2018-roadmap-call-for-posts.html) in laying out a vision of what we need to achieve over the next year. In response, they received over [50 blog posts and several direct tweets](https://github.com/zinyando/emberjs2018-posts). I read all in preparation for this post and smiled throughout, because we did achieve, and are actively working on, the following goals:

- Native JavaScript support with [Ember Octane](https://emberjs.com/editions/octane/)
- Import any npm package with [ember-auto-import](https://github.com/ef4/ember-auto-import)
- New build pipeline and route splitting with [Embroider](https://github.com/embroider-build/embroider)
- Better communication channel with [Discord](https://discordapp.com/invite/zT3asNS)
- Marketing through [Ember.js: The Documentary](https://www.youtube.com/watch?v=Cvz-9ccflKQ) (and Octane)

In 2019, in addition to continuing work on the items above, I'd like to see us work on **building a larger community**. Our community, while [truly amazing and supportive](https://blog.emberjs.com/2019/04/12/the-ember-times-issue-93.html), is yet small. To flourish, we need **support from developers who don't work with Ember daily**. These developers may professionally work with React, Angular, or Vue. They may be self-taught or attending school, looking to enter tech with minimal risk in career trajectory and minimal time to create showcase projects.

I believe we can do 3 things to welcome these developers:

- Publish better [website](https://emberjs.com/) (address design and content)
- Promote [Octane](https://emberjs.com/editions/octane/) heavily
- Teach Ember at local and remote [Meetups](https://emberjs.com/community/meetups)

I will explain what I mean by these and highlight our action items in bold.


# 1. Publish better website

First impression matters. As developers who have worked with Ember for years, we understand why Ember makes a great technical choice for frontend framework.

- Zero config
- Declarative templating language
- Highly performant component
- Ability to server-side render
- Ease in managing and mocking data
- Ease in authentication and authorization
- Powerful test suite
- Clear, backwards-compatible upgrade path
- Numerous addons that we love and actively support

From day one, we can focus on creating value because these shared, difficult problems have been (or will be) solved for us.


## a. Landing page

Unfortunately, in our landing page, we don't **capture a new developer's attention and their imagination of what they can do in Ember**. We can also do better at **assuring them that many companies do use Ember and can provide them an excellent career**.


![Screenshot of current Ember website](https://crunchingnumbersdotlive.files.wordpress.com/2019/05/current_ember_website-1.jpg)

<figcaption>Our website needs to capture a new developer's attention and imagination of what they can do in Ember.</figcaption>


The images under Highly Productive Out of the Box, although adorable, don't support the claims that we make below. I think **interactive code, data-driven graphs, or user stories** would illustrate our claims and convince a new developer better.

When you click on the Meet More Users button under Who's Using Ember.js?, you will be amazed to see a [list of 336 companies](https://emberjs.com/ember-users). Let's **show this number upfront**, in addition to highlighting the 8 largest companies. It would be nice if we can collect and tell short stories, rather than asking the developer to track down each company to learn how they are using Ember.


![As of May 26, 2019, our website shows 336 companies that use Ember.](https://crunchingnumbersdotlive.files.wordpress.com/2019/05/companies_that_user_ember.jpg)

<figcaption>Our website needs to affirm that there are many companies that use Ember and can provide developers an excellent career.</figcaption>


Several 2018 blog posts called for the action to redesign and modernize the [website](https://emberjs.com/) and [documentation](https://guides.emberjs.com/release/). To my knowledge, the Ember Learning and Steering Teams are currently at the planning stage of [redesigning the website](https://github.com/emberjs/rfcs/blob/master/text/0425-website-redesign.md). The mockup looks sleek and fantastic. I think our website has a bright future and hope to see more of us **help land this new design soon** (possibly along with the launch of Octane).


![Mockup of new Ember website](https://crunchingnumbersdotlive.files.wordpress.com/2019/05/new_ember_mockup.jpg)

<figcaption>The design of our new website is sleek and fantastic.</figcaption>


## b. Documentation

Starting with the most important documentation pages, I would love to see **beginner-friendly, problem-focused explanation** of ideas, examples, best practices, and possible pitfalls in Ember. To help onboard new developers, we must address why something is important, what problem it will help them solve, and how it fits in the grand scheme of an Ember app.

[Jen Weber](https://github.com/jenweber) from the Ember Learning Team currently leads a major initiative to [rewrite the documentation for Ember Data](https://github.com/ember-learn/guides-source/issues/20) so that new developers can easily learn and use Ember Data in their app. Recently, for Ember 3.9 documentation, Jen and a few other developers rewrote the related guide called [Specifying a Route's Model](https://guides.emberjs.com/v3.9.0/routing/specifying-a-routes-model/). I admire her work and wish to see more of us **help rewrite the Ember Data documentation**.

Here is an [example of a documentation page](https://guides.emberjs.com/v3.10.0/object-model/reopening-classes-and-instances/) that, I think, explains very little and hasn't really changed since Ember 1.10. As a developer who has never used `reopen`, I would like to know why this is useful. The first sentence mentions that `reopen` allows me to define a class in parts. Assuming I know what `class` is, why would I do so? Are there cases when I shouldn't do so? I do not know from this documentation.


![Currently, not all documentation pages are beginner-friendly.](https://crunchingnumbersdotlive.files.wordpress.com/2019/05/ember_current_website_reopening_classes.jpg)

<figcaption>An example of a documentation page that explains little and hasn't been updated in a long time.</figcaption>


I think, oftentimes, code snippets in a documentation page easily convey the preceding idea to developers who are experienced in Ember or in JavaScript. For new developers, however, I don't think we can always assume this. I would love to see more **interactive code** so that we can welcome both groups to our documentation.

For inspiration, I direct us to [ember-concurrency's visualization](http://ember-concurrency.com/docs/task-concurrency) of task modifiers. It is one of my favorite interactive (and animated) examples. As a developer who is new to concurrency, I may not fully understand the definition of a task modifier, but I can see what they do and which modifier I should use to solve my concurrency problem.


![Ember Concurrency has an excellent interactive demo to help illustrate task modifiers.](https://crunchingnumbersdotlive.files.wordpress.com/2019/05/ember_concurrency.png)

<figcaption>Ember Concurrency's interactive, animated demos help developers see what task modifiers do and which one to use. I love how the page says to check out the Loading UI example for a common use case.</figcaption>


# 2. Promote Octane heavily

Ember's [6-week release cycle](https://emberjs.com/releases) gives developers freedom to decide when to upgrade their apps. Unfortunately, because Ember follows semantic versioning (SemVer), we would announce cool, new features in a minor version and boringly safe removals of deprecations in a major version.

The [Octane edition](https://emberjs.com/editions/octane/) gives us a second chance at marketing Ember because we can announce a core set of new features at will. Let's make the best of it. We can **be proud that Ember is built on native JavaScript, shares features and best practices with React, Angular, and Vue, delivers value on day one, and looks ahead to the unknown and exciting future in web**.


![Ember mascots Tomster and Zoey](https://crunchingnumbersdotlive.files.wordpress.com/2019/05/ember_octane.png)

<figcaption>I love our mascots Tomster and Zoey.</figcaption>


To my knowledge, Octane will comprise the following [features](https://github.com/emberjs/ember.js/issues/17234), many of which have already landed and have polyfills to support Ember 2.18+:

- Native JavaScript classes
- No jQuery by default
- Decorators
- Angle bracket syntax
- Named argument syntax
- Tracked properties
- Element modifiers
- Glimmer components
- Broccoli 2.0 in ember-cli

[Kristen Garrett](https://github.com/pzuraq) did a wonderful job covering the features in Octane over 7 articles:

- [Part 1: Native Classes](https://www.pzuraq.com/coming-soon-in-ember-octane-part-1-native-classes/)
- [Part 2: Angle Brackets and Named Arguments](https://www.pzuraq.com/coming-soon-in-ember-octane-part-2-angle-brackets-and-named-arguments/)
- [Part 3: Tracked Properties](https://www.pzuraq.com/coming-soon-in-ember-octane-part-3-tracked-properties/)
- [Part 4: Modifiers](https://www.pzuraq.com/coming-soon-in-ember-octane-part-4-modifiers/)
- [Part 5: Glimmer Components](https://www.pzuraq.com/coming-soon-in-ember-octane-part-5-glimmer-components/)
- [Part 6: `@action` Decorator, `{{on}}` Modifier, and `{{fn}}` Helper](https://www.pzuraq.com/ember-octane-update-action/)
- [Part 7: Decorators](https://www.pzuraq.com/ember-octane-update-landing-decorators/)

Similarly, the Ember Core Team [documented the updates in each minor version](https://blog.emberjs.com/tags/releases.html).

As much as I like these written works, I don't think their target audience is developers who are new to Ember. We shouldn't expect a new developer to peruse these and read the lines in-between to learn Octane and its status.

Let's make sure that we **continue to provide other ways to learn Octane**. Mentorships, Discord chats, podcasts, workshops, code samples, project demos, video tutorials, blog posts ([Medium](https://medium.com/), [freeCodeCamp](https://www.freecodecamp.org/news/) or [dev.to](https://dev.to/) to reach out to a wider community), Meetup and conference talks, word-of-mouth, tweets, and so on. I believe every one of us has a skill in one of these. We are all able to grow our community.


# 3. Teach Ember at local and remote Meetups

Continuing with the idea of promoting Octane, I hope to see more of us **participate in Meetups and teach Ember to new developers**.

For me, teaching someone is when I learn the most. Something that is trivial to us now, one that we don't think deserves its own talk—how to create and reuse components, how to write contextual components, how to manage state with Ember Data, how to use dependency injection, how to write tests and run them in parallel—still makes a valuable lesson to these developers. There is much joy in passing our knowledge and experience to a future generation.

As a co-organizer of [EmberATX](https://www.meetup.com/Ember-ATX/) and a mentor at [Austin Code Mentorship](https://www.meetup.com/Austin-Code-Mentorship/), I try my best in giving talks often. In addition to reasons above, I give talks because I understand that finding speakers can be hard and stressful on the organizers, who are volunteering their time for many people's benefits.

Similar to how remote work has become acceptable—even demanded as default—in tech, I think the future of tech Meetups (Ember Meetups, especially) lies in **organizing remote talks**. The possibility of meeting and learning from developers from different parts of the world excites me. The organizer is not limited to cycling between Ember developers in their town. The speaker doesn't need to travel afar to make a positive impact and can get instant feedback from new groups of people.

I hope remote talks will result in more frequent Ember Meetups, which, in return, will encourage more new developers to attend and try out Ember.


![EmberATX at EmberConf 2019](https://crunchingnumbersdotlive.files.wordpress.com/2019/05/emberatx_at_emberconf_2019.jpg)

<figcaption>Austin + Uruguay + San Francisco at EmberConf 2019</figcaption>


# 4. The future is in our hands

In conclusion, in 2019, I'd like to see us **build a larger community**. For nearly 8 years, we have had a fantastic, ambitious solution to web called Ember. We need more new developers to try it out and share their knowledge and experience. We can help them by publishing a better website, promoting Octane heavily, and teaching Ember at local and remote Meetups.

I'd like to thank everyone I have met in the Ember community so far. It's all of you who inspire me to write this post.