A WebRing for University of Toronto Engineering students and the broader UofT community. This WebRing connects personal websites, portfolios, and blogs of UofT students, faculty, and alumni.
The SKULE™ WebRing connects websites of UofT SKULE™ members through a retro-inspired WebRing. It's a way to discover interesting sites, share your work, and build connections.
-
Genuine Content - Your website should be "made with hands," meaning it contains genuine and useful content. Auto-generated sites or pages with minimal effort are not eligible.
-
Appropriateness - Content must be appropriate, websites should not host illegal information nor aid in the dissemination of such information.
-
Website Badge - You must provide a badge icon in .PNG or .GIF format that will be displayed in the members list. See the Website Badges section below for details.
-
Widget Integration - The WebRing widget must be included on your website in an accessible location (preferably in the footer or sidebar).
-
UofT Affiliation - You must be a UofT student, alumni, faculty, or staff member that is in the Faculty of Applied Science and Engineering. Special consideration can be granted by sending an email to webring@skule.ca.
-
Create a personal website.
-
Add the WebRing widget to your website HTML (template below).
-
Fork this repository and add your information to the BOTTOM of the
membersarray injs/webring-data.jsonfollowing this format:{ "name": "Your Name", "specialLink": "yourname", "websitedisplay": "https://webring.skule.ca/yourname", // Optional: website URL shown in the directory table "website": "https://your-website.com", "program": "Your Program (e.g., Engineering, Arts & Science, etc.)", "designation": "Your Role (e.g., Undergrad, Grad, Faculty, etc.)", "year": "1-25", // Month and year when added to the WebRing (e.g., 1-25 for January 2025) "grad": "2T5", // Expected graduation year in Engineering format (i.e. 2T5, 2T8) if in engineering, else standard (2025) "badge": "https://your-website.com/badge.png" // URL to your custom website badge }
websitedisplay is optional. If set, the directory's Website column will show and link to that value, while website remains the canonical personal site used for navigation logic.
-
Submit a Pull Request.
-
Fill in the student information form in here.
Members can be reached using a shortlink under the webring domain https://webring.skule.ca/yourname. This should look more official than a vercel.app or github.io link if you should desire to use it.
How shortlinks are resolved:
- The system uses the
specialLinkfield when provided. - If
specialLinkis missing, it falls back to a normalized version ofname. - If two members resolve to the same shortlink, ordering in
js/webring-data.jsonwins:
- First keeps the base shortlink (example:
name) - Second becomes
nameDUPLICATE - Third becomes
nameDUPLICATE2, and so on
Recommended format for specialLink values:
- Lowercase letters and numbers
- No spaces
- Keep it short and stable
- Matching is case-insensitive (
nameDUPLICATEandnameduplicateboth resolve)
Websites may be removed from the WebRing if they become defunct (e.g., domain expires, site becomes inaccessible, or content is removed). Websites will be removed if content on websites becomes inappropriate for the ring. We'll make reasonable attempts to contact site owners before removal.
Since every website is unique, we suggest you add your own flair to the icon. Here are some examples to get you started:
<div style="display: flex; align-items: center; gap: 15px; background-color: #f5f5f5; padding: 15px 25px; border-radius: 8px; border: 1px solid #ddd;">
<a href="https://WebRing.skule.ca/#https://your-website.com?nav=prev" style="color: #333; text-decoration: none; font-size: 1.5rem;">←</a>
<a href="https://WebRing.skule.ca/#https://your-website.com" target="_blank">
<img src="https://WebRing.skule.ca/img/icon.svg" alt="SKULE WebRing" style="width: 32px; height: 32px;"/>
</a>
<a href="https://WebRing.skule.ca/#https://your-website.com?nav=next" style="color: #333; text-decoration: none; font-size: 1.5rem;">→</a>
</div>
<!-- Replace 'your-website.com' with your actual website URL --><div style="display: flex; align-items: center; gap: 15px; background-color: #2a2a2a; padding: 15px 25px; border-radius: 8px; border: 1px solid #444;">
<a href="https://WebRing.skule.ca/#https://your-website.com?nav=prev" style="color: #e0e0e0; text-decoration: none; font-size: 1.5rem;">←</a>
<a href="https://WebRing.skule.ca/#https://your-website.com" target="_blank">
<img src="https://WebRing.skule.ca/img/icon-dark.svg" alt="SKULE WebRing" style="width: 32px; height: 32px;"/>
</a>
<a href="https://WebRing.skule.ca/#https://your-website.com?nav=next" style="color: #e0e0e0; text-decoration: none; font-size: 1.5rem;">→</a>
</div>
<!-- Replace 'your-website.com' with your actual website URL --><div style={{
display: 'flex',
alignItems: 'center',
gap: '15px',
backgroundColor: '#f5f5f5',
padding: '15px 25px',
borderRadius: '8px',
border: '1px solid #ddd'
}}>
<a href='https://WebRing.skule.ca/#https://your-website.com?nav=prev' style={{ color: '#333', textDecoration: 'none', fontSize: '1.5rem' }}>←</a>
<a href='https://WebRing.skule.ca/#https://your-website.com' target='_blank'>
<img src='https://WebRing.skule.ca/img/icon.svg' alt='SKULE WebRing' style={{ width: '32px', height: '32px' }}/>
</a>
<a href='https://WebRing.skule.ca/#https://your-website.com?nav=next' style={{ color: '#333', textDecoration: 'none', fontSize: '1.5rem' }}>→</a>
</div>
// Replace 'your-website.com' with your actual website URL<div style={{
display: 'flex',
alignItems: 'center',
gap: '15px',
backgroundColor: '#2a2a2a',
padding: '15px 25px',
borderRadius: '8px',
border: '1px solid #444'
}}>
<a href='https://WebRing.skule.ca/#https://your-website.com?nav=prev' style={{ color: '#e0e0e0', textDecoration: 'none', fontSize: '1.5rem' }}>←</a>
<a href='https://WebRing.skule.ca/#https://your-website.com' target='_blank'>
<img src='https://WebRing.skule.ca/img/icon-dark.svg' alt='SKULE WebRing' style={{ width: '32px', height: '32px' }}/>
</a>
<a href='https://WebRing.skule.ca/#https://your-website.com?nav=next' style={{ color: '#e0e0e0', textDecoration: 'none', fontSize: '1.5rem' }}>→</a>
</div>
// Replace 'your-website.com' with your actual website URLYou can also add automatic theme switching based on the user's system preference. Check the GitHub repository for more advanced implementation examples.
You need to create a custom badge for your website to display in the members table.
- Create a PNG, GIF, or SVG image for your website badge
- Recommended dimensions: 88px × 31px (standard badge size)
- Upload the badge to your website
or include it in a PR - Include the path to your badge in your member entry in the
badgefield- For badges hosted on your website: use the full URL (e.g.,
https://your-website.com/badge.png) For badges included in a PR: use a relative path (e.g.,badges/your-custom-badge.svg)
- For badges hosted on your website: use the full URL (e.g.,
Badges must be 88x31 pixels or some multiple of this, they can png, .gif, or .svg file types. Here are some example badge styles you might consider.
Inspired by the XXIIVV WebRing and the early web's interconnected spirit.