5.4 KiB
5.4 KiB
type, updated
| type | updated |
|---|---|
| profile | 2026-05-28 |
Profile
Persistent facts about Jason. Append observations as they emerge; promote stable ones to a top-level section.
Role
Jason works at Message Point Media (MPM) — a digital signage company (~2,000-display installed base). He is a developer and builder who runs Claude CoWork skills and plugins for the MPM team. He also runs his own wireless ISP, ALWISP (Alabama mesh networking), and builds a wide range of personal and commercial self-hosted applications.
Communication preferences
Tools and stack
Preferred languages and runtimes
- Primary: Node.js + TypeScript for application work
- Secondary: Python for tooling, automation, and AI integrations (FastAPI)
- Frontend: React 18 + TypeScript + Vite; Tailwind CSS; Svelte (used in pnger)
- ORM/DB: Prisma + SQLite as default; PostgreSQL for production-grade apps
- Build/deploy: Single Docker container pattern — nearly every app ships as one container
Infrastructure
- Runs an Unraid server as his primary self-hosting platform
- Personal Gitea at git.alwisp.com — personal repos under
jason/user - Work Gitea at git.mpm.to — MPM org repos (plugin:
git-mpm) - TotalMCP unified MCP gateway runs at
10.2.0.35:8811on Unraidbr0 - Obsidian vault accessible at
10.2.0.2:27124(self-signed cert,-kalways needed) - Gitea CI runners used for building Docker images (e.g., stepview)
CoWork plugins and skills
Jason maintains a suite of Claude CoWork plugins at git.mpm.to and git.alwisp.com. Key ones:
mpm-brand-voice-plugin— MPM brand voice enforcementodoo-mpm-plugin/odoo-plugin-creation— Odoo ERP accessdisplay-catalog-plugin— MP.TV product catalog generationprompt-optimizer— transforms rough requests into polished promptsgit-personal— personal Gitea (git.alwisp.com)git-mpm— work Gitea (git.mpm.to)
Personal projects (git.alwisp.com/jason)
| Repo | What it is |
|---|---|
| alwisp | Dockerized LAMP website for his wireless ISP |
| breedr | Dog breeding genealogy management system |
| codedump | Internal dashboard for tracking AI tools and coding projects |
| codexium-odoo | CODEXIUM MRP platform — Odoo variant |
| cpas | CPAS violation tracker with Puppeteer PDF generation |
| Google Workspace email signature manager | |
| fabdash | Fabrication project management and scheduling dashboard |
| family-planner | Self-hosted family dashboard (calendars, chores, meals, screensaver) |
| inven | Inventory management with BOMs, orders, invoicing on SQLite |
| memer | Self-hosted meme gallery with Telegram/SMS quick-share |
| mempalace | Server-mode MemPalace fork — shared AI memory palace over LAN |
| mrp | CODEXIUM MRP — manufacturing resource planning platform |
| mrp-qrcode | MRP with QR traveler cards, operator scan flow, in-browser STEP viewer |
| nyaa-crawler | Nyaa.si anime torrent tracker and auto-downloader |
| pos | Full-stack TypeScript point-of-sale (Android + Node + React) |
| rack-planner | RackMapper — network rack visualizer and service dependency mapper |
| stepview | Self-hosted in-browser 3D STEP file viewer (OpenCascade WASM + three.js) |
| storybid | Charity auction platform with PWA offline bidding and Stripe payments |
| totalmcp | Unified MCP gateway for the ALPHA stack (Claude Code, Codex, Antigravity) |
| ui-tracker | Unifi Store stock monitor with Telegram alerts |
| pnger | PNG editor/resizer — TypeScript + Svelte + Sharp |
| qrknit | Commercial QR code generator and URL shortener (own org: qrknit/qrknit) |
Notes
- Gitea file uploads must use Python + temp files for base64 encoding —
echo -n | base64causes corruption - Nearly all apps follow the single-container Docker pattern designed for Unraid deployment
- Jason builds for himself and for MPM — personal projects skew toward home automation, media, and fabrication tooling
Deployment workflow
- CI/CD: Push to Gitea (
git.alwisp.com) → Gitea Actions → Docker build → push toregistry.alwisp.com - Gitea Actions runner image:
catthehacker/ubuntu:act-latest - Image tag pattern:
registry.alwisp.com/{owner}/{repo}:latest - Deployment target: Unraid Docker GUI (manual container creation after image push)
- Network preference: Always Custom: br0 — dedicated LAN IP per container, subnet
10.2.0.0/24; never bridge; reason: direct app-to-app communication without port mapping - Volume root:
/mnt/user/appdata/{app-name}/on Unraid host - Privileged containers: OFF by default
- Tailscale on containers: OFF by default
- Full deployment reference: unraid-deployment