Projector

Run JetBrains IDEs and Swing apps remotely over the network.

Swing is a graphical widget toolkit for Java. Current JetBrains IDEs use Swing to draw the UI. The same is true for other IntelliJ-based apps, like Android Studio.

Projector is a self-hosted technology that runs IntelliJ-based IDEs and Swing-based apps on the server, allowing you access to them from anywhere using browsers and native apps.

Projector in Action

IntelliJ IDEA Community Edition running in Safari web browser on macOS.

Use cases

Run code near the runtime or database to reduce roundtrips.

High-security zones and corporate environments.

Really huge projects.

No source code on laptops.

Slow or hot users laptops.

Thin clients and cheap hardware like Android tablets.

Run the IDE in a GNU/Linux environment on Windows machines or even on exotic operating systems like ChromeOS.

Turn off your computer, while your app continues to work on the server.

Slow internet connection.

Remote debugging on server-side (devtest, devprod).

VM or Docker images with debug sources and a pre-configured IDE.

A configuration that requires remote access.

Client Apps

Web Client

You can use a web browser to connect to the IDE. The experience is very similar to using any interactive website. You can enter fullscreen mode in your browser to achieve a desktop-like experience.

It's implemented using HTML5 Canvas API and should work in every compatible browser. It is tested against Chrome/Chromium, Firefox, and Safari.

Native App

You can use a native application for Mac, Windows, and Linux. Aside from the expected benefits like Dock/Taskbar integration, this app can handle keyboard shortcuts such as Ctrl+W, which are usually unavailable in the browser client.

It's implemented using the Electron framework: the same web interface but wrapped in native windows and OS-specific functions. It's the same idea behind modern versions of Slack, Discord, Skype, and so on.

Server Side

Python Installation Script

There is a flexible way to install server-side components using our installation script. This is a standalone distribution and it's currently available for GNU/Linux hosts only. You can pick which IDE you want to use, its version, security options, and so on.

Docker Images

The easiest way to run Projector in a cloud environment is Docker. We have a sample script that allows you to generate Docker images containing JetBrains IDEs and Projector. This lets you run the IDEs anywhere that Docker is available. The IDE will be run headlessly and isolated, and you don't have to install X11 on this server. The image is self-contained.

Please note that there are no pre-built public DockerHub images yet, but we're working on it.

IDE Plugin

You can install the plugin directly into your IDE without having to deploy server-side elements to a separate server. With this plugin, your device is the server. As always, you can find the source code on GitHub.

However, the plugin is much less isolated, which means you may encounter interactions with the operating system. For example, we can’t render the global menu on macOS.

Do It Yourself

Projector is a technology rather than an end-user solution. With it you can build your own infrastructure that meets your own business requirements. Ansible? Sure. Kubernetes? No problem. You can build anything you want – assuming you have enough technical expertise. The code was open-sourced, so nothing restricts you from changing what you want, or even contributing back to it!

What Else?

Project status

  • Projector still is a very young technology.
  • Projector does not support collaborative development. If you need a collaboration tool, try Code With Me.
  • You can contact the developers anytime through YouTrack.

Open Source and Free Software

Get Projector Now!

Just imagine how many things you can do now.