First batch was bare PCB from jlcpcb.com and components from digikey. Handsoldered it. And it worked!! OMG, the JOY!! I highly recommend to do some simple own pcb design.
Then I did v2: STM32, ws2812b, tiny smt components. I used jlcpcb assembly service, complemented with some components they didn't have in their (limited!) smt library. Bringup of the first stm32 was a bit of a nightmare. I had missed pulling a boot0-pin low (~2 days wasted). A co-worker is madly in love with rust and made me write the whole code in Rust (2 weeks maybe, not "wasted" per se - but oh man can embedded rust be... a lot of fun... sometimes). Missed pullups on i2c lines. So much learning on version two.
Version three I tried to keep is simple. But also smaller. I had an idea to use 3.5mm audio cables for power and data. I thought SMD audio cable contacts would be rugged. I was wrong - they came off. I had bought a syringe with solder paste and one with flux. Totally recommend getting a flux syringe! So good! But that solder paste... I maybe didn't grok how to use it, but it did not reflow well enough to make the audio cable contacts stay put when used.
Got version four a couple of weeks ago. Doing pcbway.com with them doing the full smt and through hole soldering. This is how to do it! I do not at all understand why all are raving about jlcpcb.com - they have such a limited library. Why not make a proper pcb shop solder it all? It doesn't cost that much more. If time is a factor it is a lot cheaper. V4 feels like a winner - shipping them out to customers now.
I've also done some other boards during the lock down, such as control boards for RC cars in three versions, and three versions of an Ethernet connected microphone. I'm still on EasyEDA, but as mentioned I now let pcbway do soldering of everything.