Edrick Tamayo

Apps

Five apps I designed and built. Each row leads with the demo, then the short version: what it does, how it was built, and how it is structured.

Tiled / macOS
Tiled demo: tiling windows into quarters and sixths with global hotkeys

Tiled

Swift · AppKit · Accessibility API · SwiftPM

A menu-bar window manager that tiles macOS windows into quarter and sixth layouts with global hotkeys, plus live shared-edge resizing.

What it does
Quarter or sixth layouts · live shared-edge resize · per-display, per-Space canvases · menu-bar actions and undo
How it's built
A SwiftPM AppKit executable with a pure tiling engine. The make app target builds an ad-hoc signed universal zip, and XCTest plus a mutation gate check it.
Architecture
Pure engine (Layout, TilingSpace) behind a WindowGateway seam · AXUIElement windows and Carbon hotkeys · canvases keyed by CoreGraphics UUID
View Repo · Swift · macOS · MIT
QuickCull / macOS
QuickCull: side-by-side RAW compare with histograms, metadata sidebar, and filmstrip

QuickCull

Swift · SwiftUI · AppKit · LibRaw · Xcode

A macOS photo culler that decodes the whole shoot up front, then lets you scrub, compare, and color-flag with the keyboard.

What it does
Arrow-key scrub and flag · single, split, and grid compare · 1:1 loupe at source pixels · trash or move, per-file outcomes
How it's built
An Xcode app plus a QuickCullCore framework that embeds LibRaw 0.22.1. It has 264 XCTest cases with pinned RAW fixtures.
Architecture
Logic in QuickCullCore, views-only app target · LibRaw or ImageIO decode into a SHA256-keyed JPEG cache · memory-aware decode pool and tiered prefetch window
View Repo · Swift · macOS · MIT
Addarr
Addarr demo: search, one-tap add, downloads, and activity log

Addarr

TypeScript · SvelteKit · SQLite · Node

A self-hosted page for the household: search Radarr and Sonarr and add a movie or series in one tap.

What it does
Poster-grid search, one-tap add · live download status · household downloads view · admin presets and PIN
How it's built
SvelteKit 5 on adapter-node. npm start builds and installs a launchd, systemd, or Windows background service.
Architecture
Server-trimmed *arr responses · SQLite via node:sqlite, WAL mode · GET-only passthrough and path-prefix admin gate
View Repo · TypeScript · Windows · macOS · Linux · MIT
Checkarr
Checkarr demo: dashboard counts, scan menu, and source settings

Checkarr

TypeScript · Fastify · React · SQLite · ffmpeg

A self-hosted checker that decodes every Radarr and Sonarr file with ffmpeg and flags the ones that fail.

What it does
Radarr and Sonarr sync · ffprobe and ffmpeg decode probes · healthy, corrupt, suspect, missing states · dashboard and rescan actions
How it's built
A pnpm monorepo with a Fastify server and a React and Vite dashboard, shipped bare or in the Docker image. Vitest runs in CI.
Architecture
ScanManager with one run and N claim-based workers · SQLite via node:sqlite · single scan gate and DNS-rebinding guard
View Repo · TypeScript · Windows · macOS · Linux · MIT
Decelerate / macOS
Decelerate menu-bar panel and settings window, with trackpad and mouse acceleration and speed sliders

Decelerate

Swift · SwiftUI · AppKit · IOKit · Xcode

A menu-bar app that changes the HID acceleration settings macOS uses for the trackpad and mouse, with 0 to 100% acceleration and a separate pointer speed for each device class.

What it does
Acceleration from 0 to 100% per device class · 0.5x to 2x pointer speed · separate trackpad and mouse settings · restores macOS defaults on quit
How it's built
A SwiftUI and AppKit menu-bar app. It writes pointer parameters through the public IOHIDSystem connection, so it needs no root, entitlements, or accessibility permissions. Scripts/build.sh builds and ad-hoc signs the app.
Architecture
AccelerationController behind a HIDServiceBridge interface · per-class parameter writes via IOHIDSetCFTypeParameter · acceleration curves interpolated from the device's macOS curve
View Repo · Swift · macOS · MIT

More on GitHub: github.com/edrickt