{"id":6791,"date":"2020-02-20T04:52:04","date_gmt":"2020-02-19T23:52:04","guid":{"rendered":"https:\/\/ahmadawais.com\/?p=6791"},"modified":"2020-02-21T00:22:22","modified_gmt":"2020-02-20T19:22:22","slug":"gatsby-package-manager","status":"publish","type":"post","link":"https:\/\/ahmadawais.com\/gatsby-package-manager\/","title":{"rendered":"Introducing:<br \/> Gatsby Package Manager"},"content":{"rendered":"<p>I&#8217;ve been using Gatsby for a couple of years now. If you know me you know I hate repetition and that most of <a href=\"https:\/\/github.com\/AhmadAwais\">my open-source software<\/a> revolve around solving a problem that I don&#8217;t want to solve again and again.<\/p>\n<p>That&#8217;s why I am launching <a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\"><code>gatsby-package-manager (gpm)<\/code><\/a> (<a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\">\ud83c\udf1f the repo<\/a>)<\/p>\n<\/section>\n<div class=\"postcontents full\"><a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6819\" src=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1.jpg\" alt=\"Gatsby Package Manager\" width=\"1920\" height=\"400\" srcset=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1.jpg 1920w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-300x63.jpg 300w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-1024x213.jpg 1024w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-768x160.jpg 768w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-1536x320.jpg 1536w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-1680x350.jpg 1680w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-860x179.jpg 860w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-680x142.jpg 680w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-400x83.jpg 400w, https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager-1-50x10.jpg 50w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/div>\n<section class=\"postcontents wrapper\">\n<h2 id=\"gatsby-package-manager-gpm\"><a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\">Gatsby Package Manager <code>gpm<\/code><\/a><a href=\"#gatsby-package-manager-gpm\" class=\"heading-link\">#<\/a><\/h2>\n<p>The <a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\"><code><span style=\"color: #ffffff;\"><span style=\"color: #000000;\">gpm<\/span><\/span><\/code><\/a> helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.<\/p>\n<p>Yes, that&#8217;s it. Currently, the idea is quite simple which I suppose will grow as the Gatsby ecosystem grows and we have more things to deal with.<\/p>\n<div class=\"alert gray\">\ud83c\udf1f <a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\">Star Gatsby Package Manager on GitHub<\/a> &amp; follow <a href=\"https:\/\/github.com\/AhmadAwais\">Awais<\/a> to get updates<\/div>\n<h3 id=\"the-problem-gpm-solves\">The Problem <code>gpm<\/code> Solves<a href=\"#the-problem-gpm-solves\" class=\"heading-link\">#<\/a><\/h3>\n<p>You know what <code>npm<\/code> and <code>yarn<\/code> do? They install a package and all of their dependencies for you so that you only have to remember what the package name is and not what their dependencies look like.<\/p>\n<p>Before <code>gpm<\/code> you had to manually install a Gatsby package along with all the peer dependencies. I for one could never remember all of them.<\/p>\n<h3 id=\"truestory\"><strong>#TrueStory<\/strong>:<a href=\"#truestory\" class=\"heading-link\">#<\/a><\/h3>\n<p>\ud83e\udd14 So, it goes like this. I wake up one fine morning. Today, I&#8217;m working on a Gatsby site <em>duh<\/em>. I love to write content with MDX.<\/p>\n<p>\ud83d\ude48 I go ahead and npm install <code>gatsby-plugin-mdx<\/code> but that&#8217;s not all I have to install. For the life of me, I can&#8217;t remember the peer dependencies needed to be installed.<\/p>\n<p>\ud83e\uddd0 So, I Google Gatsby Plugin MDX, land on the <a href=\"https:\/\/www.gatsbyjs.org\/packages\/gatsby-plugin-mdx\">plugin page<\/a>, scroll\u2026scroll\u2026scroll\u2026table of contents\u2026why MDX\u2026yada\u2026yadda\u2026yadda\u2026 there you are. I then npm install <code>@mdx-js\/mdx @mdx-js\/react<\/code>.<\/p>\n<p>\u2620\ufe0f That&#8217;s not quite how it should work. And then I close the tab and forget to read the first section of the <code>readme.md<\/code> docs \u2014 since I just need a refresher on how to configure this package. I&#8217;ve done it before. The entire story repeats itself.<\/p>\n<h3 id=\"gpm-saves-the-day\"><code>gpm<\/code> saves the day:<a href=\"#gpm-saves-the-day\" class=\"heading-link\">#<\/a><\/h3>\n<p>\ud83e\udd14 I run <code>gpm install gatsby-plugin-mdx<\/code> and the package + the peer dependencies get installed. I also get a link the docs that I can click to read them online or most probably I fetch the docs in the terminal by running <code>gpm docs gatsby-plugin-mdx<\/code>.<\/p>\n<p>\ud83d\ude0e Easy peasy lemon squeezy.<\/p>\n<div class=\"alert gray\">\ud83c\udf1f <a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\">Star Gatsby Package Manager on GitHub<\/a> &amp; follow <a href=\"https:\/\/github.com\/AhmadAwais\">Awais<\/a> to get updates<\/div>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"installation-usage\">Installation &amp; Usage<a href=\"#installation-usage\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\"><a id=\"user-content-install\" class=\"anchor\" href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager#install\" aria-hidden=\"true\"><\/a><\/p>\n<p>Let&#8217;s go through the installation and usage of <code>gpm<\/code> step by step.<\/p>\n<h3 id=\"%e2%9d%af-install-gpm\">\u276f Install <code>gpm<\/code><a href=\"#%e2%9d%af-install-gpm\" class=\"heading-link\">#<\/a><\/h3>\n<\/section>\n<div class=\"postcontents full\">\n<a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\"><img decoding=\"async\" src=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\/raw\/master\/.github\/assets\/1.gif\" alt=\"Installing gatsby-package-manager\" \/><\/a><\/div>\n<section class=\"postcontents wrapper\">\n<p>First of all install the <code>gpm<\/code> npm package.<\/p>\n<pre class=\"lang:bash\"># Install globally via npm.\r\nnpm install -g gatsby-package-manager\r\n\r\n# OR: Install globally via yarn.\r\nyarn global add gatsby-package-manager\r\n<\/pre>\n<blockquote><p>Now you have access to <code>gpm<\/code> or <code>gatsby-package-manager<\/code> in your command line. Go ahead and use <code>gpm<\/code> to install a pacakge.<\/p><\/blockquote>\n<hr \/>\n<h3 id=\"%e2%9d%af-install-a-package\">\u276f Install a package<a href=\"#%e2%9d%af-install-a-package\" class=\"heading-link\">#<\/a><\/h3>\n<\/section>\n<div class=\"postcontents full\">\n<a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\"><img decoding=\"async\" src=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\/raw\/master\/.github\/assets\/2.gif\" alt=\"Install a package\" \/><\/a>\n<\/div>\n<section class=\"postcontents wrapper\">\n<p>Installs a Gatsby package with all of its peer dependencies.<\/p>\n<pre class=\"lang:bash\"># 1: Interactive mode.\r\n# Type `gpm` and answer the questions asked.\r\ngpm\r\n\r\n# Alternatively, you can also run it via:\r\ngatsby-package-manager\r\n\r\n# 2: Direct mode.\r\n# Several ways to run the same command.\r\ngpm install \r\ngpm i \r\ngpm install gatsby-plugin-mdx\r\ngpm i gatsby-plugin-mdx\r\n<\/pre>\n<hr \/>\n<h3 id=\"%e2%9d%af-docs-for-a-package\">\u276f Docs for a package<a href=\"#%e2%9d%af-docs-for-a-package\" class=\"heading-link\">#<\/a><\/h3>\n<\/section>\n<div class=\"postcontents full\">\n<a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\"><img decoding=\"async\" src=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\/raw\/master\/.github\/assets\/3.gif\" alt=\"Docs for a package\" \/><\/a>\n<\/div>\n<section class=\"postcontents wrapper\">\n<p>Prints the docs, i.e., <code>readme.md<\/code> file of a package in the command line.<\/p>\n<pre class=\"lang:bash\"># Several ways to run the same command.\r\ngpm docs \r\ngpm d \r\ngpm docs gatsby-plugin-mdx\r\ngpm d gatsby-plugin-mdx\r\n<\/pre>\n<hr \/>\n<h3 id=\"%e2%9d%af-configure-npm-or-yarn\">\u276f Configure <code>npm<\/code> or <code>yarn<\/code><a href=\"#%e2%9d%af-configure-npm-or-yarn\" class=\"heading-link\">#<\/a><\/h3>\n<p>The <code>gatsby-package-manager (gpm)<\/code> stores your choice of using <code>npm<\/code> or <code>yarn<\/code> in <code>~\/.config\/configstore\/gatsby-package-manager.json<\/code> file. This choice can be re-configured by using the option <code>--config<\/code> or <code>-c<\/code> when running <code>gpm<\/code>.<\/p>\n<pre class=\"lang:bash\">gpm --config\r\ngpm -c\r\ngpm i gatsby-plugin-mdx -c\r\n<\/pre>\n<hr \/>\n<h3 id=\"%e2%9d%af-help-documentation\">\u276f Help documentation<a href=\"#%e2%9d%af-help-documentation\" class=\"heading-link\">#<\/a><\/h3>\n<p>You can run <code>gpm --help<\/code> or <code>gpm -h<\/code> to access the help documentation.<\/p>\n<\/section>\n<div class=\"postcontents full dark\">\n<div class=\"wrapper\">\n<h2 id=\"whats-next\">What&#8217;s Next?<a href=\"#whats-next\" class=\"heading-link\">#<\/a><\/h2>\n<\/div>\n<\/div>\n<section class=\"postcontents wrapper\">\n<p>That&#8217;s all for now but I see this as an opportunity for what comes next. I believe with time Gatsby packages, the plugins, and themes, they&#8217;ll get a bit more complicated. <code>gpm<\/code> will help make Gatsby package management easy.<\/p>\n<p>Some things that I could think <code>gpm<\/code> can do in the future:<\/p>\n<ul>\n<li><strong>\ud83d\ude80 Starters<\/strong>: Help search\/install any of the existing starters<\/li>\n<li><strong>\ud83c\udf9b Standard Config<\/strong>: Help you configure a package provided we can all agree on a standard specification that <code>gpm<\/code> can read. Something that&#8217;s part of the <code>package.json<\/code> file, maybe?!<\/li>\n<li><strong>\ud83d\uddc3 Packs<\/strong>: One of my apprentices, Saqib, suggested we could also have <code>packs<\/code> command that would install recommended or opinionated <code>packs<\/code> of packages. Let&#8217;s say <code>gpm pack seo<\/code> or <code>gpm pack @ahmadawais\/seo<\/code> that installs different packs of packages and lists out the instructions to configure them. It would be cool.<\/li>\n<li><strong>\ud83e\udd2f Moaaar automation<\/strong>: Configure the packages automagically.<\/li>\n<\/ul>\n<p>\ud83c\udf1f For now, go ahead and <a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager\">star the Gatsby Package Manager <code>gpm<\/code> repository on GitHub<\/a> &amp; follow my <a href=\"https:\/\/github.com\/AhmadAwais\">GitHub<\/a> and <a href=\"https:\/\/twitter.com\/MrAhmadAwais\/\">Twitter<\/a> to get updates or show appreciation.<\/p>\n<p>Have fun and use your code for good. Peace! \u270c\ufe0f<\/p>\n<p><em>P.S. If you&#8217;re a package\/plugin author, read <a href=\"https:\/\/github.com\/ahmadawais\/gatsby-package-manager#api-plugin-authors\">this part of the documentation<\/a>.<\/em><\/p>\n<hr \/>\n<h2 style=\"text-align: center;\" style=\"text-align: center;\" id=\"contributions-welcome\">Contributions Welcome<a href=\"#contributions-welcome\" class=\"heading-link\">#<\/a><\/h2>\n<p>Nothing&#8217;s ever complete, so bear with me while we keep iterating towards a better future. You can definitely help make <code>gpm<\/code> better.<\/p>\n<blockquote><p>Coz every night I lie in bed<br \/>\nThe brightest colors fill my head<br \/>\nA million dreams are keeping me awake<br \/>\nI think of what the world could be<br \/>\nA vision of the one I see<br \/>\nA million dreams is all it&#8217;s gonna take<br \/>\nA million dreams for the world we&#8217;re gonna make &#8230;<\/p>\n<p>&#8230; <em>listen to \u2192 <a href=\"https:\/\/www.youtube.com\/watch?v=pSQk-4fddDI\" rel=\"nofollow\">A million dreams!<\/a><\/em><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>The Gatsby Package Manager (gpm) helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.<\/p>\n","protected":false},"author":2,"featured_media":6817,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[181],"tags":[240,257],"class_list":["post-6791","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-gatsbyjs","tag-gpm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introducing: Gatsby Package Manager<\/title>\n<meta name=\"description\" content=\"The Gatsby Package Manager (gpm) helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahmadawais.com\/gatsby-package-manager\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing: Gatsby Package Manager\" \/>\n<meta property=\"og:description\" content=\"The Gatsby Package Manager (gpm) helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahmadawais.com\/gatsby-package-manager\/\" \/>\n<meta property=\"og:site_name\" content=\"Ahmad Awais\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/AhmadAwais\" \/>\n<meta property=\"article:author\" content=\"https:\/\/facebook.com\/AhmadAwais\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-19T23:52:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-20T19:22:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ahmad Awais\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MrAhmadAwais\" \/>\n<meta name=\"twitter:site\" content=\"@MrAhmadAwais\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ahmad Awais\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/\"},\"author\":{\"name\":\"Ahmad Awais\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"headline\":\"Introducing: Gatsby Package Manager\",\"datePublished\":\"2020-02-19T23:52:04+00:00\",\"dateModified\":\"2020-02-20T19:22:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/\"},\"wordCount\":803,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"image\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/gatsby-package-manager.jpg\",\"keywords\":[\"Gatsbyjs\",\"gpm\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/\",\"name\":\"Introducing: Gatsby Package Manager\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/gatsby-package-manager.jpg\",\"datePublished\":\"2020-02-19T23:52:04+00:00\",\"dateModified\":\"2020-02-20T19:22:22+00:00\",\"description\":\"The Gatsby Package Manager (gpm) helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/gatsby-package-manager.jpg\",\"contentUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/gatsby-package-manager.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"Gatsby Package Manager\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/gatsby-package-manager\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ahmadawais.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing: Gatsby Package Manager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#website\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/\",\"name\":\"Ahmad Awais\",\"description\":\"Founder &amp; CEO of CommandCode.ai f\\\/k\\\/a Langbase | Google Developers Advisory Board (gDAB) founding member\",\"publisher\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ahmadawais.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/#\\\/schema\\\/person\\\/1d1b9504182dca2315cf039fb4ebb85b\",\"name\":\"Ahmad Awais\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"url\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"contentUrl\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\",\"width\":2299,\"height\":1705,\"caption\":\"Ahmad Awais\"},\"logo\":{\"@id\":\"https:\\\/\\\/ahmadawais.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Ahmad-Awais-face.jpg\"},\"description\":\"Founder & CEO of \u2318 Command Code coding agent with taste. Founded Langbase.com, AI cloud to build, deploy, and scale AI agents with tools & memory \u00b7 Creator of Command.new. \\\"Awais is an awesome example for developers\\\" \u2014 Satya Nadella, CEO of Microsoft. NASA Mars Ingenuity Helicopter mission code contributor 8th GitHub Stars Award recipient with 5x GitHub Stars Award (Listed as GitHub's #1 JavaScript trending developer). Google Developers Expert Web DevRel. Ex VP Eng (DevTools & DevRel) Rapid \u00b7 Google Developers Advisory Board (gDAB) founding member \u00b7 AI\\\/ML\\\/DevTools Angel Investor (Replit, Resend, Daytona, Gumroad and you?) \u276f AI\\\/ML Advisory Board San Francisco, DevNetwork. Award-winning Open Source Engineering leader authored hundreds of open-source dev-tools and software libraries used by millions of developers, including Shades of Purple code theme and corona-cli. Linux Foundation (Node.js Committee Lead), OpenAPI Business Governing Board. Taught 108K+ developers via NodeCLI.com and VSCode.pro course. 274 million views, blogging for 24 yrs. \u276f Read more about Ahmad Awais or come say hi on \ud835\udd4f @MrAhmadAwais.\",\"sameAs\":[\"https:\\\/\\\/AhmadAwais.com\\\/\",\"https:\\\/\\\/facebook.com\\\/AhmadAwais\",\"https:\\\/\\\/instagram.com\\\/MrAhmadAwais\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/MrAhmadAwais\\\/\",\"https:\\\/\\\/x.com\\\/MrAhmadAwais\",\"https:\\\/\\\/youtube.com\\\/AhmadAwais\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introducing: Gatsby Package Manager","description":"The Gatsby Package Manager (gpm) helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahmadawais.com\/gatsby-package-manager\/","og_locale":"en_US","og_type":"article","og_title":"Introducing: Gatsby Package Manager","og_description":"The Gatsby Package Manager (gpm) helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.","og_url":"https:\/\/ahmadawais.com\/gatsby-package-manager\/","og_site_name":"Ahmad Awais","article_publisher":"https:\/\/facebook.com\/AhmadAwais","article_author":"https:\/\/facebook.com\/AhmadAwais","article_published_time":"2020-02-19T23:52:04+00:00","article_modified_time":"2020-02-20T19:22:22+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager.jpg","type":"image\/jpeg"}],"author":"Ahmad Awais","twitter_card":"summary_large_image","twitter_creator":"@MrAhmadAwais","twitter_site":"@MrAhmadAwais","twitter_misc":{"Written by":"Ahmad Awais","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/#article","isPartOf":{"@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/"},"author":{"name":"Ahmad Awais","@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"headline":"Introducing: Gatsby Package Manager","datePublished":"2020-02-19T23:52:04+00:00","dateModified":"2020-02-20T19:22:22+00:00","mainEntityOfPage":{"@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/"},"wordCount":803,"commentCount":0,"publisher":{"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"image":{"@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/#primaryimage"},"thumbnailUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager.jpg","keywords":["Gatsbyjs","gpm"],"articleSection":["JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ahmadawais.com\/gatsby-package-manager\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/","url":"https:\/\/ahmadawais.com\/gatsby-package-manager\/","name":"Introducing: Gatsby Package Manager","isPartOf":{"@id":"https:\/\/ahmadawais.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/#primaryimage"},"image":{"@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/#primaryimage"},"thumbnailUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager.jpg","datePublished":"2020-02-19T23:52:04+00:00","dateModified":"2020-02-20T19:22:22+00:00","description":"The Gatsby Package Manager (gpm) helps you install a Gatsby package with all of its dependencies. It also allows you to read the docs for a package right there in the command line \u2014 without having to browse any sites.","breadcrumb":{"@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahmadawais.com\/gatsby-package-manager\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/#primaryimage","url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager.jpg","contentUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager.jpg","width":1920,"height":1080,"caption":"Gatsby Package Manager"},{"@type":"BreadcrumbList","@id":"https:\/\/ahmadawais.com\/gatsby-package-manager\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ahmadawais.com\/"},{"@type":"ListItem","position":2,"name":"Introducing: Gatsby Package Manager"}]},{"@type":"WebSite","@id":"https:\/\/ahmadawais.com\/#website","url":"https:\/\/ahmadawais.com\/","name":"Ahmad Awais","description":"Founder &amp; CEO of CommandCode.ai f\/k\/a Langbase | Google Developers Advisory Board (gDAB) founding member","publisher":{"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahmadawais.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/ahmadawais.com\/#\/schema\/person\/1d1b9504182dca2315cf039fb4ebb85b","name":"Ahmad Awais","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","contentUrl":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg","width":2299,"height":1705,"caption":"Ahmad Awais"},"logo":{"@id":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/06\/Ahmad-Awais-face.jpg"},"description":"Founder & CEO of \u2318 Command Code coding agent with taste. Founded Langbase.com, AI cloud to build, deploy, and scale AI agents with tools & memory \u00b7 Creator of Command.new. \"Awais is an awesome example for developers\" \u2014 Satya Nadella, CEO of Microsoft. NASA Mars Ingenuity Helicopter mission code contributor 8th GitHub Stars Award recipient with 5x GitHub Stars Award (Listed as GitHub's #1 JavaScript trending developer). Google Developers Expert Web DevRel. Ex VP Eng (DevTools & DevRel) Rapid \u00b7 Google Developers Advisory Board (gDAB) founding member \u00b7 AI\/ML\/DevTools Angel Investor (Replit, Resend, Daytona, Gumroad and you?) \u276f AI\/ML Advisory Board San Francisco, DevNetwork. Award-winning Open Source Engineering leader authored hundreds of open-source dev-tools and software libraries used by millions of developers, including Shades of Purple code theme and corona-cli. Linux Foundation (Node.js Committee Lead), OpenAPI Business Governing Board. Taught 108K+ developers via NodeCLI.com and VSCode.pro course. 274 million views, blogging for 24 yrs. \u276f Read more about Ahmad Awais or come say hi on \ud835\udd4f @MrAhmadAwais.","sameAs":["https:\/\/AhmadAwais.com\/","https:\/\/facebook.com\/AhmadAwais","https:\/\/instagram.com\/MrAhmadAwais\/","https:\/\/www.linkedin.com\/in\/MrAhmadAwais\/","https:\/\/x.com\/MrAhmadAwais","https:\/\/youtube.com\/AhmadAwais"]}]}},"jetpack_featured_media_url":"https:\/\/ahmadawais.com\/wp-content\/uploads\/2020\/02\/gatsby-package-manager.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/6791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/comments?post=6791"}],"version-history":[{"count":5,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/6791\/revisions"}],"predecessor-version":[{"id":6826,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/posts\/6791\/revisions\/6826"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/media\/6817"}],"wp:attachment":[{"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/media?parent=6791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/categories?post=6791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahmadawais.com\/api\/wp\/v2\/tags?post=6791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}