Compare commits

...

76 Commits

Author SHA1 Message Date
03cc547b61 update durian rate
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-08 10:22:13 -07:00
8395b46894 remove template
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-26 11:23:27 -07:00
ef95e3189c new listins, edit listing, delete listing on request
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-26 11:17:35 -07:00
3f99418e28 readd requests 2026-05-26 11:17:18 -07:00
70bc8e6f4d remove site folder
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-21 16:39:55 -07:00
c43ebca88e ai declaration meta values 2026-05-21 16:39:40 -07:00
ae6c1d9990 build
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-18 14:08:40 -07:00
28f9c6d11a new listing action_jay plus remove requests from daily view
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-18 13:56:47 -07:00
de29021a49 build
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-15 18:04:11 -07:00
0583c09ea8 new listing lj 2026-05-15 18:01:05 -07:00
2551ab367e build
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-15 16:49:03 -07:00
bbd34294fe new listing sondra 2026-05-15 16:43:04 -07:00
cc8dc7a1a8 change to parametrized git user
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-15 07:35:52 -07:00
b60d879c40 dronefile
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-15 07:31:35 -07:00
3710711051 add submodule 2026-05-15 07:30:00 -07:00
972651a03e remove unused pipeline from codeberg 2026-05-15 06:56:00 -07:00
b66b6c9647 build 2026-05-11 12:06:25 -07:00
45e4f74a05 move cai to category 2026-05-11 12:05:56 -07:00
ab07030452 build 2026-05-11 07:56:53 -07:00
ae7838ae07 remove update banner 2026-05-11 07:56:34 -07:00
4329772b02 build 2026-05-11 07:48:25 -07:00
5f0cab0878 new listings and 5 11 daily page 2026-05-11 07:48:04 -07:00
b6554e1362 build 2026-05-09 17:38:08 -07:00
f8fe95b754 new listing kestral 2026-05-09 17:37:19 -07:00
54b7b17e31 build 2026-05-09 07:10:35 -07:00
b895e20e7c update rate for durian 2026-05-09 07:09:13 -07:00
d8b5fc5cd8 build 2026-05-09 07:02:14 -07:00
04973ed44e rss link auto discovery 2026-05-09 07:02:00 -07:00
d6fc1d0d62 build 2026-05-08 16:55:54 -07:00
d2739336c2 allow for breaking mid word because handles are long 2026-05-08 16:55:37 -07:00
f84e17598f build 2026-05-08 16:50:59 -07:00
7b578d46f5 new listings and workaround for bad URL 2026-05-08 16:50:26 -07:00
ce99862505 build 2026-05-08 14:21:44 -07:00
2a77e26165 new listings brib hamatti 2026-05-08 14:21:12 -07:00
c22e152844 build 2026-05-07 15:29:58 -07:00
5e2c79a2b2 shorten moss' blurb 2026-05-07 15:29:11 -07:00
0ea47aeecd build 2026-05-07 14:05:18 -07:00
3e86325928 new listing wxcafe 2026-05-07 14:05:06 -07:00
a6ee200965 build 2026-05-06 14:44:00 -07:00
c6a09ba2ea new listing zbennoui 2026-05-06 14:43:43 -07:00
4828e2c99f build 2026-05-06 11:08:22 -07:00
a05f79c780 wording tweak for zillion 2026-05-06 11:08:06 -07:00
6b9ce45c68 build 2026-05-06 10:51:42 -07:00
95df74bda6 new listing zillion science 2026-05-06 10:51:33 -07:00
814219308d build 2026-05-06 10:45:33 -07:00
4428a7130b new listing zillion writing 2026-05-06 10:45:13 -07:00
4987b37fe6 build 2026-05-06 09:27:56 -07:00
dd415df862 requests page and styling 2026-05-06 09:27:10 -07:00
73c195cab2 build 2026-05-06 09:02:12 -07:00
7d6c64e964 continue building out request infrastructure 2026-05-06 08:59:44 -07:00
2615556003 build 2026-05-06 08:28:25 -07:00
c2ff13327c start to work in requests by cleaning up listing code 2026-05-06 08:28:07 -07:00
3f20d7317b build 2026-05-06 07:42:37 -07:00
66364f8e40 janeadams madgeface daily for may 6th 2026-05-06 07:42:19 -07:00
5312c4a37a build 2026-05-06 07:28:59 -07:00
bfb03575fb rename ads -> offers, add new listing (syd) 2026-05-06 07:28:25 -07:00
439e207539 sort by title, add og image and alt 2026-05-05 20:20:07 -07:00
b7aa9a9a62 fix category name on submit page 2026-05-05 19:54:39 -07:00
2d1bfc0272 slightly nicer favicon 2026-05-05 17:17:45 -07:00
9b3b15ab2e build 2026-05-05 17:14:05 -07:00
72d5f8b2be fallback fonts 2026-05-05 17:13:50 -07:00
e3f062d335 rename category 2026-05-05 17:11:39 -07:00
159aac612a change source code link in footer 2026-05-05 17:08:24 -07:00
3a43ed9f68 add site folder in prep for hosting 2026-05-05 14:31:46 -07:00
a0a1c04651 Merge branch 'pages' 2026-05-05 12:47:40 -07:00
98d5544d0a add date to robotistry listing 2026-05-05 12:46:38 -07:00
e9c5c32026 add name change warning and tweak some styles to fit 2026-05-05 12:46:24 -07:00
a4338717e4 bold rate 2026-05-05 12:42:03 -07:00
2904872e34 more title changing 2026-05-05 12:41:43 -07:00
e89caf9423 listing robotistry 2026-05-05 12:41:23 -07:00
57fa31ba45 listing robotistry 2026-05-05 12:40:58 -07:00
1ecd538c90 bold rate 2026-05-05 12:40:42 -07:00
f3f9c4d70e Merge branch 'pages' 2026-05-05 08:24:54 -07:00
c7b6f1a28d favicon line? can we fix it? 2026-05-05 08:19:29 -07:00
a2d4dc99fb start to switch to fedilearns 2026-05-05 08:17:28 -07:00
fdd3db4e59 new listing wizardofdocs 2026-05-05 07:43:47 -07:00
119 changed files with 552 additions and 152 deletions

25
.drone.yml Normal file
View File

@ -0,0 +1,25 @@
kind: pipeline
type: docker
name: default
steps:
- name: build
image: node:current
environment:
REPOSITORY: fedilearns-site
GIT_USER: inherentlee
GIT_TOKEN:
from_secret: GIT_TOKEN
commands:
- git config credential.helper '!f() { echo username=$GIT_USER; echo "password=$GIT_TOKEN"; };f'
- git submodule update --remote --init --merge
- npm install
- npm run build
- apt-get update && apt-get install -y rsync
- rsync -uavh _site/ $REPOSITORY --delete --exclude .git
- cd $REPOSITORY
- git checkout main
- git config --global --add safe.directory /drone/src/$REPOSITORY
- git add -A
- git commit -m "drone build $(TZ=':America/Los_Angeles' date)"
- git push

1
.gitignore vendored
View File

@ -1,3 +1,2 @@
_live
_site
node_modules/

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "fedilearns-site"]
path = fedilearns-site
url = https://heckin.technology/inherentlee/fedilearns-site.git

View File

@ -1,59 +0,0 @@
# NodeJS / 11ty on Woodpecker to codeberg pages
#
# This file would typically be .woodpecker.yml in the root of your repository.
#
# Takes a repository with 11ty source, generates the static site and
# pushes the result to codeberg pages
#
#
# SECRETS
# https://woodpecker-ci.org/docs/usage/secrets
# CBTOKEN needs a codeberg access token as secret in woodpecker config
# CBEMAIL with email address for git config
# SOURCEREPO must be replaced with the source repo
# DESTREPO must be replaced with the target codeberg pages repo
# CBUSERNAME must be replaced with the user/org
#
#
# We also assume a domains file in the source repo that gets copied to
# .domains in the target repo so codeberg pages works for custom domains
steps:
- name: build
when:
- branch: pages
event: push
- event: manual
image: node
environment:
CBUSERNAME: inherentlee
SOURCEREPO: fedi-skillshares-src
DESTREPO: fedi-skillshares
CBTOKEN:
from_secret: CBTOKEN
CBEMAIL:
from_secret: CBEMAIL
commands:
# Avoid permission denied errors
- chmod -R a+w .
# Set up git in a working way
- git config --global --add safe.directory /woodpecker/src/codeberg.org/$CBUSERNAME/$SOURCEREPO/_site
- git config --global user.email "$CBEMAIL"
- git config --global user.name "CI Builder"
# clone and move the target repo
- git clone -b pages https://codeberg.org/$CBUSERNAME/$DESTREPO.git _site
- chmod -R a+w _site
- cd _site
# Prepare for push
- git remote set-url origin https://$CBTOKEN@codeberg.org/$CBUSERNAME/$DESTREPO.git
- cd ..
# Run 11ty build stage
- npm install
- npm run build-codeberg
# Only needed for custom domains
#- cp domains _site/.domains
# Push to target
- cd _site
- git add --all
- git commit -m "Woodpecker CI 11ty Build at $( env TZ=America/Chicago date +"%Y-%m-%d %X %Z" )"
- git push -u origin pages

View File

@ -1,7 +1,9 @@
import { DateTime } from "luxon";
export default function(eleventyConfig) {
/* Filter by date */
eleventyConfig.addFilter("filterByDate", (listings, date) => {
if (date === null) return listings;
date = DateTime.fromISO(date, { zone: "utc" });
return listings.filter((listing) => {
let postDate = DateTime.fromJSDate(listing.data.date, { zone: "utc" });
@ -9,12 +11,17 @@ export default function(eleventyConfig) {
});
})
/* Filter by tag */
eleventyConfig.addFilter("filterByTag", (listings, tag) => {
return listings.filter(listing => listing.data.tags.includes(tag));
});
// Return the keys used in an object
eleventyConfig.addFilter("getKeys", target => {
return Object.keys(target);
});
/* */
/* Taglines for each category */
eleventyConfig.addFilter("getTagline", tag => {
let tagline;
switch (tag) {
@ -33,7 +40,7 @@ export default function(eleventyConfig) {
case "food and drink":
tagline = "good eatin'";
break;
case "history and science":
case "history science and languages":
tagline = "book learnin'"
break;
case "miscellany and more":
@ -68,11 +75,17 @@ export default function(eleventyConfig) {
/* Filter out structural tags */
eleventyConfig.addFilter("removeCoreTags", (tags) => {
return tags.filter(tag => ["all", "ads", "daily"].indexOf(tag) === -1);
return tags.filter(tag => ["all", "daily", "offers", "requests"].indexOf(tag) === -1);
});
/* What it says on the tin */
eleventyConfig.addFilter("sortAlphabetically", strings =>
(strings || []).sort((b, a) => b.localeCompare(a))
);
/* Sort alphabetically by item title */
eleventyConfig.addFilter("sortAlphabeticallyByTitle", collection => {
collection.sort((b, a) => b.data.title.localeCompare(a.data.title));
return collection;
});
};

View File

@ -1,6 +1,6 @@
export default {
title: "Fediverse Skillshare Classifieds",
description: "Skillshare listings for the Fediverse",
url: "https://inherentlee.codeberg.page/fedi-skillshares",
title: "FediLearns",
description: "Learning together, by and for the fediverse",
url: "https://fedilearns.fyi",
author: "Lee Cattarin"
}

22
_includes/daily.njk Normal file
View File

@ -0,0 +1,22 @@
{% css %}
section > h2 {
background-color: var(--color-gray);
font-size: 2rem;
text-align: center;
margin: 5rem 0 1rem;
}
{% endcss %}
<section>
<h2>Offers</h2>
{% set category = "offers" %}
{% include "listings.njk" %}
</section>
<section>
<h2>Requests</h2>
{% set category = "requests" %}
{% include "listings.njk" %}
</section>

View File

@ -7,11 +7,11 @@
<a href="/daily/">Listings by day</a>
</li>
<li>
<a href="/feed.xml">RSS</a>
<a href="https://heckin.technology/inherentlee/fedilearns"
target="_blank">source code</a>
</li>
<li>
<a href="https://heckin.technology/inherentlee/fedi-classifieds"
target="_blank">source code</a>
<a href="/feed.xml">RSS</a>
</li>
</ul>
</footer>

View File

@ -2,9 +2,14 @@
<nav>
<ul>
<li><a id="skip" href="#main">skip to content</a></li>
<li><a href="/" {% if page.url === "/" %}aria-current="page"{% endif %}>home page</a></li>
<li><a href="/about/" {% if page.url === "/about/" %}aria-current="page"{% endif %}>about this site</a></li>
<li><a href="/submit/" {% if page.url === "/submit/" %}aria-current="page"{% endif %}>submit a listing</a></li>
<li><a href="/" {% if page.url == "/" %}aria-current="page"{% endif %}
>home page</a></li>
<li><a href="/about/" {% if page.url == "/about/" %}aria-current="page"{% endif %}
>about this site</a></li>
<li><a href="/submit/" {% if page.url == "/submit/" %}aria-current="page"{% endif %}
>submit a listing</a></li>
<li><a href="/requests/" {% if page.url == "/requests/" %}aria-current="page"{% endif %}
>requests for help</a></li>
</ul>
</nav>
</header>

View File

@ -3,6 +3,8 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="alternate" type="application/atom+xml" href="/feed.xml" title="{{ metadata.title }}"/>
{% if title %}
{% set pageTitle %}{{ title }} | {{ metadata.title }}{% endset %}
@ -16,9 +18,14 @@
<meta property="og:type" content="website" />
<meta property="og:description" content="{{ description or metadata.description }}" />
<meta property="og:site_name" content="{{ metadata.title }}" />
<meta property="og:image" content="/favicon.ico" />
<meta property="og:image:alt" content="a newspaper icon with the fediverse logo, an interconnected rainbow pentagon, superimposed." />
<meta name="generator" content="{{ eleventy.generator }}">
<meta itemprop="ai-content-declaration:version" content="1.0.0">
<meta itemprop="ai-content-declaration:level" content="none">
{# Styles #}
<style>{% include "css/main.css" %}</style>
<style>{% include "css/nav.css" %}</style>

View File

@ -1,13 +1,20 @@
<div class="listing{% if listing.data.draft %} draft{% endif %}">
<div class="listing">
<h3>{{ listing.data.title }}</h3>
<p class="blurb">
<strong>
{% if listing.data.url %}
<a href="https://{{ listing.data.url }}"
target="_blank">{{ listing.data.handle }}</a>
{% else %}
{{ listing.data.handle }}</strong> <span class="teal">(Ed. note: copy-paste
handle into your fedi search bar. Server issues when opening as standalone
page.)</span>
<strong>
{% endif %}
offers:</strong> {{ listing.data.blurb }}
</p>
{% if listing.data.rate %}
<p>Suggested rate: {{ listing.data.rate }}</p>
<p><strong>Suggested rate:</strong> {{ listing.data.rate }}</p>
{% endif %}
<p class="listed-on">
listed on <time datetime="{{ listing.date | htmlDateString }}"

View File

@ -1,14 +1,15 @@
<div id="listings">
<div class="listings">
{% for tag in collections | getKeys | removeCoreTags | sortAlphabetically %}
<div class="category">
<div class="category-title">
<h2>{{ tag }}</h2>
<p>{{ tag | getTagline }}</p>
</div>
{% if collections[tag] | filterByDate(today) | length == 0 %}
{% set listings = collections[tag] | filterByDate(day) | filterByTag(category) %}
{% if listings | length == 0 %}
<p>No listings.</p>
{% endif %}
{% for listing in collections[tag] | filterByDate(today) %}
{% for listing in listings | sortAlphabeticallyByTitle %}
{% include "listing.njk" %}
{% endfor %}
</div>

View File

@ -1,15 +1,15 @@
#listings {
.listings {
columns: 3;
}
@media (max-width: 1200px) {
#listings {
.listings {
columns: 2;
}
}
@media (max-width: 650px) {
#listings {
.listings {
columns: 1;
}
}
@ -23,7 +23,7 @@
#jump-links h2,
#jump-links li {
font-family: "Bebas Neue";
font-family: "Bebas Neue", sans-serif;
font-size: 1.3rem;
font-weight: normal;
}
@ -78,6 +78,7 @@
}
.category-title h2 {
text-align: left;
scroll-margin-top: 4rem;
font-family: "Bebas Neue";
margin: 0;
@ -91,19 +92,44 @@
/* individual listings */
.listing {
.listing,
.request {
margin-bottom: 1rem;
}
.listing strong,
.request strong {
font-weight: bold;
}
.blurb {
margin-bottom: .5rem;
}
.blurb strong {
font-weight: bold;
}
.listed-on {
font-size: .85rem;
text-align: right;
}
/* Requests page */
.title {
background-color: var(--color-gray);
padding: .25rem;
margin-bottom: .5rem;
display: flex;
justify-content: space-between;
flex-flow: row wrap;
}
.title h2 {
text-transform: capitalize;
margin: 0;
}
.title p {
font-family: "Bebas Neue", sans-serif;
font-size: 1.5rem;
margin: 0;
text-align: right;
margin-left: auto;
}

View File

@ -30,7 +30,7 @@ body {
width: 65%;
max-width: 1400px;
margin: 0 auto;
font-family: "Fraunces";
font-family: "Fraunces", serif;
font-weight: 300;
}
@ -50,7 +50,11 @@ main {
}
}
h1, h3 {
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
h1, h2, h3 {
font-weight: 400;
}
@ -68,7 +72,7 @@ h1 {
}
h2 {
margin-bottom: 1rem;
margin-bottom: .5rem;
}
h3 {
@ -118,3 +122,7 @@ main li {
iframe {
margin: 2rem 0;
}
.teal {
color: var(--color-cyan);
}

View File

@ -18,7 +18,7 @@ footer ul {
header,
nav li,
footer li {
font-family: "Bebas Neue";
font-family: "Bebas Neue", sans-serif;
font-size: 1.3rem;
}

View File

@ -42,9 +42,9 @@ export default async function(eleventyConfig) {
},
metadata: {
language: "en",
title: "Fediverse Skillshare Classifieds",
subtitle: "Skillshare listings for the Fediverse",
base: "https://inherentlee.codeberg.page/",
title: "FediLearns",
subtitle: "Learning together, by and for the fediverse",
base: "https://fedilearns.fyi",
author: {
name: "Lee Cattarin"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 61 KiB

1
fedilearns-site Submodule

Submodule fedilearns-site added at ac5fc5c283

View File

@ -1,7 +1,7 @@
{
"name": "fediverse-classifieds",
"name": "fedilearns",
"version": "1.0.0",
"description": "",
"description": "Learning together, by and for the fediverse",
"scripts": {
"build": "rm -rf _site && npx @11ty/eleventy",
"build-codeberg": "npx @11ty/eleventy --pathprefix=/fedi-skillshares/",

View File

@ -33,6 +33,12 @@ title: About the Classifieds
you reach out to about compensation!
</p>
<h2>How do I take down my listing?</h2>
<p>
Message me and I'll remove it.
</p>
<h2>Who made this?</h2>
<p>
@ -47,5 +53,6 @@ title: About the Classifieds
<p>
Built with <a href="https://11ty.dev" target="_blank">{{ eleventy.generator }}</a>,
and <a href="https://declare-ai.org/1.0.0/none.html" target="_blank">without the
aid of generative AI</a>. Hosted on Codeberg Pages.
aid of generative AI</a>. Hosted by <a href="https://heckin.technology/"
target="_blank">heckin.technology</a>.
</p>

View File

@ -1,9 +0,0 @@
---
title: Navigating Workplace Transition
handle: "@07@test.test"
url: "test.test/@07"
draft: true
tags: interpersonal and life
blurb: Donec nisl ligula, mollis sit amet gravida eget, aliquam vitae nibh. Fusce diam nulla, interdum a ex a, semper lacinia elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc lacinia fermentum arcu, molestie ornare purus lobortis eget. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nunc convallis turpis nisi, nec volutpat dui semper at.
date: 2026-04-28
---

View File

@ -1,7 +0,0 @@
---
title: "Intimacy with Plants - Discovering Their Unique Features"
handle: "@taq@thicc.horse"
url: "thicc.horse/@taq"
blurb: "Not focused on plant care or identification, but building curiosity and awareness of the features of plants which help with identification. Enjoy walks more by taking the time to explore the differences in each plant. Leaf shape, texture, size and growth patterns, symmetries. Soon you'll be recognizing old friends from across the street!"
date: 2026-05-02
---

View File

@ -1,7 +0,0 @@
---
title: "Art/design critique and encouragement"
handle: "@moss@kind.social"
url: "kind.social/@moss"
blurb: "I am a visual jack of all trades, pretty experienced in some. Creative critique & external support is a really great way to grow as an artist or designer (those titles used here in the broadest sense possible). Whether youre starting a project, stuck on a piece and trying to discern next steps, or its a finished project you want to reflect on, Im happy to give whatever balance of kind constructive critique &/or positive reinforcement you need. My best mediums are in no particular order: fountain pens & ink, photography, lighting & production design, analog/irl interaction design, visual narratives, and installation/themed environments. Ive taken classes in & enjoyed digital painting, game design, neon art, ceramics and many more. Im less skilled in audio, software, & film/video. I also enjoy creative research, as well as brainstorming how to make your interests adaptive and accessible for different kinds of disabilities & health challenges. (I have limited spoons so please check in with me on my bandwidth/timelines, and Id love to swap skills, especially if youre looking for a lot of support!)"
date: 2026-05-02
---

View File

@ -3,5 +3,5 @@ title: April 29th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set today = "2026-04-29" %}
{% include "daily-listings.njk" %}
{% set day = "2026-04-29" %}
{% include "daily.njk" %}

View File

@ -3,5 +3,5 @@ title: May 1st, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set today = "2026-05-01" %}
{% include "daily-listings.njk" %}
{% set day = "2026-05-01" %}
{% include "daily.njk" %}

View File

@ -3,5 +3,5 @@ title: May 2nd, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set today = "2026-05-02" %}
{% include "daily-listings.njk" %}
{% set day = "2026-05-02" %}
{% include "daily.njk" %}

View File

@ -3,5 +3,5 @@ title: May 3rd, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set today = "2026-05-03" %}
{% include "daily-listings.njk" %}
{% set day = "2026-05-03" %}
{% include "daily.njk" %}

View File

@ -3,5 +3,5 @@ title: May 4th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set today = "2026-05-04" %}
{% include "daily-listings.njk" %}
{% set day = "2026-05-04" %}
{% include "daily.njk" %}

7
src/daily/2026-05-05.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 5th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-05" %}
{% include "daily.njk" %}

7
src/daily/2026-05-06.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 6th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-06" %}
{% include "daily.njk" %}

7
src/daily/2026-05-07.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 7th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-07" %}
{% include "daily.njk" %}

7
src/daily/2026-05-08.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 8th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-08" %}
{% include "daily.njk" %}

7
src/daily/2026-05-09.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 9th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-09" %}
{% include "daily.njk" %}

7
src/daily/2026-05-11.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 11th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-11" %}
{% include "daily.njk" %}

7
src/daily/2026-05-15.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 15th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-15" %}
{% include "daily.njk" %}

7
src/daily/2026-05-18.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 18th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-18" %}
{% include "daily.njk" %}

7
src/daily/2026-05-26.njk Normal file
View File

@ -0,0 +1,7 @@
---
title: May 26th, 2026
---
{% css %}{% include "css/listings.css" %}{% endcss %}
{% set day = "2026-05-26" %}
{% include "daily.njk" %}

View File

@ -1,5 +1,5 @@
---
title: Fediverse Skillshare Classifieds
title: FediLearns Classifieds
---
{% css %}{% include "css/listings.css" %}{% endcss %}
@ -14,19 +14,6 @@ title: Fediverse Skillshare Classifieds
</ul>
</div>
<div id="listings">
{% for tag in collections | getKeys | removeCoreTags | sortAlphabetically %}
<div class="category">
<div class="category-title">
<h2>{{ tag }}</h2>
<p>{{ tag | getTagline }}</p>
</div>
{% if collections[tag].length == 0 %}
<p>No listings.</p>
{% endif %}
{% for listing in collections[tag] %}
{% include "listing.njk" %}
{% endfor %}
</div>
{% endfor %}
</div>
{% set day = null %}
{% set category = "offers" %}
{% include "listings.njk" %}

View File

@ -0,0 +1,8 @@
---
title: "Music theory and/or ear training"
handle: "@griotspeak@soc.mod-12.com"
url: "soc.mod-12.com/@griotspeak"
blurb: "I want to answer questions about music theory or ear training or whatever. I'm also available for lessons if you're really keen on that idea but general questions are also fine. I realize that this is wide open and vague but that should read as 'no question is too small or obscure or esoteric'. Worst case is that I won't know but I'll probably have fun trying to figure out who does so you can get your answer."
rate: "For one off questions and the like… free is probably simplest. For lessons or ongoing engagements, sliding scale, open to skill trade, whatever. Times are tough so I'm not going to ask you for your last dime but, if you could spare it, we can talk hourly rates."
date: 2026-05-11
---

View File

@ -0,0 +1,8 @@
---
title: "Data visualization advice"
handle: "@janeadams@datavis.social"
url: "datavis.social/@janeadams"
blurb: "Not sure how to answer a question with a chart? Confused about when to use a box plot versus a bar chart? Dont get why everyone hates pie charts so much? Need advice on choosing an interactive visualization code library? Want some compelling graphs for your zine? I can offer sync video calls (evenings ET) or async feedback and advice for any not-for-profit visual encoding tasks!"
rate:
date: 2026-05-06
---

View File

@ -0,0 +1,8 @@
---
title: "Digital Illustration"
handle: "@madgeface@mastodon.art"
url: "mastodon.art/@madgeface"
blurb: "Do you need a diagram to illustrate a concept? I can help make something from scratch or improve your diagram. Currently working in Affinity but I also know Adobe Creative Suite and am willing to learn other open-source software."
rate: "negotiable and open to trade"
date: 2026-05-06
---

View File

@ -0,0 +1,7 @@
---
title: "Art/design critique and encouragement"
handle: "@moss@kind.social"
url: "kind.social/@moss"
blurb: "Creative critique & external encouragement is a really great way to grow as an artist or designer (those titles used in the broadest way possible). I am a visual jack of all trades, pretty experienced in some. My strongest mediums are... creative direction, visual art, lighting, irl interaction design, and immersive entertainment. Im less skilled in audio, software, & film/video. (I have limited spoons. Id love to swap learnings if youre looking for a lot of support! No AI.)"
date: 2026-05-02
---

View File

@ -0,0 +1,8 @@
---
title: "Quilts and Colors!"
handle: "@robotistry@fediscience.org"
url: "fediscience.org/@robotistry"
blurb: "If you want a second set of eyes on your quilt design or help choosing colors (for any project!), I'm here. I have made many pieced quilts and can help you learn how to use fabric color, pattern, and intensity with your design to get the effect you want. I can also help you design your quilt, if you'd like help with that. I have a large library of quilt books for inspiration. I can also provide troubleshooting and recovery ideas when things (inevitably) go wrong."
rate:
date: 2026-05-05
---

View File

@ -0,0 +1,8 @@
---
title: "(Film) photography and photo gear"
handle: "@wxcafe@tacobelllabs.net"
url: "tacobelllabs.net/@wxcafe"
blurb: "Wanna learn how different film stocks affect your pictures, how film development works, how to use flash, what aperture to use in which circumstance? Want more detail about this weird camera you saw at the flea market, or wanna get started but unsure what gear you need? Just ask, I don't know everything but I do know quite a bit on account of being very autistic about photography"
rate:
date: 2026-05-07
---

View File

@ -0,0 +1,8 @@
---
title: "Learning To Produce Music"
handle: "@ZBennoui@dragonscave.space"
url: "dragonscave.space/@ZBennoui"
blurb: "I've been producing music for about 15 years now and would love to help anyone I can. I've primarily taught fellow blind / low vision people, but open to working with anyone really. I use Ableton Live, Reaper, Logic, and have worked with ProTools in the past."
rate: "If the person I'm helping is in a position to pay, I think 50 USD an hour is a pretty good baseline rate, but I'm happy to help out anybody for free, especially if we're not going too in depth. It all depends"
date: 2026-05-06
---

View File

@ -0,0 +1,8 @@
---
title: "Make meetings and workshops less boring"
handle: "@jbot@cathode.church"
url: "cathode.church/@jbot"
blurb: "Need to plan a meeting or workshop? I can help you build a format that is less boring and more engaging. Are people going off topic in your meetings? Is there one person taking up all the space? Or are people not contributing as much as youd like? There are ways to handle all these situations! I can give guidance on how to handle them, along with debriefing sessions after youve run a meeting or workshop to help you improve. Save time and energy, finish your meeting on time, and make your participants day."
rate: "for-profit business: $100 USD/hr; non-profit or personal: pay what you can; willing to trade skills"
date: 2026-05-08
---

View File

@ -0,0 +1,8 @@
---
title: "Stone Soup: Make soup with what you have on hand"
handle: "@LJ@zirk.us"
url: "zirk.us/@lj"
blurb: "Learn to make soup with what you have in your garden, pantry, fridge, and/or freezer. Soup isn't complicated. You don't need a recipe. Learn to put together broths, starches, proteins, veggies, and herbs to end up with multiple variations of satisfying and healthy meals."
rate:
date: 2026-05-15
---

View File

@ -0,0 +1,8 @@
---
title: "Learn to speak Cantonese"
handle: "@chu@climatejustice.social"
url: "climatejustice.social/@chu"
blurb: "Whether you want to learn enough to speak with the grandparents or become fluent, learn to speak Cantonese with someone who understands the difficulty of Cantonese as a second language, especially for native English speakers."
rate:
date: 2026-05-11
---

View File

@ -0,0 +1,5 @@
export default {
tags: [
"history science and languages"
]
};

View File

@ -0,0 +1,8 @@
---
title: "Ask a Latinist"
handle: "@holothuroid@rollenspiel.social"
url: "rollenspiel.social/@holothuroid"
blurb: "Ask me about about the Latin language and literature. I can do short translations. I have a masters degree."
rate:
date: 2026-05-11
---

View File

@ -0,0 +1,8 @@
---
title: "Spanish practices"
handle: "@sondra@mariconear.socials"
url: "mariconear.social/@sondra"
blurb: 'I can help you practice your conversational spanish so you improve listening and speaking skills :) I am not a language teacher, but a brazilian immigrant that lives in Argentina since 2012.'
rate: "10 USD per 45 minutes session"
date: 2026-05-15
---

View File

@ -0,0 +1,8 @@
---
title: "Academic Philosophy of Science and Mathematics"
handle: "@zillion@freeradical.zone"
url: "freeradical.zone/@zillion"
blurb: "Philosophy of Science and Mathematics. Philosophical logic. Discussion, suggested reading, commenting on papers"
rate:
date: 2026-05-06
---

View File

@ -0,0 +1,8 @@
---
title: "Prepare Yourself for an International Move"
handle: "@Cai@gamepad.club"
url: "gamepad.club/@Cai"
blurb: "Moving to a new country, particularly where they speak or write a language foreign to you is daunting. I've lived happily in several countries with wildly different language systems and cultures, and I'm happy to help you prepare mentally and emotionally for the challenge with the practical steps I always take."
rate: "Totally free of charge!"
date: 2026-05-11
---

View File

@ -0,0 +1,8 @@
---
title: "Reading Tarot for Personal Introspection"
handle: "@syd@pagan.plus"
url: "pagan.plus/@syd"
blurb: "Interested in tarot? Have a deck you don't know what to do with? I can talk you through the basics of reading tarot for personal insight, including the tarot journaling practice I used to learn the card meanings and a simple three card spread for routine readings."
rate:
date: 2026-05-06
---

View File

@ -0,0 +1,8 @@
---
title: "Forgotten Realms (D&D 5e) World Building"
handle: "@action_jay@thecanadian.social"
url: "thecanadian.social/@action_jay"
blurb: "Running a campaign and want to bounce ideas off someone other than a chat bot? I'm relatively familiar with the source material and learning more all the time. I can also help with ideas for prep, technical work with Foundry VTT and finding resources and inspiration."
rate:
date: 2026-05-18
---

View File

@ -1,6 +1,6 @@
export default {
permalink: false,
tags: [
"ads"
"offers"
]
};

View File

@ -0,0 +1,8 @@
---
title: "Clothes mending, Sock Darning, and Crochet Problems"
handle: "@j4yc33@infosec.exchange"
url: "infosec.exchange/@j4yc33"
blurb: "Send me (pictures of) your torn, ripped, scuffed, or otherwise damaged clothes (socks, shirts, pants, etc.) or that one Crochet project giving you problems! I will give you advice, and provide you resources, on how best to repair the article or identify your crochet problem."
rate:
date: 2026-05-26
---

View File

@ -0,0 +1,8 @@
---
title: "Learning Linux"
handle: "@brib@bribstodon.xyz"
url: "bribstodon.xyz/@brib"
blurb: "New to Linux and don't know where to start? Struggling to comb through reams of technical jargon? Wanting to get familiar with the terminal? I've been using desktop Linux for 10 years, have recently started self-hosting web services, and will be happy to help demystify the process."
rate: "Free for quick questions or a casual chat; pay-what-you-can (suggested rate £30/h) for longer sessions"
date: 2026-05-08
---

View File

@ -3,6 +3,6 @@ title: "Getting started on digital privacy"
handle: "@durian@social.acab.fans"
url: "social.acab.fans/@durian"
blurb: "Feeling overwhelmed with digital privacy? I can help get you started on the basics and guide you based on your needs."
rate: "Sliding scale from 30 USD to 60 USD"
rate: "Pay-what-you-can (suggested rate $30 USD/hr) or skill share"
date: 2026-05-04
---

View File

@ -0,0 +1,8 @@
---
title: How to build a personal website with Eleventy
handle: "@hamatti@mastodon.world"
url: "mastodon.world/@hamatti"
blurb: "Would you like to have a personal website in the web but setting up and maintaing a complex system feels overwhelming? I'd like to offer my help with learning how to use Eleventy, a static site generator, to build a site that requires no active maintenance other than content updates. You should know some basics of HTML and how to run commands from a command line to get the best out of this. I'm in EEST timezones and have best availability between 11-16 but that's just a guideline so let's chat!"
rate:
date: 2026-05-08
---

View File

@ -0,0 +1,8 @@
---
title: "privacy review for your community project"
handle: "@ireneista@adhd.irenes.space"
url:
blurb: "we're an information privacy expert eager to help make sure community-focused projects are up to the highest standard of protecting the people who use them. we're happy to offer advice or review design docs at any phase of your project's lifecycle. we also have experience in various kinds of activism and organizing, especially around gender, brains, and labor, and in non-profit governance, and are happy to help with strategic stuff for any of that. please don't be shy about reaching out!"
rate: "free as long as your purpose is non-commercial"
date: 2026-05-08
---

View File

@ -0,0 +1,8 @@
---
title: "Securing a website, infrastructure, and making it compliant"
handle: "@j4yc33@infosec.exchange"
url: "infosec.exchange/@j4yc33"
blurb: "Do you have a website that has to comply with the GDPR? Are you dealing with moderation or web application security issues? Do you self-host and want to secure your infrastructure? With over 10 years of corporate consultancy experience, I can help you come up with a plan to make your systems more secure and compliant. I can also give you information on when to consult with an attorney on certain matters."
rate:
date: 2026-05-26
---

View File

@ -0,0 +1,8 @@
---
title: "Learning Python Basics"
handle: "@marionline@autistics.life"
url: "autistics.life/@marionline"
blurb: 'Want to begin python programming? I can help with getting started. :D I could talk about: How to install python, use an IDE, Variables, Functions, and slowly move towards OOP, but I will adjust to what topics you wish to learn.'
rate: unpaid
date: 2026-05-11
---

View File

@ -0,0 +1,8 @@
---
title: "Fiction & Poetry Writing Mentorship"
handle: "@kestral@masto.hackers.town"
url: "masto.hackers.town/@kestral"
blurb: "If youve always wanted to write fiction or poetry but feel like you lack the confidence, courage, or ideas to get started, Id be delighted to help you make that first step."
rate:
date: 2026-05-09
---

View File

@ -0,0 +1,8 @@
---
title: "writer available for coaching and advising"
handle: "@madgeface@mastodon.art"
url: "mastodon.art/@madgeface"
blurb: "I'm a technical writer, writing coach, and editor who is happy to help if you're stuck with writing something (from fiction to biz comms to books). Don't turn to AI - turn to me."
rate: "Sliding scale/rates/trade negotiable depending on what the ask is"
date: 2026-05-06
---

Some files were not shown because too many files have changed in this diff Show More