Dear balena community and balena team,
I would like to discuss one use case and special setup I was thinking about and if that is possible with balena at the moment or not.
The general idea of me is to build a SaaS platform which allows the user to connect as many devices to his account much like with balena but with services, APIs and feature for a special use case which is not important for the overall request though.
So, the plan is to let anyone sign up at my website, download an image which he can write on a SD card or any medium he wants which he can use to power a RPi or anything else that is supported by balena.
They can technically add as many devices but at some specific limit maybe 5 devices I would want to let the user pay for the actual service per device.
The overall use case would be B2C and not B2B so there might be many users with just a few devices.
Now comes the first question, what would be the best flow and how is that doable with balena:
The user signs up, downloads an image, burns that to some storage and boots the device up.
The device has no relation to the customer so there must be either some login screen hosted by the device where the user needs to login to get that relation or somehow differently.
This could have the drawback that the setup for the user for multiple devices could be very time taking.
The user actively creates a new device on my platform, a special image preloaded with the device data is created only for that device, the user downloads, burns and boots up the device with it.
The relation is automatically there.
This would be technically possible if I use an undocumented API endpoint for which I create an issue on Github: API Register Device Endpoint · Issue #1517 · balena-io/docs · GitHub
This could include much overhead as I need to store those images for every single device and because of the size of those images need to clean them after some time.
Technically this would also have the advantage that I can direclty show a payment for on reaching the limit.
I create a separate application per customer where his devices live and via that I have direct relation and no image generation nor login screen is required.
The problem here is that I need to manage many git remotes where I need to push all changes although I only need technically on application on balena.
I would like to get some feedback for both approaches and which you think would be the best.
The second and most important question now is, how can I do this for so many user with the assumption that the service would be interesting for users that I do not end up paying for 1 million devices at balena but I only have very few paying customers.
Customers could signup to a huge count using the free account on my platform with just 4 devices maybe for which I pay certain amount on balena but dont generate any money on my side.
The use case is C2C and could be maybe used not only by technical people but also normal casual users if they are interested.
Of course there are things like only providing trial times to users or calculating this into the business plan but actually this can become very expensive.
I would look forward to any feedback also by the balena team how to approach that.