On a product like this the backend carries the weight: accounts and sessions, credits and payments, queueing long-running generation jobs so the app stays responsive, storing and serving large media files, and keeping one user's generations private to them.