This document provides an overview of how WE Rocketry's website is built and serves as a guide for editors who may not be familiar with web development.
Websites are made of three core technologies:
- HTML (structure): defines content and layout
- CSS (style): controls appearance and design
- JavaScript (behavior): adds interactivity
Websites can be delivered in different ways:
- Static: Pre-built files served directly (fast, simple, cheap)
- Server-Rendered: Server generates pages on each request (dynamic, complex)
- Client-Rendered: Browser runs JavaScript to build pages (interactive apps)
Content can be authored using:
- Raw HTML/CSS/JS: Direct coding
- Markdown: Simple text format that converts to HTML
- Content Management Systems: WordPress, Ghost, etc.
- Frameworks: React, Vue, etc. (for complex web apps)
For deployment:
- Static Hosting: Services like GitHub Pages, Netlify (free, simple)
- Server Hosting: Traditional web servers (requires maintenance)
- Cloud/Serverless: AWS, Vercel, etc. (scalable, expensive)
We use GitHub Pages + Jekyll to build and host the Western Engineering Rocketry website. This stack was intentionally chosen for engineering teams with high technical demand but low time and coding availability.
- Free hosting with zero maintenance cost
- No server setup — GitHub builds and serves the site automatically
- Version-controlled — the entire site lives in a Git repo, so changes are tracked and reversible
- Team-friendly — anyone can edit or propose changes with a GitHub account
- Simple content model: pages and posts are just Markdown (
.md) files - No coding required for most updates — students only edit human-readable text
- Low barrier to entry: even first-years with no programming experience can contribute
- Long-term maintainability: Markdown is portable and future-proof; no lock-in to a framework
- Consistent look: Jekyll layouts ensure uniform design without manual HTML/CSS work
- Teams rotate every year, so tools must be easy to hand off
- Skill levels vary widely; a Markdown-based system ensures anyone can update the site
- The site is primarily informational (who we are, sponsors, updates), which fits static content perfectly
- GitHub's infrastructure ensures reliable uptime for sponsors, judges, and prospective members
- Zero hosting fees and minimal technical overhead keep focus on engineering, not web operations
- Full control of the repo means we avoid proprietary website builders or subscription tools
GitHub Pages + Jekyll gives us a free, simple, maintainable, student-friendly, long-lived web platform. It provides the right balance of control and ease of use while supporting the natural turnover and varied experience levels of a university engineering team.
So you're a future member or exec and you're thinking:
"Let's rebuild the site with the latest JavaScript framework / serverless platform / animated-whatever. That would be so much cooler!"
That instinct? Wrong. Fully wrong.
For this site, that thinking is a distraction and a liability.
Here's why you should not "modernize" the stack:
-
This is not a web dev club.
We are a rocketry team. Our scarce time, energy, and brainpower belong on design reviews, simulations, testing, manufacturing, and documentation — not on debugging a React build or chasing deployment bugs at 2 a.m. -
The current stack is deliberately boring for a reason.
- Markdown + Jekyll + GitHub Pages + CNAME → simple, free, stable, and easy to hand off
- Anyone can edit content with minimal onboarding
- No one needs to be "the web person" to keep the site alive
-
Turnover destroys fancy stacks.
That shiny JavaScript framework you love today will be outdated in 2–3 years. The one person who understands it will graduate. Then the site rots, breaks, or becomes unmaintainable — and someone has to waste time ripping it all out and going back to something like… Markdown + Jekyll. -
Our audience does not care about your "cool" tech.
Most of our sponsors, judges, mentors, and professors are 40–70+.
They want:- Fast load times
- Clear navigation
- Straightforward content
They do not want their cursor turning into a rocket, parallax scroll, or some "reactive button" nonsense between them and the info they need.
-
Complexity is a cost, not a flex.
Every extra framework, build step, dependency, plugin, and deployment target is one more thing that can fail, misbehave, or block contributions. The more "impressive" you make the tech stack, the fewer people can safely touch it — and the more fragile it becomes. -
The current solution already solves the real problem.
We need:- A reliable, low-cost, low-friction public face for the team
- Easy sponsor updates and project summaries
- Something a non-coder can update in a pinch
Jekyll + GitHub Pages already delivers exactly that.
If you're still convinced you "know better" and want to play with fancy stacks:
- Do it in a separate repo / subdomain as a personal or experimental project
- Do not migrate the main site away from Markdown + Jekyll + GitHub Pages unless you have a rock-solid, multi-year continuity plan and buy-in from multiple technically competent maintainers (and even then, think twice)
Bottom line:
The main website is infrastructure, not a toy. Keep it boring, stable, readable, cheap, and maintainable. That's the correct engineering decision for this team.
You do not need programming experience to edit the website. All content is simple Markdown files stored in a GitHub repository.
- Open the website repository on GitHub
- Navigate to the page you want to edit (files ending in
.md) - Click the file → click the ✏️ Edit button
- Make your changes directly in the browser
- Scroll to Commit changes:
- Add a short message describing what you did (e.g.,
Add new sponsor,Update team bio,Fix grammar on main page) - Select Commit directly to main
- Add a short message describing what you did (e.g.,
- Click Commit changes
Use this method for:
- Updating sponsor lists
- Editing text
- Adding new pages or posts
- Fixing typos
- Updating links
This is the normal workflow.
Use this if you want to work offline or prefer a full editor.
-
On the repo page → click Code → copy the HTTPS URL
-
Run:
git clone <repo-url>
-
Navigate into the repo:
cd <repo-name>
-
Open in VS Code:
code .
Make changes, then:
-
Stage and commit:
git add . git commit -m "Update About page"
-
Push:
git push
Your changes are now live on main.
- Install GitHub Desktop
- File → Clone repository… → pick the repo
- In GitHub Desktop: Open in Visual Studio Code
- Make your edits
- Back in GitHub Desktop:
- Write a commit message
- Commit to main
- Click Push origin
- Open the repository folder in VS Code
- Find a
.mdfile in the Explorer panel - Edit using Markdown syntax:
#for headings-for bullet lists[text](link)for links**bold**for bold text*italic*for italic text
- Save changes (
Ctrl+S/Cmd+S) - Optionally use Markdown preview (
Ctrl+Shift+V/Cmd+Shift+V)
When done, commit + push to main.
- Keep content simple and clear — sponsors and faculty will read it
- Avoid moving/renaming files unless you're sure it won't break navigation
- Keep stylistic consistency with existing pages
- If unsure, ask someone before deleting or restructuring anything
- Small edits go straight to
main— this is expected and normal
Branching is not required for normal editing.
Use a separate branch only for large or risky edits, such as:
- Modifying the theme or layout
- Editing
_config.yml - Restructuring folders or navigation
- Changing includes or templates
- Adding/removing plugins
- Anything that could break the site
- Multi-file content overhauls
Workflow for large changes:
-
Clone the repo locally
-
Create a branch:
git checkout -b feature/theme-rework
-
Make your changes in VS Code
-
Commit and push the branch:
git push -u origin feature/theme-rework
-
Open a Pull Request on GitHub
-
Have at least one other person review it
-
Merge into
mainonce confirmed safe
This branching workflow protects the site from accidental breakage while still allowing deeper technical changes when necessary.