shay2000Alternative / Parts Catalogue
Alternative designs

Shay / independent software / catalogue 11

Parts
Catalogue

Maker identification

@shay2000

Builder · occasional writer. Small tools that fix specific annoyances: macOS menu-bar utilities, self-hosted services, and research tooling.

Open source since 2014 · Public, deliberately small.

Components in stock.

7 selected builds. Open a drawer for the specification.
Software, not physical inventory.

P—01Watt is it?The honest wattage number, in your menu bar.Swift
Application / Original work

Most chargers report what they are rated for. macOS repeats that number. Nobody tells you what is actually crossing the cable.

Technical specification

Platform
macOS 14.6+ · Apple silicon
Refresh
1 s while on external power
Network
GitHub releases check only
Distribution
Unsigned DMG
Materials
Swift / AppKit / IOKit / Menu bar
Repository pushed
12 Sept 2026 / saved snapshot
P—02PodcastSyncYouTube channels as a podcast feed on your own Wi-Fi.Python
Application / Original work

Podcast clients only understand one thing: an RSS feed with enclosure links. PodcastSync makes a YouTube channel look like exactly that, served from your own machine.

Technical specification

Platform
macOS 13+ menu bar app
Polling
Every 30 min, configurable
Audio
MP3 192 kbps + cover art
Reach
LAN only, by design
Materials
Python / Swift / yt-dlp / ffmpeg / SQLite
Repository pushed
12 Sept 2026 / saved snapshot
P—03LumaControlDisplay control for current macOS, including the brightness macOS hides.Swift
Application / Original work

LumaControl started as a fork of MonitorControl and became its own project, with a focus on current macOS releases, a native-feeling interface, and display-control ideas upstream had not taken on.

Technical specification

Controls
Brightness · volume · contrast
Extras
Extended XDR range
Builds
Universal — Apple silicon + Intel
Updates
Signed Sparkle feed
Materials
Swift / AppKit / DDC/CI / Sparkle / CI
Repository pushed
12 Sept 2026 / saved snapshot
P—04Zotero AIAI summaries for Zotero that show you the payload before they send it.JavaScript
Application / Original work

The default shape of an AI feature is a button that quietly ships your document to a server. The default shape of a research workflow is a folder of unpublished drafts and embargoed data.

Technical specification

Actions
Summaries · text explain · cross-checks
Formats
PDF · EPUB · HTML · text
Secrets
Platform login manager only
Build
Dependency-free, deterministic XPI
Materials
JavaScript / Zotero 9+ / Python (build) / Keychain
Repository pushed
12 Sept 2026 / saved snapshot
P—05FlipOffA $3,500 split-flap board, emulated in a browser tab.JavaScript
Application / Fork, maintained

Real split-flap boards cost thousands. FlipOff turns any television or monitor into one, and it is a single index.html with no build step and no dependencies.

Technical specification

Stack
Vanilla HTML/CSS/JS
Dependencies
None
Offline
Yes — zero network calls
Display
Phone to 4K
Materials
JavaScript / CSS 3D / Web Audio / No build step
Repository pushed
12 Sept 2026 / saved snapshot
P—06TreeSpaceWhat's eating your disk, without the ceremony.Swift
Application / Original work

A minimal native SwiftUI app that answers one question: what is taking up the space? Expandable size-sorted tree, totals grouped by file extension, and a duplicate finder — all readable end to end and yours to hack on.

Technical specification

Views
Size tree · by extension · duplicates
Dedup
3-stage filter, SHA-256
Sizing
Allocated bytes on disk
Build
swift run, or open Package.swift
Materials
Swift / SwiftUI / CryptoKit / SwiftPM
Repository pushed
12 Sept 2026 / saved snapshot
P—07METAR TranslatorMETAR Viewer is a Windows application that translates raw METAR Data into a more "human-friendly" format. FOR FLIGHT SIM ONLYC#
Application / Original work

METAR Viewer fetches and decodes aviation weather reports (METARs) into plain English. Search by ICAO code, IATA code, airport name, or even a common misspelling, and get wind, visibility, cloud layers, temperature, altimeter, present weather, and flight category back in a readable form. Simulation and hobby use only; not for real-world aviation or weather decisions.

Technical specification

Repository
Original work
Primary language
C#
Materials
C# / JavaScript / Python
Repository pushed
12 Sept 2026 / saved snapshot

13 tracked repositories · 8 originals · 5 forks at capture

Full inventory →

