Teleport - DO Hackathon submission #Part-1
Tags: dohackathon, react, node, webrtc
Published: 2021-01-11 07:29:39

## 💡 **What I built**

A fully decentralized cross-platform P2P file sharing tool with unlimited capacity. Send files/clipboard across and between CLIs and browsers. Between? Yep start a file transfer in the CLI and receive it in your phone's browser! The CLI and the browser are just a frontend to teleport's core and they can connect between themselves or between each other. Teleport is a productivity tool built for users with security, privacy, and convenience in mind.
### **Category Submission:** *Built for business*
### 📹 **App Link** : [teleportme.in](https://teleportme.in)
### 🎬 **Video demo** : {% youtube nZuJ5u-zo-Q %}

### 📸 **Screenshots**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/5if6w7x37oui4t0uwpwj.png)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/mcv5pjbcu62uwdd5pzu1.jpeg)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/zzpild4if1q765an2bcz.png)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/63jiac2so98kc5zh3rmu.png)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/599movruf3wasyq2aaxd.jpeg)                                         
### 👩‍💻 **Description**
#### Why build Teleport?
Everyone loves Apple's Airdrop, a tech that allows users to drag files onto devices in your local network/wifi. The problem with Airdrop is that it is only available for the Apple ecosystem. We envisioned a tool that could be as cool and convenient as Airdrop but had no boundaries like your device or platform. You could just transfer a file from your Mac to Windows, Windows to Mac, Mac to Android, and so on, making it truly cross-platform. What if this file-sharing mechanism worked beyond your wifi? Airdrop does it with Bluetooth and under your wifi, so we wanted to achieve something like that on the world wide web using WebRTC for remote peers. We started working on this P2P file sharing client that is going to make everyone's lives easier.

#### **Features**
Here is the list of features that sets us apart from other traditional file-sharing tools :
- Dynamically Switching Topologies
- Local Network Detection
- Unlimited Files Capacity
- Unlimited peers - When peers grow teleport goes into the torrent mode
- Secure Private Portals
- Automatic Recommendation of Previous Portals
- Real-time CLI Support
- Clipboard and Text Content Sharing
- PWA Support
- Smart Environment Sensing
- Highly Customizable
- Cross-platform Support
- Optimized for Instant Rapid File Transfer

### 📜 **Link to Source Code**
[Source Code](https://github.com/Teleport-js/Frontend-Teleport/tree/dev)

### 🔒 **Permissive License**
Common Clause

### 🛤 **Background**
We have been working with WebRTC and file-sharing algorithms for more than a year. After experimenting on some small projects we decided to implement a P2P video streaming application in VR for [Facebook’s Developer Circle Community Challenge in 2019](https://devpost.com/software/virtual-galaxy-gf4dxi). We were elated to win first place in India(regionals)🎉. This gave us the impetus to continue updating ourselves with all there is to know in the field.

Being undergraduates who constantly competed at hackathons or were involved in pair programming for projects related to our course, we often found it inconvenient to transfer files or simple code snippets. Moreover, things like links and clipboard content also required the use of apps like WhatsApp or Slack because google meet & zoom truncates text and formats code (removes linebreaks, etc) weirdly when sent through them. We wanted to build a tool that would help us achieve all this without having to leave the development environment from our VS Code's integrated terminal.

So we moved ahead to create [*Airshare*](https://github.com/KuroLabs/airshare) an open-source python CLI based file client limited to the local network. It was released in PIP as a module that has over 15K downloads and is now available for use @ homebrew. 

Although we got a good response from the community, there is always room for improvement. This inspired us to build a new file-sharing tool. Like any other project, we dedicated ourselves to explore all the currently existing solutions in the field and created Teleport consequently.

### 👩‍💻 **How we built it**
Digital Ocean App Platform made it very easy and reliable to host our website and server in one place retaining complete control over our sites underlying infrastructure. All this was done within a few clicks and made our life simpler. 
Also, it was fascinating to see that it could automatically update our project when we push changes to our code which would help us concentrate more on upgrading and building on teleport without worrying about the deployment and scaling.

Thanks to Digital Ocean for making our work easier and as a developer, I would love to continue using Digital Ocean in my future projects.



### 🧾 **Additional Resources/Info**
🎥 [Demo](https://youtu.be/nZuJ5u-zo-Q)
🎬 [Walkthrough](https://vimeo.com/499063906)
🌐 [Website](https://teleportme.in/)