Six Principles I Settled on Before Writing Any Code

What kind of tool should this be?

Six Principles I Settled on Before Writing Any Code

I expected the first week of building Manasight to be about choosing frameworks and setting up a repo. Instead, I spent some of it answering questions that had nothing to do with code.

Should I use data from an existing community project to bootstrap features, or build my own data pipeline from scratch? Should game data collection be on or off by default? How much should a companion tool tell you what to do? Should I build for Windows first and port to Mac later? What should be free?

These aren't technical questions. They're questions about what kind of tool this should be. I'm writing them down because putting them into words forced me to think through them completely.

I touched on a few of these commitments in my first post. These are the six principles that guide every Manasight decision (and already have).


1. Integrity over progress

No one can take your integrity from you, but you can give it away. And once you do, you can never get it back.

— a mentor of mine, years ago

I'd rather be slow and honest than fast and compromised. I won't overstate what I have. I won't fabricate social proof. If a shortcut requires me to be someone I'm not, I won't take it.

This one got tested immediately. The MTG community has a well-known data project that's done years of work collecting and publishing draft data. That data is publicly available, and using it could give Manasight a head start on features like draft ratings.

But I didn't collect that data. Their users contributed it to their project, not mine. So I'm building my own data pipeline from scratch. It will take longer to reach useful scale. That's the trade-off, and I'm comfortable with it.

2. Your data, your choice

Game data collection will be on by default, because the tool works better with it — for the individual player and for the community. In regions where privacy law requires opt-in, I'll follow that standard. But wherever the choice is mine, the default is on — because better data means better tools for everyone.

Disabling collection will be obvious and easy, even from initial install. When you say "delete," your data gets removed. No games, no dark patterns, no hoping you'll forget.

The deal is transparency: collection is on because the tool is better with it, and off is never more than a click away because it's your data, not mine.

Example: You contribute a year of match data and decide to delete everything. That data powered your analytics and contributed to community-wide insights. I delete your data, even though it costs me. Anonymized aggregate statistics (a card's overall win rate computed across thousands of players) can't be traced back to you and stay in the system. But everything that's yours is gone. This principle only works if "your choice" means something when exercised.

3. Empower game decisions, never make them

Manasight is a player aid, not a brain replacement. I will never automate game decisions. I'll surface information, explain context, and teach the reasoning behind plays, but the player makes the call. I'll follow both the letter and spirit of Wizards of the Coast's guidance on what companion tools are allowed to do.

The way to know if I got this wrong: a player uses Manasight and stops learning. If the tool makes someone dependent instead of skilled, I failed. The goal is to build players whose skills outlast the app.

Example: A draft overlay could flash "PICK THIS" in green and "DON'T PICK" in red, reducing the decision to following orders. Instead, I'll show card performance data and context: what the card does in this archetype, how it compares to alternatives, what your deck needs. A player who uninstalls Manasight should draft better than before they installed it.

4. Leave the community better than I found it

I'll give away features that other tools charge for. Not as a loss leader, but because making the community better is the point. AI coding tools make this sustainable: a solo dev can ship what used to require a funded studio, so I can be generous without being reckless.

Premium features will fund the free tier, and those premium features will align with my other principles: teaching players, not replacing them. The players who never pay a dollar still make the community richer by contributing data, reporting bugs, and telling their friends. That's not charity. That's the model working.

Example: I'll open-source the log parser and publish the Arena log format as a community resource. Other developers building Arena tools shouldn't have to reverse-engineer what I've already figured out. A better ecosystem helps every player, not just the ones using my tool.

5. Every player, every platform

Players shouldn't be penalized for their device choice. I'll support Mac and Windows as equals from day one, and architect every component to minimize platform-specific footprints.

This is harder up front and slower to ship. But retrofitting platform support after the fact is always more expensive: in engineering time, in accumulated technical debt, and in the players you lost while they waited.

Example: When Manasight ships its first public build, a Mac player and a Windows player will download the same features on the same day. No "coming soon" asterisk.

6. Share the journey, not just the product

This is an indie dev project: one human and a team of AI coding assistants who never complain about the coffee or my dad jokes.

The story of building Manasight is part of what I'm offering. I'll share the thinking behind decisions, the problems I run into, and the lessons I learn. Not every line of code will be open-source and not every plan will be public, but the reasoning and the narrative will be.

I'll blog about why I chose specific technologies. If a feature ships late, I'll explain why — not as an apology, but because the setback is part of the story and someone else might learn from it. I won't publish proprietary implementation details or unannounced feature specs. Sharing the journey doesn't mean handing over the blueprints.

Why write these down?

These aren't rules. They're tie-breakers. When two reasonable paths exist, these principles break the tie. When a decision conflicts with one of them, that's a signal to pause and make sure the trade-off is deliberate, not accidental.

Next up: a deep dive into the MTG Arena log file. What it contains, what's undocumented, and what it means for anyone building tools on top of Arena.


I'm Tim. Subscribe to get new posts by email, or follow @manasightgg on Twitter.

Manasight is not affiliated with, endorsed by, or sponsored by Wizards of the Coast or Hasbro.