Inspection log / snapshot, not live

Latest activity / captured 12 Sept 2026

From the workbench.

Most recent repository push

AI-Zotero

A fork which lets you bring in your own AI agent for summarising content or auto sorting tags.

12 Sept 2026 · Fork

  1. ed692c3
    Move Buy Me a Coffee shield to top of READMEAI-Zotero
  2. a870d7b
    Remove support links from family tree sitefamily-tree-site
  3. 234345d
    appcast: LumaControl 1.0.0 (build 46) [skip ci]LumaControl
  4. aa4c055
    Add Buy Me a Coffee support linksPodcastSync-VPS
  5. cb41655
    Merge pull request #3 from shay2000/migrate/lumacontrol-identity-v1LumaControl
  6. 3878bd1
    Keep CFBundleVersion above every published and installed buildLumaControl

Latest commits in the saved repository sample, including forks. Commit dates are not a live status feed.

Public repository record

Work, day by day.

14 Sept 2025 – 12 Sept 2026 · 569 sampled commits

2025-09-14: 7 sampled commits2025-09-15: 0 sampled commits2025-09-16: 0 sampled commits2025-09-17: 2 sampled commits2025-09-18: 0 sampled commits2025-09-19: 0 sampled commits2025-09-20: 0 sampled commits2025-09-21: 0 sampled commits2025-09-22: 0 sampled commits2025-09-23: 0 sampled commits2025-09-24: 0 sampled commits2025-09-25: 0 sampled commits2025-09-26: 0 sampled commits2025-09-27: 0 sampled commits2025-09-28: 0 sampled commits2025-09-29: 0 sampled commits2025-09-30: 0 sampled commits2025-10-01: 0 sampled commits2025-10-02: 0 sampled commits2025-10-03: 0 sampled commits2025-10-04: 0 sampled commits2025-10-05: 0 sampled commits2025-10-06: 0 sampled commits2025-10-07: 0 sampled commits2025-10-08: 0 sampled commits2025-10-09: 0 sampled commits2025-10-10: 0 sampled commits2025-10-11: 0 sampled commits2025-10-12: 0 sampled commits2025-10-13: 0 sampled commits2025-10-14: 0 sampled commits2025-10-15: 0 sampled commits2025-10-16: 0 sampled commits2025-10-17: 0 sampled commits2025-10-18: 1 sampled commits2025-10-19: 0 sampled commits2025-10-20: 7 sampled commits2025-10-21: 0 sampled commits2025-10-22: 0 sampled commits2025-10-23: 0 sampled commits2025-10-24: 0 sampled commits2025-10-25: 0 sampled commits2025-10-26: 0 sampled commits2025-10-27: 0 sampled commits2025-10-28: 0 sampled commits2025-10-29: 0 sampled commits2025-10-30: 0 sampled commits2025-10-31: 0 sampled commits2025-11-01: 0 sampled commits2025-11-02: 0 sampled commits2025-11-03: 0 sampled commits2025-11-04: 0 sampled commits2025-11-05: 0 sampled commits2025-11-06: 0 sampled commits2025-11-07: 0 sampled commits2025-11-08: 0 sampled commits2025-11-09: 0 sampled commits2025-11-10: 0 sampled commits2025-11-11: 0 sampled commits2025-11-12: 0 sampled commits2025-11-13: 0 sampled commits2025-11-14: 0 sampled commits2025-11-15: 0 sampled commits2025-11-16: 3 sampled commits2025-11-17: 0 sampled commits2025-11-18: 0 sampled commits2025-11-19: 0 sampled commits2025-11-20: 0 sampled commits2025-11-21: 0 sampled commits2025-11-22: 0 sampled commits2025-11-23: 0 sampled commits2025-11-24: 0 sampled commits2025-11-25: 0 sampled commits2025-11-26: 0 sampled commits2025-11-27: 0 sampled commits2025-11-28: 0 sampled commits2025-11-29: 0 sampled commits2025-11-30: 0 sampled commits2025-12-01: 0 sampled commits2025-12-02: 0 sampled commits2025-12-03: 0 sampled commits2025-12-04: 1 sampled commits2025-12-05: 0 sampled commits2025-12-06: 0 sampled commits2025-12-07: 0 sampled commits2025-12-08: 0 sampled commits2025-12-09: 0 sampled commits2025-12-10: 0 sampled commits2025-12-11: 0 sampled commits2025-12-12: 0 sampled commits2025-12-13: 0 sampled commits2025-12-14: 0 sampled commits2025-12-15: 0 sampled commits2025-12-16: 0 sampled commits2025-12-17: 0 sampled commits2025-12-18: 1 sampled commits2025-12-19: 0 sampled commits2025-12-20: 0 sampled commits2025-12-21: 0 sampled commits2025-12-22: 0 sampled commits2025-12-23: 1 sampled commits2025-12-24: 1 sampled commits2025-12-25: 0 sampled commits2025-12-26: 0 sampled commits2025-12-27: 0 sampled commits2025-12-28: 0 sampled commits2025-12-29: 1 sampled commits2025-12-30: 0 sampled commits2025-12-31: 0 sampled commits2026-01-01: 0 sampled commits2026-01-02: 0 sampled commits2026-01-03: 0 sampled commits2026-01-04: 1 sampled commits2026-01-05: 0 sampled commits2026-01-06: 0 sampled commits2026-01-07: 0 sampled commits2026-01-08: 0 sampled commits2026-01-09: 3 sampled commits2026-01-10: 2 sampled commits2026-01-11: 0 sampled commits2026-01-12: 1 sampled commits2026-01-13: 0 sampled commits2026-01-14: 0 sampled commits2026-01-15: 1 sampled commits2026-01-16: 0 sampled commits2026-01-17: 0 sampled commits2026-01-18: 0 sampled commits2026-01-19: 0 sampled commits2026-01-20: 5 sampled commits2026-01-21: 3 sampled commits2026-01-22: 4 sampled commits2026-01-23: 8 sampled commits2026-01-24: 6 sampled commits2026-01-25: 0 sampled commits2026-01-26: 4 sampled commits2026-01-27: 10 sampled commits2026-01-28: 0 sampled commits2026-01-29: 1 sampled commits2026-01-30: 3 sampled commits2026-01-31: 0 sampled commits2026-02-01: 6 sampled commits2026-02-02: 0 sampled commits2026-02-03: 2 sampled commits2026-02-04: 14 sampled commits2026-02-05: 0 sampled commits2026-02-06: 0 sampled commits2026-02-07: 0 sampled commits2026-02-08: 0 sampled commits2026-02-09: 1 sampled commits2026-02-10: 0 sampled commits2026-02-11: 1 sampled commits2026-02-12: 7 sampled commits2026-02-13: 3 sampled commits2026-02-14: 4 sampled commits2026-02-15: 8 sampled commits2026-02-16: 0 sampled commits2026-02-17: 1 sampled commits2026-02-18: 11 sampled commits2026-02-19: 5 sampled commits2026-02-20: 0 sampled commits2026-02-21: 1 sampled commits2026-02-22: 0 sampled commits2026-02-23: 0 sampled commits2026-02-24: 0 sampled commits2026-02-25: 0 sampled commits2026-02-26: 4 sampled commits2026-02-27: 2 sampled commits2026-02-28: 10 sampled commits2026-03-01: 0 sampled commits2026-03-02: 0 sampled commits2026-03-03: 0 sampled commits2026-03-04: 0 sampled commits2026-03-05: 0 sampled commits2026-03-06: 0 sampled commits2026-03-07: 0 sampled commits2026-03-08: 1 sampled commits2026-03-09: 1 sampled commits2026-03-10: 0 sampled commits2026-03-11: 0 sampled commits2026-03-12: 0 sampled commits2026-03-13: 0 sampled commits2026-03-14: 0 sampled commits2026-03-15: 0 sampled commits2026-03-16: 0 sampled commits2026-03-17: 0 sampled commits2026-03-18: 0 sampled commits2026-03-19: 0 sampled commits2026-03-20: 0 sampled commits2026-03-21: 0 sampled commits2026-03-22: 0 sampled commits2026-03-23: 1 sampled commits2026-03-24: 0 sampled commits2026-03-25: 0 sampled commits2026-03-26: 1 sampled commits2026-03-27: 0 sampled commits2026-03-28: 20 sampled commits2026-03-29: 1 sampled commits2026-03-30: 0 sampled commits2026-03-31: 2 sampled commits2026-04-01: 0 sampled commits2026-04-02: 0 sampled commits2026-04-03: 0 sampled commits2026-04-04: 2 sampled commits2026-04-05: 1 sampled commits2026-04-06: 10 sampled commits2026-04-07: 0 sampled commits2026-04-08: 3 sampled commits2026-04-09: 0 sampled commits2026-04-10: 0 sampled commits2026-04-11: 0 sampled commits2026-04-12: 0 sampled commits2026-04-13: 2 sampled commits2026-04-14: 0 sampled commits2026-04-15: 0 sampled commits2026-04-16: 0 sampled commits2026-04-17: 0 sampled commits2026-04-18: 0 sampled commits2026-04-19: 1 sampled commits2026-04-20: 0 sampled commits2026-04-21: 0 sampled commits2026-04-22: 0 sampled commits2026-04-23: 0 sampled commits2026-04-24: 0 sampled commits2026-04-25: 0 sampled commits2026-04-26: 0 sampled commits2026-04-27: 1 sampled commits2026-04-28: 5 sampled commits2026-04-29: 0 sampled commits2026-04-30: 0 sampled commits2026-05-01: 0 sampled commits2026-05-02: 0 sampled commits2026-05-03: 0 sampled commits2026-05-04: 0 sampled commits2026-05-05: 0 sampled commits2026-05-06: 0 sampled commits2026-05-07: 0 sampled commits2026-05-08: 0 sampled commits2026-05-09: 0 sampled commits2026-05-10: 0 sampled commits2026-05-11: 0 sampled commits2026-05-12: 0 sampled commits2026-05-13: 0 sampled commits2026-05-14: 5 sampled commits2026-05-15: 0 sampled commits2026-05-16: 0 sampled commits2026-05-17: 0 sampled commits2026-05-18: 0 sampled commits2026-05-19: 0 sampled commits2026-05-20: 0 sampled commits2026-05-21: 0 sampled commits2026-05-22: 0 sampled commits2026-05-23: 0 sampled commits2026-05-24: 0 sampled commits2026-05-25: 0 sampled commits2026-05-26: 0 sampled commits2026-05-27: 0 sampled commits2026-05-28: 0 sampled commits2026-05-29: 0 sampled commits2026-05-30: 0 sampled commits2026-05-31: 0 sampled commits2026-06-01: 0 sampled commits2026-06-02: 0 sampled commits2026-06-03: 0 sampled commits2026-06-04: 0 sampled commits2026-06-05: 0 sampled commits2026-06-06: 0 sampled commits2026-06-07: 0 sampled commits2026-06-08: 0 sampled commits2026-06-09: 0 sampled commits2026-06-10: 0 sampled commits2026-06-11: 0 sampled commits2026-06-12: 0 sampled commits2026-06-13: 0 sampled commits2026-06-14: 0 sampled commits2026-06-15: 0 sampled commits2026-06-16: 0 sampled commits2026-06-17: 0 sampled commits2026-06-18: 0 sampled commits2026-06-19: 0 sampled commits2026-06-20: 0 sampled commits2026-06-21: 0 sampled commits2026-06-22: 0 sampled commits2026-06-23: 0 sampled commits2026-06-24: 0 sampled commits2026-06-25: 0 sampled commits2026-06-26: 0 sampled commits2026-06-27: 0 sampled commits2026-06-28: 0 sampled commits2026-06-29: 0 sampled commits2026-06-30: 0 sampled commits2026-07-01: 0 sampled commits2026-07-02: 0 sampled commits2026-07-03: 0 sampled commits2026-07-04: 0 sampled commits2026-07-05: 0 sampled commits2026-07-06: 0 sampled commits2026-07-07: 0 sampled commits2026-07-08: 0 sampled commits2026-07-09: 0 sampled commits2026-07-10: 0 sampled commits2026-07-11: 0 sampled commits2026-07-12: 0 sampled commits2026-07-13: 0 sampled commits2026-07-14: 0 sampled commits2026-07-15: 0 sampled commits2026-07-16: 0 sampled commits2026-07-17: 0 sampled commits2026-07-18: 0 sampled commits2026-07-19: 0 sampled commits2026-07-20: 0 sampled commits2026-07-21: 2 sampled commits2026-07-22: 8 sampled commits2026-07-23: 2 sampled commits2026-07-24: 8 sampled commits2026-07-25: 2 sampled commits2026-07-26: 0 sampled commits2026-07-27: 3 sampled commits2026-07-28: 30 sampled commits2026-07-29: 20 sampled commits2026-07-30: 17 sampled commits2026-07-31: 2 sampled commits2026-08-01: 1 sampled commits2026-08-02: 0 sampled commits2026-08-03: 13 sampled commits2026-08-04: 8 sampled commits2026-08-05: 11 sampled commits2026-08-06: 2 sampled commits2026-08-07: 10 sampled commits2026-08-08: 1 sampled commits2026-08-09: 12 sampled commits2026-08-10: 2 sampled commits2026-08-11: 13 sampled commits2026-08-12: 2 sampled commits2026-08-13: 0 sampled commits2026-08-14: 10 sampled commits2026-08-15: 2 sampled commits2026-08-16: 0 sampled commits2026-08-17: 0 sampled commits2026-08-18: 13 sampled commits2026-08-19: 5 sampled commits2026-08-20: 17 sampled commits2026-08-21: 15 sampled commits2026-08-22: 11 sampled commits2026-08-23: 3 sampled commits2026-08-24: 0 sampled commits2026-08-25: 0 sampled commits2026-08-26: 0 sampled commits2026-08-27: 0 sampled commits2026-08-28: 0 sampled commits2026-08-29: 0 sampled commits2026-08-30: 0 sampled commits2026-08-31: 9 sampled commits2026-09-01: 1 sampled commits2026-09-02: 13 sampled commits2026-09-03: 3 sampled commits2026-09-04: 8 sampled commits2026-09-05: 4 sampled commits2026-09-06: 0 sampled commits2026-09-07: 0 sampled commits2026-09-08: 0 sampled commits2026-09-09: 0 sampled commits2026-09-10: 20 sampled commits2026-09-11: 18 sampled commits2026-09-12: 34 sampled commits
14 Sept 2025Less More12 Sept 2026

