惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
H
Hacker News: Front Page
Stack Overflow Blog
Stack Overflow Blog
B
Blog
I
InfoQ
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
F
Full Disclosure
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
T
Tailwind CSS Blog
S
Secure Thoughts
P
Privacy International News Feed
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 最新话题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Cybersecurity and Infrastructure Security Agency CISA
Last Week in AI
Last Week in AI
W
WeLiveSecurity
Google Online Security Blog
Google Online Security Blog
P
Privacy & Cybersecurity Law Blog
D
DataBreaches.Net
Engineering at Meta
Engineering at Meta
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Project Zero
Project Zero
V2EX - 技术
V2EX - 技术
H
Heimdal Security Blog
博客园 - Franky
阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
H
Help Net Security
Martin Fowler
Martin Fowler
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
博客园 - 【当耐特】

Stonecharioteer on Tech

I Traced My Traffic Through a Home Tailscale Exit Node What Was I Reading Last? In Three Not-So-Easy Pieces Dogfooding Is Hard Code blocks in your books, finally GoForGo v0.9.0 Merrilin - We built an app to read books I use a Macbook now Data Structures & Algorithms - Preparing for Interviews Using a local DNS namespace for local service discovery Direction KOllector - Publishing KOReader Highlights gbt: branches touched in the last 24 hours A Soiree into Symbols in Ruby Some Smalltalk about Ruby Loops Ruby Blocks Returning from Ruby Blocks, Procs and Lambdas My Linux Laptop Finally Works: How Claude Helped Me Fix Years of Annoyances TIL: Watchexec - Modern File Watching for Development Workflows A Less Busy Mind GoForGo - Learn Go through live examples Migrating My Old Blog to Hugo with Claude The Qtile Window Manager: A Python-Powered Tiling Experience Read the RFCs that Built the Internet Py-x-Protobuf - Or How I Learned to Stop Worrying and Love Protocol Buffers Python Reverse a List New Beginnings Leaving ChainSafe Systems Screen Lock for Cinnamon Desktop using Zenity and Terminal Commands Crews Not Teams A System for Getting Better at LeetCode So Far So Rust Retrying HTTP Requests with Rust A Primer on Control Charts Learning Rust Explicit is Better than Implicit: Rust for Pythonistas Using Custom Delimiters in Jinja Templates TIL: Creating Fixed Length Iterables in Python Documentation Without Assumption Vagrant Python - A Reflection in 2022 Learning Golang No, A Virtual Machine Is Not Enough: Why Developers Need Native Linux Empathy in Tech For Those Who Came in Late A Weekend With PostgreSQL TIL: Gooey and Python Fire for Quick GUIs and CLIs TIL: 2ality - Dr. Axel Rauschmayer's JavaScript Blog TIL: MassDNS - High-Performance Bulk DNS Lookups TIL: Matomo Analytics, Google Tech Writing, Memory Programming, and NES TV Signals TIL: MontyDB - MongoDB Implemented in Python Returning to the Craft of Programming TIL: CPUFetch, OneFetch, and Learn CSS TIL: DNS Performance Testing and Pi-hole with Unbound TIL: Eli Bendersky's Blog, Awesome By Example, NoCoDB, and Martin Kleppmann TIL: CRDTs, Extreme HTTP Performance, and BYTEPATH Game TIL: AutoInvent, ASGI, Python Packaging, RAPIDS GPU Computing, and FlaskCon TIL: MangaDesk - Terminal Client for MangaDex TIL: McFly - Smart Shell History Search TIL: Siege Load Testing and Awesome FastAPI Resources TIL: Ventoy Bootable USB and Justniffer Network Analysis TIL: CLI Code Review, Git Split Diffs, and Internal Combustion Engine TIL: Benford's Law, Web Security Headers, Event Sourcing, and Mozilla Security Guidelines How to Write Documentation - The README.md File The Importance of Documentation TIL: NNgroup UX Research, SponsorBlock, and Labella Python Library TIL: The Little Book of Rust Macros and Rust Performance Book TIL: Git-Bug Distributed Issue Tracker and Omni Kubernetes Monitoring TIL: Zellij - Modern Terminal Multiplexer TIL: How Discord Handles 2.5 Million Concurrent Voice Users TIL: Volumio - The Audiophile Music Player TIL: Areopagitica - Milton's Defense of Free Speech TIL: Fast Node Manager, Zoxide Smart CD, Technical Writing, PyO3, and Qubes OS TIL: Slurm Workload Manager for HPC Clusters TIL: Data Visualization Guide and Oso Authorization Academy TIL: CORS Deep Dive, Piku Tiny PaaS, Rust Strings, and Deno Standard Library TIL: Raspberry Pi OS Development, Vim Beginner Guide, Password Management, and QueryBook TIL: uBlock Origin Performance Optimization on Firefox TIL: Breaking PostgreSQL at Scale and LeetCode Problem Patterns TIL: Awesome Tmux Resources for Terminal Multiplexing TIL: Grit - A Multitree-Based Personal Task Manager TIL: Lens 4.2 Kubernetes IDE, Shell Scripting Guide, and Dark HTTP Server Do The Job You Hate So You Won't Hate The Job You Love TIL: Innernet VPN Solution and NoteCalc Calculator App TIL: Argo CD for GitOps and Lens Kubernetes IDE TIL: Modern Rust CLI Tools - System Monitoring, HTTP Requests, and DNS TIL: tz - A Time Zone Helper Tool TIL: Distributed Systems Education, Fallacies, and Self-Hosted Internet Archiving TIL: Real-Time Voice Cloning Technology TIL: ChartMuseum for Helm, AMD's Corporate Journey, and Kubernetes Pod Scaling TIL: Docker and Kubernetes Tools - Whaler, Descheduler, and Dive TIL: Post-Mortem Collection, Terminal Plotting, and Technical Twitter TIL: Dark Mode Toggle Web Component by Google Chrome Labs TIL: Python eval(), exec(), and compile() Functions TIL: Camelot PDF Tables, PostgreSQL Row Level Security, Zerodha Varsity, and Write Yourself a Git TIL: fuser Command for Process and File Investigation TIL: i Hate Regex - The Ultimate Regex Cheat Sheet TIL: Dolt - Git for Data and Database Version Control TIL: x86 Assembly Programming and SafeEyes Break Reminder TIL: Comprehensive Distributed Systems Reading List TIL: Cosmopolitan C Library, Distributed Systems Book, High Performance Browser Networking, and Rust Roguelike Tutorial
Love's Labour Lost
2026-06-02 · via Stonecharioteer on Tech

