diff --git a/README.md b/README.md
index 1ec5764d..842dc72f 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,10 @@ The current iteration uses Jekyll to produce pages.
decal-web is built for [Jekyll](https://jekyllrb.com), a static site generator. View the [quick start guide](https://jekyllrb.com/docs/) for more information.
-You will need Ruby 2 to build the site (it has been tested on Ruby2.7.4). If using Arch, [follow this guide](https://gist.github.com/jhass/8839655bb038e829fba1) to install it.
+You will need Ruby 2 to build the site (it has been tested on Ruby2.7.4).
+* On Ubuntu 20.04, Ruby can be installed using `sudo apt install ruby-full`.
+* If using Arch, [follow this guide](https://gist.github.com/jhass/8839655bb038e829fba1) to install it.
+* [ruby-install](https://github.com/postmodern/ruby-install) is a helpful script- you can run `ruby-install 2.7.4` if Ruby is on the wrong version in your package manager.
You may also need to install Bundler 2.2.25: `gem install bundler:2.2.25`
@@ -18,7 +21,7 @@ You may also need to install Bundler 2.2.25: `gem install bundler:2.2.25`
```bash
$ bundle install
```
-1. Start your local Jekyll server. You can also use `make dev`.
+1. Start your local Jekyll server. You can also use `make local-dev`.
```bash
$ bundle exec jekyll serve
```
diff --git a/assets/images/labs/s1/ocf-supernova.png b/assets/images/labs/s1/ocf-supernova.png
new file mode 100644
index 00000000..188f2809
Binary files /dev/null and b/assets/images/labs/s1/ocf-supernova.png differ
diff --git a/assets/images/labs/s1/ocf-waddles.png b/assets/images/labs/s1/ocf-waddles.png
new file mode 100644
index 00000000..95400d13
Binary files /dev/null and b/assets/images/labs/s1/ocf-waddles.png differ
diff --git a/assets/images/labs/s2/ocf-puppet.png b/assets/images/labs/s2/ocf-puppet.png
new file mode 100644
index 00000000..c4362899
Binary files /dev/null and b/assets/images/labs/s2/ocf-puppet.png differ
diff --git a/assets/images/labs/s4/ocf-fork.png b/assets/images/labs/s4/ocf-fork.png
new file mode 100644
index 00000000..070d55cd
Binary files /dev/null and b/assets/images/labs/s4/ocf-fork.png differ
diff --git a/labs/s1.md b/labs/s1.md
new file mode 100644
index 00000000..f92f93fb
--- /dev/null
+++ b/labs/s1.md
@@ -0,0 +1,120 @@
+---
+title: Staff Training Lab 1 - Welcome to the OCF!
+layout: lab
+facilitator: Ben Cuan
+nav_exclude: true
+---
+
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+
+---
+
+
+## Introduction
+
+
+
+Welcome to OCF staff!
+
+These staff training activities are meant to help you get familiarized with the inner workings of the OCF, and feel comfortable contributing to the OCF yourself (whether that be technically, administratively, or both)! All new, veteran, and aspiring staffers are welcome to participate in as much or as little as desired throughout the semester, but we encourage you to come every week even if it's just to hang out with us!
+
+### What will we do in these staff trainings?
+The purpose of these training labs are to cover the most useful aspects of OCF infrastructure and organization that staffers actively contribute to or interact with on a day-to-day basis. This includes:
+* how to access and interact with important OCF services/servers like tsunami, supernova, puppet, webhosting, docs, ocf-web, HPC, etc.
+* an overview of OCF hardware, and how to request shiny new stuff on the buysheet
+* what committees are and how to get involved with them
+* the RT system, and how to run staff hours
+* common tools used in the OCF like Git, vim, and useful terminal commands
+* kubernetes, if interest and time allows
+* lots of excuses to meet other staffers and make new friends!
+
+You **do not** need any prior experience in anything at all to participate. Concurrent enrollment in the [OCF DeCal](https://decal.ocf.berkeley.edu/) (either beginner or advanced track is ok) is encouraged for new staff.
+
+
+### Getting Help
+Even if you're feeling the slightest bit unsure about something, or if you're curious and want to learn more, don't hesitate to talk to other staff members! We're usually in the lab after-hours (around 8-10pm most days), or during scheduled [staff hours](https://www.ocf.berkeley.edu/staff-hours). If you can't make it to the lab during these times, feel free to post to the following Discord/Slack channels:
+* #rebuild: technical and infrastructure-related discussion
+* #administrivia: administrative discussion
+* #decal-comm: discussion specific to decal and staff training content
+
+### Who to Talk To
+If you want to ask someone about something, or just want to say hi, here's a list of some veteran staff members and what they do. **If you'd like to add yourself to this list, make a PR to decal-web and/or ping @bencuan!**
+
+General Managers (GMs): oversee the administrative side of the OCF, including BoD meetings. Ask them about hosting staff hours, contributing non-technically, and joining the Board of Directors!
+* Ben Cuan (bencuan)
+* Justin Zhang (jyxzhang)
+
+Site Managers (SMs): oversee the technical side of the OCF, including the lab space. Ask them about OCF infrastructure, technical projects, and upcoming lab upgrades!
+* Jonathan Zhang (rjz)
+* Ethan Wu (etw)
+
+Operations Managers (OMs): oversee the OCF's operations staff (opstaff), who run the front desk and many other lab operations, including technical and design projects.
+* Amy Oh (amyoh)
+
+Internal Committee (#internal-comm): manages staff events, socials, and meetings.
+* Kian Sutarwala (kian)
+* Bryan Li (bryli)
+
+External Committee (#external-comm): manages industry, alumni, and club relations.
+* Nikhil Ograin (ncograin)
+* Andrei Dones (anddone)
+
+Finance Committee (#finance-comm): manages the OCF budget, purchases, and funding from ABSA, STF, and other sources.
+* Saurabh Narain (snarain)
+* Raymond Huang (rayh)
+* Nicholas Berberi (ncberberi)
+
+DeCal Committee (#decal-comm): runs the Decal and staff workshops.
+* Lance Mathias (lmathias)
+* Laksith (laksith)
+* Ben Cuan (bencuan)
+
+## Task 1: Getting Started
+
+If this is your first time at a staff meeting, we'll need to add you to staff so that you can access resources for contributing!
+
+Before proceeding, **make sure you have an OCF account** (ocf.io/join). This is different from your CalNet account.
+
+Once you have an OCF account, talk to someone with root access (such as the SM's or GM's) who will be able to add you to the staff role.
+
+To verify that you have been added successfully, log in to any OCF desktop using your OCF account credentials. Then, open up a terminal (using ctrl+alt+T or by clicking the icon on the taskbar) and type in `ssh supernova`. It should look something like this:
+
+
+
+You can access supernova at any time on other machines (including your own) by typing in `ssh @supernova.ocf.io` on your terminal. If prompted for a password, it's ok if nothing shows up when you type- just hit enter after typing in your password and it will go through.
+
+We'll explore what ssh actually does, as well as some cool things you can do on supernova, in next week's staff training!
+
+
+## Task 2: Slide into our DM's
+
+Outside of the lab, most of our communication happens over the OCF chat network, which consists of [Discord](ocf.io/discord), [Slack](ocf.io/slack), [IRC](ocf.io/irc), and [Matrix](ocf.io/matrix). All of these are bridged, meaning that sending a message in one platform sends it to all of the other platforms too, so pick your favorite one and click on its link to join!
+
+Most staff are currently active on Discord, so if you don't have any prior preferences then we recommend you join it so you can reach other staff more easily through DM's.
+
+
+### Discord Instructions
+
+If you're joining on Discord, you must first verify your account (instructions on the #verify channel).
+
+Once you're verified, send a message to the #introduce-yourself channel so we can get to know you a little better! Once you do so, you'll receive the newstaff and ocf roles.
+
+You should then be able to add yourself to whatever topic-specific roles you desire (such as for committees or groups), so you can get pinged for any action happening in those areas. It's also recommended to turn notifications on for any channels of interest, as committees/groups usually have their own meeting times outside of general meetings that you won't want to miss.
+
+### Slack Instructions
+
+If you're joining Slack, you will need to create an account using your OCF account email (username@ocf.berkeley.edu). The confirmation email should then be forwarded to your berkeley.edu email address.
+
+Once you join, you'll need to manually add the channels you're interested in. A good way to do so is click the "+" button when hovering over Channels, then sort by most members and go down the list from there.
+
+### IRC/Matrix Instructions
+
+Post on #rebuild if you run into any issues or have any questions about getting set up.
+
+## Conclusion
+
+That's about it for this week! This is the first time we're trying these staff training activities, so if you ever have any feedback or ideas on how to improve them, please [create an issue](https://github.com/0xcf/decal-web/issues) or [make a PR](https://github.com/0xcf/decal-web/pulls) to decal-web! The source files can be found in the [labs folder](https://github.com/0xcf/decal-web/tree/master/labs) and start with the 's' prefix.
\ No newline at end of file
diff --git a/labs/s2.md b/labs/s2.md
new file mode 100644
index 00000000..dab99a53
--- /dev/null
+++ b/labs/s2.md
@@ -0,0 +1,91 @@
+---
+title: Staff Training Lab 2 - Hitchhikers Guide to the OCF Lab
+layout: lab
+facilitator: Ben Cuan
+nav_exclude: true
+---
+
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+
+---
+
+
+## Introduction
+
+
+
+Welcome back to the second week of staff training!
+
+This time, we will take a whirlwind tour of some of the cool things we have around the lab, and get you comfortable working with them through the command line.
+
+The exercises below are best when done after completing the [Shell Spelunking portion of Decal Lab b1](https://decal.ocf.berkeley.edu/labs/b1/#shell-spelunking). If you are not enrolled in the Decal and would like access to the Gradescope to save your answers, please ask a [facilitator](https://decal.ocf.berkeley.edu/staff/) to add you (at least one should be in the lab if you're here in person), or send a message in #decal-comm.
+
+**You are encouraged (and, in some instances, practically required) to use all external resources at your disposal, including Google, [OCF documentation](new.ocf.io/docs), and other staff members, to complete any portion of this and future labs.** Doing so is not cheating, and you should keep using them for any contributions you make to the OCF.
+
+## The OCF Servers
+
+Most of our services reside in some form or another on physical hardware inside the OCF lab. **You can see a full list of servers at [ocf.io/servers](https://www.ocf.berkeley.edu/docs/staff/backend/servers/).**
+
+Here's a quick terminology guide:
+* **Physical Servers and Desktops**, including the NUC and Raspberry Pi, are bare-metal hardware that exists in the lab. Ask a GM/SM to give you a tour of the server room!
+* **Hypervisors** are software that resides directly on the physical servers. They can manage and contain multiple virtual machines (see below).
+* **Virtual Machines** are self-contained operating systems that can be used and connected to as if they were individual computers. Being able to run a large number of virtual machines on a single hypervisor is really useful for a variety of reasons (e.g. easier to maintain, more flexible, needs less physical space in the server room, and so on).
+
+## RTFM! (Scavenger Hunt)
+
+You will need [the OCF documentation](new.ocf.io/docs) to complete the following exercises. Try to get as far as you can, but don't be afraid to ask for help if you've been digging for a while and still can't find anything!
+
+The following tasks will need to be completed on an OCF desktop, possibly SSH'ed into supernova (`ssh supernova` when logged into a desktop).
+
+### Task 1
+If you've been (or are) in the lab, you've probably seen the TV in the middle of the room. This TV is actually displaying output from an Intel NUC behind it (`tornado`), and you can connect to it and change what it's showing.
+
+Figure out how to open a remote desktop connection to `tornado` from an OCF desktop, open up a new tab, and show a cute cat picture on the TV!
+
+**Notes:**
+* While you could theoretically do this with `ssh tornado`, this is not the intended solution.
+* You are welcome to mess around on the TV after-hours, but please do not do this when the lab is open to the public!
+
+
+### Task 2
+One of the more popular services the OCF offers is free printing. We have a 200-page-per-semester quota to make sure we don't get bankrupted by toner purchases. However, there is a way to change this quota on an individual account level (this is often used when a print job fails and we need to refund the pages so they can try again).
+
+Find a way to give yourself 200 additional pages this semester!
+
+**Notes:**
+* The unofficial policy for staff printing quotas is 'if you can figure out a way to give yourself unlimited pages, you are allowed unlimited pages'. That being said, do be reasonable with your newfound privilege, and if anyone asks you how to do it, redirect them here instead of giving them the answer :)
+* If you gave yourself too many pages and are starting to feel guilty, as a bonus exercise you can try to figure out how to subtract pages from your account as well.
+
+### Task 3
+If you participate in staff hours, you may get representatives coming in to ask questions about their organization's status in the OCF system. Before helping them with anything sensitive (like changing their password or creating an account), we usually like to verify that they are actually who they say they are.
+
+Suppose Justin Zhang (OCF username jyxzhang) comes into the lab and wants to set up webhosting for his club, Berkeley Legends. How can you check his status to ensure he is an official signatory of the organization?
+
+**Notes:**
+* There are multiple ways to do this (such as querying the username or querying the org name). All methods should have matching information, so it doesn't matter which one you use.
+* If querying the org, you may need to try a few different queries since the listed name may not match commonly used names (such as 'CSM' vs 'Computer Science Mentors').
+
+### Task 4
+The OCF hosts open-source software mirrors-- if you ever downloaded a Linux distribution like Ubuntu, Arch, or Debian, there is a chance you were downloading it directly from OCF servers!
+
+Let's say that you want to install Arch Linux on a new machine via the command line. The first step would be to download the disk image-- figure out how you can manually fetch it from the OCF mirrors.
+
+**Notes:**
+* You are looking for the latest `.iso` file. It may help to navigate to the mirror site through your browser before attempting to fetch it on the command line.
+* The `wget` command will be useful.
+* You don't actually need to download it if you don't want to, since the ISO is >800MB.
+* i use arch btw
+
+### Task 5
+If you've messed around with your own computer, you've likely found out that it somewhere between 4 and 64GB of RAM. The typical server has far more. But how much exactly?
+
+Find the server/hypervisor(s) with the largest amount of RAM. How much does it have?
+
+**Notes:**
+* One way to do this is to first find a way to see all of the server RAM usage, and deduce which ones likely have the most RAM installed. (hint: grafana)
+* You may need to Google how to get the RAM usage in Linux.
+* You may also need to SSH into the server before checking its RAM usage.
\ No newline at end of file
diff --git a/labs/s3.md b/labs/s3.md
new file mode 100644
index 00000000..92ce4fa8
--- /dev/null
+++ b/labs/s3.md
@@ -0,0 +1,70 @@
+---
+title: Staff Training Lab 3 - Administrivia Time
+layout: lab
+facilitator: Ben Cuan
+nav_exclude: true
+---
+
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+
+---
+
+
+## Introduction
+
+Welcome to the third week of staff training!
+
+Last week, we poked around some of the technical infrastructure around the lab and found some cool scripts. This week, we'll poke around some of the tools we use to manage the OCF administratively!
+
+Even if you plan on primarily contributing technically, it's still very important to figure out how to use our systems (to do things such as request purchases for your projects). And if you plan on contributing non-technically, this is all you really need to know to start helping out!
+
+## Spending Money
+
+The OCF receives funding from three main sources:
+* The [Student Technology Fund](https://techfund.berkeley.edu/), which allows us to purchase new servers and other hardware,
+* The [ASUC](https://lead.berkeley.edu/manage-your-organization/fund-your-org/), whos funding keeps our lab space open to students (through opstaff stipends, printing supplies, etc.),
+* And alumni, who graciously donate to cover costs that the first two sources do not.
+
+If you have more questions about how we manage our money and/or would like to be directly involved in doing so, the Finance Committee (#finance-comm on Discord/Slack/IRC) is the perfect place for you! Please ask them about how you can contribute.
+
+### Task 1
+
+We are constantly looking for ways to spice up the lab space! Your task is to find cool posters, stickers, decorations, or anything else you can think of that we could put in the lab space to make it more interesting. (As an example, one thing we currently have up in the lab is this [vim poster](https://medium.com/usevim/vim-cheat-sheet-poster-2-0-2c5cba12f2a6).)
+
+Once you found something awesome, go to [ocf.io/buy](https://ocf.io/buy) and fill out the form to add it to the buysheet!
+
+All buysheet submissions are recorded in [ocf.io/buysheet](https://ocf.io/buysheet) and are put up to an approval vote during the weekly Board of Directors (BoD) meeting, which takes place from 7-8pm on Wednesdays. If you'd like to participate in the process of approving purchases, all you need to do is show up then!
+
+## Board of Directors
+
+In addition to reviewing buysheet, the Board of Directors serves as the general decision-making body of the OCF. In the past, BoD has discussed and planned for things such as:
+* Amending the constitution and bylaws
+* Voting on future GM's, SM's and committee heads
+* Designing/planning/purchasing new servers
+
+In order to join BoD and cast votes, all you need to do is attend 2 consecutive meetings. Once appointed to BoD, you will stay on to the end of the semester unless you miss 2 or more consecutive meetings (after which you can just be re-appointed).
+
+During BoD, we take minutes (notes) on what was discussed for future reference. Minutes are publicly available; in fact, you can view them from as far back as 1989 at [ocf.io/bod/minutes](https://ocf.io/bod/minutes)!
+
+If you attend BoD, you can volunteer to help take them and record a small part of OCF history by SSHing into supernova and using the command `minutes bod`.
+
+### Task 2
+
+Find some minutes that were taken in the year you were born (or, 1989 if you are older than the OCF). Find out what kinds of things were going on that year (and, as a bonus, try to figure out where the OCF was located on campus at that time-- it's moved around a lot).
+
+## RT
+
+As you might imagine, the OCF gets a lot of emails (users asking for help, clubs wanting to make a website, companies giving infosessions...) and it can get pretty hard to keep track of them all. As a solution, the OCF uses [Request Tracker (RT)][rt.ocf.io]. Here, incoming emails and requests are split up into queues. Here are a few:
+* **bod** contains topics that staff would like to bring up during BoD meetings. You are welcome to make a new ticket in this queue if there's something you want to discuss.
+* **devnull** mostly contains spam, advertisements, and other low-priority emails. You can safely ignore this queue.
+* **help** typically contains questions from users. Most of our time on RT is on responding to these tickets.
+
+Responding to RT tickets is a fantastic way to directly interact and support OCF users, as well as get hands-on experience doing things like setting up application hosting, creating new email addresses, and requesting domains from the university hostmaster. The best way to get started is to shadow a veteran staffer during their [staff hours](https://ocf.io/staff-hours)-- just ask them and you can join! You'll also learn how to add your own staff hours next week.
+
+### Task 3
+
+In one of the queues not mentioned above, there exists a ticket called "Toy RT Ticket". Find it, and reply to it with an out-of-context movie quote (or, honestly, anything you want).
diff --git a/labs/s4.md b/labs/s4.md
new file mode 100644
index 00000000..20ae5937
--- /dev/null
+++ b/labs/s4.md
@@ -0,0 +1,116 @@
+---
+title: Staff Training Lab 4 - Git Good
+layout: lab
+facilitator: Ben Cuan
+nav_exclude: true
+---
+
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+
+---
+
+
+## Introduction
+
+Welcome to week 4 of staff training!
+
+At this point, if you've completed the previous few staff training labs you should have a pretty decent idea about how to navigate and use existing tools around the OCF.
+
+Over the next couple weeks, we'll extend upon that and get you ready to make your own!
+
+### About Git and GitHub
+
+In a highly collaborative environment like the OCF, where many staff members may be editing the same codebase at the same time, we need a way to make sure everyone's changes gets integrated successfully, and that if something ever breaks, we can easily roll back to a previous version.
+
+[Git](https://git-scm.com/) is an industry-standard version control manager that allows us to do this, as well as many other things. If you stick around the OCF (or the software engineering industry in general), you will eventually get quite proficient at it just through normal usage, so don't feel like you need to learn everything about Git all at once! For this lab, we'll only go through the basics that you need to know to contribute; if you'd like to keep going at it see the [What next?][#what-next] section for more resources.
+
+[GitHub](https://github.com) is an online platform where Git repositories can be uploaded and shared. Nearly all of the OCF's code can be found on our GitHub organization, [github.com/ocf][gh-ocf].
+
+## Exploring the OCF GitHub
+
+If you go to [the OCF GitHub][gh-ocf], you may see that we have nearly 100 public repositories (or maybe more, if you're reading this in the future). That's a lot of code!
+
+Luckily, you won't need to work with most of it. Here are the most important repositories that you should take a look at:
+* [puppet](https://github.com/ocf/puppet): Configurations for our servers and desktops. If you make a change to this repository, it gets automatically installed on all affected machines.
+* [ocfweb](https://github.com/ocf/ocfweb): The OCF website and web services. Also currently contains the OCF documentation (we are working on moving this to a separate repository).
+* [ocfstatic](https://github.com/ocf/ocfstatic): The redesigned new OCF site. If you are interested in web development, you should contribute to this repository!
+* [etc](https://github.com/ocf/etc): OCF configuration files used by multiple repositories; includes staff hours, virtual host lists, and more.
+*
+* [ocflib](https://github.com/ocf/ocflib): A Python library that allows for easy access to OCF utilities, some of which you used in previous labs.
+
+### Task 1
+
+For this task, you'll dig around the existing codebase to become more familiar with what might go where.
+
+
+**HINTS:**
+* The GitHub search bar is extremely helpful. Search a term within the organization, then click on the "Code" tab to view all instances of that keyword in the codebase. Use [this](https://github.com/search?q=org%3Aocf+your+query+here&type=code) as a starting point.
+* The requested code snippets below are all found in one of the repositories mentioned above.
+
+**a.** The OCF uses a shorturl system to make accessing common links more convenient (e.g. ocf.io/join, ocf.io/discord, etc). If you wanted to add a new shorturl, which file would you edit? (There should be a file with a list of them)
+
+**b.** Which file contains the source code for the documentation page at [https://new.ocf.berkeley.edu/docs/staff/getinvolved/](https://new.ocf.berkeley.edu/docs/staff/getinvolved/)? (Notice that it's on new.ocf.berkeley.edu, NOT ocf.berkeley.edu).
+
+**c.** If someone comes into the lab asking to add the virtual host name `ofc.berkeley.edu`, which file can you look in to see if it's already taken? (There is a list of vhosts somewhere)
+
+
+## Making Pull Requests (Task 2)
+
+Now that you've peeked around the current code, let's get some practice changing it!
+
+For the next exercise, you'll add yourself to the [staff page](https://new.ocf.berkeley.edu/about/staff) on the new website.
+
+### Setup
+To get set up, follow these steps:
+1. Make sure you have a GitHub account and are logged in.
+2. Navigate to [the ocfstatic repo](https://github.com/ocf/ocfstatic) and click the "Fork" button (see the image below). ![fork](../assets/images/labs/s4/ocf-fork.png)
+3. Select your account, and when the fork is done, you should be on `https://github.com/YOURUSERNAME/ocfstatic`. This is a copy of the ocfstatic code that you can edit however you wish without pushing it to the actual site.
+4. SSH into supernova (as you have done in previous labs). Run the following command, making sure to change `YOURUSERNAMEHERE` to your actual GitHub username. (`git clone https://github.com/YOURUSERNAME/ocfstatic`)
+5. In the terminal, type `cd ocfstatic`. If you now run `git status` it should say something like "nothing to commit, working tree clean".
+
+At this point, you have a local copy of the new website's code loaded onto supernova! The next step is to make a new branch, which allows you to make changes while still having a copy of the original code (on the master branch). You can do this with the command `git checkout -b BRANCHNAME`. A good branch name might be something like `add-YOURUSERNAMEHERE` (replacing with your actual username, of course).
+
+### Editing
+At last, you're ready to make a change! You will need to edit [this file](https://github.com/ocf/ocfstatic/blob/master/src/pages/About/Staff.vue). Try to use `vim` so you can get some practice with it (see [b2](https://decal.ocf.berkeley.edu/labs/b2/#a-quick-intro-to-vim) if you need a refresher), but it's totally fine to use vscode, `nano`, or another editor if you are more comfortable using it. You can see the existing file contents to get a hint on how to add yourself (just make sure your ID is unique).
+
+### Git add, git commit, git push
+When you have made the change and saved the file, go back to the `ocfstatic` directory and type `git add .`. Now, when you type `git status`, it should tell you about the file you modified.
+
+Next, type `git commit -m"YOUR COMMIT MESSAGE HERE"`. Try to make a descriptive message so others know what you did.
+
+Finally, type `git push`. If it prompts you to do something with the `--set-upstream` option, just follow whatever it tells you to do instead.
+
+Now, when you go back to your fork page on GitHub, you should be able to see a new branch in the branches list!
+
+### Making the PR
+Go to [github.com/ocf/ocfstatic/compare](https://github.com/ocf/ocfstatic/compare), and change your head repository and head compare to point to your fork and the branch you just made. The page should then display instructions on how you can create a pull request. Follow the instructions, and optionally write a nice message describing what you just did!
+
+This PR should now appear in the [pull requests list](https://github.com/ocf/ocfstatic/pulls). A staff member with write access will review it to ensure the change was made correctly, and if it is, it will be merged into the original code and displayed on the website. Congrats on making a pull request!
+
+## Staff Hours (Task 3)
+
+Now for a less guided exercise.
+
+Try using the same process above to add yourself to the staff hours list [here](https://github.com/ocf/etc/blob/master/configs/staff_hours.yaml). You may want to pick a time where a veteran staffer is also holding staff hours, so you can hang out with them and learn more about how to run one yourself!
+
+As a summary of the process:
+1. Fork the repository to your account
+2. Clone the fork to supernova
+3. Create a new branch
+4. Make the change
+5. `git add .`, `git commit -m"message"`, `git push`
+6. Make the PR on GitHub
+
+## What next?
+
+Although you may now be comfortable using many core features of Git, you may also be wondering what exactly each of these steps do! Here are some more resources to learn more about git:
+
+* [Decal Lab b9](https://decal.ocf.berkeley.edu/labs/b9/) and its corresponding [lecture](https://www.youtube.com/watch?v=X4yGMr9c64U&feature=youtu.be)
+* [Git User Manual](https://git-scm.com/docs/user-manual)
+* [Atlassian Git Tutorial](https://www.atlassian.com/git)
+
+[gh-ocf]: https://github.com/ocf
\ No newline at end of file
diff --git a/resources.md b/resources.md
new file mode 100644
index 00000000..f32eaf4d
--- /dev/null
+++ b/resources.md
@@ -0,0 +1,25 @@
+---
+layout: page
+title: Resources
+nav_order: 4
+description: >-
+ Additional resources for students and staff.
+---
+
+# Resources
+{:.no_toc}
+
+## Reading
+
+* **[Reading List](https://docs.google.com/document/d/14AI1B4prCDhbAfvPjH2fvBWD5s-y6vv5SQw-zt7T2U4/edit)**
+
+
+## Staff Training
+
+Labs intended to bridge the gap between regular DeCal content and knowledge required to contribute to OCF infrastructure.
+
+* [Lab S1](../labs/s1): staff onboarding and getting started.
+* [Lab S2](../labs/s2): an interactive tour of OCF command-line tools.
+* [Lab S3](../labs/s3): how to access the OCF administrative tools (RT, buysheet, minutes)
+* [Lab S4](../labs/s4): making your first pull request to the OCF
+* [Lab S5](#): coming soon
\ No newline at end of file