The Business Side Is the Hard Part: Setting Up a Solo Software Company
By Rob Chipman
I built a narrative engine with temporal state projection, an Aho-Corasick entity scanner, and a composable world-building system with 1,200+ Rust tests — in about six weeks.
Setting up the LLC took longer.
Not in calendar time. In frustration, wasted hours, and the specific despair of being rejected by a payment processor for reasons they won't explain. If you're a developer thinking about turning a side project into a real business, here's what nobody tells you.
The LLC
Ohio makes this easy, actually. Filed the Articles of Organization online, paid $99, had the certificate back the next day. Tiny Forest Labs, LLC — official as of March 3, 2026.
Then the spam started. Within a week, my wife was laughing at the official-looking mailers offering to "file my annual report" for $299 (Ohio doesn't require one) and "register my trademark" for $399 (I hadn't asked anyone to). America is so weird.
The bank account
I went with BlueVine for a business bank account. Applied, got approved, tried to transfer money in. Rejected.
No explanation. Just... rejected. The transfer bounced. I tried again. Rejected again. Eventually got it sorted, but the feeling of "I have an LLC and I can't put money in it" is a special kind of helpless.
The EIN
The IRS was actually fine. Applied for an EIN online, got it immediately. One form, five minutes, done. If every government agency worked like the IRS EIN application, I'd have no complaints. (I can't believe I just said something nice about the IRS.)
Apple Developer Program
This is where the real pain started.
Applied for the Apple Developer Program. Rejected. The enrollment page just said something was wrong with my information. No details about what. No way to fix it.
I assumed it was my phone number. Got a Google Voice number. Tried again. Rejected again.
The Apple Developer support experience: submit a ticket, wait days, get a form response, submit another ticket, wait more days. I couldn't find a phone number for developer support. (It exists — 1-800-633-2152, Mon-Fri 7am-5pm ET. Would've been nice to know earlier.)
Eventually it went through. The $99 charge went to my new business credit card, which Chase immediately flagged as fraud because Apple bills from Ireland. Called Chase. "Yes, that's me. Yes, I want to pay Apple. Yes, from Ireland. No, I'm not being scammed."
Then I needed a Developer ID Application certificate. Keychain Access, Certificate Signing Request, upload to Apple portal, download the .cer, import to keychain, export as .p12, base64-encode for GitHub secrets. If you've never done this before, it's about two hours of following instructions that assume you've done it before.
The code signing rabbit hole
macOS code signing is just the beginning. Windows needs its own certificate — and since June 2023, you can't just buy an OV cert as a file. The private key has to live on a hardware security module.
I spent a full evening researching the options. YubiKey: cheap one-time cost, but the USB stick has to be physically plugged in during CI builds — kills automated releases. SSL.com eSigner: cloud HSM, works in CI, but adds a monthly subscription on top of the cert cost. Azure Key Vault: cheapest long-term, well-documented for Tauri, but more setup.
Then I stopped and asked the real question: do I need Windows code signing for the alpha? My alpha testers can click through a SmartScreen warning. The answer was no. Ship unsigned on Windows. Add the cert for v1 when there's revenue to justify it.
Sometimes the best infrastructure decision is deciding you don't need the infrastructure yet.
The website and email stack
The marketing site needed to exist before I could apply to any payment processor. Vercel for hosting (free Hobby tier), Next.js for the framework, Zoho for the support@tinyforestlabs.com email, Resend for transactional emails on an updates.tinyforestlabs.com subdomain.
Each one is small. Domain registration, DNS configuration, email verification, SPF records, DKIM keys. None of it is hard. All of it is time. And every service has its own dashboard, its own verification flow, its own "check your email to confirm."
The costs creep. Individually they're nothing. Collectively — LLC filing, Apple Developer, domain, email services, eventually code signing and payment processing fees — you start to feel the weight of running a real business instead of just writing code.
LemonSqueezy said no
I needed a payment processor to handle subscriptions. LemonSqueezy looked perfect — merchant of record, handles tax compliance globally, license key generation, good docs.
Applied. Rejected.
"After reviewing the information in your application and any extra information you supplied, unfortunately, we cannot approve your store application for Lemon Squeezy."
No specific reason. "Multiple data points." New LLC, no revenue, desktop software — apparently too risky for their payment processors.
Paddle said yes (eventually)
Pivoted to Paddle. Same merchant-of-record model, more established, explicitly supports desktop software.
Applied. Got provisionally approved. Then: "We need more information about your business." Government-issued business registration documents. Shareholder ownership breakdown.
The Ohio Articles of Organization don't list owners — that's normal for LLCs. Had to write a one-page letter stating I'm the sole member with 100% ownership, sign it, and upload it alongside the state filing.
Then they needed a 30-day money-back guarantee in the refund policy. Rewrote the policy, pushed to the site, waited for verification.
The domain review required Terms of Service, Privacy Policy, and Refund Policy accessible from the site footer. I'd just finished generating the ToS through Termly at 10pm the night before. The refund policy went live 20 minutes before I submitted the Paddle application.
The Terms of Service generator
Termly's ToS generator is thorough. It's also clearly designed for ecommerce companies selling physical products. Questions about "return shipping" and "how many days to postmark the return package" don't quite apply to a desktop software subscription.
I answered "Not applicable — digital subscription" in a text field meant for return shipping instructions and moved on. It works. It's not pretty. A lawyer will review it before v1.
The business credit card
Applied for a Chase business credit card. Approved with a modest limit — expected for a brand-new LLC with no business credit history.
The card's first job: pay Apple. Which got flagged as fraud. Which required a phone call. At 11pm.
What I'd tell someone starting this
It takes longer than you think. Not because any single step is hard. Because there are twenty steps, each one requires waiting for approval from a different organization, and several of them will reject you the first time.
Have the documents ready before you need them. Articles of Organization, EIN letter, ownership statement, government ID. Every service asks for roughly the same things. Have them in a folder.
Your first payment processor might say no. Have a backup plan. I went LemonSqueezy → Paddle. If Paddle had rejected me, Stripe was the fallback. Don't build your entire billing architecture around one provider before they've approved you.
Budget for the paperwork. The actual dollar costs are small — a few hundred total for LLC filing, developer program, domain. The time cost of navigating bureaucracy is enormous.
Think about your address. Your LLC registration is public record. Your Terms of Service need a contact address. I skipped the PO Box to save cost and because the LLC filing already has my home address on public record anyway. At zero subscribers, the stalker budget is better spent elsewhere. I might regret this decision later. If you're more private than me, get a PO Box or virtual mailbox before you publish anything.
Your wife will have good ideas. Mine suggested the business credit card (correct), questioned the pricing model (correct), and recommended wearing an AxiomWeaver shirt to an author event (not yet tested but probably correct). Listen to the spouse.
It's done now
The LLC is formed. The bank account works. Apple approved the developer account. Paddle is processing verification. The credit card is active. The ToS, Privacy Policy, and Refund Policy are live. Code signing certificates are in GitHub secrets.
None of this is what I wanted to spend my time on. I wanted to build a writing tool. But the business infrastructure is a one-time cost — most of these things I'll never have to do again.
Now I get to go back to the part I'm actually good at: building the thing.
If you're a solo developer in the middle of this hell — it ends. Ship the product. The paperwork is temporary. The software is what matters.