We’ve been building Merrilin for a little under four months now, and we still do not know where it leads. I’m building it with Abinav, who writes at Lost Stoic. We started on Feb 7, and by day 90 there was already a post I meant to write and could not, because we were too busy building.

That is the strangest part of building something in the blind: you can love the work, believe in it deeply, and still have no light at the end of the tunnel. No proof that anyone will care enough, no proof that it will make money, no proof that the obsession is wise.

For me, it began a few years ago, when I told myself that the Kindle wasn’t good enough. I tried Moon Reader and it felt like something was missing. I tried Readera and KOReader after that, and that feeling never went away. At some point, my dissatisfaction stopped being a complaint and became a problem we could no longer ignore.

We have had a laundry list of features we wanted in an app that’s meant to empower someone who reads a lot. I read at nearly 800 WPM, perhaps faster if I’m in the zone. I do best when I’m not counting my reading really. I have a hate relationship with Goodreads. I want to move out of it.

We wanted EPUBs and PDFs in the same app without one feeling like an afterthought. We wanted progress, highlights, and bookmarks to sync across devices. We wanted offline reading and a version of the app that did not assume the cloud, or even a login. We wanted to ask questions of a book without being spoiled for what came later. We wanted code snippets and technical books to feel usable. None of these wants felt outrageous to us, which is perhaps why the absence of them bothered us for so long.

