Writing a fully featured Bode plot app that would be comparable to a well made implementation like the in Keysight and Siglent scopes is far from trivial..
In addition, why would you spend time reinventing the wheel?
If you know you will need (as in: you will use it on regular basis) it, then you get a scope with Bode Plot. Or one that you can add that functionality later..
Only thing you need to decide if you are going to buy Keysight with a generator or Siglent (or similar) that works with internal (if the model has it) or external AWG from Siglent.
As a comparison, Siglent SDS2104X Plus costs as much as base DSOX1204G, also has built in Siggen, has larger bandwidth, much larger screen and many other characteristics Keysight doesn't have.. It is slightly different kind of scope but an valid alternative..
Bottom line, if it has to be DSOX1204* (for whatever reason) and if you will ever need Bode plot, you need to buy a DSOX1204G. Unlike Siglent, you cannot later buy AWG and enable it later...