Creating an online interactive interface

I want to cloud deploy a dynamic interface on which I have multiple types of widgets for different parameters and where, upon the click of a button, I send a list of arguments to a certain function, after which it returns some output. This is the closest I can get to an online app without the Enterprise edition, I guess.

For example, imagine I’m adding two numbers. I could have the following interface, using Manipulate,

CloudDeploy(
 Manipulate(update;
  f(a,b),
  {a, 1, 100, 1},
  {b, 1, 100, 1},
  Button("Run", update = 1 - update),
  {{update, 0}, ControlType -> None},
  Initialization :> (f(x1_, x2_) := x1 + x2),
  TrackedSymbols :> {update},
  SynchronousUpdating -> False,
  ControlPlacement -> Left
  ))

enter image description here

However, when I add more widgets, the deployed version becomes slower and slower and I’d like to find a way around that. In the end, the main “hard-work” should only be solving the equation(s). Therefore, I could potentially build the interface with a different software and just send a list of arguments to my function f and run it in the Wolfram Cloud. Maybe using an API? I’m not familiar with these concepts, but perhaps you could help me achieve this in a relatively easier manner.

Note: Ideally, I would like to have the interface defined in Mathematica, rather than using something else like Python, WebGL or even CSS. Reason for this is that I’m simply more acquainted with Mathematica. Also, I’m aware of this unanswered question, but mine differs from it due to the fact that I’m considering building the interface on a different software. Any ideas?