When we wrote the prototype, it did not look like the thing I had in my head. It was rough, unfinished, and obviously far from what we wanted. But we saw glimmers of what this could be, and that was enough to make us a little awestruck. Ira Glass once spoke about the gap between your taste and your ability, and I think that is part of what keeps you going as a beginner: your taste runs ahead of your abilities, but every now and then you catch sight of the thing you are trying to make. And that was the last day I used KOReader. I have not used it once since the first Android build of Merrilin was ready. I’d rather not read than read on another app now.

I have written before about how hard dogfooding can be when the thing you are building is still rough around the edges. It asks something of you. It slows you down. It irritates you in fresh and inventive ways. But it has been getting better. This week, I am reading The Bourne Identity on it, and Chip Huyen’s AI Engineering as well. I struggled to read Ludlum as a child; I was more into John Grisham back then, and I have started The Bourne Identity at least five times in the years since. I wanted to use this chance to finally read it. Perhaps one day, I’ll best the Malazan series too.

Reading progress for The Bourne Identity in Merrilin

That means more to me than any roadmap ever could.

Feature creep is a thing though, and we don’t want to turn Merrilin into Goodreads for now. We want to build the best reader app you can find, so much so that I bought the cheapest iPad I could find to do this. I don’t enjoy using an iPad. I can’t explain how much I prefer Android.

This is a labour of love. If you install Merrilin in the upcoming days and see a bug, know that I know about it and it annoys me more than I can ever explain. We don’t want to take your money if there are bugs that annoy us. We want this to be the best damned reader app you will ever use before we even think of asking people to pay for it.

Right now though, I don’t even know if this will make us any money. I am anxious about whether it will ever pay my rent, whether it will help keep my family afloat. Honestly, I would be happy just to break even on the cloud and AI costs. I think twice before paying the cloud bill, before assessing infra costs. I self-host our GitHub runner to save money. I do not even know what it means to approach a VC with something like this, or to say that we need sponsorships.

We’d still do it anyway, since this is a problem that has possessed us. It is the great problem we have chosen to tackle.

We love this app because we see what it can be. We aren’t setting out to make a Kindle competitor, we are making something that didn’t exist before. We wanted it to be an app to read on. You don’t even need to pay us or sign in, in fact. The app will sync your files between devices without a hiccup. We want to provide the best damned experience for syncing a library of files across devices without relying on Google Drive or Apple Cloud. Just over your local WiFi. That kind of thing matters to us because reading software should get out of the way, not make you negotiate with an ecosystem before you can open your own books.

And themes? We were tired of book apps playing second fiddle to coding IDEs. We have so many themes in VS Code that no other ebook app has. Which is why we decided to bundle all of them in.

Reading progress for AI Engineering by Chip Huyen in Merrilin

Ask me why I use the Red theme most of the time, I kid you not. I even use Merrilin when I am reading physical books, although that means buying the book twice: once as a physical copy, and once from ebooks.com so I can get the DRM free file. That is how I am reading The Emperor of All Maladies right now.

I have seen people tweet that they no longer fully read books, and instead just ask AI what a book contains. That is not what this is for me. This came from a need to read deeper, to understand books I would otherwise have struggled with. I do not know enough biology to read The Emperor of All Maladies effortlessly. And when I first prototyped this idea with ChatGPT in 2024, one of the things I kept asking about War and Peace was why the Russian aristocrats were speaking French.

Merrilin using the Red theme while reading The Emperor of All Maladies

I’ve said a lot but I haven’t said why we’re building this without funding, and without users paying us. To paraphrase Richard Hamming, this is the toughest problem we’ve chosen to solve. It’s our problem to solve, something we are deeply well-equipped to do. Both of us read, and have read for our entire lives, but I was always the more opinionated one when it came to reading apps. I could tell that reading apps were not written by people who used them as much as I did. That may be the simplest explanation for all of this: we always built Merrilin for ourselves first. I wanted to forge my own path, my own sword.

Maybe that is what this really is: building in the blind. You work because the work feels necessary. You keep going because you can see the thing in your head, even when you cannot see the market, the money, or the finish line.

We have seen enough in brief glimmers to know we cannot leave this problem to someone else.

It is and always will be a labour of love, although there is every chance this labour may yet be lost.