Frozen at the GitHub snapshot of 12 Sept 2026. Sampled repository commits, including fork history; not a complete contribution graph or a measure of personal output.

Read the monthly totals
Sept 2025
9
Oct 2025
8
Nov 2025
3
Dec 2025
5
Jan 2026
52
Feb 2026
80
Mar 2026
27
Apr 2026
25
May 2026
5
Jun 2026
0
Jul 2026
94
Aug 2026
160
Sept 2026
101
Material composition

Written in.

Share of code bytes across tracked repositories, including forks. Snapshot: 12 Sept 2026. Not time spent or proficiency.

  1. JavaScript48.5%
  2. Fluent20.1%
  3. C++16.4%
  4. Swift2.8%
  5. Python2.8%
  6. HTML1.9%
  7. SCSS1.8%
Remaining 19 languages
NSIS
1.2%
C#
1.1%
TypeScript
1.1%
Shell
1.1%
CSS
0.7%
Perl
0.2%
C
0.1%
XSLT
0.1%
Java
0.1%
PHP
<0.1%
Lua
<0.1%
Objective-C
<0.1%
Makefile
<0.1%
Batchfile
<0.1%
Rich Text Format
<0.1%
Dockerfile
<0.1%
PowerShell
<0.1%
VBScript
<0.1%
Nix
<0.1%

