A small rundown of how I develop these sites, hopefully give you a little more insight into the process.
Source code is used to create site code (production). The source code will never be visible to the public and is used in development.
We upload source code to Github.
Site code is generated from the development source code. The site code is what you see when you inspect or view the source a website from your browser, it's public facing code.
Netlify generates the site code from the source code on Github.
Jekyll allows us to build a static website in a convenient way, it takes the source code and generates site code. Think of Jekyll like you would squarespace but without the user interface and instead of it being a service it's more of a application which can build a static website from a bunch HTML and Markdown files. Jekyll is built with a language called Ruby which means we use this language both locally on our computer and remotely (online).
Github is used to control the source code of the website. It's where the source code is essentially hosted. Each time a change is made to the source code from a developers computer the changes are pushed (uploaded) to Github, much like adding files using a FTP. The difference between FTP and Github is that using Git allows us to reference what we are uploading (committing). Git tracks every single file in your source code and keeps a record of every notable change that was made.
Think of Netlify like a hosting provider but instead of hosting it's job is to build and host. Netlify looks at the source code we upload to Github and then takes that source code and builds the site code, this is how it does that.
- Netlify grabs the latest version of the website source code from Github
- Netlify downloads and install Jekyll
- Netify pulls the websites data from the CMS (more on the CMS later)
- Netlify runs the Jekyll build command
- The Jekyll build command takes the source code and bundles it up into site ready code.
- Netlify uploads the site code to it's cloud host service.
The entire process takes around 15 seconds to complete.
Thanks for the overview. it sounds complicated but i'm sure it's not