freeCodeCamp JAMstack examples
6 - Client-side rendering targeted API content
This repo holds one of a series of examples of JAMstack sites from a freeCodeCamp video. The video, "Introduction to JAMstack" is available to view for free on freeCodeCamp.
About this example
The last of our 6 code examples, this example builds on example 5 to use progressive enhancement to add weather data to the page with client-side rendering.
Here in the video, we add JavaScript to use access the user's location via the Geolocation API, and then request local weather data from https://openweathermap.org/ which is then added to the page.
Prerequisites
This code will make use of a browser API which can only be used when accessed over a secure HTTPS connection. To configure your local development environment to serve requests over HTTPS you'll need to first create a certificate for local testing, and ensure that you rlocal machine trusts that cert. The confioguration of browsersync in Eleventy is shown in the video
By default, sites on Netlify are automatically configured with a free certifcate provided by LetsEncrypt, so no additional steps will be reuired in the CI/CD and hosting environments.
Local development
To work on this example locally, you can clone the repository and start editing, although there are a few pre-requisites:
- NodeJS and NPM
- A free Netlify account
- A free newsapi.org API key
- A free openweathermap.org API key
# clone the repo
git clone https://github.com/philhawksworth/fcc-6-client-side-api
# move into the working directory and install dependencies
cd fcc-6-client-side-api
npm install
# build and start the local development server
npm start
# just run the build
npm run build
Clone and deploy
If you wanted to quickly clone this repository and deploy it as a new site on Netlify you can click the button below for a rapid start. This will give you a ready-made CI/CD pipeline linked to your git commits.
Watch the video
For a better understanding of what this example is and why it exists, you can jump directly into the video at the point we are discussing this example
Other code examples in this series
- Example 1 - All simply static
- Example 2 - Changing the DOM with JavaScript
- Example 3 - Introducing a static site generator
- Example 4 - Generating pages from a content API
- Example 5 - Generating localized pages, with geo-IP routing at the CDN
- Example 6 - Client-side rendering targeted API content (
👈 you are here)
More JAMstack resources to explore
- jamstack.org - More info and resources
- Official JAMstack slack - conversation about JAMstack and web development (come on in!)
- Modern Web Development on the JAMstack, O'reilly, 2019 - Book on building websites with the JAMstack. Available as a free e-book.