2019-04-13 14:25:00 +02:00
# Webring Starter Kit
2019-04-14 21:36:15 +02:00
A boilerplate to host your own community of sites, also known as a [webring ](https://en.wikipedia.org/wiki/Webring ).
2019-04-16 08:26:23 +02:00
Inspired by posts from [Tatiana Mac ](https://twitter.com/TatianaTMac/status/1114388079630929926 ) and [Charlie Owen ](https://www.sonniesedge.net/posts/webrings ).
2019-04-13 14:25:00 +02:00
2019-04-14 21:36:15 +02:00
Uses [Eleventy ](https://www.11ty.io ) and [Netlify ](https://www.netlify.com/ ) to build a central directory for member sites. People can link to `/prev` , `/random` and `/next` and be redirected to members of the ring.
2019-04-13 14:25:00 +02:00
2019-04-16 11:17:44 +02:00
✏️ Explanatory [Blog Post ](https://mxb.dev/blog/webring-kit/ )
## Features
2019-04-14 21:36:15 +02:00
* Admins manage the ring on Github
2019-04-15 08:40:56 +02:00
* Members are defined in `src/data/members.json`
2019-04-16 08:26:23 +02:00
* Let people add their site through pull request or submit via email form
* Publish a code of conduct
* Provide an embed code that renders a banner (as a web component)
2019-04-14 21:36:15 +02:00
* Publish an index of all member RSS feeds
2019-04-16 08:26:23 +02:00
* show a SVG map of the ring and its members
2019-04-13 14:25:00 +02:00
2019-04-16 11:17:44 +02:00
## Example
See the __ [Demo Site ](https://webringdemo.netlify.com )__ generated by this code.
2019-04-14 21:06:19 +02:00
## How to host a ring
2019-04-13 14:25:00 +02:00
2019-04-14 21:06:19 +02:00
1. Fork this repo
2. Edit `src/data/meta.json` and fill in your community info
2019-04-14 22:15:48 +02:00
3. Add an avatar image for your ring to `src/assets/images`
4. Remove the demo members in `src/data/members.json`
5. Deploy your site to Netlify
6. After you've set a domain, enter that in `meta.json` as well.
2019-04-13 18:45:22 +02:00
2019-04-14 22:28:35 +02:00
[![Deploy to Netlify ](https://www.netlify.com/img/deploy/button.svg )](https://app.netlify.com/start/deploy?repository=https://github.com/maxboeck/webring)
2019-04-15 08:40:56 +02:00
2019-04-16 08:26:23 +02:00
## Banner Embed
Members can copy a code snippet and embed it into their sites.
It renders a web component (with the bare links as a fallback).
The index site will produce an embed code with your ring URL and title:
```html
< webring-banner >
< p > Member of < a href = "{{ your-url }}" > {{ your-title }}< / a > < / p >
< a href = "{{ your-url }}/prev" > Previous< / a >
< a href = "{{ your-url }}/random" > Random< / a >
< a href = "{{ your-url }}/next" > Next< / a >
< / webring-banner >
2019-04-16 09:07:17 +02:00
< script async src = "{{ your-url }}/embed.js" charset = "utf-8" > < / script >
2019-04-16 08:26:23 +02:00
```
The design is up to the ring admins. It could look something like this:
![the banner widget ](https://mxb.dev/assets/media/webrings/banner.png )
2019-04-15 08:40:56 +02:00
## Local Development
To build the site locally, run these commands:
```shell
# clone this repository
git clone git@github .com:maxboeck/webring.git
# go to the working directory
cd webring
# install dependencies
yarn
# start a local build server and the gulp pipeline
yarn start
2019-04-16 09:07:17 +02:00
```