Skip to content

Instantly share code, notes, and snippets.

View StoneyEagle's full-sized avatar
🦅

Patrick Staarink StoneyEagle

🦅
View GitHub Profile
@StoneyEagle
StoneyEagle / dom-element-factory.ts
Created August 9, 2026 21:17
Chainable DOM element builder utility (fluent create/addClasses/appendTo)
/**
* A chainable object returned after creating a new (or reusing an existing)
* DOM element, allowing further configuration or insertion into the document.
*
* @template T - The type of DOM element being built.
*/
export interface CreateElement<T extends Element> {
/**
* Returns the underlying DOM element.
*
@StoneyEagle
StoneyEagle / software-architecture-patterns.md
Created June 17, 2026 10:25
Software Architecture Patterns — a working catalogue (general patterns + concrete examples)

Software Architecture Patterns — a working catalogue

A working catalogue of general, reusable software architecture patterns, each with a concrete, illustrative example. The "In NomNomzBot" tag just shows one place each pattern happens to show up in practice — the pattern itself is technology- and project-agnostic.

Structural & architectural

Layered / Clean Architecture

What it is: Organizes a system into concentric layers (Domain, Application, Infrastructure, Presentation) where dependencies point inward only, so business rules never depend on frameworks, databases, or UI.

@StoneyEagle
StoneyEagle / 00-index.md
Last active April 13, 2026 17:53
Working With Claude Code — A practical field guide from daily use across a multi-project ecosystem. Covers the persistence system, context management, feedback patterns, the CTO agent pattern, and honest assessments of what works and what doesn't.

Working With Claude Code — A Practical Guide

Three documents, meant to be read in order. Written from real daily experience across a multi-project ecosystem (Laravel, .NET, Vue, Kotlin, npm packages, CI/CD) — not theory.

Contents

The philosophy. How to think about working with Claude Code, when to keep sessions vs. start fresh (honest tradeoffs), how to give feedback that sticks, what Claude is genuinely bad at, and the mindset shift that makes everything else work.

@StoneyEagle
StoneyEagle / styles.css
Created October 15, 2025 12:22
Propz chat bubble css
.chat-message-wrapper {
background: #240009;
background: linear-gradient(115deg, rgba(36, 0, 9, 1) 25%, rgba(121, 9, 50, 1) 50%, rgba(255, 0, 77, 1) 100%);
border: var(–border-size) solid rgba(255, 145, 178, 0.9);
overflow: clip;
padding: 10px 10px;
margin: 20px 0;
box-shadow:
0 20px 40px rgba(255, 0, 77, 0.3),
0 8px 16px rgba(121, 9, 50, 0.4),
@StoneyEagle
StoneyEagle / ffz-settings.json
Last active July 1, 2026 19:23
Frankerfacez configuration
{
"version": 2,
"type": "full",
"values": {
"p:0:first_message_highlight.highlight_color": "#620F0F",
"p:0:chat.filtering.all-mentions": true,
"p:0:pubsub.enabled": true,
"p:0:player.compressor.enable": true,
"p:0:channel.round-avatars": true,
"p:0:chat.replies.style": 2,
using System.Text;
using NoMercyBot.Database.Models.ChatMessage;
using NoMercyBot.Services.Emotes;
using NoMercyBot.Services.Emotes.Dto;
using NoMercyBot.Services.Other;
namespace NoMercyBot.Services.Twitch;
public class TwitchMessageDecorator
{
@StoneyEagle
StoneyEagle / 404.html
Created January 10, 2025 14:25 — forked from leonsilicon/404.html
Properly set up routing for an SPA hosted on GitHub pages
<!DOCTYPE html>
<html>
<head>
<script>
sessionStorage.redirect = location.href;
const projectPages = true; // If you're using the base .github.io domain without a path (i.e. <name>.github.io is your home page), set this to false
const l = window.location;
const repo = projectPages ? '/' + l.pathname.split('/')[1] : '';
l.replace(
l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') + repo
@StoneyEagle
StoneyEagle / frosting.css
Created December 13, 2024 19:02
Card frosting
html.xmas .frosting::before {
content: '';
display: block;
position: absolute;
top: -7px;
left: -3px;
right: 0;
z-index: 999;
height: 23px;
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAXCAYAAACS5bYWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABFpJREFUeNrUV0tIo1cUvpkYjQ4xxSA6DxuNqG0dtaUKOgs3s6i0dFd3pSsXdjeIixakiGA34sZuXCkoONLFwJTK4GMYLYXg29gatTpiXurkbd7vv9/5ub+IxuhA7eiFQ5Kbc8/57ne/e87/ywRBYLdl3GG3aNwqsLJ0k0tLS+fmcnNzWUVFBVMoFGx2djarvLxcm5OTw+bm5iytra2xc4ExNjY27iqVyvvwK6CpeDzuCYVC1urq6qDA9UcfPp+PHR4esmAwKK6tr68/l5/8rgQ2Ozub1dbWyiYmJooaGxt/VqvV38jlchX9l0qlwoFA4DWS/RKLxRxFRUVf5+XlPcaaT2AP0sVPJBL2SCRiAPBpu93+vKamZo/Ae71eZjabWV1dXVqw7CKwp43ksrCw8Bhg7MJ/PLDZ5PHx8cz29vYT5JGD/bSYLgTrcDgYdk6siSc6NjZWDaAe4ZoHQL+cmZnRpZPnhWDpD8kw7uKo9ML/NMCsd2tr61vkzboMrEyv138M7TyLRqMWMBsX3sMgaZhMpp+AR5EJrCocDpuEGzKg4x8khs+CVWxubvZfR9JkMik4nU7BarUKLpeLmLsKuwIqTLynp4fqmIzASrqQT09Pf1VVVfX0KsWZ6uHBwQHTaDSsoKAgo6/H4xHLEcrVyRwuEisrKzs5XrrIVAVwiUVDKRRrL+YI32ewdVhMApuHWvcj6vids6J2u90MF4yBHUZNgKoE
@StoneyEagle
StoneyEagle / ChristmasSnow.vue
Created December 11, 2024 20:43
Snow overlay
<script setup lang="ts">
import {isXmasTime} from "@/lib/dateTime";
// add xmas to your html class
</script>
<template>
<div v-if="isXmasTime()"
class="z-1199 absolute pointer-events-none opacity-50">
<template v-for="i in Array.from(Array(30).keys())" :key="i">
<div class="snowflake"></div>