Character Sheet

I gamify everything, so naturally this exists

My brain runs on XP bars and completion percentages, so at some point building an actual RPG stat sheet for myself was inevitable. This is that. Extremely detailed, mostly accurate, not remotely serious. The numbers are made up. The self-assessment behind them isn't, and that's possibly the most revealing thing on this whole site. Nearly every line below points at something real elsewhere here: a project, a server, a page I wrote. The framing is a bit; the facts underneath it aren't. Is a stat block a strange way to introduce yourself? Probably. It's still the most accurate one I've got. Roll for initiative.

Harper's character sheet portrait

Harper

Level 36 Trans Woman · Chaotic Good Oathbreaker Paladin
Race: Human (Autistic/ADHD Subtype) Class: Oathbreaker Paladin Subclass: Full-Stack Gremlin · Queer Ambassador (Prestige) Background: Self-Taught Technomancer Alignment: Chaotic Good Region: Ontario, Canada Home Base: One PC, one home server, one VPS Guild: One small private Discord, kept small on purpose Familiar: Harley (dog, no off switch) Playtime: ∞ hrs, zero plans to respec

🎲 Ability scores

STR
8
Can carry two Monster cases up three flights, then needs a lie-down
DEX
14
Reflexes forged by 1,418 hours of TF2 and 324 of Counter-Strike
CON
10
Runs on caffeine, spite, and forgetting to eat until 4pm
INT
18
Self-taught dev and homelab architect. Reads Jung for fun, on purpose
WIS
12
Knows the right call, makes it eventually, does usually get there
CHA
16
Queer Ambassador. Professional talker-to-strangers-about-feelings

⚔️ Resistances & vulnerabilities

The part of a character sheet that's usually the most honest, so I kept it that way.

Vulnerable to

Unnecessary conflict Bad UX design Sudden schedule changes Generic solutions to specific problems Decaf served without warning

Resistant to

Bad takes Bullshit Awkward silences Motivational clichés Premium tiers sold to a fifteen-person server

Awkward silences get filled whether you wanted that or not.

Immune to

Shame about any of the above

None of it. Not even a little.

Weak to (mechanically)

A cloud service sunsetting something I depend on

Most of why so much of the stack runs on hardware I can physically go and unplug.

🌀 Common status effects

Hyperfocused

Advantage on the task.
Disadvantage on food, water, and replying to anyone.

Overstimulated

Social battery drains at triple rate. Cured only by leaving.

Under-Watered

The single most frequent condition on this sheet, and the specific reason two separate apps now nag me about it.

❤️ Vital meters

HP (Spoons)62 / 100
MP (Monster & Coffee Reserves)88 / 100
Focus / Hyperfocus Charge100 / 100 (until a shinier hobby appears)
Social Battery20 / 100 (critical, deploy dog immediately)
Sleep Debt (the one meter you want low)78 / 100
Off-Site Backup Coverage0 / 100 (yes, really, and I wrote that down myself)

That last one isn't a joke stat. Backups here are local-only, on a 2TB drive that lives in the same house as everything it's backing up, and I'd rather say so on the Infrastructure page than quietly leave it out.

📊 Skills

Levels capped at 99, RuneScape rules. A couple are maxed. A couple are, let's say, actively being worked on. A couple I have simply never trained and I'm not going to pretend otherwise. (Receipts: Hytale, Cannabis, Hazel Care, Infrastructure, Music, the Lab.)

Combat skills (things I actually build with)

Python Scripting87
Discord Bot Necromancy95
Self-Hosting / Server Admin92
Arguing With Docker81
Caddy & Reverse Proxying84
Cloudflare Tunnel Sorcery79
FastAPI Backend Plumbing76
SQLite Schema Fiddling71
Hand-Written HTML & CSS (no framework, no build step)83
Deploy-Script Paranoia89
Local LLM Wrangling (Ollama)74
Persona & Prompt Writing80
Known LanguagesHTML, CSS, Python, Sarcasm (fluent)
Off-Site Backups0 (untrained, and I know)

