Thanks for helping improve the HeatSync Labs website! Whether you're fixing a typo or building new features, there's a path for you.
This section is for anyone — you don't need to be a programmer. If you can type an email, you can edit this website.
- A GitHub account (free) — Create one here if you don't have one
- That's it. No software to install.
The website content lives in simple text files called Markdown (.md). You'll find them in:
src/content/pages/
├── about.md ← About HeatSync Labs
├── membership.md ← Membership info
└── support.md ← How to support HSL
These files are plain text with some light formatting. Here's what they look like:
---
title: "Page Title"
description: "A short description of the page"
---
## A Heading
Regular text goes here. You can make things **bold** or *italic*.
- Bullet points work like this
- Just start a line with a dash
[This is a link](https://example.com)Go to the content folder on GitHub: 👉 src/content/pages/
Click the file you want to edit (e.g., about.md).
On the file page, look for the pencil icon (✏️) near the top-right of the file content. Click it.
First time? GitHub will say it needs to "fork" the repository. That's normal! Click the button to continue. A fork is just your own copy where you can make changes safely.
You'll see a text editor with the file contents. Edit whatever you need — fix a typo, update info, add a section, update links.
Tip: Click the "Preview" tab above the editor to see how your changes will look before saving. This shows your formatted text with headings, bold, links, etc.
When you're done editing:
- Scroll down to the "Propose changes" section
- Write a short summary of what you changed (e.g., "Updated open hours" or "Fixed typo in about page")
- Click the green "Propose changes" button
GitHub will show you a comparison of your changes. Click the green "Create pull request" button.
That's it! A maintainer will review your changes and publish them to the live site.
| What you type | What it looks like |
|---|---|
**bold text** |
bold text |
*italic text* |
italic text |
## Heading |
A section heading |
- item |
• A bullet point |
[link text](https://url) |
link text |
 |
An image |
For more: markdownguide.org/basic-syntax
- Don't change the stuff between
---lines (the title and description) unless you mean to - Your changes won't go live immediately — a maintainer needs to approve them first
- If you make a mistake, don't worry! Nothing breaks until changes are approved
Want to add a whole new page to the site? You'll need to create 2–3 files, and they can all go in one Pull Request. Just follow the steps — a maintainer will double-check everything before it goes live.
Key concept: When you propose your first file, GitHub creates a branch on your fork (something like
patch-1). To put all your files in one PR, you'll make each subsequent file on that same branch.
- Go to 👉 src/content/pages/
- Click "Add file" → "Create new file"
- Name your file (e.g.,
workshops.md— lowercase, no spaces, use dashes for multi-word names likeopen-house.md) - Paste this template and fill it in:
---
title: "Your Page Title"
description: "A brief description of what this page is about"
---
Your content goes here. Use the Markdown formatting from the reference above.
## First Section
Write whatever you need!- Scroll down and click "Propose new file"
- Don't create the Pull Request yet! You'll see a "Compare & pull request" page — leave it for now. Note the branch name GitHub created (shown near the top, something like
patch-1).
This small file tells the website your new page exists.
- Go to your fork of the repo:
https://github.com/YOUR-USERNAME/new-hsl - Switch to the branch from Step 1 using the branch dropdown (e.g., select
patch-1) - Navigate to
src/pages/ - Click "Add file" → "Create new file"
- Name it to match your content file but with
.astro(e.g.,workshops.astro) - Paste this template — just change the two highlighted parts:
---
export const prerender = true;
import Layout from '../layouts/Layout.astro';
import ContentLayout from '../components/content/ContentLayout.astro';
import { getEntry } from 'astro:content';
const contentEntry = await getEntry('pages', 'YOUR-FILENAME-WITHOUT-MD');
---
<Layout title="Your Page Title - HeatSync Labs">
<ContentLayout contentEntry={contentEntry} />
</Layout>
Replace these two things:
YOUR-FILENAME-WITHOUT-MD→ the name of your markdown file without the.mdextension (e.g.,workshops)Your Page Title→ the title you want shown in the browser tab
- Scroll down. Make sure "Commit directly to the
patch-1branch" is selected (not "Create a new branch"), then click "Commit new file"
If your new page should appear in the site's top navigation bar:
- Still on your fork, still on the same branch (
patch-1) - Navigate to
src/components/layout/AppHeader.astro - Click the pencil icon (✏️) to edit
- Find the navigation links section:
<ul class="nav__links">
<li><a href="/about" class="nav__link">About</a></li>
<li><a href="/membership" class="nav__link">Membership</a></li>
<li><a href="/calendar" class="nav__link">Events</a></li>
...
</ul>- Add a new line where you want your link to appear:
<li><a href="/your-page-name" class="nav__link">Your Page Title</a></li>- Scroll down further and find the mobile menu section (look for
class="nav__mobile-links"). Add the same link there too:
<li><a href="/your-page-name" class="nav__mobile-link">Your Page Title</a></li>- Commit directly to the same branch
Tip: Not sure where your link should go in the menu? Just add it anywhere — the reviewer can reorder it.
Now that all your files are on the same branch:
- Go to the original repo: 👉 heatsynclabs/new-hsl
- You should see a banner saying your branch has recent pushes — click "Compare & pull request"
- If you don't see the banner, click "Pull requests" → "New pull request" → "compare across forks", and select your fork and branch
- Write a short description of your new page
- Click "Create pull request"
All 2–3 files will be included in one PR. A maintainer will review everything before it goes live.
Example: To add a "Workshops" page, you'd create
src/content/pages/workshops.md(content),src/pages/workshops.astro(route), and optionally add a nav link. The page would be available atheatsynclabs.org/workshops.
For tech stack, project structure, local setup, and environment variables, see the README.
A few things not covered there:
- Content pages live in
src/content/pages/as Markdown — each one needs a matching.astroroute insrc/pages/(see "Adding a New Page" above for the pattern) - Navigation is hardcoded in
src/components/layout/AppHeader.astro(desktop + mobile menus) - Deployment is via GitHub Actions to GitHub Pages — PRs get a build check, merges to
gh-pagesauto-deploy
- Fork the repo and create a branch from
gh-pages - Make your changes
- Run
bun run buildto verify nothing breaks - Open a pull request against
gh-pages - The CI will run a build check — make sure it passes
- Open an issue describing what you'd like to change
- Ask in the HeatSync Labs community channels
- Tag a maintainer in your Pull Request if you get stuck
HeatSync Labs is a community project. Every contribution matters — even fixing a single typo helps!

