|
| 1 | +<p align="center"> |
| 2 | + <a href="https://next.gatsbyjs.org"> |
| 3 | + <img alt="Gatsby" src="https://www.gatsbyjs.org/monogram.svg" width="60" /> |
| 4 | + </a> |
| 5 | +</p> |
| 6 | +<h1 align="center"> |
| 7 | + Gatsby Contentful TypeScript starter |
| 8 | +</h1> |
| 9 | + |
| 10 | +Gatsby starter with Contentful and TypeScript configuration. |
| 11 | + |
| 12 | + |
| 13 | +## 🚀 Quick start |
| 14 | + |
| 15 | +1. **Install the Gatsby CLI.** |
| 16 | + |
| 17 | + The Gatsby CLI helps you create new sites using Gatsby starters (like this one!) |
| 18 | + |
| 19 | + ```sh |
| 20 | + # install the Gatsby CLI globally |
| 21 | + npm install -g gatsby-cli |
| 22 | + ``` |
| 23 | + |
| 24 | +2. **Create a Gatsby site.** |
| 25 | + |
| 26 | + Use the Gatsby CLI to create a new site, specifying the default starter. |
| 27 | + |
| 28 | + ```sh |
| 29 | + # create a new Gatsby site using the default starter |
| 30 | + gatsby new my-project https://github.com/fhavrlent/gatsby-contentful-typescript-starter |
| 31 | + ``` |
| 32 | + |
| 33 | +3. **Set Contentful API keys.** |
| 34 | + |
| 35 | + Rename **`empty.env`** to **`.env`** and set your Contentful API variables |
| 36 | + |
| 37 | +3. **Start developing.** |
| 38 | + |
| 39 | + Navigate into your new site’s directory and start it up. |
| 40 | + |
| 41 | + ```sh |
| 42 | + cd my-default-starter/ |
| 43 | + npm develop |
| 44 | + ``` |
| 45 | + |
| 46 | +4. **Open the source code and start editing!** |
| 47 | + |
| 48 | + Your site is now running at `http://localhost:8000`! |
| 49 | + |
| 50 | + *Note: You'll also see a second link: `http://localhost:8000___graphql`. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the [Gatsby tutorial](https://next.gatsbyjs.org/tutorial/part-five/#introducing-graphiql).* |
| 51 | + |
| 52 | + Open the the `my-default-starter` directory in your code editor of choice and edit `src/pages/index.js`. Save your changes and the browser will update in real time! |
| 53 | + |
| 54 | +## 🧐 What's inside? |
| 55 | + |
| 56 | +A quick look at the top-level files and directories you'll see in a Gatsby project. |
| 57 | +
|
| 58 | + . |
| 59 | + ├── node_modules |
| 60 | + ├── src |
| 61 | + ├── .gitignore |
| 62 | + ├── .nvmrc |
| 63 | + ├── .prettierrc |
| 64 | + ├── empty.env |
| 65 | + ├── gatsby-browser.js |
| 66 | + ├── gatsby-config.js |
| 67 | + ├── gatsby-node.js |
| 68 | + ├── gatsby-ssr.js |
| 69 | + ├── LICENSE |
| 70 | + ├── package-lock.json |
| 71 | + ├── package.json |
| 72 | + ├── README.md |
| 73 | + ├── tsconfig.json |
| 74 | + ├── tslint.json |
| 75 | + └── yarn.lock |
| 76 | +
|
| 77 | + 1. **`/node_modules`**: The directory where all of the modules of code that your project depends on (npm packages) are automatically installed. |
| 78 | + |
| 79 | + 2. **`/src`**: This directory will contain all of the code related to what you will see on the front-end of your site (what you see in the browser), like your site header, or a page template. “Src” is a convention for “source code”. |
| 80 | + |
| 81 | + 3. **`.gitignore`**: This file tells git which files it should not track / not maintain a version history for. |
| 82 | + |
| 83 | + 4. **`.nvmrc`**: NVM configuration so packages works as they should |
| 84 | +
|
| 85 | + 5. **`.prettierrc`**: This is a configuration file for a tool called [Prettier](https://prettier.io/), which is a tool to help keep the formatting of your code consistent. |
| 86 | +
|
| 87 | + 6. **`empty.env`**: Rename to **`.env`** and set your Contentful API key |
| 88 | + |
| 89 | + 7. **`gatsby-browser.tsx`**: This file is where Gatsby expects to find any usage of the [Gatsby browser APIs](https://next.gatsbyjs.org/docs/browser-apis/) (if any). These allow customization/extension of default Gatsby settings affecting the browser. |
| 90 | + |
| 91 | + 6. **`gatsby-config.js`**: This is the main configuration file for a Gatsby site. This is where you can specify information about your site (metadata) like the site title and description, which Gatsby plugins you’d like to include, etc. (Check out the [config docs](https://next.gatsbyjs.org/docs/gatsby-config/) for more detail). |
| 92 | + |
| 93 | + 8. **`gatsby-node.js`**: This file is where Gatsby expects to find any usage of the [Gatsby node APIs](https://next.gatsbyjs.org/docs/node-apis/) (if any). These allow customization/extension of default Gatsby settings affecting pieces of the site build process. |
| 94 | + |
| 95 | + 9. **`gatsby-ssr.tsx`**: This file is where Gatsby expects to find any usage of the [Gatsby server-side rendering APIs](https://next.gatsbyjs.org/docs/ssr-apis/) (if any). These allow customization of default Gatsby settings affecting server-side rendering. |
| 96 | + |
| 97 | + 910. **`LICENSE`**: Gatsby is licensed under the MIT license. |
| 98 | + |
| 99 | + 11. **`package-lock.json`** (See `package.json` below, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. (You won’t change this file directly). |
| 100 | + |
| 101 | + 12. **`package.json`**: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project. |
| 102 | + |
| 103 | + 13. **`README.md`**: A text file containing useful reference information about your project. |
| 104 | +
|
| 105 | + 14. **`tsconfig.json`**: Config file for TypeScript |
| 106 | +
|
| 107 | + 15. **`tslint.json`**: TS Lint configuration file |
| 108 | + |
| 109 | + 16. **`yarn.lock`**: [Yarn](https://yarnpkg.com/) is a package manager alternative to npm. You can use either yarn or npm, though all of the Gatsby docs reference npm. This file serves essentially the same purpose as `package-lock.json`, just for a different package management system. |
| 110 | +
|
| 111 | +## 🎓 Learning Gatsby |
| 112 | +
|
| 113 | +Looking for more guidance? Full documentation for Gatsby lives [on the website](https://next.gatsbyjs.org/). Here are some places to start: |
| 114 | +
|
| 115 | +- **For most developers, we recommend starting with our [in-depth tutorial for creating a site with Gatsby](https://next.gatsbyjs.org/tutorial/).** It starts with zero assumptions about your level of ability and walks through every step of the process. |
| 116 | +
|
| 117 | +- **To dive straight into code samples head [to our documentation](https://next.gatsbyjs.org/docs/).** In particular, check out the “Guides”, API reference, and “Advanced Tutorials” sections in the sidebar. |
| 118 | +
|
| 119 | +## 💫 Deploy |
| 120 | +
|
| 121 | +[](https://app.netlify.com/start/deploy?repository=https://github.com/fhavrlent/gatsby-contentful-typescript-starter) |
0 commit comments