Using Web Technologies For The Local User Interface

This is a rough concept for using web technologies for the local user interface, replacing the Swing-based user interface. The basic idea is this:

  • The user downloads the software
  • They start languagetool-standalone.jar
  • A local webserver is started on port 8080 (other ports are tried automatically if 8080 is used already)
  • The user's default web browser is started, showing http://localhost:8080, which looks a lot like today but with more features (set mother tongue, activate/deactivate rules, …)
  • When the user checks a text, the API running at http://localhost:8080 is used

No features would be lost compared to before, as there's still the server part running which can e.g. store configuration files or show an LT icon in the task bar. In other words, we're not limited by what Javascript can do. Privacy is as good as with the old stand-alone version, as no personal data leaves the user's computer.

What's good about this?

  • We'd be using the same technology for the stand-alone client and the web interface
  • By doing so, the interface at would become complete, features like rule configuration would be added
  • We'd be using technologies that are more widespread among developers than Swing is
  • It's easy to add a "remote" mode, where a different LT server is used instead of the local one (e.g. to take advantage of the ngram data which is available on, but usually not locally)

What's bad about this?

  • HTML + Javascript + CSS + server part is at least as complex as Swing
  • It's a lot of work


There's an incomplete prototype implementation, see page attachments. The main class to start is LocalWebAppConcept.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License