Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Embracing yak shaving

Embracing yak shaving

Yak shaving refers to the situation where you're working on a task, but you stop to start another task with the justification that it will “make the original job easier.” This can lead to starting yet another task to accomplish the second one, creating a cascade of work. While the term often carries a negative connotation—implying that one gets endlessly sidetracked and never completes the original task—yak shaving is not necessarily a bad thing.

The speaker, Minhee Hong, is an avid supporter of the fediverse, a decentralized social network. To fix personal inconveniences they encountered while using the fediverse, they started a chain reaction of creating several open source projects two years ago, including Hollo, Fedify, LogTape, Hackers' Pub, Upyo, Optique, and BotKit. What began as an attempt to solve a very minor inconvenience gradually resulted in the creation of various byproducts.

In this talk, the speaker reflects on the past two years to discuss the yak shaving spirit that became the driving force for numerous new open source projects, and will make the case that this approach can work for others as well.

Avatar for Hong Minhee (洪 民憙)

Hong Minhee (洪 民憙)

November 08, 2025
Tweet

More Decks by Hong Minhee (洪 民憙)

Other Decks in Programming

Transcript

  1. Embracing yak shaving A two-year journey starting from a small

    inconvenience Hong Minhee (洪⺠憙) hongminhee.org Community & Contribution
  2. Hong Minhee (洪⺠憙) Open source software engineer • Passionate advocate

    for the fediverse • Fedify: ActivityPub server framework • LogTape: Logging library for TypeScript • Optique: CLI parser for TypeScript • Hollo: Single-user fediverse server • Hackers' Pub: Social media for hackers About the speaker
  3. Simple task Need a tool Build the tool Need another

    tool Ever experienced this? The infinite loop of problem-solving
  4. Common perception • Unproductive • Time-wasting … but what if

    the byproducts become valuable? This talk explores how yak shaving led to 5+ open source projects over 2 years. Yak shaving A series of tasks that lead you further from your original goal
  5. Historical context The Korean language traditionally written using a mix

    of: • Hanja (漢字)—Chinese characters for meaning • Hangul (한글)—Korean alphabet for grammar and native words Similar to how Japanese use kanji + hiragana/katakana. Personal dilemma • 1990s: Still common in newspapers and books • Today: Young Koreans can’t read hanja! This created a personal dilemma: I prefer writing in mixed script for precision and aesthetics, but my audience can’t read it. Korean mixed script (國漢⽂混⽤體) Form of writing Korean that mixes the Korean alphabet and Chinese characters
  6. The challenge • Fediverse1: How to make this work on

    Mastodon? • Mastodon doesn’t support <ruby> tags 1. The fediverse (federated universe) is a network of interconnected social media servers, with Mastodon being the most popular platform. The <ruby> tag solution Making mixed script accessible 漢字 → 漢字 한 자 <ruby>漢字<rt>한자</rt></ruby>
  7. Patching Mastodon? • Unlikely to be merged upstream • Too

    niche for Western-centric project Self-hosting modified Mastodon? • Extremely resource-intensive • Maintenance nightmare for one person Building my own ActivityPub implementation! • Lightweight, only for single-user • Full control over features → Project Hollo begins! Exploring solutions
  8. Each solution created a new problem, leading to 5+ projects:

    Hollo (single-user ActivityPub server) → “ActivityPub is incredibly complex!” → Fedify (ActivityPub server framework) → “Need proper logging system!” → LogTape (Zero-dependency logging library) → “Need a combinatorial CLI parser!” → Optique (Type-safe CLI parser combinators) → “Need email sending abstraction!” → Upyo (Multi-provider email library) The domino effect The yak shaving chain reaction
  9. Fedify’s journey • Started: Personal framework for Hollo • June

    2024: Ghost adopts and funds development • October 2025: Sovereign Tech Fund awards €192,000 • Now powering multiple fediverse projects Community contributions • Mastodon PR #30897: <ruby> tag support (thanks to Emelia Smith) • Misskey PR #15117: <ruby> tag support • Benefiting Japanese, Chinese, and Korean users globally Unexpected success Beyond personal needs
  10. • Before 2023: Started wanting to write in mixed script

    • Late 2023: Began developing Hollo • Early 2024: Created Fedify • Mid 2024: Created LogTape • Mid 2024: Ghost invests in Fedify • Late 2024: Released the first version of Hollo • Mid 2025: Created Upyo and Optique • Late 2025: STF invests in Fedify Timeline Two years of productive yak shaving
  11. Write in Korean mixed script on the fediverse (finally achieved

    after 2 years!) • 5+ production-ready open source projects • €192,000 in funding • Thousands of users worldwide • Contributions to major projects (Mastodon, Misskey) • A thriving developer community Original goal Actual results Original goal vs. reality The beautiful irony Sometimes the journey creates more value than the destination! The lesson
  12. “Every good work of software starts by scratching a developer’s

    personal itch.” —Eric S. Raymond, The Cathedral and the Bazaar
  13. The principles • Start from real problems, not hypothetical or

    imagined needs • Complete each step—every detour becomes a finished project • Document and share—transform personal solutions into public goods • Embrace the process: The journey itself has value The paradox By accepting that you might never reach your original goal, you often achieve much more. Productive yak shaving Making detours valuable
  14. Don’t dismiss your frustrations. Don’t wait for others to solve

    them. Start scratching that itch. The open source ecosystem thrives on developers solving their own problems and sharing the solutions. Your turn Your small inconvenience: The seed of the open source project tomorrow
  15. Thank you! Hong Minhee (洪⺠憙) hongminhee.org Advertisement: Join Hackers’ Pub,

    the ActivityPub-enabled social media and blogging platform for software developers!