I have been using R shiny, to help with some other researchers to do data analysis for a while. But I would like to use more options then available to R shiny. Can you advise any other alternatives that can generate web interfaces using R code?
There are a number of global options that affect Shiny's behavior. These can be set with (for example) options(shiny.trace=TRUE).
Details
shiny.launch.browserA boolean which controls the default behavior when an app is run. See runApp for more information.
shiny.portA port number that Shiny will listen on. See runApp for more information.
shiny.tracePrint messages sent between the R server and the web browser client to the R console. This is useful for debugging. Possible values are "send" (only print messages sent to the client), "recv" (only print messages received by the server), TRUE (print all messages), or FALSE (default; don't print any of these messages).
shiny.autoreloadIf TRUE when a Shiny app is launched, the app directory will be continually monitored for changes to files that have the extensions: r, htm, html, js, css, png, jpg, jpeg, gif. If any changes are detected, all connected Shiny sessions are reloaded. This allows for fast feedback loops when tweaking Shiny UI.
Since monitoring for changes is expensive (we simply poll for last modified times), this feature is intended only for development.
You can customize the file patterns Shiny will monitor by setting the shiny.autoreload.pattern option. For example, to monitor only ui.R:options(shiny.autoreload.pattern = glob2rx("ui.R"))
The default polling interval is 500 milliseconds. You can change this by setting e.g. options(shiny.autoreload.interval = 2000) (every two seconds).
shiny.reactlogIf TRUE, enable logging of reactive events, which can be viewed later with the showReactLog function. This incurs a substantial performance penalty and should not be used in production.
shiny.usecairoThis is used to disable graphical rendering by the Cairo package, if it is installed. See plotPNG for more information.
shiny.maxRequestSizeThis is a number which specifies the maximum web request size, which serves as a size limit for file uploads. If unset, the maximum request size defaults to 5MB.
shiny.suppressMissingContextErrorNormally, invoking a reactive outside of a reactive context (or isolate()) results in an error. If this is TRUE, don't error in these cases. This should only be used for debugging or demonstrations of reactivity at the console.
shiny.hostThe IP address that Shiny should listen on. See runApp for more information.
shiny.json.digitsThe number of digits to use when converting numbers to JSON format to send to the client web browser.
shiny.minifiedIf this is TRUE or unset (the default), then Shiny will use minified JavaScript (shiny.min.js). If FALSE, then Shiny will use the un-minified JavaScript (shiny.js); this can be useful during development.
shiny.errorThis can be a function which is called when an error occurs. For example, options(shiny.error=recover) will result a the debugger prompt when an error occurs.
shiny.table.classCSS class names to use for tables.
shiny.deprecation.messagesThis controls whether messages for deprecated functions in Shiny will be printed. See shinyDeprecated for more information.
shiny.fullstacktraceControls whether "pretty" or full stack traces are dumped to the console when errors occur during Shiny app execution. The default is FALSE (pretty stack traces).
shiny.stacktraceoffsetIf TRUE, then Shiny's printed stack traces will display srcrefs one line above their usual location. This is an arguably more intuitive arrangement for casual R users, as the name of a function appears next to the srcref where it is defined, rather than where it is currently being called from.
shiny.sanitize.errorsIf TRUE, then normal errors (i.e. errors not wrapped in safeError) won't show up in the app; a simple generic error message is printed instead (the error and strack trace printed to the console remain unchanged). The default is FALSE (unsanitized errors).If you want to sanitize errors in general, but you DO want a particular error e to get displayed to the user, then set this option to TRUE and use stop(safeError(e)) for errors you want the user to see.
shiny.testmodeIf TRUE, then enable features for testing Shiny applications. If FALSE (the default), do not enable those features.
As far as I know, there are no alternatives to shiny from within R. I came across this https://github.com/kcf-jackson/rjs in a talk in useR2018, you might find it useful. Depending on your use cases, you might also want to look up REST APIs. The plumber package https://www.rplumber.io is certainly useful if you decided to go down this road.