Comprehensive repository audit and fixes

- Updated README.md to reflect current YAML-based architecture instead of outdated script.js references
- Fixed GitHub repository URLs from hackclub/YSWS-Catalog to MntRushmore/YSWS-Catalog
- Updated data source documentation to reference data.yml as primary source
- Updated contributing guidelines to mention data.yml editing and generation scripts
- Fixed HTML typos (rel="noopenner" → rel="noopener")
- Updated package.json with proper project name and metadata
- Cleaned up temporary JSON files (updated_data.json, final_updated_data.json)
- Regenerated api.json and feed.xml with current data (14 active programs)
- Verified all validation and generation scripts are working correctly

This completes the comprehensive repository review and fixes all identified issues.
This commit is contained in:
Rushil 2025-09-13 06:43:47 +00:00
parent 6d63bc9bc8
commit c8c375e033
5 changed files with 47 additions and 925 deletions

View file

@ -4,7 +4,7 @@
## Features
- **Dynamic Program Listing:** All YSWS programs are defined in `script.js` for easy editing.
- **Dynamic Program Listing:** All YSWS programs are defined in `data.yml` for easy editing.
- **Filtering by Status:** Quickly filter programs by `All`, `Active`, `Upcoming`, or `Completed`.
- **Search Functionality:** Easily search for programs by name, description, or Slack channel to find exactly what you're looking for.
- **Program Detail Modal:** Click on a program to view detailed information in a modal window, including participation steps and additional details.
@ -15,19 +15,21 @@
- **RSS Feed:** Subscribe to get notifications about active YSWS programs in your favorite RSS reader.
- **JSON API:** Get full data as a json object
## TO ADD A YSWS - PLEASE MAKE A PR TO API.JSON and DATA.YML
## TO ADD A YSWS - PLEASE MAKE A PR TO DATA.YML
The `api.json` and `feed.xml` files are automatically generated from `data.yml` using the generation scripts.
## Getting Started
1. **Clone the repository:**
```bash
git clone https://github.com/hackclub/YSWS-Catalog.git
git clone https://github.com/MntRushmore/YSWS-Catalog.git
cd YSWS-Catalog
```
2. **Open the catalog:**
- Open `index.html` in your web browser.
- Ensure `styles.css` and `script.js` are in the same directory.
- Ensure all files (`styles.css`, `script.js`, `data.yml`) are in the same directory.
3. **Filter Programs:**
- Use the top buttons (`All`, `Active`, `Ending Soon`, `Upcoming`, `Completed`) to filter the displayed programs.
@ -50,7 +52,8 @@ This feed is automatically updated whenever new programs are added or existing p
- **index.html:** The main HTML file containing the container for program cards and the modal structure.
- **styles.css:** Styles for the layout, cards, typography, responsiveness, and theme toggling.
- **script.js:** Contains the programs data and logic for:
- **script.js:** Contains the frontend logic for:
- Loading and parsing YAML data from `data.yml`
- Rendering program cards
- Counting active programs
- Filtering by program status
@ -58,12 +61,13 @@ This feed is automatically updated whenever new programs are added or existing p
- Handling theme toggling
- Managing program detail modals
- Updating deadlines in real-time
- **data.yml:** The main data source containing all YSWS programs organized by status
- **generate-json.js:** Generates a JSON file equivalent of the data.yml (for API use)
- **generate-rss.js:** Generates an RSS feed.xml file
## Data Source & Example
All programs are defined in the `programs` object inside `script.js`. They are categorized into arrays such as `indefinite`, `limitedTime`, `upcoming`, `additional`, `noYouShip`, and `completed`.
All programs are defined in `data.yml`. They are categorized into sections such as `limitedTime`, `recentlyEnded`, `indefinite`, and `drafts`.
Each program object can include:
@ -118,9 +122,11 @@ details:
git checkout -b add-new-program
```
3. **Add or update a program:**
Edit `script.js` and modify the `programs` object.
4. **Commit and push your changes:**
Edit `data.yml` and add your program to the appropriate section (limitedTime, indefinite, drafts, etc.).
4. **Generate updated files and commit your changes:**
```bash
npm run generate # This updates api.json and feed.xml
git add .
git commit -m "Add a new YSWS program"
git push origin add-new-program
```

View file

@ -5,14 +5,14 @@
<link>https://ysws.hackclub.com</link>
<description>Active "You Ship, We Ship" programs from Hack Club</description>
<language>en-us</language>
<lastBuildDate>Sat, 13 Sep 2025 06:41:36 GMT</lastBuildDate>
<lastBuildDate>Sat, 13 Sep 2025 06:43:31 GMT</lastBuildDate>
<atom:link href="https://ysws.hackclub.com/feed.xml" rel="self" type="application/rss+xml" />
<item>
<title>Clutter</title>
<link>https://clutter.hackclub.com/</link>
<guid isPermaLink="false">Clutter-1757745696235</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Clutter-1757745811783</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>You ship something to organize your digital life. We ship you a grant to buy something to organize your physical life.</p>
<p><strong>Deadline:</strong> September 17, 2025</p>
@ -23,8 +23,8 @@
<item>
<title>Penumbra</title>
<link>https://penumbra.hackclub.com/</link>
<guid isPermaLink="false">Penumbra-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Penumbra-1757745811783</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Make shaders, and we&apos;ll ship you GPUs and posters!</p>
<p><strong>Deadline:</strong> September 24, 2025</p>
@ -35,8 +35,8 @@
<item>
<title>Waveform</title>
<link>https://waveform.hackclub.com/</link>
<guid isPermaLink="false">Waveform-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Waveform-1757745811783</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Make your own waveform visualizer, get a grant to buy music</p>
<p><strong>Deadline:</strong> September 26, 2025</p>
@ -47,8 +47,8 @@
<item>
<title>Fusering</title>
<link>https://fusering.hackclub.com</link>
<guid isPermaLink="false">Fusering-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Fusering-1757745811784</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Design a keyring, get your keyring and a carabiner to hang it from!</p>
<p><strong>Deadline:</strong> September 30, 2025</p>
@ -59,8 +59,8 @@
<item>
<title>Summer of Making</title>
<link>https://summer.hackclub.com/</link>
<guid isPermaLink="false">Summer of Making-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Summer of Making-1757745811784</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Build stuff. Get stuff. Repeat.</p>
<p><strong>Deadline:</strong> September 30, 2025</p>
@ -71,8 +71,8 @@
<item>
<title>Shiba Arcade</title>
<link>https://shiba.hackclub.com</link>
<guid isPermaLink="false">Shiba Arcade-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Shiba Arcade-1757745811784</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Make a game with Godot, earn SSS, and get invited to build an arcade in Tokyo (flight stipends available!)</p>
<p><strong>Deadline:</strong> October 20, 2025</p>
@ -84,8 +84,8 @@
<item>
<title>Siege</title>
<link>https://siege.hackclub.com/</link>
<guid isPermaLink="false">Siege-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Siege-1757745811784</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Code every week, get prizes. Make it to the end, get a framework!</p>
<p><strong>Deadline:</strong> November 30, 2025</p>
@ -96,8 +96,8 @@
<item>
<title>birthday-cards</title>
<link>https://birthday-cards.hackclub.com/</link>
<guid isPermaLink="false">birthday-cards-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">birthday-cards-1757745811785</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>You ship a birthday themed project we ship a birthday card!</p>
<p><strong>Deadline:</strong> August 12, 2026</p>
@ -108,8 +108,8 @@
<item>
<title>iFrame</title>
<link>https://iframe.hackclub.com/</link>
<guid isPermaLink="false">iFrame-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">iFrame-1757745811785</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Draw or edit images using any programming language and we will hang your custom image on HQ wall and send a copy to you</p>
@ -120,8 +120,8 @@
<item>
<title>Grounded</title>
<link>https://grounded.hackclub.com</link>
<guid isPermaLink="false">Grounded-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Grounded-1757745811785</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Onboard + Bin v2</p>
@ -132,8 +132,8 @@
<item>
<title>BakeBuild</title>
<link>https://bakebuild.hackclub.com/</link>
<guid isPermaLink="false">BakeBuild-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">BakeBuild-1757745811785</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Design a cookie cutter, get it shipped!</p>
@ -144,8 +144,8 @@
<item>
<title>HackCraft</title>
<link>https://hackcraft.hackclub.com/</link>
<guid isPermaLink="false">HackCraft-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">HackCraft-1757745811785</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Create a Minecraft mod, get Stickers, Minecraft or a server and terraria!</p>
@ -156,8 +156,8 @@
<item>
<title>Sprig</title>
<link>https://sprig.hackclub.com/</link>
<guid isPermaLink="false">Sprig-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Sprig-1757745811785</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Build a JS game and play it on your own console.</p>
@ -168,8 +168,8 @@
<item>
<title>Boba Drops</title>
<link>https://boba.hackclub.com/</link>
<guid isPermaLink="false">Boba Drops-1757745696236</guid>
<pubDate>Sat, 13 Sep 2025 06:41:36 GMT</pubDate>
<guid isPermaLink="false">Boba Drops-1757745811785</guid>
<pubDate>Sat, 13 Sep 2025 06:43:31 GMT</pubDate>
<description><![CDATA[
<p>Build a website and get boba!</p>

View file

@ -1,421 +0,0 @@
{
"limitedTime": [
{
"name": "Shiba Arcade",
"description": "Make a game with Godot, earn SSS, and get invited to build an arcade in Tokyo (flight stipends available!)",
"website": "https://shiba.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C09AG5L0L03",
"slackChannel": "#shiba",
"status": "active",
"deadline": "2025-10-20T23:59:59",
"detailedDescription": "Shiba is a two-part adventure about game development. Create a game with Godot (an open-source game engine), earn SSS, use that for shop items, but most importantly, an invitation (and flight stipends) to Tokyo, Japan with 29 other Hack Clubbers to build a pop-up arcade!"
},
{
"name": "Siege",
"description": "Code every week, get prizes. Make it to the end, get a framework!",
"website": "https://siege.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C08SKC6P85V",
"slackChannel": "#siege",
"status": "active",
"deadline": "2025-11-30T23:59:59"
},
{
"name": "Waveform",
"description": "Make your own waveform visualizer, get a grant to buy music",
"website": "https://waveform.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C09AX5PLLUS",
"slackChannel": "#waveform",
"status": "active",
"deadline": "2025-09-26T23:59:59"
},
{
"name": "birthday-cards",
"description": "You ship a birthday themed project we ship a birthday card!",
"website": "https://birthday-cards.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C099VPF7V3P",
"slackChannel": "#birthday-cards-ysws",
"status": "active",
"deadline": "2026-08-12T23:59:59"
},
{
"name": "HackCraft",
"description": "Create a Minecraft mod, get Stickers, Minecraft or a server and terraria!",
"website": "https://hackcraft.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C07NQ5QAYNQ",
"slackChannel": "#mc-modding",
"status": "active",
"detailedDescription": "Join HackCraft to build and ship your own Minecraft mod. Access exclusive resources and a supportive community.",
"steps": [
"Make a mod.",
"Publish it on Modrinth.",
"Submit your mod to Hack Club.",
"Receive prizes and enjoy!"
],
"requirements": [
"Basic knowledge of Java programming."
],
"details": [
"Participants will receive a Minecraft Java Edition account or server upon successful submission.",
"Support is available through our Slack community."
]
},
{
"name": "Summer of Making",
"description": "Build stuff. Get stuff. Repeat.",
"website": "https://summer.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C015M4L9AHW",
"slackChannel": "#summer-of-making",
"status": "active",
"deadline": "2025-09-30T23:59:59",
"participants": 10985
},
{
"name": "Penumbra",
"description": "Make shaders, and we'll ship you GPUs and posters!",
"website": "https://penumbra.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C09EC7ZS05S",
"slackChannel": "#penumbra",
"status": "active",
"deadline": "2025-09-24T23:59:59",
"detailedDescription": "Penumbra is a YSWS, where you create shaders on ShaderToy, and get posters of your shaders shipped right to your doorstep! If you spend up to 45 hours across multiple ships, you'll be able to get a GPU like an RTX 3050!"
},
{
"name": "Clutter",
"description": "You ship something to organize your digital life. We ship you a grant to buy something to organize your physical life.",
"website": "https://clutter.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0997C887M3",
"slackChannel": "#clutter",
"status": "active",
"deadline": "2025-09-17T23:59:59"
},
{
"name": "Fusering",
"description": "Design a keyring, get your keyring and a carabiner to hang it from!",
"website": "https://fusering.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C098U42PD2A",
"slackChannel": "#fusering",
"status": "active",
"deadline": "2025-09-30T23:59:59"
},
{
"name": "iFrame",
"description": "Draw or edit images using any programming language and we will hang your custom image on HQ wall and send a copy to you",
"website": "https://iframe.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C098LMVKPCM",
"slackChannel": "#iframe",
"status": "active"
},
{
"name": "Grounded",
"description": "Onboard + Bin v2",
"website": "https://grounded.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C0948RT0C1M",
"slackChannel": "#grounded",
"status": "active"
},
{
"name": "BakeBuild",
"description": "Design a cookie cutter, get it shipped!",
"detailedDescription": "You ship : A CAD model of a cookie cutter, we ship : A 3D printed model of your custom cookie cutter & cookies!",
"website": "https://bakebuild.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0844MV2JM9",
"slackChannel": "#bakebuild",
"status": "active"
}
],
"recentlyEnded": [
{
"name": "Armed",
"description": "Develop an arm assembly program, get lego.",
"website": "https://armed.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C098S1A5ZAT",
"slackChannel": "#armed",
"status": "ended",
"deadline": "2025-09-01T23:59:59"
},
{
"name": "The Zoo",
"description": "Make an animal themed Svelte site, earn Ikea Animal Plushies",
"website": "https://zoo.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C08K37F66AK",
"slackChannel": "#the-zoo",
"status": "ended",
"deadline": "2025-08-23T03:50:00",
"detailedDescription": "The Zoo is a Svelte YSWS where participants build an animal themed Svelte site and earn Mynts (currency) which can be turned into an HCB grant at the end to buy Ikea plushies. Get one giant Djungleskog, or multiple mini Blahaj, it's all up to you. Here's the best part: the better your submission is, the more Mynts you earn!"
},
{
"name": "Authly",
"description": "Build the weirdest and never-before-seen authentication system, get yubikeys, programmable nfc tags, antivirus giftcards and more!",
"website": "https://authly.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C0963JU3CSD",
"slackChannel": "#authly",
"status": "ended",
"deadline": "2025-08-31T23:59:59"
},
{
"name": "Silicon",
"description": "Design your own custom devboard and we'll fund it",
"website": "https://silicon.hackclub.dev",
"slack": "https://hackclub.slack.com/archives/C090WQ9JBTM",
"slackChannel": "#silicon",
"status": "ended",
"deadline": "2025-08-06T23:59:59"
},
{
"name": "cmd + k",
"description": "Build a Raycast extension, get Raycast Pro & stickers",
"website": "https://cmd-k.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0981BXG124",
"slackChannel": "#cmd-k",
"status": "ended",
"deadline": "2025-08-17T23:59:59"
},
{
"name": "Solder",
"description": "Design and solder your own custom PCB with a free electronics kit!",
"website": "https://solder.hackclub.com/",
"slack": "https://slack.com/archives/C08L288G22Y",
"slackChannel": "#solder",
"status": "ended",
"deadline": "2025-06-30T23:59:59"
}
],
"indefinite": [
{
"name": "Sprig",
"description": "Build a JS game and play it on your own console.",
"website": "https://sprig.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C02UN35M7LG",
"slackChannel": "#sprig",
"status": "active",
"participants": 657
},
{
"name": "OnBoard",
"description": "Design a PCB and we'll fabricate it for you.",
"website": "https://hackclub.com/onboard",
"slack": "https://hackclub.slack.com/archives/C056AMWSFKJ",
"slackChannel": "#electronics",
"status": "ended",
"participants": 1000
},
{
"name": "Boba Drops",
"description": "Build a website and get boba!",
"website": "https://boba.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C06UJR8QW0M",
"slackChannel": "#boba",
"status": "active",
"participants": 1253
},
{
"name": "OnBoard Live",
"description": "Design a PCB live on YouTube for $5/hour PCB credit.",
"website": null,
"slack": "https://hackclub.slack.com/archives/C07F3EA2L8G",
"slackChannel": "#onboard-live",
"status": "ended"
}
],
"drafts": [
{
"name": "issued",
"description": "code to design hack-themed apparel",
"detailedDescription": "you code to design hack-themed apparel, we ship popular designs as real clothes!",
"website": "https://issued-ysws.vercel.app",
"slack": "https://hackclub.slack.com/archives/C09C9M0N2UC",
"slackChannel": "#issued",
"status": "draft"
},
{
"name": "Swatchbox",
"description": "You ship a modular art component, we ship the swatchbox to go with it!",
"website": null,
"slack": "https://hackclub.slack.com/archives/C094R49MS9Y",
"slackChannel": "#swatchbox",
"status": "draft"
},
{
"name": "Rube Goldburg YSWS",
"description": null,
"website": null,
"slack": "https://hackclub.slack.com/archives/C094U05FAE6",
"slackChannel": "#rube-goldberg-ysws",
"status": "draft"
},
{
"name": "Poetry",
"description": "You ship: poetry (details to be decided soon) We ship: Maybe a poster or smth?",
"website": null,
"slack": "https://hackclub.slack.com/archives/C095DDUVCJX",
"slackChannel": "#poetry-ysws",
"status": "draft"
},
{
"name": "Plunge",
"description": "DESIGN A PLUNGER-STYLE COOKIE CUTTER, GET IT SHIPPED!",
"website": "http://plunge.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0955KVD1SA",
"slackChannel": "#plunge",
"status": "draft"
},
{
"name": "Aquarium",
"description": null,
"website": null,
"slack": "https://hackclub.slack.com/archives/C095PTABEJK",
"slackChannel": "#aquarium",
"status": "draft"
},
{
"name": "Apogee",
"description": "a rocketry ysws - still workshopping the idea!",
"website": null,
"slack": "https://hackclub.slack.com/archives/C095RKGV5J4",
"slackChannel": "#apogee",
"status": "draft"
},
{
"name": "Glossarium",
"description": "You ship anything that can provide knowledge (a comic, a tutorial, a how-to...) We ship a zine from Julia Evans",
"website": "https://mathiasdpx.github.io/glossarium/",
"slack": "https://hackclub.slack.com/archives/C096L6J19PY",
"slackChannel": "#glossarium",
"status": "draft"
},
{
"name": "Hacksaber",
"description": "An (not official) YSWS that you make an beat saber mod or custom map and we give beat saber copy",
"website": null,
"slack": "https://hackclub.slack.com/archives/C096K1ZEXDL",
"slackChannel": "#hacksaber",
"status": "draft"
},
{
"name": "Hack A Home",
"description": "You Ship a Home Assistant with Software,PCB and Case, We Ship a grant ($150 Max)to make it.",
"detailedDescription": "Build a home assistant with Software,PCB and Case . We will send u a grant ($150 Max)to make it.",
"website": null,
"slack": "https://hackclub.slack.com/archives/C08N4UN6AUS",
"slackChannel": "#hack-a-home",
"status": "draft"
},
{
"name": "Hackumentary",
"description": "You Ship a project with dev vlogs, We Ship points through which you can buy goodies",
"detailedDescription": "Build a project with daily dev vlogs, we ship you points for every dev vlog you create, which you can use to purchase exciting goodies after shipping your project",
"website": null,
"slack": "https://hackclub.slack.com/archives/C08NH401M2S",
"slackChannel": "#hackumentary",
"status": "draft"
},
{
"name": "Reef",
"description": "Ship a deep learning project (AI/ML/LLM/NN), get a custom coral based accelerator.",
"website": null,
"slack": "https://hackclub.slack.com/archives/C08K33ZUUR5",
"slackChannel": "#reef",
"status": "draft"
}
],
"ended": [
{
"name": "Hivemind",
"description": "Create a roguelike in 7 days, get itch.io credit.",
"website": "https://hivemind.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C096T7JRQRG",
"slackChannel": "#hivemind-",
"status": "ended",
"deadline": "2025-08-07T23:59:59",
"steps": [
"Create a traditional roguelike in 7 days.",
"Chronicle its development across 7 devlogs.",
"Get $2.50 in itch.io credit for each approved hour you spend."
]
},
{
"name": "Gemini",
"description": "Ship An Android App and get a FREE Android Phone + Dev License!",
"website": "https://gemini.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C094VQKH1FV",
"slackChannel": "#gemini",
"status": "ended",
"deadline": "2025-08-11T23:59:59"
},
{
"name": "Endpointer",
"description": "Build a REST API, get a grant for Raspberry Pi or Cloud Credits",
"website": "https://endpointer.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C097M5JRT7F",
"slackChannel": "#endpointer",
"status": "ended",
"deadline": "2025-08-12T23:59:59"
},
{
"name": "Portal-VR",
"description": "Build an AR/VR application, get a VR headset!",
"website": "https://portalvr.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C096CPJ1HCN",
"slackChannel": "#portal-vr",
"status": "ended",
"deadline": "2025-08-23T23:59:59"
},
{
"name": "Timeless",
"description": "You have 10 days. Make a video game that could last someone 10 years.",
"website": "https://timeless.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0956A8CL86",
"slackChannel": "#timeless",
"status": "ended",
"deadline": "2025-07-24T23:59:59"
},
{
"name": "Toybox",
"description": "You ship a daily game, we ship stickers + keycap keychain + steam gift card. Make the next Wordle.",
"website": "https://toybox.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C096HCT11G9",
"slackChannel": "#toybox",
"status": "ended",
"deadline": "2025-07-22T23:59:59"
},
{
"name": "Shipwrecked",
"description": "You Ship 60 hours of work, 4 projects, and go viral. We Ship A ticket to an island hackathon in Boston.",
"detailedDescription": "You ship 60 hours of coding work, four shipped projects, and make one of them go viral. We ship you a ticket to Shipwrecked, a four-day, in-person hackathon on Cathleen Stone Island in the Boston Harbor, with travel stipends available.",
"website": "https://shipwrecked.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C073L9LB4K1",
"slackChannel": "#shipwrecked",
"status": "ended",
"deadline": "2025-08-08T15:00:00"
},
{
"name": "Neighborhood",
"description": "You Ship 100 hours of coding on one project. We Ship A free summer of coding in San Francisco.",
"detailedDescription": "You ship 100 hours of coding work on a single, new, open-source project. We ship you a flight to San Francisco and cover your housing, food, and transit for up to three months while you code with other teenagers.",
"website": "https://neighborhood.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C073L9LB4K1",
"slackChannel": "#neighborhood",
"status": "ended"
},
{
"name": "High Seas",
"description": "Work on projects, earn doubloons, and compete in the Wonderdome.",
"website": "https://highseas.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C07PZMBUNDS",
"slackChannel": "#high-seas",
"status": "ended",
"deadline": "2025-01-31T23:59:59",
"participants": 1119
},
{
"name": "Neon",
"description": "Build code, get a 64x32 LED matrix.",
"website": "https://neon.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C080GFRKXJ5",
"slackChannel": "#neon",
"status": "ended",
"deadline": "2025-01-31T23:59:59",
"participants": 195
}
]
}

View file

@ -130,17 +130,17 @@
<header class="site-header">
<div class="logo-container">
<a href="https://hackclub.com" target="_blank" rel="noopenner noreferrer">
<a href="https://hackclub.com" target="_blank" rel="noopener noreferrer">
<img src="https://assets.hackclub.com/flag-orpheus-top.svg" alt="Hack Club" class="logo">
</a>
</div>
<nav class="main-nav">
<a href="https://hackclub.com/slack" target="_blank" rel="noopenner noreferrer" class="nav-link">Join Slack</a>
<a href="/feed.xml" target="_blank" rel="noopenner noreferrer" class="nav-link rss-link">
<a href="https://hackclub.com/slack" target="_blank" rel="noopener noreferrer" class="nav-link">Join Slack</a>
<a href="/feed.xml" target="_blank" rel="noopener noreferrer" class="nav-link rss-link">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg>
RSS Feed
</a>
<a href="https://github.com/hackclub/YSWS-Catalog" target="_blank" rel="noopenner noreferrer" class="nav-link">GitHub</a>
<a href="https://github.com/MntRushmore/YSWS-Catalog" target="_blank" rel="noopener noreferrer" class="nav-link">GitHub</a>
<button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark mode">🌙</button>
</nav>
</header>

View file

@ -1,463 +0,0 @@
{
"limitedTime": [
{
"name": "Shiba Arcade",
"description": "Make a game with Godot, earn SSS, and get invited to build an arcade in Tokyo (flight stipends available!)",
"website": "https://shiba.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C09AG5L0L03",
"slackChannel": "#shiba",
"status": "active",
"deadline": "2025-10-20T23:59:59",
"detailedDescription": "Shiba is a two-part adventure about game development. Create a game with Godot (an open-source game engine), earn SSS, use that for shop items, but most importantly, an invitation (and flight stipends) to Tokyo, Japan with 29 other Hack Clubbers to build a pop-up arcade!"
},
{
"name": "Siege",
"description": "Code every week, get prizes. Make it to the end, get a framework!",
"website": "https://siege.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C08SKC6P85V",
"slackChannel": "#siege",
"status": "active",
"deadline": "2025-11-30T23:59:59"
},
{
"name": "Waveform",
"description": "Make your own waveform visualizer, get a grant to buy music",
"website": "https://waveform.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C09AX5PLLUS",
"slackChannel": "#waveform",
"status": "active",
"deadline": "2025-09-26T23:59:59"
},
{
"name": "birthday-cards",
"description": "You ship a birthday themed project we ship a birthday card!",
"website": "https://birthday-cards.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C099VPF7V3P",
"slackChannel": "#birthday-cards-ysws",
"status": "active",
"deadline": "2026-08-12T23:59:59"
},
{
"name": "HackCraft",
"description": "Create a Minecraft mod, get Stickers, Minecraft or a server and terraria!",
"website": "https://hackcraft.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C07NQ5QAYNQ",
"slackChannel": "#mc-modding",
"status": "active",
"detailedDescription": "Join HackCraft to build and ship your own Minecraft mod. Access exclusive resources and a supportive community.",
"steps": [
"Make a mod.",
"Publish it on Modrinth.",
"Submit your mod to Hack Club.",
"Receive prizes and enjoy!"
],
"requirements": [
"Basic knowledge of Java programming."
],
"details": [
"Participants will receive a Minecraft Java Edition account or server upon successful submission.",
"Support is available through our Slack community."
]
},
{
"name": "Summer of Making",
"description": "Build stuff. Get stuff. Repeat.",
"website": "https://summer.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C015M4L9AHW",
"slackChannel": "#summer-of-making",
"status": "active",
"deadline": "2025-09-30T23:59:59",
"participants": 10985
},
{
"name": "Penumbra",
"description": "Make shaders, and we'll ship you GPUs and posters!",
"website": "https://penumbra.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C09EC7ZS05S",
"slackChannel": "#penumbra",
"status": "active",
"deadline": "2025-09-24T23:59:59",
"detailedDescription": "Penumbra is a YSWS, where you create shaders on ShaderToy, and get posters of your shaders shipped right to your doorstep! If you spend up to 45 hours across multiple ships, you'll be able to get a GPU like an RTX 3050!"
},
{
"name": "Clutter",
"description": "You ship something to organize your digital life. We ship you a grant to buy something to organize your physical life.",
"website": "https://clutter.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0997C887M3",
"slackChannel": "#clutter",
"status": "active",
"deadline": "2025-09-17T23:59:59"
},
{
"name": "Fusering",
"description": "Design a keyring, get your keyring and a carabiner to hang it from!",
"website": "https://fusering.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C098U42PD2A",
"slackChannel": "#fusering",
"status": "active",
"deadline": "2025-09-30T23:59:59"
},
{
"name": "iFrame",
"description": "Draw or edit images using any programming language and we will hang your custom image on HQ wall and send a copy to you",
"website": "https://iframe.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C098LMVKPCM",
"slackChannel": "#iframe",
"status": "active"
},
{
"name": "Silicon",
"description": "Design your own custom devboard and we'll fund it",
"website": "https://silicon.hackclub.dev",
"slack": "https://hackclub.slack.com/archives/C090WQ9JBTM",
"slackChannel": "#silicon",
"status": "ended",
"deadline": "2025-08-06T23:59:59"
},
{
"name": "Grounded",
"description": "Onboard + Bin v2",
"website": "https://grounded.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C0948RT0C1M",
"slackChannel": "#grounded",
"status": "active"
},
{
"name": "BakeBuild",
"description": "Design a cookie cutter, get it shipped!",
"detailedDescription": "You ship : A CAD model of a cookie cutter, we ship : A 3D printed model of your custom cookie cutter & cookies!",
"website": "https://bakebuild.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0844MV2JM9",
"slackChannel": "#bakebuild",
"status": "active"
},
{
"name": "Solder",
"description": "Design and solder your own custom PCB with a free electronics kit!",
"website": "https://solder.hackclub.com/",
"slack": "https://slack.com/archives/C08L288G22Y",
"slackChannel": "#solder",
"status": "ended",
"deadline": "2025-06-30T23:59:59"
},
{
"name": "cmd + k",
"description": "Build a Raycast extension, get Raycast Pro & stickers",
"website": "https://cmd-k.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0981BXG124",
"slackChannel": "#cmd-k",
"status": "ended",
"deadline": "2025-08-17T23:59:59"
}
],
"indefinite": [
{
"name": "Sprig",
"description": "Build a JS game and play it on your own console.",
"website": "https://sprig.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C02UN35M7LG",
"slackChannel": "#sprig",
"status": "active",
"participants": 657
},
{
"name": "OnBoard",
"description": "Design a PCB and we'll fabricate it for you.",
"website": "https://hackclub.com/onboard",
"slack": "https://hackclub.slack.com/archives/C056AMWSFKJ",
"slackChannel": "#electronics",
"status": "ended",
"participants": 1000
},
{
"name": "Boba Drops",
"description": "Build a website and get boba!",
"website": "https://boba.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C06UJR8QW0M",
"slackChannel": "#boba",
"status": "active",
"participants": 1253
},
{
"name": "OnBoard Live",
"description": "Design a PCB live on YouTube for $5/hour PCB credit.",
"website": null,
"slack": "https://hackclub.slack.com/archives/C07F3EA2L8G",
"slackChannel": "#onboard-live",
"status": "ended"
}
],
"ended": [
{
"name": "Armed",
"description": "Develop an arm assembly program, get lego.",
"website": "https://armed.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C098S1A5ZAT",
"slackChannel": "#armed",
"status": "ended",
"deadline": "2025-09-01T23:59:59"
},
{
"name": "The Zoo",
"description": "Make an animal themed Svelte site, earn Ikea Animal Plushies",
"website": "https://zoo.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C08K37F66AK",
"slackChannel": "#the-zoo",
"status": "ended",
"deadline": "2025-08-23T03:50:00",
"detailedDescription": "The Zoo is a Svelte YSWS where participants build an animal themed Svelte site and earn Mynts (currency) which can be turned into an HCB grant at the end to buy Ikea plushies. Get one giant Djungleskog, or multiple mini Blahaj, it's all up to you. Here's the best part: the better your submission is, the more Mynts you earn!"
},
{
"name": "Hivemind",
"description": "Create a roguelike in 7 days, get itch.io credit.",
"website": "https://hivemind.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C096T7JRQRG",
"slackChannel": "#hivemind-",
"status": "ended",
"deadline": "2025-08-07T23:59:59",
"steps": [
"Create a traditional roguelike in 7 days.",
"Chronicle its development across 7 devlogs.",
"Get $2.50 in itch.io credit for each approved hour you spend."
]
},
{
"name": "Authly",
"description": "Build the weirdest and never-before-seen authentication system, get yubikeys, programmable nfc tags, antivirus giftcards and more!",
"website": "https://authly.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C0963JU3CSD",
"slackChannel": "#authly",
"status": "ended",
"deadline": "2025-08-31T23:59:59"
},
{
"name": "Gemini",
"description": "Ship An Android App and get a FREE Android Phone + Dev License!",
"website": "https://gemini.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C094VQKH1FV",
"slackChannel": "#gemini",
"status": "ended",
"deadline": "2025-08-11T23:59:59"
},
{
"name": "Endpointer",
"description": "Build a REST API, get a grant for Raspberry Pi or Cloud Credits",
"website": "https://endpointer.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C097M5JRT7F",
"slackChannel": "#endpointer",
"status": "ended",
"deadline": "2025-08-12T23:59:59"
},
{
"name": "Portal-VR",
"description": "Build an AR/VR application, get a VR headset!",
"website": "https://portalvr.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C096CPJ1HCN",
"slackChannel": "#portal-vr",
"status": "ended",
"deadline": "2025-08-23T23:59:59"
},
{
"name": "Timeless",
"description": "You have 10 days. Make a video game that could last someone 10 years.",
"website": "https://timeless.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0956A8CL86",
"slackChannel": "#timeless",
"status": "ended",
"deadline": "2025-07-24T23:59:59"
},
{
"name": "Toybox",
"description": "You ship a daily game, we ship stickers + keycap keychain + steam gift card. Make the next Wordle.",
"website": "https://toybox.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C096HCT11G9",
"slackChannel": "#toybox",
"status": "ended",
"deadline": "2025-07-22T23:59:59"
},
{
"name": "Dummies",
"description": "learn a new language, recieve a guide book!",
"website": "https://dummies.hackclub.com/",
"deadline": "2025-08-21T23:59:59",
"detailedDescription": "Join Dummies to take on projects in new languages and earn grant cards for books!",
"steps": [
"Develop and publish a project",
"Submit it to Hack Club",
"Receive a grant for books!"
],
"requirements": [
"taking on a NEW skill",
"resulting project can be seen from a weblink"
],
"slack": "https://app.slack.com/client/T0266FRGM/C096M3EV67M",
"slackChannel": "#Dummies",
"status": "ended"
},
{
"name": "Twist",
"description": "Make an esolang, get stickers and a $40 electronics grant.",
"website": "https://twist.hackclub.dev/",
"slack": "https://hackclub.slack.com/archives/C092A93FA4X",
"slackChannel": "#twist-ysws",
"status": "ended",
"deadline": "2025-07-16T23:59:59"
},
{
"name": "Terminal Craft v3",
"description": "Build and publish your own terminal program and earn a $60 grant",
"website": "https://terminalcraft.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C08F58MT3GV",
"slackChannel": "#terminal-craft",
"status": "ended",
"deadline": "2025-08-10T23:59:59"
},
{
"name": "Slushies",
"description": "Build a flask app, get $5 or $10 for slushies!",
"website": "https://slushies.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C097GP305G8",
"slackChannel": "#slushies",
"status": "ended",
"deadline": "2025-08-23T23:59:59"
},
{
"name": "Infinity",
"description": "Build a website with an infinite realtime canvas, get awesome prizes!",
"website": "https://infinity.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C098ARHLXFW",
"slackChannel": "#infinity",
"status": "ended",
"deadline": "2025-08-22T23:59:59"
},
{
"name": "Tile",
"description": "Build a tile, get a tile, tile the tiles!",
"website": "https://tile.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C097E6ZAF99",
"slackChannel": "#tile",
"status": "ended",
"deadline": "2025-08-18T23:59:59"
},
{
"name": "Minigame",
"description": "A YSWS where you build \"mini\" 5 hour games and earn a $20 grant for each one! At the end everyone's games will be combined together to make a big Minigame collection!",
"website": "https://minigame.hackclub.dev",
"slack": "https://hackclub.slack.com/archives/C093SSC3Z16",
"slackChannel": "#minigame",
"status": "ended",
"deadline": "2025-07-18T23:59:59"
},
{
"name": "Squeak",
"description": "Design a mouse case and receive the case and parts!",
"website": "https://squeak.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C094458MVMX",
"slackChannel": "#squeak",
"status": "ended",
"deadline": "2025-07-13T23:59:59"
},
{
"name": "Pathfinder",
"description": "Make a custom PCB controller board and efidget",
"website": "https://pathfinder.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C0943DE80E4",
"slackChannel": "#pathfinder",
"status": "ended",
"deadline": "2025-07-05T23:59:59"
},
{
"name": "Hackfinger",
"description": "You design a custom appendage (finger, tail, leg, anything you want!) and get your design printed along with a custom control board.",
"website": "https://hackfinger.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C095T0TQ5A8",
"slackChannel": "#hackfinger",
"status": "ended",
"deadline": "2025-07-20T23:59:59"
},
{
"name": "Jumpstart",
"description": "Game-dev YSWS running July 9th to Aug 9th ✨",
"website": "https://jumpstart.hackclub.com",
"slack": "https://hackclub.slack.com/archives/C0931T5SEH4",
"slackChannel": "#jumpstart",
"status": "ended",
"deadline": "2025-08-09T23:59:59"
}
],
"drafts": [
{
"name": "issued",
"description": "code to design hack-themed apparel",
"detailedDescription": "you code to design hack-themed apparel, we ship popular designs as real clothes!",
"website": "https://issued-ysws.vercel.app",
"slack": "https://hackclub.slack.com/archives/C09C9M0N2UC",
"slackChannel": "#issued",
"status": "draft"
},
{
"name": "Swatchbox",
"description": "You ship a modular art component, we ship the swatchbox to go with it!",
"website": null,
"slack": "https://hackclub.slack.com/archives/C094R49MS9Y",
"slackChannel": "#swatchbox",
"status": "draft"
},
{
"name": "Rube Goldburg YSWS",
"description": null,
"website": null,
"slack": "https://hackclub.slack.com/archives/C094U05FAE6",
"slackChannel": "#rube-goldberg-ysws",
"status": "draft"
},
{
"name": "Poetry",
"description": "You ship: poetry (details to be decided soon) We ship: Maybe a poster or smth?",
"website": null,
"slack": "#poetry-ysws",
"slackChannel": "https://hackclub.slack.com/archives/C095DDUVCJX",
"status": "draft"
},
{
"name": "Plunge",
"description": "DESIGN A PLUNGER-STYLE COOKIE CUTTER, GET IT SHIPPED!",
"website": "http://plunge.hackclub.com/",
"slack": "https://hackclub.slack.com/archives/C0955KVD1SA",
"slackChannel": "#plunge",
"status": "draft"
},
{
"name": "Aquarium",
"description": null,
"website": null,
"slack": "https://hackclub.slack.com/archives/C095PTABEJK",
"slackChannel": "#aquarium",
"status": "draft"
},
{
"name": "Apogee",
"description": "a rocketry ysws - still workshopping the idea!",
"website": null,
"slack": "https://hackclub.slack.com/archives/C095RKGV5J4",
"slackChannel": "#apogee",
"status": "draft"
},
{
"name": "Glossarium",
"description": "You ship anything that can provide knowledge (a comic, a tutorial, a how-to...) We ship a zine from Julia Evans",
"website": "https://mathiasdpx.github.io/glossarium/",
"slack": "https://hackclub.slack.com/archives/C096L6J19PY",
"slackChannel": "#glossarium",
"status": "draft"
},
{
"name": "Hacksaber",
"description": "An (not official) YSWS that you make an beat saber mod or custom map and we give beat saber copy",
"website": null,
"slack": "https://hackclub.slack.com/archives/C096K1ZEXDL",
"slackChannel": "#hacksaber",
"status": "draft"
}
]
}