Dataplicity provides a method to get remote shell and web service access to your Linux devices in all but the most prohibitive network conditions.
Configuring your network to allow remote access to your Pi can be difficult, requires a lot of knowledge and may require the involvement of third parties such as your ISP. Even for those who are intimately familiar with routing, IP addressing, network gateways, firewalls, network address translation and port forwarding, manually configuring a network to provide remote access to a device is really painful. It's also static, so if you move your device to a different network you have to do it all over again.
Dataplicity works anywhere you have normal internet access. If you can access Google from your Pi, you can get remote access to your Pi using Dataplicity. That's it.
If your Pi is inside a firewall, you might encounter problems reaching it with NAT (Network Address Translation) or network ports which are blocked by the firewall. If you have control over your firewall you can use awkward technical workarounds such as port forwarding (for NAT) and firewall access control lists to 'punch a hole', but if you don't have control over the firewall you may be really stuck.
In these cases, Dataplicity 'just works'. If you could connect your laptop to an ethernet cable or Wi-Fi router and access normal encrypted websites (such as Google), you can connect your Pi just the same. Nothing special. Dataplicity will then give your laptop remote access to you Pi without any technical chicanery.
Most network devices going back as far as the 90s had a web server running embedded on the device. In most cases, this was used to run a control panel to operate a device (remember all the times you had to type 192.168.0.1 into a web browser to configure an ADSL modem?).
While this approach broadly works when you are on the same network as the device you are trying to control, it becomes very complicated when you want to control the device remotely: firewall exceptions, port forwarding and dynamic DNS services provide limited solutions but still lack portability.
With Dataplicity Wormhole, you can use an embedded web server to host a device control panel, make it available on the internet at a bookmarkable URL, and take your Pi anywhere. You'll get a URL for your device which is unique to the device (https://<yourdevice>.dataplicity.io/), and which will provide direct access to any web service running on your device.
You can host a web API on your device (for example a REST API) which you can use to expose telemetry or control functions to remote code. Wormhole provides a secure HTTPS URL to your REST API, so you can run hundreds of devices via automated scripts without worrying about managing or dealing with self-signed or expired certificates on remote devices.
And if you need to fix a bug, you can remotely access, debug and repair it with Dataplicity remote shell.
If you are regularly moving your device from one local network to another, the whole routing, firewall and port forwarding set-up will usually change too. Making the necessary network changes may involve agreement (and/or fees) from the network owner or ISP, and is typically a manual process for each network on which your device operates.
With Dataplicity, port forwarding and firewall adjustments become a relic of the past, and your device is always accessible in one place.
If you have more than one Raspberry Pi device connected to a network you'll need to individually track each device and solve routing issues for each network on which your devices operate. This might typically involve recording a static IP address for each device, and could necessitate a VPN should things get really unweildy.
If you are using Dataplicity on each Pi, you can use a single account to manage them all, in one place, without the need to know their IP or network location.
If your Pi is on a cellular connection (such as 3G or 4G), it's very likely that the public IP for your device will change each time it reconnects to the network.
Making matters even more complicated, ISPs commonly issue dynamic IP addresses, which means every time your Pi reconnects to the network, you'll need to find it again. Dynamic DNS services are a frequently used solution to this problem, but they are imperfect: if your device goes offline, and the IP of your device is re-assigned in the meantime to a third party device, you might accidentally end up typing your password into someone else's printer (or worse) instead of your own device.
Dataplicity connects only to your device, and if your device is offline you will never get a random third party device popping up instead.
Getting your Pi connected at a hackathon can be a real pain. The WiFi password is on the wall, but you'll still need to get find the IP of your Pi and hope it doesn't change during the day.
We've been there, and Dataplicity was borne out of a want to make this initial setup really easy: plug your Pi into the network, and you're all set.
If you're a teacher and your students are running a Pi in the classroom, students can use Dataplicity to do their homework on their Pi using their home laptop. If you're one of those students, you can sign up and do it yourself!