Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/near/awesome-near

Curated list of resources: examples, libraries, projects
https://github.com/near/awesome-near

List: awesome-near

Last synced: about 1 month ago
JSON representation

Curated list of resources: examples, libraries, projects

Awesome Lists containing this project

README

        

# NEAR Examples web page

Built with [Gatsby](https://www.gatsbyjs.org/), populated with public repositories from [near-examples](https://github.com/near-examples)

## πŸš€ Quick start

1. **Install prerequisites**

Make sure you have [Node.js](https://nodejs.org/en/download/package-manager/) installed, then use it to install [yarn](https://yarnpkg.com/):

npm install --global yarn

Clone this repository, `cd` into it, and install dependencies:

yarn install

2. **Set up GitHub Token**

Go to https://github.com/settings/tokens, generate a new token

* Give it a name like "near examples local"
* You don't have to check any of the checkboxes
* Click the green "Generate token" button at the bottom
* Copy the value it shows you

Now create a `.env` file in the root of the project with

GITHUB_TOKEN=[the value you just copied]

3. **Start developing.**

In your terminal, change into this directory and run

yarn start

4. **Open the source code and start editing!**

Your site is now running at `http://localhost:8000`!

_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://www.gatsbyjs.org/tutorial/part-five/#introducing-graphiql)._

Open this directory in your code editor of choice and edit `src/pages/index.tsx`. Save your changes and the browser will update in real time!

## 🧐 What's inside?

A quick look at the top-level files and directories you'll see in a Gatsby project.

.
β”œβ”€β”€ node_modules
β”œβ”€β”€ src
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .prettierrc
β”œβ”€β”€ gatsby-browser.js
β”œβ”€β”€ gatsby-config.js
β”œβ”€β”€ gatsby-node.js
β”œβ”€β”€ gatsby-ssr.js
β”œβ”€β”€ LICENSE
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
└── README.md

1. **`/node_modules`**: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed.

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) such as your site header or a page template. `src` is a convention for β€œsource code”.

3. **`.gitignore`**: This file tells git which files it should not track / not maintain a version history for.

4. **`.prettierrc`**: This is a configuration file for [Prettier](https://prettier.io/). Prettier is a tool to help keep the formatting of your code consistent.

5. **`gatsby-browser.js`**: This file is where Gatsby expects to find any usage of the [Gatsby browser APIs](https://www.gatsbyjs.org/docs/browser-apis/) (if any). These allow customization/extension of default Gatsby settings affecting the browser.

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://www.gatsbyjs.org/docs/gatsby-config/) for more detail).

7. **`gatsby-node.js`**: This file is where Gatsby expects to find any usage of the [Gatsby Node APIs](https://www.gatsbyjs.org/docs/node-apis/) (if any). These allow customization/extension of default Gatsby settings affecting pieces of the site build process.

8. **`gatsby-ssr.js`**: This file is where Gatsby expects to find any usage of the [Gatsby server-side rendering APIs](https://www.gatsbyjs.org/docs/ssr-apis/) (if any). These allow customization of default Gatsby settings affecting server-side rendering.

9. **`LICENSE`**: Gatsby is licensed under the MIT license.

10. **`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).**

11. **`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.

12. **`README.md`**: A text file containing useful reference information about your project.

## πŸŽ“ Learning Gatsby

Looking for more guidance? Full documentation for Gatsby lives [on the website](https://www.gatsbyjs.org/). Here are some places to start:

- **For most developers, we recommend starting with our [in-depth tutorial for creating a site with Gatsby](https://www.gatsbyjs.org/tutorial/).** It starts with zero assumptions about your level of ability and walks through every step of the process.

- **To dive straight into code samples, head [to our documentation](https://www.gatsbyjs.org/docs/).** In particular, check out the _Guides_, _API Reference_, and _Advanced Tutorials_ sections in the sidebar.

## πŸ’« Deploy

We deploy this site to https://render.com/ via the configuration in https://github.com/near/render-ops

* Commits to the `master` branch in this repository automatically kick off a rebuild & deploy.
* On GitHub, we [have a webhook configured](https://github.com/organizations/near-examples/settings/hooks) to hit our [Render deploy hook endpoint](https://render.com/docs/deploy-hooks) every time relevant changes are made to a repository in the `near-examples` organization. This means that every time a commit or [some other changes](https://github.com/organizations/near-examples/settings/hooks) are made to a repository at `github.com/near-examples/*`, it automatically kicks off a rebuild & deploy of this website, ensuring this website accurately reflects information in the `near-examples` org. Unfortunately, GitHub does not support webhooks for changes to repository settings, which this site also needs. So:
* If you need to kick off a manual deploy, visit [the Render dashboard](https://dashboard.render.com) and kick off a new deploy for "examples".