The situation
Lucky Kids is Techcrowd’s own product rather than client work, aimed at parents of small children: what’s on nearby, what’s worth seeing, what to do in a place you’re about to travel to. A design had been sitting in Figma for a while, and the brief was blunt — get a first version in front of real people, fast and cheap.
That made it the rare comfortable greenfield. The screens already existed. What didn’t exist was anything behind them.
What I did
I built the API on Laravel 12 and put both development and production on Laravel Cloud, which had only just launched. Postgres for the database, chosen because Laravel Cloud could hibernate it — nobody using the app means the server sleeps and the bill stops. On a first version that has to be cheap, no administration and a cost that falls to nearly nothing between demos is worth more than the control you give up.
Two junior developers worked with me, neither with much experience behind them, both leaning on Cursor. That changed what my job was. Most of my time went into the analysis, writing Jira tickets precise enough to be picked up without me, taking the harder tasks myself and reviewing everything that came back. The most useful thing I did was design one API pattern simple enough that they could build the rest of the app by repeating it. A pattern a junior copies correctly beats a clever one they’d copy wrong.
Tests covered the API from the first endpoint, for a reason beyond the usual one: on a project where two people are learning as they go, the suite is what tells them they’ve broken something before I do. The documentation came out of dedoc/scramble, generated from static analysis, so it couldn’t drift away from the code the way a hand-written document would have on a project moving this fast.
The places and events came from a data-mining service one of the juniors built with AI. It was written in .NET, it wasn’t mine, and the quality of what it produced varied a lot from run to run. So I didn’t let the mobile app see it directly. The .NET side processes places and events, the Laravel API syncs them in on a schedule and serves its own copy. That kept the app stable while the source wasn’t, and it means the source can be replaced later without the app noticing.
How it went
The first version shipped and we presented it in the autumn. Development ran from the summer of 2025 to October, which is roughly what fast and cheap is supposed to look like. I moved to another project after the presentation, so I don’t know where it went next.
It was the first time I built an API on a green field against a brief that was already clear, and the first time most of my day went into planning and writing up work for other people rather than writing the code myself.
What I’d do differently
I’d have wanted the data mining inside Laravel — Prism was the library for it at the time — instead of in a .NET service I didn’t own. Not to take the work off the junior who built it, but because I couldn’t steer him through something I didn’t understand from the inside, and I should have taken more interest than I did.
Part of that wasn’t technical. I didn’t have enough standing in the company back then to make that argument and win it.