Just a quick fix: WL 11 doesn't like the two-stage form. You can make the app work again by changing the layout to a single form page. To do that, simply replace all code before the Module starts with the following:
CloudDeploy[FormFunction[{
{{"file", "Upload a VASP POSCAR or CONTCAR file here:"} -> <|
"Interpreter" -> "UploadedFile"|>}, {
{"sysdim", "Periodic repetitions"} -> <|
"Interpreter" ->
Restricted[
DelimitedSequence["Integer",
" " | "," | ";" | "/" | "x" | "X"], 3], "Input" -> "1x1x1"|>,
{"retractq", "Retract atoms to cell?"} -> <|
"Interpreter" -> "Boolean", "Input" -> False|>,
{"addq", "Add periodic duplicates of atoms?"} -> <|
"Interpreter" -> "Boolean", "Input" -> False|>,
{"atomrad", "Atom radius"} -> <|"Interpreter" -> "ComputedReal",
"Input" -> 0.4|>,
{"bonddist", "Maximum bond length"} -> <|
"Interpreter" -> "ComputedReal", "Input" -> 2.1|>,
{"monobond", "Want to pick your own bond color?"} -> <|
"Interpreter" -> "Boolean", "Input" -> False|>,
{"bondcol", "Bond color"} -> <|"Interpreter" -> "ComputedColor",
"Input" -> GrayLevel[.8]|>,
{"bondrad", "Bond radius"} -> <|"Interpreter" -> "ComputedReal",
"Input" -> 0.1|>,
{"linecol", "Cell outline color"} -> <|
"Interpreter" -> "ComputedColor", "Input" -> Black|>,
{"linerad", "Cell outline radius"} -> <|
"Interpreter" -> "ComputedReal", "Input" -> 0.02|>
}},
My initial motivation for the two-step process was to allow users to select a file once, plot the structure, then go back and change the layout without having to find their file again. (Since that can be a hassle on a phone in particular.) If anyone wants to play around with a solution that allows for that in WL 11, feel free to post here!