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

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
The Last Watchdog
The Last Watchdog
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
A
Arctic Wolf
云风的 BLOG
云风的 BLOG
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
Spread Privacy
Spread Privacy
S
Schneier on Security
Project Zero
Project Zero
L
LINUX DO - 热门话题
M
MIT News - Artificial intelligence
F
Full Disclosure
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tailwind CSS Blog
K
Kaspersky official blog
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
Cisco Talos Blog
Cisco Talos Blog
S
Securelist
P
Privacy & Cybersecurity Law Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
V
Visual Studio Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Webroot Blog
Webroot Blog

Sid's Blog

Double Entry Programming | Sid's Blog The Newest Instagram "Exploit" is the Goofiest I've Seen Google's Antigravity Bait and Switch Agentic Coding is Burning Me Out No, I Won't Download Your App. The Web Version is A-OK. The 667MHz Machine | Sid's Blog Never Buy A .online Domain Accelerated FOMO in the Age of AI ai;dr | Sid's Blog App Store Review Feels Like RNG, and That’s the Problem Welcome to the Machine | Sid's Blog
An Audience of One: Cutting Corners on Unscalable Personal Software
2026-04-16 · via Sid's Blog

Quite a few software ideas I've built in the last decade have had one user in mind: my wife. Feeling unsafe traveling alone? App. Reddit annoying her? App. Her music students struggling to identify tones by ear? Believe it or not, app.

Choosing what to build used to require a strict ROI calculation, simply because shipping required so much grunt work. Pre-AI, building custom tooling meant losing entire weekends to boilerplate code. With LLMs, the friction between "wouldn't it be cool if..." and a deployed app has collapsed. It's vastly simpler, decidedly less tedious, and an excellent source of spousal brownie points.

Building for such a singular use case gives you massive leeway. Think of the following as options for your unscalable playbook. If you are trying to ship a weekend build as fast as possible, these are some liberties you should be investigating for your specific usecase.

tl;dr

Every complex decision you make before your first user is just procrastination disguised as proactive engineering.

Keep the Architecture Dead Simple

You don't have to go with highly available, edge-routed, event-driven microservices with multi-AZ fault tolerance. Premature optimization is the fastest way to kill the momentum of a weekend project. A boring monolith paired with a boring data store will do for the first pass.

Every additional service you spin up is just another thing you will inevitably have to troubleshoot on a Sunday afternoon when you'd rather be doing anything else. A straightforward app + db combo will run happily for years. You don't have a strict SLA to maintain, and a system outage just means someone yelling from the kitchen that the app is wonky. Keep the architecture super boring so you can actually finish and ship.

There is a time and a place to be an architecture astronaut (when you're planning for a promotion and you need the packet to glow!) but this is not it.

Don't Be a Schema Purist

It's easy to get nerd-sniped into an elaborate, relationally correct, properly normalized schema. Don't let the ghost of Edgar F. Codd shame you into it though! Great velocity can be found in keeping the schema as flat as possible and not worrying too much about data duplication.

For instance, an attendance tracker I've built for my wife has its student roster hardcoded as a simple array into the codebase. Her roster is stable enough that updating a hardcoded array every few months is perfectly fine. Plus, you completely bypass the need to write JOINs or make unnecessary DB queries just to show a dropdown list. Sometimes the best schema is no schema at all.

Store Data in a File (if it Makes Sense)

Taking the "flat schema" philosophy to its logical conclusion: do you even need a database process running at all? If your concurrent user count is exactly one, you don't need to worry about connection pooling, or complex transaction rollbacks.

For many of these single-user utilities, just reading and writing to a .sqlite file is more than enough, or to .json if you're feeling adventurous. It eliminates the overhead of managing a separate database instance, keeps the entire project highly portable, and makes your backup strategy as simple as a cron job that copies a file.

Design Only for the Target Device

Instead of watering down your design to handle a dozen responsive breakpoints and cross-platform quirks, you get to make it pixel perfect for exactly one viewport. If she uses an iPhone, make it feel like a premium, bespoke experience on that specific screen resolution, and ignore the rest until the need arises.

You also get to skip the administrative fluff. You don't need to build out complex settings pages or preference toggles. If a value needs to change, you just update a constant in the codebase.

Having a single user is not a license to ship a garbage interface and skip the polish though. It means you can afford to go deep instead of broad.

Spicy Take: Own the Box, Skip the Auth

Grabbing a $5 VPS, or repurposing a Raspberry Pi, and tossing something like Coolify on it means you get the convenience of a modern PaaS deployment pipeline without being tied to a specific cloud vendor. You just have a box that quietly runs your Docker containers forever.

Because you actually control the host in this setup, it opens the door to my favorite hack-y shortcut: skipping the auth layer entirely. Building a robust authentication pipeline with JWTs, OAuth, and session cookies is simply overkill when you only have a single user.

Instead of writing, or importing, auth code, just drop the app onto your Tailscale network. The mesh network itself becomes your auth layer. You get access control without building a login screen or managing user states. If a device isn't securely authenticated onto your personal mesh, the application simply doesn't exist to them.

Just Ship It

If she loves the product so much that she gushes about it to her friends, and suddenly you have half the neighborhood asking for access to your Tailscale network, congratulations. You have successfully acquired a "good problem to have."

You can rewrite it in Rust and deploy it to a Kubernetes cluster then. Until that day comes, resist the urge to cosplay for scale. Just build the app, claim your brownie points, and enjoy your weekend.


If you've reached this far, thank you for reading! :)

I thought multiple exits and retiring in my mid 30s would be fun but I've just been bored and depressed without morning Slacks and emails to wake up to. If you’re building something interesting and could use an extra set of hands to ship, or just want to say hi, feel free to reach out. My inbox is open.