User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
Admin
Wyvern-shaped software developer and hobby vector artist. Also sometimes a fluffy werewolf alien creature (Areon).

Creator of the neofoxes, neocats and other emojis.
wvrnBox
Website
https://volpeon.ink/
Speaking German, English
Age 30s
Pronouns he / him
Backup Account @volpeon@goto.wyvern.rip
Bonus Content @areon@icy.wyvern.rip
Pinned notes
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
2mo
A piece I've been working on last week: a young wyvern. The fur pattern is inspired by aardwolves.

Original:
volpeon.ink/art/2026-young-wyvern/

User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
5mo
Imagine waking up and finding out that things have changed quite a bit....

A different piece compared to my usual art. I started it one year ago, but stopped because I wasn't quite up to it yet. Now I was.
wyvUwu

Full res:
volpeon.ink/art/2026-a-new-life/

User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
5mo
The new ✨ Volpeon design is complete!

volpeon.ink/art/2025-refsheet/

User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
6mo
I still got the old drawing pinned on my profile, and I also want a reason to show the revised Areon character sheet drgn_mlem

Full resolution art:
volpeon.ink/art/2025-areon/

User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1y
Here's the I promised. wvrnMlem

I'm a software developer in the physical realm, and a fluffy wyvern who draws vector art in the online realm. Chances are you have at least seen some of my emojis before.
wvrnBox
I attached some of my art, but if you want to see all of it, go to
volpeon.ink
For questions about commissions and other things, please check my FAQ:
volpeon.ink/faq/

The account date may suggest otherwise, but I've been on the fediverse for about 5 years now. I just have a tendency to try new servers and lose my history in the process.
wvrnAngel

I also have a separate account for all sorts of posts I don't want to put on here, such as writing experiments or personal topics:
@areon
Latest notes
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1h
If you're wondering how this leads to Markdown files being turned into HTML with templates, the process is comprised of these steps:

Page<".md", string, {}> -> Page<".md", string, frontmatter data> -> Page<".html", string, frontmatter data>

Anything that becomes
Page<".html", string, ...> before the template hook in the pipeline will be processable by templates ingesting Page<".html", string, ...>.
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1h
I generalized the concept of templates to work with any page type. Most of the time they're going to ingest Page<".html", string, ...> as shown here, but you could have templates for anything
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1h
Oh, and this
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
2h
Most people probably won't care if their SSG can tell them this, but I think it's neat
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
15h
The typing is super easy to understand, right areonNAngel
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
15h
I overhauled the API to avoid all the weird function chaining. It's less awkward now, and the reported input and output types are correct areonNCute
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
19h
@yacha neofox_googly_woozy
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
23h
This one is for Puni Bocchi the Bock neofox_googly_woozy
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
23h
The only problem is pages whose Type is a union. I use Exclude to mutate the input and output types and it doesn't work reliably because of that. Page<".md" | ".mdx", ...> shouldn't be in the output
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
23h
areonNHyper
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1d
Cancel the datacenter projects, my mom has resources to spare for 10 humanities neofox_googly_woozy
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1d
@catraxx neofox_googly_shocked
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1d
They're putting fiber cables in our street right as the big heatwave is coming. neofox_googly_shocked
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1d
Firefox on my mom's laptop did a funny and said website cache was taking up 17bn GB. neofox_googly_woozy Fixed itself after restarting Firefox
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
1d
Soon it'll tell you what input formats it expects and what formats it outputs, along with the expected and returned metadata respectively. I love using types to do impressive stuff like this. areonNAngel
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
2d
And here's a plugin to add a persistent cache which can be used by dependent plugins for stuff like storing resized and recompressed image variants
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
2d
It was all worth it when adding support for new template formats is as easy as this areonNAngel
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
2d
I had to do some really arcane stuff with TypeScript's type system to make this work.
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
2d
I might be able to even get rid of the distinction between pages and templates. Templates are just a final transformation step, exactly the same as calling ´site.process´ and having it, say, turn Markdown files into HTML.
I was thinking about how to solve support for Vue templates since these turn a single page into multiple files, including SCSS. And then how would I compile the SCSS if templates are the final step? Removing this distinction would make it possible since there can be any kind of processing afterwards.
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
3d
@catsalad areonNThink