Gathering skills (things I hoard, catalog and research)

Cannabis Sommelier-ing96
Harm-Reduction Research85
Music Library Archaeology (5,262 songs deep)91
RPG Loot Goblin Instincts94
Hytale World-Building78
Reading Jung At An Unreasonable Hour68

Support skills (people, words, and one dog)

Dog Parenting (Harley)100 (MAXED, Prestige)
Trans & Queer Advocacy90
Community Moderation (party size: very small)87
Technical Writing / Documenting Myself82
Answering Awkward Questions Without Lecturing88
Touching Grass (Harley-assisted)74

Untrained skills (posted honestly, in public)

Energy Drink Tolerance99 (MAXED)
Hyperfocus99 (MAXED, unfortunately)
Picking Up Random Hobbies at 1am88
Naming Two Separate Projects "Hazel"100 (cursed mastery)
Social Battery Management22
Task Initiation15 (actively grinding)
Estimating How Long Anything Will Take12
Sleep Schedule Maintenance11
Saying No To A Shiny New Project Idea9
Steam Backlog Management4

🎒 Inventory

Sorted by rarity, as is proper. The hardware entries are the real specs off the Infrastructure page, because inventing gear for a character sheet about my own gear felt like cheating.

Legendary · UntradeableBlåhajBind on pickup. Can't be unequipped, morally or otherwise.
Legendary · CompanionHarleyNot technically inventory, but she'd be extremely offended to be left off this list. Doubles as the only reliable trigger for the Touch Grass daily.
Legendary · CuratedThe Library: 5,262 Songs1,119 artists, deduplicated by a script I wrote, every number counted and none of them guessed. Metalcore next to drum & bass next to pop, with no unifying theory beyond whether a track holds my attention.
Epic · Main HandThe Main RigRyzen 7 5700X3D, RX 9070 XT, 64GB RAM. Does triple duty: gaming, streaming, and hosting whatever local model I'm running that week.
Epic · Always-OnThe Home ServerCore i7, 32GB RAM, 500GB NVMe. The quiet workhorse that runs Hazel and the always-on VMs so I can reboot my gaming PC without taking the community down with it.
Epic · RentedThe VPSA deliberately smaller Debian 13 box for the public half of what I actually use: this site, its APIs, Caddy, and the far end of Hilray's reverse tunnel. Paying for idle headroom was not a personality trait I needed to keep.
Epic · CraftedHazel Command CentreA desktop launcher whose entire palette is hardcoded from this site's own CSS tokens, so it re-tints itself whenever the site does. One source of truth for color, front-end or desktop.
Epic · Scrolldeploy.ps1Refuses to publish if it finds a dead link, a leftover to-do marker, an unfilled placeholder or a single stray line of filler text. Backs up the live site first, uploads, then checks the site still responds before calling it done.
EpicMechanical Keyboard of HyperfocusGrants advantage on 3am coding sessions. Disadvantage on sleep schedule.
Rare · CosmeticGovee Light StripsThe origin of the purple. The room looked like this first and the CSS followed. That's the honest and slightly embarrassing answer to where this site's color scheme came from.
Rare · PortableSteam DeckSteamOS, and the third piece of "my own gear" alongside the PC and the home server. Mostly used for the games I swore I'd get to.
RareHoodie of Comfort +3Resistance to bad days. Stacks with Blåhaj.
Rare · ConsumableBottomless Monster StashUltra White, then Monster Gold, then OG Sugar Free, strictly in that order of preference. Refills mysteriously. Never questioned.
Rare · NetworkingEero Mesh & A Gig Both WaysWhole-home mesh with no dead zones and a symmetric gigabit line behind it, so nothing between my gear and the outside world is the bottleneck. When something's slow, it's my code.
RareRing of Chaotic Good IntentionsWill break a dumb rule if the rule is hurting someone. No hesitation.
Rare · Cursed2TB Backup DriveHolds the local backups that matter, alongside the new VPS restore archive. Cursed because it lives in the same house as everything it's protecting, and there is still no real off-site copy.
Common · Oddly SpecificHandheld Digital MicroscopeBought to look at trichomes up close. Kept because looking at things very close up turns out to be its own reward. The photos are on the Drugs page with no notes attached.
Common · EquippedMan and His SymbolsJung, alongside Modern Man in Search of a Soul. Read for fun, on purpose, and currently overlapping uncomfortably well with how I think about my own head.
CommonNine Half-Finished Side ProjectsSold separately. Never actually sold. Never finished either.
CommonOne (1) Actually-Finished WebsiteThis one. Allegedly. Still adding pages to it as we speak.
Common · Quest ItemTwo SSH Keys With Enforced JobsOne deploys the website and administers the VPS. Hilray's key is forced into its tunnel-only job and gets denied if it asks for a shell. Identical-looking little files, genuinely different powers.

