{"id":50411977,"url":"https://github.com/ryanbbrown/ryanbbrown","last_synced_at":"2026-05-31T04:02:56.006Z","repository":{"id":328086140,"uuid":"1114165642","full_name":"ryanbbrown/ryanbbrown","owner":"ryanbbrown","description":"Public readme","archived":false,"fork":false,"pushed_at":"2026-04-25T02:57:37.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-25T04:27:16.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanbbrown.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-11T01:56:06.000Z","updated_at":"2026-04-25T02:57:41.000Z","dependencies_parsed_at":"2026-02-25T06:02:28.023Z","dependency_job_id":null,"html_url":"https://github.com/ryanbbrown/ryanbbrown","commit_stats":null,"previous_names":["ryanbbrown/ryanbbrown"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ryanbbrown/ryanbbrown","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbbrown%2Fryanbbrown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbbrown%2Fryanbbrown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbbrown%2Fryanbbrown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbbrown%2Fryanbbrown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanbbrown","download_url":"https://codeload.github.com/ryanbbrown/ryanbbrown/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanbbrown%2Fryanbbrown/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33718449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T04:02:55.660Z","updated_at":"2026-05-31T04:02:55.987Z","avatar_url":"https://github.com/ryanbbrown.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hi, I'm Ryan 👋\n\n\u003e Shipping side projects at the intersection of AI, productivity, and my personal interests.\n\n![Python](https://img.shields.io/badge/-Python-3776AB?style=flat-square\u0026logo=python\u0026logoColor=white)\n![SQL](https://img.shields.io/badge/-SQL-4479A1?style=flat-square\u0026logo=postgresql\u0026logoColor=white)\n![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat-square\u0026logo=javascript\u0026logoColor=black)\n![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat-square\u0026logo=typescript\u0026logoColor=white)\n![Swift](https://img.shields.io/badge/-Swift-FA7343?style=flat-square\u0026logo=swift\u0026logoColor=white)\n\n## Current Projects\n- 🔗 [ThinHarness](https://github.com/ryanbbrown/thinharness): A minimal, opinionated agent harness — focused scope, readable core, easy to fork\n- 📝 [obsidian-drift](https://github.com/ryanbbrown/obsidian-drift): Native version control + accumulated IDE-like diff view for Obsidian (500+ downloads)\n- 🚪 [AI Gate](https://github.com/inulute/ai-gate): Contributor to an Electron app for using ChatGPT, Claude, and Gemini in parallel, tmux-style workspaces\n- 📚 [Kindle Storyteller](https://github.com/ryanbbrown/kindle-storyteller): iOS app for generating on-demand, live-syncing audiobook snippets using AI\n- 🎨 [revealjs-skill](https://github.com/ryanbbrown/revealjs-skill): Coding agent skill for making Reveal.js presentations\n- 🃏 [Web Deckbuilding](https://github.com/ryanbbrown/web-deckbuilding): Sandbox environment for deck-building games with support for live multiplayer\n- 🪟 [LLM Overlay](https://github.com/ryanbbrown/llm-overlay): Always-on-top mini window for Claude, Gemini, and Perplexity on macOS\n- 📸 [stylegen](https://github.com/ryanbbrown/stylegen): CLI for generating images with Gemini, supporting style references and parallel batch generation\n- 💪 [LastLift](https://github.com/ryanbbrown/lastlift): iOS app for tracking workout consistency across exercise groups, built with SwiftUI and SwiftData\n- 📬 [reader-notify](https://github.com/ryanbbrown/readwise-reader-feed-notifications): Cloudflare Worker that sends Pushover notifications for new Readwise Reader feed docs\n- 📑 [Chrome Tab Groups Exporter](https://github.com/ryanbbrown/chrome-tab-groups-exporter): Chrome extension to export and import tab groups as JSON\n\n## Latest Blog Posts\n- [Thoughts on the AI bubble](https://blog.ryanbbrown.com/p/thoughts-on-the-ai-bubble)\n- [AI will never master PowerPoint](https://blog.ryanbbrown.com/p/ai-will-never-master-powerpoint)\n- [I reverse-engineered Kindle to build on-demand AI audiobooks](https://blog.ryanbbrown.com/p/i-reverse-engineered-kindle-to-build)\n- [An LLM wiki won't change your life](https://blog.ryanbbrown.com/p/an-llm-wiki-wont-change-your-life)\n\n## Other\n- My [coding agent workflow](https://github.com/ryanbbrown/global-agent-context) is public and git-tracked. TLDR:\n  - My own [multi-review](https://github.com/ryanbbrown/global-agent-context/tree/main/plugins/personal/skills/multi-review) skill has Codex, Claude Code, and Factory Droid/DeepSeek review plans or implementations in parallel, then saves their feedback back into the repo.\n  - I also use my [interview](https://github.com/ryanbbrown/global-agent-context/tree/main/plugins/personal/skills/interview) skill to shape plans/specs, the [HTML artifact skills from f-labs-io](https://github.com/f-labs-io/agent-html-skills) for visual explanation, and Matt Pocock's [architecture skill](https://github.com/mattpocock/skills/tree/main/skills/engineering/improve-codebase-architecture) for refactoring and simplification.\n- I maintain a living set of things I believe in [OPINIONS.md](OPINIONS.md), inspired by [Kun Chen's post](https://blog.kunchenguid.com/p/everyone-should-have-an-opinionsmd).\n- [ryanbbrown.com](https://ryanbbrown.com) is my personal hub, including a full list of [tools I use](https://ryanbbrown.com/tools/) and a tracked [book list](https://ryanbbrown.com/books/).\n\n\u003c!--\n**ryanbbrown/ryanbbrown** is a ✨ _special_ ✨ repository because its `README.md` (this file) appears on your GitHub profile.\n\nHere are some ideas to get you started:\n\n- 🔭 I’m currently working on ...\n- 🌱 I’m currently learning ...\n- 👯 I’m looking to collaborate on ...\n- 🤔 I’m looking for help with ...\n- 💬 Ask me about ...\n- 📫 How to reach me: ...\n- 😄 Pronouns: ...\n- ⚡ Fun fact: ...\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanbbrown%2Fryanbbrown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanbbrown%2Fryanbbrown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanbbrown%2Fryanbbrown/lists"}