Service manuals.

All writing →
FIELD NOTE / 012 Sept 2026
Finding duplicates without hashing your whole disk

The naive way to find duplicate files is to hash everything and group by digest. It is correct, it is simple, and on a disk with a million files it will make you wait a very long time to learn that most of your files are not duplicates.

Read manual →
FIELD NOTE / 0323 Aug 2026
Modelling a split-flap display in the browser

A real split-flap display has no pixels. It has a stack of physical cards on a spindle, and a cell can only ever show the card currently at the front. To get from A to B, the mechanism does not fade or slide — it flips forward through every card in between.

Read manual →
FIELD NOTE / 0419 Aug 2026
The brightness range macOS won't show you

The brightness slider in macOS stops at 100%. On an XDR panel, 100% is not the ceiling — it is a convention. There is more light available, and macOS will let you reach it if you ask through the right private interface.

Read manual →
FIELD NOTE / 0514 Aug 2026
AI summaries that ask permission first

The default shape of an AI feature is a button that silently ships your document to a server. The default shape of a research workflow is a folder full of unpublished drafts, embargoed data, and things covered by an ethics approval.

Read manual →
FIELD NOTE / 064 Aug 2026
Turning YouTube channels into a private podcast feed

Podcast apps are the best audio player on your phone, and they will only talk to one thing: an RSS feed with enclosure links. That is the whole interface. If you can produce a valid feed and serve MP3s, you have a podcast — regardless of where the audio actually came from.

Read manual →
No purchase required

Take what you need.
See how it works.

Everything here links back to the real project and its public source. If a tool saved you an afternoon, you can support the next one.