✨ Traits & feats

  • Hyperfocus (Passive): When engaged with a special interest, gain advantage on all related checks. Disadvantage on remembering to eat, drink water, or respond to texts.
  • Systems Thinker: Automatically identifies inefficiencies in literally everything, whether asked to or not. Can't be turned off.
  • Trust Fortress: Hard to earn, nearly impossible to lose once earned. Betrayal deals massive, permanent damage. Rare, but catastrophic when it happens.
  • Overthinker (Always Active): Reruns every social interaction at 3am on a loop. No saving throw.
  • Main Character Energy (Unlocked): Came out, stayed out, stopped apologizing for it.
  • Modular by Instinct: Every feature goes in its own cog, always. A broken experiment takes down one command instead of the whole bot. That's the only reason a project this size has survived being maintained by exactly one person doing it for fun.
  • One Source of Truth (Compulsion): Physically can't maintain two versions of the same fact. Hazel's deployment button runs the same checked release path as the manual shortcut; the desktop launcher pulls its colors from this site's CSS. If a number is wrong it's wrong everywhere at once, which sounds worse and is enormously better.
  • Predictable Ritual (Autism): Once 8:30 is bedtime, I want the same message, in the same tone, at the same time, every single night. A human who reworded it each evening would be worse for me than a dumber bot that never varies. The sameness is the whole feature.
  • Self-Taught (Origin Feat): The school system didn't have an answer for an undersupported autistic kid, so I went and got the answers myself. Useful instinct and exhausting instinct, in roughly equal measure. It's behind every project on this site.
  • Honest Gap Disclosure: Will publicly document the weakest point in her own setup instead of quietly leaving it out. See: the cloud-dependent cameras, the missing off-site backup, the music timeline chart that got cut because the data couldn't support it.
  • No Deadline, No Shortcuts: None of this is anybody's job, and that's exactly why it gets built properly, broken at 2am, and fixed again without having to justify the detour to anyone.
  • Automation Spiral (Passive): Will spend an entire weekend deleting a thirty-second manual task from her life, then feel better about it for months. This isn't a joke about the weekend; it's a real return on investment, just an unusual one.

📜 Quest log

Main storyline, side quests, and a few dailies I fail regularly. The completed ones are real; so, unfortunately, are the ones still sitting open.

