One day I was sitting at work and my friend contacted me on Discord. He wanted an easy solution to host JSON data remotely for a Raspberry Pi project. He had used my service psty.io for a while and brought the idea to implement it into the service myself. I thought it was a great idea and hopped on it that night.
I decided I would write it in Python with Flask and using mongoDB as the main database. I wanted this to be secure, fast, and able to handle a lot of connections at once. I have been able to do so with this stack in the past and I was most comfortable with it so I gave it a shot.
The first part I wrote was the RESTful API. I knew it would be easiest with Flask since it's just JSON and that means no need to write a web front-end. This was done in a night and I had a very basic API for users. It simply allowed you to create JSON stores, edit them, delete them, and grab them. By the time this was done I showed a couple friends and they were concerned with the fact I was able to see all the data on the database. I wanted to look for a solution.
I have been working with another developer the past couple weeks on an encryption/steganography technology called Pixcryption. We were working on adding the AES layer of security to it and I brought up JSONsty to him. He has been wanting to learn as much as possible so he took it as an opportunity to study Flask, MongoDB, Unit Testing, and more about AES.
We spent the past couple days working together on securing the system with AES OCB and Base64. Now it encrypts all the JSON data in the database and decrypts when the user requests their store. Each user has an object on the db and that controls which stores belong to them through ObjectIds which map a relationship between the collections.
Now JSONsty is ready for the public to start using in my eyes and I plan to make it even better over time. Psty.io has been doing well and I want to build it out into a family of software that provides tools for developers to make sharing and developing easier. Below you can find the source to JSONsty and you can also signup now here! We also would love any contributors who would like to harden the security or just make it a better service.
What is JSONsty? JSONsty is a service provided by psty.io that allows you to store JSON data in the cloud for free using an extremely simple API or web panel frontend. The source code here includes everything running on the website as we speak. It should always be 1:1 up-to-date on the
master branch compared to the website.
How Does It Work?
JSONsty is a Flask application that includes a REST API and dynamically rendered Website using the Jinja2 module. It interfaces and stores all data on a remote mongoDB cluster that acts as the master database. Users have an account which links the data, known as
stores, on the database, and then link said store to the user.
When you create an account you receive an API Key which allows you to communicate with our API. The API allows you to create…