Project: PasteDB
Project: PasteDB
After seeing zerobin I was always interested in a so-called “black box” for sending short messages, pastes or code snippets without leaving any footprint on the internet.
Since zerobin was written in PHP, also I’ve found a lot of web services which were also using similar technology I decided that I would like to have something different than already exists. That is why I decided to create a Service similar to these just with some different technologies at hand. This is how PasteDB was “born”.
The tech stack is rather simplistic. For you to be able to use the service, you just need to write the Name of the paste, the contents, set an expiration time, choose the type of the paste and then hit Submit. Now you are able to send the link to your friends or just share them with anyone.
For the frontend part, I’ve used ReactJS+Redux, for the backend part I did use Go. The pastes are stored in an Object store more specifically in MongoDB. The app works similar to the other similar apps which already exist. The server does not know what it is storing in the database. The content of the paste and also the name is encrypted client side and then the encrypted string is sent to the API which then writes the JSON to the store.
The viewing of the pastes works similar, there is a special UUID which serves as the identifier of the Paste. The decryption key is never shared with the server as such, the key is known only to the Client which created the Paste and then to the other individuals with whom the creator shared the URL with.
While having a webapp is fine, I sometimes find myself wanting to send snippets or logs from a server to some other host or just simply send code snippets to others. On the server you do not really have a GUI (Graphical User Interface). so you would need to encrypt the input and then send the encrypted string to the API to store it. To simplify this, and also to do not need to write some kind of code for yourself I created a CLI app to ease the usage.
For the CLI application I’ve used Go as the primary language to build this. Since Go is multiplatform and runs without any dependencies when compiled to binary format I have thought this would be a tremendous choice. The CLI application is open source and you can take a look at it here: PasteDB CLI. Feature requests and Bugfixes or feedback is always welcome :)
If you have questions about something feel free to ask me anytime.