Before You Begin
This is the most important lesson in this cluster. Complete it before moving to any other deployment lessons. You cannot set up the CMS or customize your site until your curriculum is deployed.
Time required: About 15 minutes
What you'll accomplish:
- Create accounts on GitHub and Netlify (both free)
- Get your own copy of the curriculum template
- Deploy it to a live URL you can share
- Verify everything works
Step 1: Create a GitHub Account
GitHub stores your curriculum files and tracks all changes. Think of it as a smart folder in the cloud that remembers every version of every file.
If you don't have an account:
- Go to github.com/signup
- Enter your email address
- Create a password
- Choose a username
- This will appear in your URLs, so pick something professional
- Example:
jsmithgives you URLs likegithub.com/jsmith/...
- Complete the verification puzzle
- Choose the Free plan when asked (it has everything you need)
If you already have a GitHub account: Make sure you're logged in at github.com.
Step 2: Fork the Curriculum Template
"Forking" creates your own copy of the template that you can customize.
Find the Template
Go to the curriculum template repository:
https://github.com/K41R0N/opensource-curriculum
Note: Replace the URL above with the actual template repository URL provided to you. If you're reading this on a deployed curriculum, the template owner should have this information in their documentation.
Create Your Fork
- Click the Fork button in the top-right corner of the page
- On the "Create a new fork" page:
- Owner: Select your GitHub account
- Repository name: Give it a descriptive name (e.g.,
philosophy-curriculum,design-reading-list,my-curriculum) - Description: Optional, but helpful (e.g., "My self-directed curriculum on...")
- Leave "Copy the main branch only" checked
- Click Create fork
Wait for it to complete. You'll be redirected to your new repository at github.com/YOUR-USERNAME/your-repo-name.
Congratulations! You now have your own curriculum repository. Everything from here on happens in YOUR copy, not the original template.
Step 3: Create a Netlify Account
Netlify will host your site and make it available on the internet.
- Go to app.netlify.com/signup
- Click Sign up with GitHub (this is the easiest option)
- Authorize Netlify to access your GitHub account when prompted
- You'll land on the Netlify dashboard
Why sign up with GitHub? It automatically links your accounts, making the next step easier. You could also sign up with email, but you'd need to link GitHub anyway.
Step 4: Deploy Your Site
Now we'll connect your GitHub repository to Netlify.
Connect Your Repository
- On the Netlify dashboard, click Add new site
- Select Import an existing project
- Click Deploy with GitHub
- You may be asked to authorize Netlify again—click Authorize
- Find your repository in the list
- If you don't see it, click "Configure the Netlify app on GitHub" and grant access to your repository
- Click on your curriculum repository to select it
Configure Build Settings
Netlify will show you build configuration options:
| Setting | Value | Notes |
|---|---|---|
| Branch to deploy | main |
Leave as default |
| Build command | npm run build |
Should be pre-filled |
| Publish directory | build |
Should be pre-filled |
These should already be correct! The template includes a netlify.toml file that configures everything.
- Click Deploy site
Wait for the Build
Netlify will now:
- Download your repository
- Install dependencies
- Build your site
- Deploy it to their servers
This takes 1-3 minutes. You'll see a progress log. When it says "Published," your site is live!
Step 5: Get Your Site URL
After deployment, Netlify assigns a random URL like silly-einstein-a1b2c3.netlify.app.
Find Your URL
- Look at the top of your Netlify site dashboard
- You'll see your URL displayed prominently
- Click it to visit your live site!
Customize Your URL (Optional but Recommended)
That random URL works, but you probably want something nicer:
- Go to Site configuration (or "Site settings" on older interface)
- Click Change site name (or find it under "Domain management")
- Enter your preferred name (e.g.,
my-philosophy-curriculum) - Click Save
Your site is now at my-philosophy-curriculum.netlify.app (or whatever you chose).
Tip: Choose a name that's short, memorable, and describes your curriculum.
Step 6: Set the Environment Variable
One last configuration step ensures your site works correctly:
- In Netlify, go to Site configuration → Environment variables
- Click Add a variable
- Fill in:
- Key:
PUBLIC_SITE_URL - Value: Your full site URL (e.g.,
https://my-philosophy-curriculum.netlify.app)
- Click Create variable
Trigger a Redeploy
For the variable to take effect:
- Go to Deploys in the sidebar
- Click Trigger deploy → Deploy site
- Wait for the build to complete (1-2 minutes)
Step 7: Verify Your Site Works
Visit your site and check that everything loads:
- Homepage displays with your site title
- "Explore the Curriculum" button works
- Curriculum page shows clusters and lessons
- At least one lesson opens and displays content
- About page loads
If something doesn't look right, see the Troubleshooting section below.
How Updates Work
From now on, your site updates automatically whenever you change content:
| Action | What Happens |
|---|---|
| Edit in CMS | CMS commits to GitHub → Netlify rebuilds → Live in 1-2 min |
| Edit with Obsidian | You push to GitHub → Netlify rebuilds → Live in 1-2 min |
| Edit on GitHub directly | Save triggers → Netlify rebuilds → Live in 1-2 min |
You never need to manually deploy again. Just edit content, and it goes live.
Troubleshooting
Build Failed
If Netlify shows "Build failed":
- Click on the failed deploy to see the log
- Scroll to find the error message (usually in red)
- Common causes:
- Missing dependencies: Try clicking "Retry deploy"
- Content validation error: Check your content files for missing required fields
- Syntax error in content: Look for malformed YAML in frontmatter
Site Shows Old Content
- Go to Netlify Deploys
- Check if the latest deploy succeeded
- If stuck, click Trigger deploy → Clear cache and deploy site
Can't Find My Repository
When connecting GitHub to Netlify:
- Click "Configure the Netlify app on GitHub"
- Under "Repository access," select "All repositories" or specifically add yours
- Save and return to Netlify
Site URL Not Working
- Make sure you're using
https://nothttp:// - Wait a few minutes—DNS can take time to propagate
- Check that the deploy completed successfully
Custom Domain (Optional)
Want to use your own domain like curriculum.yoursite.com?
- Go to Site configuration → Domain management
- Click Add a domain
- Enter your domain name
- Follow Netlify's instructions to update your DNS settings
- Wait for DNS propagation (can take up to 48 hours, usually much faster)
- Netlify automatically handles SSL certificates
The free .netlify.app domain works perfectly well if you don't have a custom domain.
What's Next?
Your site is deployed! In the next lesson, you'll set up the CMS so you can edit content through a friendly web interface instead of editing files directly.
Assignment
Follow the step-by-step guide below to deploy your curriculum. The whole process takes about 15 minutes.
Before you start, you'll need:
- A computer with internet access
- An email address for creating accounts
- About 15 minutes of uninterrupted time
No coding or technical knowledge required!