Tradiční webové aplikace trpěly typickými nedostatky oproti klasickým desktopovým aplikacím:
komunikace klient-server byla vždy inicována ze strany klienta a to většinou akcí uživatele - klikem na odkaz, stiknem tlačítka...
většina operací (aplikační logiky) musela být na serveru (s drobnými výjimkami - validace vstupu, drobné změny v GUI...)
zvyšovalo to zátěž sítě a hlavně ztěžovalo práci
jsou starosti s nekompatibilitou interpretace HTML a zejména skriptů (i JavaScriptu) na různých platformách i prohlížečích.