Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin library blogpost #4422

Merged
merged 7 commits into from
Mar 14, 2018
Merged

Plugin library blogpost #4422

merged 7 commits into from
Mar 14, 2018

Conversation

shannonbux
Copy link
Contributor

@ghost ghost assigned shannonbux Mar 7, 2018
@ghost ghost added the review label Mar 7, 2018
@gatsbybot
Copy link
Collaborator

gatsbybot commented Mar 7, 2018

Deploy preview for using-drupal ready!

Built with commit a69b6d1

https://deploy-preview-4422--using-drupal.netlify.com

@gatsbybot
Copy link
Collaborator

gatsbybot commented Mar 7, 2018

Deploy preview for gatsbygram ready!

Built with commit a69b6d1

https://deploy-preview-4422--gatsbygram.netlify.com

Based on the empathy map above, we identified five “jobs” that Gatsby users want done regarding plugins and packages:
* Make it easy to search for and find the best, most recent, and relevant plugin for their site.
* Scrollable, searchable list of plugins with a search bar at the top, tags attached to each plugin, and accurate information on version compatibility, popularity, maintenance, stability.
* Each profile card should have a short description and the profile page should have the Github READme file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd use "README" instead of "READme".

## Learning from other plugin libraries

We also analyzed over 10 admirable and/or popular plugin libraries to draw from their strengths and learn from their weaknesses. Examples in no particular order include [JS.coach](https://js.coach/), [VIM Awesome](https://vimawesome.com/), [Best of JS](https://bestof.js.org/), [Sketch extension library](https://sketchapp.com/extensions/), [Chrome plugin library](https://chrome.google.com/webstore/detail/plugins/mmcblfncjaclajmegihojiekebofjcen?hl=en), [Microsoft Visual Studio Code Extensions](https://marketplace.visualstudio.com/VSCode), [Wordpress Plugins](https://wordpress.org/plugins/), [Npms.io](https://npms.io/), [Yarnpkg.com](https://yarnpkg.com/en/packages), [Apple App store](https://www.apple.com/ios/app-store/), which just got redesigned, so I’m interested to learn from their changes, [Google Play store](https://play.google.com/store/apps/top?utm_source=na_Med&utm_medium=hasem&utm_content=Jan3118&utm_campaign=Evergreen&pcampaignid=MKT-DR-na-us-1000189-Med-hasem-py-Evergreen-Jan3118-Text_Search_BKWS-audiencetest%7cEXA%7cONSEM_kwid_43700029906604977&gclid=EAIaIQobChMIt5mJ--ja2QIVAdtkCh0-PQWgEAAYASAAEgK_0vD_BwE&gclsrc=aw.ds&dclid=CPaIm_zo2tkCFdWUfgodw58Gaw).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link to Google Play can (should ;-)) be just https://play.google.com/store/apps/top

@fk thanks for the suggestions!
Copy link
Contributor

@KyleAMathews KyleAMathews left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post reads really nice! Thanks for the writeup!


After talking to over 60 Gatsby users, I compiled what’s called an “empathy map” in UX design to put myself in the shoes of Gatsby users; basically, this map describes a summary of what the typical Gatsby user experiences when searching for plugins.

![Empathy map](plugin-map.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a much larger version of this we can use? It's hard to read even at full-size.


We just merged the current version of the plugin library. You can follow its progress and contribute in [Github](https://github.com/gatsbyjs/gatsby/issues/4394).
See the [Plugin Authoring](https://www.gatsbyjs.org/docs/plugin-authoring/#what-files-does-gatsby-look-for-in-a-plugin) page if you’re interested in creating your own plugin. This is a new page and feel free to suggest edits and improvements.
Here’s a reminder to [contact me](https://twitter.com/shannonb_ux/status/938551014956732418) here if you have feedback that differs from or provides deeper insight into one of the pain points this article mentions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps add instructions that if the reader has a plugin and it's not showing up, double check that the package has "gatsby-plugin" in its keywords.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


![Plugin Mockup 4](plugin-mockup-4.png)

![Plugin Mockup 5](plugin-mockup-5.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe make this into an animated GIF? It takes up a lot of screen real estate.

![Empathy map](plugin-map.png)

Based on the empathy map above, we identified five “jobs” that Gatsby users want done regarding plugins and packages:
* Make it easy to search for and find the best, most recent, and relevant plugin for their site.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we be more succinct here? Jobs to be done should be short and snappy and should not be feature lists. To use Clayton Christiansen's famous example, a job to be done is "entertain myself on a boring drive", the product is a milkshake, the feature is random chunks in the milkshake. It seems like you're sub-bulleting features under jobs to be done, would suggest to remove those sub-bullets.

Here the job to be done is "Find relevant, high-quality plugins for their site."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


Based on the empathy map above, we identified five “jobs” that Gatsby users want done regarding plugins and packages:
* Make it easy to search for and find the best, most recent, and relevant plugin for their site.
* Scrollable, searchable list of plugins with a search bar at the top, tags attached to each plugin, and accurate information on version compatibility, popularity, maintenance, stability.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove as per above comment. perhaps as per below comment, relevant features could be listed under the "learning" if they were inspired by other libraries

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool. I have a really detailed list of the strengths and weaknesses of the other sites--helpful to include? Too much? Or I can just add the features that we were inspired by...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say definitely include this. Plugin search is a pretty common pattern. There's a number of other communities that have one or might want one and you could contribute a lot here by recounting your research and analysis.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

* Make it easy to search for and find the best, most recent, and relevant plugin for their site.
* Scrollable, searchable list of plugins with a search bar at the top, tags attached to each plugin, and accurate information on version compatibility, popularity, maintenance, stability.
* Each profile card should have a short description and the profile page should have the Github README file.
* Make it easy to imitate plugins as they build their own.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Browse source code of similar plugins"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

* Each profile card should have a short description and the profile page should have the Github README file.
* Make it easy to imitate plugins as they build their own.
* The profile cards and pages should easily link to the Github repo.
* Recommend plugins based on their needs.
Copy link
Contributor

@calcsam calcsam Mar 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See recommended plugins based on their use-case

* You could fill out a profile and login and get suggestions based on the kind of site you’re building, your level of experience, etc.
* There could be permanent categories like “for beginners” or other categories.
* There can also be changing categories like “editor’s picks,” “trending,” “most popular,” etc.
* Show (or at least explain) what plugins do (preview) before installation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preview plugin functionality before installation

* Show (or at least explain) what plugins do (preview) before installation.
* Make sure README files are filled out with instructions and a list of sites that use the plugin.
* Possible showcase every week?
* Make it easy to share plugins they build and/or plugins they like.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Share plugins they recommend


## Learning from other plugin libraries

We also analyzed over 10 admirable and/or popular plugin libraries to draw from their strengths and learn from their weaknesses. Examples in no particular order include [JS.coach](https://js.coach/), [VIM Awesome](https://vimawesome.com/), [Best of JS](https://bestof.js.org/), [Sketch extension library](https://sketchapp.com/extensions/), [Chrome plugin library](https://chrome.google.com/webstore/detail/plugins/mmcblfncjaclajmegihojiekebofjcen?hl=en), [Microsoft Visual Studio Code Extensions](https://marketplace.visualstudio.com/VSCode), [Wordpress Plugins](https://wordpress.org/plugins/), [Npms.io](https://npms.io/), [Yarnpkg.com](https://yarnpkg.com/en/packages), [Apple App store](https://www.apple.com/ios/app-store/), which just got redesigned, so I’m interested to learn from their changes, [Google Play store](https://play.google.com/store/apps/top).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is tantalizing but feels incomplete. What did we learn from surveying? Were there 3-5 common UI patterns to draw out? What did these do differently? Maybe these tie into your five action items earlier, but this section feels out of place. Possibly we could move some of the features from above into here.


I used card sort software to generate dendrograms, other kinds of -grams, and matrices that show the way 20 different Gatsby users typically organize plugins in their minds (big thank you to all who participated here!). Creating filters, categories, and tags are possible future enhancements based off of these results:
* [Card Sort Results 1](https://www.optimalworkshop.com/optimalsort/x87kpp82/0mv7111b/shared-results/f24tt2xcxj7di7303t46hec077unam75)
* [Card Sort Results 2](https://www.optimalworkshop.com/optimalsort/x87kpp82/bt0c01w0/shared-results/1yo4d868hponypjyk1we3xz53sag7uc7)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unclear what these links are trying to demonstrate -- this seems to be a statistical analysis which which I'm unfamiliar and the results of which aren't clear to me. If the analysis was useful and suggested a scheme of 5-10 filters / categories / tags I would just list them here. If not, this is confusing.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. Yeah, the results are pretty obscure. Should we just leave this out?


## Until next time

The purpose of creating the library goes beyond solving a pain point: it also can help people enjoy the full value of the Gatsby ecosystem. The plugin ecosystem is a huge part of what makes Gatsby awesome because plugins and packages make Gatsby extensible and capable of a huge range of powerful things. I hope the library will make it easier for people to find plugins, using them, contribute to them and create them with the help of the Plugin Authoring page in the docs. Anything we can do to make that cycle faster will help the Gatsby ecosystem develop faster and help people build awesome sites.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a bit more succinct:

The plugin ecosystem is a huge part of what makes Gatsby awesome because plugins and packages make Gatsby extensible. There's a virtuous cycle where people find plugins, use them, contribute to them, and create new ones. We hope to accelerate this cycle, so the Gatsby ecosystem can develop faster and more people can build awesome sites!

![Plugin Mockup 5](plugin-mockup-5.png)


## Until next time
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention the starter showcase? It really is the next project here.


Here are some ways you can help make the Gatsby plugin ecoystem great:

We just merged the current version of the plugin library. You can follow its progress and contribute in [Github](https://github.com/gatsbyjs/gatsby/issues/4394).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Open each of these points with a strong CTA, ie:


## Why build a plugin / package library

In over 60 interviews with Gatsby users, plugin discoverability appeared as a top pain point (see [blog post on the Gatsby UX research program](/2017-12-20-introducing-the-gatsby-ux-research-program/) for a full list of pain points). So we built a plugin / package library [here](/packages/)!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be active voice & give timeline context, eg, "from October 2017 to Feb 2018, we conducted..."


In over 60 interviews with Gatsby users, plugin discoverability appeared as a top pain point (see [blog post on the Gatsby UX research program](/2017-12-20-introducing-the-gatsby-ux-research-program/) for a full list of pain points). So we built a plugin / package library [here](/packages/)!

In this article, I want to explain how UX research drove the development and design of this plugin library and invite you all to follow and contribute as the library continues to improve.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to use "we" consistently through the article

Copy link
Contributor Author

@shannonbux shannonbux Mar 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. I got feedback from @KyleAMathews on my first article, "Introducing the Gatsby UX research program," that I ought to use "I" throughout the article. I don't really care which one, as long as it's consistent haha. So should I switch to "we" now?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haha. Looking at this again, I think this use of "I" is fine in this one spot, since you're referring to yourself as the author of the piece, though I'd argue that there's probably a more powerful way of writing above sentence, eg:

"This article will be talking through our thought processes as we designed & developed this plugin library. We'd love your help contributing as the library continues to improve!"

When you're talking about the user research, using we is better, eg:

We compiled what’s called an empathy map....
We wanted to know what keywords people might use....

@calcsam
Copy link
Contributor

calcsam commented Mar 8, 2018

Left some comments! Exciting to see this written up!

@calcsam calcsam closed this Mar 8, 2018
@calcsam calcsam reopened this Mar 8, 2018
@ghost ghost removed the review label Mar 8, 2018
@ghost ghost assigned calcsam Mar 8, 2018
@ghost ghost added the review label Mar 8, 2018
@calcsam
Copy link
Contributor

calcsam commented Mar 8, 2018

(close unintentional)

shannonbux added 2 commits March 8, 2018 15:16
Incorporated almost all comments. Kyle is working on the gif.

@calcsam @KyleAMathews
@shannonbux
Copy link
Contributor Author

Thanks to @fk and me bugging all ya'll, hopefully this is ready to post!

@@ -0,0 +1,81 @@
---
title: Why we created the Gatsby plugin library
date: 03-07-2018
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this date is in format that gatsby doesn't recognize - https://deploy-preview-4422--gatsbyjs.netlify.com/blog/2018-03-07-why-we-created-the-plugin-library/ (invalid date) and this post gets pushed to the end of post listing

this should be "2018-03-07"

@KyleAMathews
Copy link
Contributor

One other thing just noticed. We need to start the post with some context. Namely explain that earlier this week we launched the new plugin library that let's you easily search and browse gatsby plugins.

@ghost ghost assigned KyleAMathews Mar 10, 2018
@KyleAMathews KyleAMathews merged commit 4d1db02 into master Mar 14, 2018
@ghost ghost removed the review label Mar 14, 2018
@KyleAMathews KyleAMathews deleted the plugin-library-blogpost branch March 14, 2018 00:43
@KyleAMathews
Copy link
Contributor

Thanks everyone!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants