Compare commits

..
15 Commits
Author SHA1 Message Date
inherentlee cd7f525bac plaid dishtowels
continuous-integration/drone/push Build is passing
2026-10-19 13:09:35 -07:00
inherentlee 4be20cccb3 border radius for blockquotes
continuous-integration/drone/push Build is passing
2026-10-14 10:38:57 -07:00
inherentlee aba74f280e some tweaks to git post
continuous-integration/drone/push Build is passing
2026-10-14 08:48:25 -07:00
inherentlee 0125216d96 add more aout remote commands
continuous-integration/drone/push Build is passing
2026-10-14 08:43:19 -07:00
inherentlee 6ee81d8784 small updates to git post
continuous-integration/drone/push Build is passing
2026-10-14 08:28:24 -07:00
inherentlee 2bfe616195 update fedizinefest
continuous-integration/drone/push Build is failing
2026-10-13 08:31:32 -07:00
inherentlee f9d8123b9d add header ids
continuous-integration/drone/push Build is passing
2026-10-13 08:30:50 -07:00
inherentlee bc1a51a4d5 add district dharma testimonial
continuous-integration/drone/push Build is passing
2026-10-06 09:52:56 -07:00
inherentlee 16c3ef1e26 audit fix 2026-10-06 09:52:44 -07:00
inherentlee efe153191a another tiny mobile tweak
continuous-integration/drone/push Build is passing
2026-10-06 09:03:41 -07:00
inherentlee 8c2c2231ac some size tweaks for headers on mobile
continuous-integration/drone Build is passing
2026-10-05 13:38:48 -07:00
inherentlee c6ec6b8f48 make urls easier to read font
continuous-integration/drone/push Build is passing
2026-10-04 11:17:32 -07:00
inherentlee d5660455bd add drone trigger that requires main branch
continuous-integration/drone/push Build is passing
2026-10-02 12:59:15 -07:00
inherentlee b1135beddb update squarespace more
continuous-integration/drone/push Build is passing
2026-09-30 16:52:53 -07:00
inherentlee 84160a0574 update squarespace
continuous-integration/drone/push Build is passing
2026-09-30 16:51:12 -07:00
12 changed files with 99 additions and 356 deletions

No files matched your search

+3
View File
@@ -1,6 +1,9 @@
kind: pipeline
type: docker
name: default
trigger:
branch:
- main
steps:
- name: build
+6 -3
View File
@@ -124,8 +124,11 @@ h3 {
}
@media (max-width: 650px) {
h1 { font-size: 2.95rem; }
h2 { font-size: 1.9rem; }
h1 {
margin-top: 1.5rem;
font-size: 2.25rem;
}
h2 { font-size: 1.8rem; }
h3 { font-size: 1.4rem; }
}
@@ -237,7 +240,7 @@ dd {
blockquote {
margin: .5rem 0;
padding: 0 1rem;
border-radius: .25rem 1rem 1rem .25rem;
border-radius: .5rem;
line-height: 1.25;
border-left: .5rem solid var(--color-pink);
}
+1
View File
@@ -34,6 +34,7 @@
.job-details a {
font-size: 1rem;
font-family: var(--font-family);
}
.job p {
+36 -95
View File
@@ -50,45 +50,45 @@
}
},
"node_modules/@11ty/eleventy": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.2.tgz",
"integrity": "sha512-IcsDlbXnBf8cHzbM1YBv3JcTyLB35EK88QexmVyFdVJVgUU6bh9g687rpxryJirHzo06PuwnYaEEdVZQfIgRGg==",
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.6.tgz",
"integrity": "sha512-ZlSiR1PLdS2lv7TelBgWAhcvMiLNZkPBlLEb+lh7kGYZ+Mk0bo9qcYgVsewvw9W7Em0RH3wd01h5fAstNDh0zA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@11ty/dependency-tree": "^4.0.0",
"@11ty/dependency-tree-esm": "^2.0.0",
"@11ty/dependency-tree": "^4.0.2",
"@11ty/dependency-tree-esm": "^2.0.4",
"@11ty/eleventy-dev-server": "^2.0.8",
"@11ty/eleventy-plugin-bundle": "^3.0.6",
"@11ty/eleventy-plugin-bundle": "^3.0.7",
"@11ty/eleventy-utils": "^2.0.7",
"@11ty/lodash-custom": "^4.17.21",
"@11ty/posthtml-urls": "^1.0.1",
"@11ty/recursive-copy": "^4.0.2",
"@11ty/posthtml-urls": "^1.0.3",
"@11ty/recursive-copy": "^4.0.4",
"@sindresorhus/slugify": "^2.2.1",
"bcp-47-normalize": "^2.3.0",
"chokidar": "^3.6.0",
"debug": "^4.4.1",
"debug": "^4.4.3",
"dependency-graph": "^1.0.0",
"entities": "^6.0.1",
"filesize": "^10.1.6",
"gray-matter": "^4.0.3",
"iso-639-1": "^3.1.5",
"js-yaml": "^4.1.0",
"js-yaml": "^4.1.1",
"kleur": "^4.1.5",
"liquidjs": "^10.21.1",
"luxon": "^3.6.1",
"markdown-it": "^14.1.0",
"liquidjs": "^10.27.0",
"luxon": "^3.7.2",
"markdown-it": "^14.2.0",
"minimist": "^1.2.8",
"moo": "^0.5.2",
"moo": "0.5.2",
"node-retrieve-globals": "^6.0.1",
"nunjucks": "^3.2.4",
"picomatch": "^4.0.2",
"picomatch": "^4.0.4",
"please-upgrade-node": "^3.2.0",
"posthtml": "^0.16.6",
"posthtml": "^0.16.7",
"posthtml-match-helper": "^2.0.3",
"semver": "^7.7.2",
"slugify": "^1.6.6",
"tinyglobby": "^0.2.14"
"semver": "^7.8.1",
"slugify": "^1.6.9",
"tinyglobby": "^0.2.16"
},
"bin": {
"eleventy": "cmd.cjs"
@@ -270,9 +270,9 @@
}
},
"node_modules/@11ty/posthtml-urls": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.2.tgz",
"integrity": "sha512-0vaV3Wt0surZ+oS1VdKKe0axeeupuM+l7W/Z866WFQwF+dGg2Tc/nmhk/5l74/Y55P8KyImnLN9CdygNw2huHg==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.3.tgz",
"integrity": "sha512-1YvhnkaNlFnnJic1rBMWmTC2adbuy+JQiBfl1Hecr1Wjjik1pQZmGyk/eC9zKX/FQv52s2Nht1Gi/UwhYqrBeg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -286,15 +286,15 @@
}
},
"node_modules/@11ty/recursive-copy": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.3.tgz",
"integrity": "sha512-SX48BTLEGX8T/OsKWORsHAAeiDsbFl79Oa/0Wg/mv/d27b7trCVZs7fMHvpSgDvZz/fZqx5rDk8+nx5oyT7xBw==",
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.4.tgz",
"integrity": "sha512-oI7m8pa7/IAU/3lqRU9vjBbs20iKFo7x+1K9kT3aVira6scc1X9MjBdgLCHzLJeJ7iB6wydioA+kr9/qPnvmlQ==",
"dev": true,
"license": "ISC",
"dependencies": {
"errno": "^1.0.0",
"junk": "^3.1.0",
"maximatch": "^0.1.0",
"minimatch": "^3.1.5",
"slash": "^3.0.0"
},
"engines": {
@@ -999,49 +999,6 @@
"dev": true,
"license": "Python-2.0"
},
"node_modules/array-differ": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
"integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/array-union": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
"dev": true,
"license": "MIT",
"dependencies": {
"array-uniq": "^1.0.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/array-uniq": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
"integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
@@ -2356,22 +2313,6 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/maximatch": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz",
"integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==",
"dev": true,
"license": "MIT",
"dependencies": {
"array-differ": "^1.0.0",
"array-union": "^1.0.1",
"arrify": "^1.0.0",
"minimatch": "^3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/mdurl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
@@ -2860,9 +2801,9 @@
}
},
"node_modules/semver": {
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"version": "7.8.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
"integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -2974,9 +2915,9 @@
}
},
"node_modules/slugify": {
"version": "1.6.6",
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
"integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
"version": "1.6.9",
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.9.tgz",
"integrity": "sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3024,14 +2965,14 @@
}
},
"node_modules/tinyglobby": {
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
"integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
"dev": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
"picomatch": "^4.0.3"
"picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 556 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

+23 -12
View File
@@ -47,7 +47,7 @@ layout: base.njk
<div class="job">
<div class="two-col job-details">
<h3>Freelance Web Developer</h3>
<h3 id="freelance-web-developer">Freelance Web Developer</h3>
<p class="col2"><time datetime="2026-01">January 2026</time> – Present</p>
</div>
@@ -64,6 +64,17 @@ layout: base.njk
a clean and minimalist homepage for the District Dharma collective,
built in Eleventy with a Mattrbld content management system to allow
for easy editing by the client.
<blockquote class="testimonial">
Being of a generation that didn't grow up with technology, I was a little
nervous going into this project, but Lee made it easy. He was patient and
completely non-judgmental with my simple questions, quick to respond by
email, and open to my feedback throughout. He built exactly what I
envisioned for our meditation group's website, and his estimate was the
final cost. When he asked what he could improve, I honestly couldn't come
up with anything. He delivered what he promised and was easy to reach the
whole way through. If you want someone skilled who will also make the
process feel comfortable, I can't recommend him highly enough.
</blockquote>
</li>
<li>
<strong>My Liberation Work Has Been Damn Ableist: A Landworker Memoir
@@ -147,7 +158,7 @@ layout: base.njk
datetime="2025-07">July 2025</time></p>
</div>
<h3>Software Development Engineer I & II</h3>
<h3 id="software-development-engineer-i-ii">Software Development Engineer I & II</h3>
<p>
Worked on green- and brown-field projects with customers, solving emerging
@@ -184,7 +195,7 @@ layout: base.njk
<p class="col2"><time datetime="2023-10">October 2023</time> – Present</p>
</div>
<h3>Co-owner and artist</h3>
<h3 id="co-owner-and-artist">Co-owner and artist</h3>
<p>
Maintains website, storefront, and inventory for a diverse set of artistic
@@ -210,7 +221,7 @@ layout: base.njk
datetime="2017-12">December 2017</time></p>
</div>
<h3>Undergraduate Programming Mentor</h3>
<h3 id="undergraduate-programming-mentor">Undergraduate Programming Mentor</h3>
<p>
Helped students debug and develop in Python and learn core programming
@@ -227,7 +238,7 @@ layout: base.njk
datetime="2017-08">August 2017</time></p>
</div>
<h3>Software Development Engineering Intern</h3>
<h3 id="software-development-engineering-intern">Software Development Engineering Intern</h3>
<p>
Developed a chatbot add-on for the Azure Android application.
</p>
@@ -239,7 +250,7 @@ layout: base.njk
<div class="job">
<div class="two-col job-details">
<h3>FediLearns (<a
<h3 id="fedilearns">FediLearns (<a
href="https://fedilearns.fyi" target="_blank">fedilearns.fyi</a>)</h3>
<p class="col2"><time datetime="2026-04">April 2026</time> – Present
</p>
@@ -254,7 +265,7 @@ layout: base.njk
<div class="job">
<div class="two-col job-details">
<h3>Siblinghood of the Traveling Greeting Card (<a
<h3 id="siblinghood-of-the-traveling-greeting-card">Siblinghood of the Traveling Greeting Card (<a
href="https://siblinghood.quest"
target="_blank">siblinghood.quest</a>)</h3>
<p class="col2"><time datetime="2025-11">November 2025</time> – Present
@@ -269,13 +280,13 @@ layout: base.njk
<div class="job">
<div class="two-col job-details">
<h3>FediZineFest (<a href="https://fedizinefest.fyi"
<h3 id="fedizinefest">FediZineFest (<a href="https://fedizinefest.fyi"
target="_blank">fedizinefest.fyi</a>)</h3>
<p class="col2"><time datetime="2023-12">December 2023</time> – Present</p>
</div>
<p>Creates and runs a global event for zine artists on the fediverse, now kicking
off its third year. Coordinates website, physical material shipping and
<p>Creates and runs a global event for zine artists on the fediverse, now in its
third year. Coordinates website, physical material shipping and
logistics, payment, and marketing for a 40–50 person project. Leads a small team
and delegates appropriate responsibilities.</p>
</div>
@@ -295,7 +306,7 @@ layout: base.njk
<div class="job">
<div class="two-col job-details">
<h3>Rescue Trans Rescue (<a href="https://rescue-trans-rescue.quest"
<h3 id="rescue-trans-rescue">Rescue Trans Rescue (<a href="https://rescue-trans-rescue.quest"
target="_blank">rescue-trans-rescue.quest</a>)</h3>
<p class="col2"><time datetime="2024">2024</time></p>
</div>
@@ -307,7 +318,7 @@ layout: base.njk
<hr>
<h2 class="centered upper">Education</h2>
<h2 class="centered upper" id="education">Education</h2>
<p class="centered">
<b>Bachelor of Science — Computer Science</b>
+13 -9
View File
@@ -11,6 +11,8 @@ tags:
alrighty, this one's a real doozy. Strap in.
and as always, if you find an error or have feedback, please [let me know](/contact).
## versioning
have you ever tried to revert to a previous version of a document in MS Office or Google Docs and found that your revision history is cluttered with small changes that by all rights should be grouped into one set of edits, but they aren't, and it's tedious to pick through all the versions?
@@ -30,7 +32,7 @@ this walkthrough is best suited for people who want to use `git` in single-perso
this walkthrough also focuses on the "happy path," without much discussion of troubleshooting. I may write more on the topic in the future, but we're already over *4,500 words*, so we're calling it a day.
finally, I wrote this walkthrough primarily with knowledge from using **WSL** [more on this later] on **Windows** and with **Zed** as my text editor. While I've tried to cover my bases with other OSes and options, there's a solid chance I'm missing things!
finally, I wrote this walkthrough primarily with knowledge from using **WSL** [more on this later] on **Windows** and with **Zed** as my text editor, and I've since lightly reviewed from **Linux Mint** with **Gram** as my text editor. While I've tried to cover my bases with other OSes and options, there's a solid chance I'm missing things!
that all said, let's get (git?) into it!
@@ -58,10 +60,10 @@ a CLI a way to interact with your computer and with software in text-only form.
if you want to use the `git` CLI, you'll need a terminal. You've got a couple options here:
- on Linux or Mac, you should have one built in! This is the easy path, congrats :) Even better, `git` generally ships with these systems, so there's no installation required. Search for an application called 'Terminal' or similar
- on Linux or Mac, you should have one built in! This is the easy path, congrats :) Even better, `git` generally ships with these systems (or is a one-liner install such as `apt install git`). Search for an application called 'Terminal' or similar
- note that I don't have a Mac and have never used one. I can't guarantee that everything operates the same over there - there may be discrepancies I don't know about
- on Windows, there's two options
- [`git` for Windows](https://gitforwindows.org/) packages a Linux-like terminal with a `git` GUI. This may be slightly friendlier for people who aren't at all familiar with Linux. If choosing `git` for Windows, [see my installation instructions below](#git-for-windows)
- [`git` for Windows](https://gitforwindows.org/) packages a Linux-like terminal with a `git` GUI. This is probably the friendlier option to get started with. If choosing `git` for Windows, [see my installation instructions below](#git-for-windows)
- I use [Windows Subsystem for Linux, or WSL](https://learn.microsoft.com/en-us/windows/wsl/install), which gives you a Linux distribution within Windows. It's pretty smooth sailing at this point, but there's some idiosyncracies to conquer - like the fact that your *Windows* files and your *Linux* files are stored in different places. If choosing WSL, [see my usage notes below](#wsl)
- both of the Windows options listed work with [Windows Terminal](https://apps.microsoft.com/detail/9n0dx20hk701) which offers a nicer-looking terminal experience than the basic command prompt. If you're going to keep working with what you set up today, I recommend it!
@@ -83,7 +85,7 @@ you can open `git` for Windows via the start menu by searching for 'git bash.' I
while *installing* WSL is a single command, here's a couple notes about getting started once *inside* WSL:
- don't be concerned that you can't see anything when you type or paste your password! Since it's sensitive information, this is intentional. You'll notice this pattern a couple of times while following this walkthrough
- `Ctrl+C` and `Ctrl+V` won't work like they do on Windows. If you want to copy/paste, right-click (there won't be a context menu, it'll just happen)
- `Ctrl+C` and `Ctrl+V` won't work like they do on Windows. If you want to copy/paste, use `Shift+Ctrl+C` and `Shift+Ctrl+V`
- if you're downloading a text editor like the ones mentioned above, you'll still follow the *Windows* instructions
you'll also need to be careful of a few things regarding text editors to make them work with WSL:
@@ -354,14 +356,16 @@ let's head on over to [Codeberg](https://codeberg.org/) First off, we'll make an
now we'll make a new project using the `+` in the upper right. Choose 'New repository,' then pick a repository name. You can leave the other settings be.
with the project created, Codeberg will tell us three things we can do: clone the repository, create a new repository, or push an existing repository. We'll push an existing one.
with the project created, Codeberg will tell us three things we can do: clone the repository, create a new repository, or push an existing repository. We'll push an existing one. Codeberg says we can do this:
```sh
git remote add origin https://codeberg.org/inherentlee/testing.git
git remote add origin https://codeberg.org/inherentlee/git-intro.git
git push -u origin main
```
first, we'll add a remote. Across from the project title, we should see a button that says `Code` with a dropdown indicator. It'll offer a few choices, the first two being SSH and HTTPS. I'll talk about SSH in a bit, but let's try HTTPS first. Copy that URL; we're about to use it in a command.
ok, let's break that down.
first, we'll add a remote. Across from the project title, we should see a button that says `Code` with a dropdown indicator. It'll offer a few choices, the first two being SSH and HTTPS. I'll talk about SSH in a bit, but let's try HTTPS first. Copy that URL; we're about to use it in a command. (You can also directly copy from the instructions we read above, but those won't be available after you've added code to the Codeberg project.)
> tip: the remote can be named whatever you want! Traditionally, it's called `origin`, but if it's easier for you to remember, you might call it `codeberg` or maybe `remote`
@@ -432,7 +436,7 @@ running `ssh-keygen` will take us through a series of prompts. Assuming we don't
when you choose a passphrase, *write it down*. If you lose it, there is no recourse. You will have to generate a new SSH key.
after generation, we will have two files at the location specified by the tool (or the custom location we chose). Generally, that's the folder `.ssh` in our home directory. If we navigate to that directory (`cd $HOME/.ssh`) and look at the files (`ls`), we'll see files named `id_rsa` and `id_rsa.pub`. The one that ends with `.pub` is the *public* key.
after generation, we will have two files at the location specified by the tool (or the custom location we chose). Generally, that's the folder `.ssh` in our home directory. If we navigate to that directory (`cd $HOME/.ssh`) and look at the files (`ls`), we'll see files named `id_rsa` and `id_rsa.pub` (or maybe `id_ed25519` and `id_ed25519.pub` or something else). The one that ends with `.pub` is the *public* key.
#### an alias...
@@ -488,7 +492,7 @@ in order for all this to be useful, we need to tell Codeberg about our SSH key.
### `git push`, take two
we can now call `git push` again and again now without having to repeat our credentials every time. We can also call `git pull` for our private repositories.
whether we're using HTTPS or SSH, we can now call `git push` again and again now without having to repeat our credentials every time. We can also call `git pull` for our private repositories.
## summary
@@ -138,11 +138,11 @@ I have written [further thoughts on Framer accessibility](/framer-accessibility)
|---|---|---|
| Semantic HTML | Template tested uses somewhat reasonable semantic HTML. Choice of what is considered a heading is a bit curious | 2 |
| Keyboard navigation | Template tested has custom tab focus styling. Cannot be further edited, but custom that fits the theme is pretty standout. Skip link included in at least some templates. | 3 |
| Reading order | Imperfect and can't be edited by user. Block-based layout is a little too freeform to ensure proper reading order, so the user should be careful where they add things. Early testing indicates that reading order is determined by the *first* place a block is placed, and is never re-assessed by the builder. | 1 |
| Text alternatives | Supported. | 3 |
| Reading order | Imperfect and can't be edited by user. Block-based layout is a little too freeform to ensure proper reading order, so the user should be careful where they add things. It's a little unclear where the reading order follows from, because it doesn't always map to the blocks. | 1 |
| Text alternatives | Supported, but not for everything - for example event pictures don't support alt text. | 2 |
| Color | Dark mode requires custom code or a plugin and seems *extremely* painful to accomplish. | 1 |
| Other | This isn't an accessibility consideration, but *christ* is Squarespace a pain to work with. | 1 |
| | | **11** |
| | | **10** |
## Startup
@@ -243,10 +243,10 @@ Overall, I explored 11 builders, couldn't test 1 due to OS restrictions, and hav
| Startup | 13 |
| Blocs** | 12 |
| Framer* | 12 |
| Squarespace* | 11 |
| Univer.se | 11 |
| Cowsites | 10 |
| Showit | 10 |
| Squarespace* | 10 |
| Wobble Web | 10 |
| Kiki | 9 |
| mmm.page | 9 |
@@ -1,233 +0,0 @@
---
title: sticker vendors
layout: post-with-toc.njk
image:
src: 2026/fern-curl.jpg
alt: Image unrelated to post. The tip of a fern curling in such a way as to make a complete circle with fronds spreading outwards.
tags:
- reference
- sticker
---
I made a spreadsheet of sticker vendors so you don't have to. And also ordered a bunch of sample packs, so you don't have to (and because I get very very into doing my research).
I priced out **3"x3" holographic die-cut vinyl stickers** from US-based sticker vendors at three price points: 100 (or nearest above 100), 200 (or nearest above 200), and 500. Free shipping referenced *may* require a minimum to kick in - I noted it down as free if the minimum was below the price point for 100 stickers.
I did this work because my previous vendor, DieCutStickers, had print issues in the last batch I bought from them, and I decided to look for a new vendor. Because of this, they will not be listed.
Got a recommendation not in this writeup? Feel free to [let me know](/contact).
## Exclusions
Three other vendors are mentioned but will not appear in summaries: Sticker Guy, Sticker Mule, and Sticky Brand.
- Sticker Guy looks **awesome** for simple stickers (1 or maybe 2 colors printed on solid color vinyl), but holographic stickers are listed as temporarily unavailable, so I couldn't get a price quote.
- Sticker Mule's CEO is a vocal Trump supporter.
- Sticky Brand has started using generative AI marketing (this is secondhand information as I don't use instagram).
I cannot promise that other makers do not have issues similar to Sticker Mule or Sticky Brand; this is just what I heard or surfaced in my research.
## Summaries
### Overall summary
### Quality summary
### Pricing summary
Death by Stickers stands out as *by far* the cheapest option for ~100, and still fairly competitive for ~200, though bumped out of the top slot by StickerGiant. If you want bulk, Brick City Printing comes out ahead - and they are union!
### Ease of peeling
Brick City Printing, StandOut Stickers, Sticker Junkie, and StickerGiant offer split backs.
Bend Print Co. offers split backs or peel tabs for an increased sticker price. Sticker Robot mentions split backs in their FAQ, but sticker options only support peel tabs, also for an increased price.
Sticker Ninja does not offer split backs.
Death by Stickers, Busy Beaver, and StickerBros do not specify.
## Pricing tables
It is of course worth it with many vendors to join their email list and wait for deals. These are the standard prices and do not account for sales or discounts.
### Price point 1: 100
Per 100 (unless noted otherwise).
| Vendor | Per sticker | Quantity |
| --- | --- | --- |
| Death by Stickers | $0.81 | |
| Brick City Printing | $1.05 | |
| Sticker Ninja | $1.06 | |
| Busy Beaver | $1.07 | |
| StandOut Stickers | $1.09 | |
| StickerGiant | $1.10 | 125 |
| StickerBros | $1.18 | |
| Sticker Robot | $1.27 | |
| Bend Print Co. | $1.45 | |
| Sticker Junkie | n/a | No quantity ~100 offered |
### Price point 2: 200
Per 200 (unless noted otherwise).
| Vendor | Per sticker | Quantity |
| --- | --- | --- |
| StickerGiant | $0.73 | 250 |
| Death by Stickers | $0.80 | |
| StandOut Stickers | $0.80 | |
| StickerBros | $0.84 | |
| Sticker Robot | $0.85 | 250 |
| Bend Print Co. | $0.88 | 250 |
| Brick City Printing | $0.93 | |
| Sticker Ninja | $0.97 | |
| Sticker Junkie | $1.07 | |
| Busy Beaver | n/a | No quantity between 100 and 500 offered |
### Price point 3: 500
| Vendor | Per sticker |
| --- | --- |
| Brick City Printing | $0.49 |
| StickerGiant | $0.54 |
| StandOut Stickers | $0.55 |
| Sticker Ninja | $0.59 |
| StickerBros | $0.60 |
| Busy Beaver | $0.63 |
| Bend Print Co. | $0.65 |
| Sticker Robot | $0.65 |
| Sticker Junkie | $0.72 |
| Death by Stickers | $0.72 |
## Vendors
### Bend Print Co.
[Bend Print Co.](https://www.bendprintco.com/)
- 100 for $145.00 - $1.45/sticker
- 250 for $220.00 - $0.88/sticker
- 500 for $325.00 - $0.65/sticker
- Free shipping
- Split backs (or peel tabs) for additional cost
### Brick City Printing
[Brick City Printing](https://www.brickcityprinting.com/)
- Union made!
- 100 for $105.00 - $1.05/sticker
- 200 for $186.00 - $$0.93/sticker
- 500 for $245.00 - $0.49/sticker
- Free shipping
- Split backs
### Busy Beaver
[Busy Beaver](https://www.busybeaver.net/)
- 100 for $107.00 - $1.07/sticker
- No quantity between 100 and 500 offered
- 500 for $315.00 - $0.63/sticker
- Free shipping
- Couldn't find information regarding split backs
### Death By Stickers
[Death by Stickers](https://deathbystickers.com/)
- 100 for $81.00 - $0.81/sticker
- 200 for $160.00 - $0.80/sticker
- 500 for $361.25 - $0.72/sticker
- Free shipping for orders over $100.00
- Couldn't find information regarding split backs
### StandOut Stickers
[StandOut Stickers](https://www.standoutstickers.com/)
- 100 for $109.00 - $1.09/sticker
- 200 for $160.00 - $0.80/sticker
- 500 for $272.50 - $0.55/sticker
- $10.00 for template help - they looked to have pretty stringent art requirements
- Free shipping
- Split backs
### Sticker Guy
[Sticker Guy](https://stickerguy.com/)
I did not price out Sticker Guy as I could not find pricing information for holographic stickers. I did find one table that listed holo stickers as temporarily unavailable. Still, they look like a great option for simpler sticker needs.
### Sticker Junkie
[Sticker Junkie](https://www.stickerjunkie.com/)
- No quantity ~100 offered
- 200 for $214.00 - $1.07/sticker
- 500 for $360.00 - $0.72/sticker
- Free shipping
- Split backs
### Sticker Mule
[CEO is a big Trump supporter](https://www.motherjones.com/politics/2026/09/anthony-constantino-donald-trump-sticker-mule-congress-stefanik/).
### Sticker Ninja
[Sticker Ninja](https://stickerninja.com/)
- 100 for $105.81 - $1.06/sticker
- 200 for $193.33 - $0.97/sticker
- 500 for $293.91 - $0.59/sticker
- Free shipping
- No split backs
Sticker Ninja has an *amazing* amount of variety when it comes to glitter, shimmer, mirror finish, and more - not just your standard holographic. I stuck one to my laptop, and while I can't vouch for longevity at this time, it feels *quality* - nice sturdy vinyl.
![Many stickers laid out on a desk, mostly with some variety of cutesy ninja iconography. There are a lot of shimmery, shiny, or glittery ones. A couple say things like 'queer joy is a revolution' or 'love beyond the binary'.](/img/2026/sticker-ninja.jpg)
### Sticker Robot
[Sticker Robot](https://stickerobot.com/)
- 100 for $127.00 - $1.27/sticker
- 250 for $212.00 - $0.85/sticker
- 500 for $327.00 - $0.65/sticker
- Free shipping
- FAQ says split backs can be added, but I didn't see this option; peel tabs can be added for additional cost
### StickerBros
[StickerBros](https://www.stickerbros.com/)
- 100 for $118.00 - $1.18/sticker
- 200 for $168.00 - $0.84/sticker
- 500 for $300.00 - $0.60/sticker
- Free shipping
- Couldn't find information regarding split backs
### StickerGiant
[StickerGiant](https://www.stickergiant.com/)
- 125 for $137.50 - $1.10/sticker
- 250 for $182.50 - $0.73/sticker
- 500 for $270.00 - $0.54/sticker
- Free shipping
- Split backs
### Sticky Brand
Sticky Brand has apparently gone pretty hard in on generative AI marketing. I priced them out before learning this, so I'm noting that down for reference, but I don't recommend them.
- 100 for $118.13 - $1.18/sticker
- 250 for $236.25 - $0.95/sticker
- 500 for $393.75 - $0.79/sticker
- USPS ground shipping rates or thereabouts
- Couldn't find information regarding split backs
## Resources
- [Some Free Sticker Designs and Where to Print Them](https://docpop.org/2025/10/some-free-sticker-designs-and-where-to-print-them/)
@@ -0,0 +1,13 @@
---
title: plaid dishtowels
image:
src: 2026/plaid-dishtowels.jpg
alt: "A two image collage. Image one shows one navy, beige, and yellow towel in a simple plaid laid out on a table with two more folded on top. Image two is a close up of the plaid."
tags:
- gallery
- weaving
---
Yarn: [Circulo Anne Weaving Yarn](https://woolery.com/products/circulo-anne-weaving-yarn).
3 towels. Woven area roughly 12"x24". Hemstitched.