Love2D Launcher

The Love2D engine running natively on iPhone and iPad

Visit Website
September 9, 2026 13 apps on the App Store, 6 purchases total. The only thing people paid for was the tool we built for ourselves.

We started building at the end of 2025 and the first apps went live in March. Here are the first six months on the App Store, with the numbers I can actually verify.

Thirteen apps live. One is tied to a local event and does not really belong in the count, so call it twelve. 644 downloads across all of them. Six purchases. Total customer spend $33.29, of which $21.44 reached us after Apple's commission and taxes. One of those six purchases was refunded last month, so the portfolio's revenue for the last thirty days is minus $8.99.

Eight more apps were started and never shipped.

I run a small software and AI company in Italy. These apps are not the business. They are where we test how we work. Worth saying, or the numbers look like a company failing rather than what they are, which is six months of experiments with the receipts attached.

Where the money actually came from

Of that $21.44, $16.46 came from one app: a LÖVE runtime for iPhone and iPad that my business partner Mattia built because he wanted to work on his own game projects from an iPad. It has 350 of the 644 downloads and four of the six purchases.

We did not build it for a market. We built it because the thing we wanted did not exist. It is the only thing anyone has paid for in any real way. The other apps, the ones designed with a user in mind, produced $4.98 between them.

One of those deserves a paragraph, because it complicates the lesson.

I have loved the soroban for years. I own one, I learned to use it, and the part that interests me most is anzan, doing the calculation with no abacus at all once the thing has moved into your head. I had wanted to build something around it for a long time and never did, because it was never worth the time or the money it would have cost. Last year it became cheap enough to build, so I built it. It is not really a game. It is an attempt to keep a way of calculating alive for whoever wants it.

It has 75 downloads and it has earned nothing.

So "build for yourself" is not the lesson, and I want to be careful here. Both of those apps were built for ourselves. The difference is that one was a tool other people needed in order to do their own work, and the other is something I love. Only the first kind sold.

The two purchases that changed how I think about this

Two of the six were not unlocks. They were tips. One app has an optional $2.99 button that gives you nothing back: no feature, no removed limit. Somebody in Brazil pressed it. Somebody in Denmark pressed the equivalent button in a different app.

Those two apps have sixteen and fourteen downloads.

I have no way to reach either person and no idea what they liked. But two strangers on two continents chose to pay for nothing, on apps almost nobody has opened, and that has stayed with me more than the bigger numbers did.

The update beat the launch

Every launch we did produced a flat line. On the ninth of August we shipped version 1.1.0 of the runtime and it did around 105 downloads in a single day against a baseline of a handful. Over the first twenty days of August that one app did 172 downloads, up 192 percent on the previous period.

Nothing else we have done ever moved like that. Not one launch. We spent these months making new apps while the evidence, which arrived late, says we should have been improving the ones we had.

John

The part I actually wanted to write.

John was our student. Mattia and I both teach. He gave it everything and he failed at the coding. What was obvious was that his head worked. He stayed calm with clients who made everyone else lose their temper, and he tested software better than the people who had written it. So he became our project manager and that seemed to be that.

Then he came back to it. Not because a tool showed up. We talk a lot, and over the years I have been assembling a way of thinking out of philosophy and using it on ordinary work problems, and he got curious about it. It bothered him that he had failed. He tried again with a different way of approaching the problem.

He has since shipped two LÖVE games and is building a native iOS app.

He still writes messy code and he does not always recognise a technical error when he is looking straight at it. Last week he built a salary field that cheerfully accepts letters. He laughed and fixed it.

The design and the architecture, though, are strong, because that is where the method does its work. It lives in the codebase as a skill, so it is present while he works instead of being something he read once. And he is internalising it. Today he explained to me, without being asked, why splitting the app across more files had made everything cleaner. Nobody prompted that.

The tooling did not make John a developer. It took the syntax out from between him and something he had already worked out. Those are different claims and only the second one is true.

What I would do differently

Not let myself get greedy. What these numbers do not show is that I chased too many ideas at once, because each one looked doable. With AI almost all of them are, and that is exactly the problem.

Start from the apps and games I actually want, and look after them. Speed is not the point. The point is being sure enough before publishing: not a day, not a year.

Fewer things, yes. But fewer because they are the ones I care about, not out of discipline.

With the last two I am already working this way. One of them I built on holiday from my phone, firing off tasks in the dead moments while I was with my kids and testing it straight after. One day on a trip to Ravenna I ended up using it for real, which taught me more than any planning had. Another started while I was doing a sudoku on my e-reader at a campsite and I thought I might as well put Kakuro, Binary and Hashi in it too.

And on charging for things I got it wrong, in some cases. I am changing that now.

The obvious objection, before someone else makes it

Six purchases is not a sample. Two of these apps have been live for two weeks. Everything above is a story told over numbers too small to carry it, and I know that. I am publishing it anyway because I could not find many people publishing theirs at this size.

If you have shipped a lot and sold almost nothing, I would like to know what you changed and whether it worked.

(My English is not good enough to have written this alone, so I had help with it.)

4 Comments

  1. 1
    The strongest signal isn't “built for ourselves,” it's that other people needed the same capability to do their own work. Have you found a repeatable way to distinguish that before spending months building?
    1. 1
      Honestly, no. I understood it afterwards, not before. But there was something in my own history that I should have read and did not. I have wanted something around the soroban for years and nothing existed that came close. I read that as an opening. It was the opposite: nothing existed because nobody was stuck without it. That does not make it a mistake. It is the app I am most attached to and I would build it again. It just was never going to sell, and I could have known. Coding on iPad is a different story. I have used those tools for over a decade, back when Codea was still called Codify, and I was a Pythonista beta tester some years ago. So there was already a crowd paying money and putting up with limits just to write code on a tablet. Mattia was one of them. When we could not find anything good enough for Love2D, he said let's build it for ourselves, and it turned out to be for other people too. The test I was using was "does a good solution already exist". It is useless: for the soroban the answer was no, for the iPad the answer was no, and the two went opposite ways. The question that actually separates them is whether people are already spending money and patience on the imperfect version. Nobody was, for the soroban. An entire niche had been, for ten years, on the iPad. And I could have asked that before writing a line of code. Dewey would say experience is what teaches, and he is right about how we got here. We built, we shipped, we got it wrong, we released again. The mistakes in the post are all there. Whether I have actually learned to see it in advance, I do not know yet. I am trying to apply it to the last two apps and to the ones still in development. Ask me again after the next one.
      1. 1
        That “already spending money and patience” distinction is a strong one. I’d be interested in following how you apply it to the next apps. If you’re open to it, what’s the best email to reach you on?
        1. 1
          Thanks, glad it was useful. I would rather keep this here. The reason I published the numbers at all is that I could not find anyone doing it at this size, so whatever comes next belongs where other people can read it too. The next write-up will sit on the product page of whichever app it is about, not this one, so the simplest thing is that I come back and drop the link in this thread. Everything I post shows up on my profile here as well. And since you are working on the same question from the other side: how do you approach it before there are any receipts to look at? My distinction only works in hindsight, on products that already exist. Yours has to work before that.

About

We use Love2D for game experiments and wanted to run them on iPhone and iPad without hacks. So we compiled the full engine for iOS and added a Lua editor, a Git client and an on-device AI assistant.