Active
Finish Hazel v2. Main storyline quest. Keeps spawning side quests. No end in sight, which is somehow fine.
Active
Keep Hazel's deployment path boring. One button, one dedicated key, the normal checks, a backup before upload, and no little ritual I have to remember differently next month.
Active
Get Hazel Care onto my phone properly. The desktop app is done and the alerts already reach my phone through ntfy, but a notification isn't the app. An Android port is the honest next step, and it's the difference between a tool that catches me at my desk and one that catches me anywhere.
Active
Get an off-site backup. Any off-site backup. Currently at zero. Known, written down, publicly admitted, and still zero. If the house burned down the backups would burn with it, and I'd rather log that here than pretend it's handled.
Active
Replace the cloud cameras with something local. The one honest exception on a page otherwise dedicated to self-hosting everything. Flagged on the Infrastructure page instead of quietly omitted.
Active
Finish the piece about being the only one. The only mod, the only dev, and the only person people DM at 2am, for a community I built myself. Drafted, not published, which tells you something.
Active
Make Hilray boring enough to forget. Jellyfin at home, HTTPS outside, one outbound tunnel in between. The quest is complete when restarting it feels less dramatic than choosing what to watch.
Ongoing
Touch grass, with Harley. Daily repeatable. Rewards: fresh air, a tired dog, temporary peace.
Ongoing
Keep the Now page current. Weekly repeatable, frequently failed. It's the one page on the site I actually try to keep honest, which is why it's the one that stings when it goes stale.
Ongoing
Answer drug questions honestly, without lecturing. A blank space where information should be is what got me hurt. So the Drugs page exists, sourced from DanceSafe and TripSit and not from vibes, and the inbox stays open.
Ongoing
Keep the community small on purpose. Not a growth target. A small, quiet, private server where nobody has to perform, and where the guidelines read like how to treat your friends instead of a legal document.
Completed
Build an entire website from scratch. Static HTML, CSS and JS, no framework and no build step, served straight through Caddy. Achievement unlocked: Overkill. Kept going anyway.
Completed
Come out and stay out. Achievement unlocked: Main Character Energy. See above.
Completed
Ship a bot to a real community and keep it running. Hazel has been live since late 2024 and grew from a single reminder command into moderation, routines, community management and live game-server status. Maintained by one person, for fun, without a single outage anyone else had to fix.
Completed
Make the whitelist run itself. Players validate their own UUID and get on the Hytale server without waiting for me to wake up. The write endpoint is token-authenticated server-side and the public page can only ever read.
Completed
One source of truth, two front doors. The website and Discord read the same live status API, and every launcher button runs the identical code path as the matching Discord command. Two interfaces, one implementation, no drift.
Completed
Make the public box boring to attack. Key-only SSH, no root login, a default-deny host firewall, current Debian security updates, a tunnel-only Hilray key, read-only web containers, and no Docker control socket hiding under the site API.
Completed
Rebuild the reminder scheduler as a reconciler. Nothing is pre-scheduled any more. One job runs every minute and works out what's due from the database, so reminders survive sleep, restarts, clock jumps and me editing things mid-day. Wake the PC at 3pm and the 9am dose alerts immediately, because the row still says it hasn't been dealt with.
Completed
Count the entire music library honestly. 5,262 unique songs across 1,119 artists, exported, deduplicated and broken down with no invented statistics anywhere. The discovery timeline got cut instead of faked, because the export has no date field and a chart that might be fiction is worse than no chart.
Completed
Become a Queer Ambassador. Far less dramatic than people expect. Mostly it's helping folks get the small everyday things right, like using someone's name without making a production out of it.

🏆 Achievements

Ten earned the boring way and a handful more hidden around the site. The hidden ones are real: they unlock from things you actually do here, and they appear in this case as you find them.

The Long Haul

1,911 hours in The Elder Scrolls Online. No further questions.

Speedrunner (reverse category)

Built a working Discord bot before finishing a basic Python course.

Certified Menace

Successfully automated something literally nobody asked her to automate.

Maximum Vibes

Sustained entirely on Monster, coffee, and spite for an undisclosed number of consecutive days.

Completionist

5,262 songs cataloged, 1,119 artists ranked, zero numbers invented to fill a gap.

Star Cartographer

Mapped 150 artists onto a star chart where every link between them is a documented, on-file connection. Nothing on that map is placed by feel.

Refused The Timeline

Had a great idea for a chart, found the data couldn't support it, and shipped the explanation instead. Nobody would have checked. That was the point.

Dungeon Master

Runs a game server with no ranks for sale, no cosmetic paywall, and no donor queue that quietly becomes mandatory.

Two Hazels, One Name

Shipped two entirely separate codebases under the same name and has declined to rename either. Regrets nothing, explains it constantly.

Veteran Status

Thirty years on Windows, eighteen on Android, five each on Linux and macOS. Not a flex, just an uncomfortably long time.

A few more are hidden on the site itself instead of written out here. Find them and they'll fill the empty slots above on their own.