Introducing Pynk.in: An open-source alternative to Bitly with Analytics and Reports
pynk.in is an open-source alternate to Bitly(but still can't be compared to bitly). I got the idea to build this when I shared a bitly URL in a group but later on found that the original URL was wrong and it needed modification. I was not able to edit the redirect URL as it needed me to upgrade my bitly plan to a paid one. It was one of the frustrating moments when I thought of building this thing as an open-source. Just the other day I found this #harperdbhackathon going on and thought of building an MVP using HarperDB.
Initially I planned to use Ruby on Rails in API only mode with React but soon I realised that there is no Ruby ORM for HarperDB and it would be futile to use Rails and hence went with Sinatra as backend and wrote a simple wrapper contained methods close to
ActiveRecord of Rails. Frontend is primarily composed of React and Tailwind.
- email: firstname.lastname@example.org
- password: password
- SignUp / SignIn
- Create Short URLs
- Create custom URLs (like pynk.in/google)
- Edit Redirect URLs
- View accesses' analytics as chart
- View each access' location and time
- Export analytics as CSV
On signing in, one can create short URLs which can be shared with people. Using that URL, we can keep track of how many people have accessed it and from where & when. All the analytical data can be downloaded as CSV in one click. We have also added graphs for better understanding of the accesses. Not only that, it also adds the premium features offered by Bitly. The creator can edit the redirect URL at any moment without the need of paying anything.
As HarperDB is accessed by API and has no ORM for Ruby, I had to struggle implementing it in Rails and had to change the backend midway. Later on, I had to write my own ORM which under the hood makes API calls for every method calls. github.com/akhil-gautam/url_tracker/blob/ma..
Making it secure needs authentication which in turn would need API calls to HarperDB. To enhance the security, there is need of a lot of API calls to HarperDB which slows down the overall request time and hence we had to settle down with less secure backend. It is still not that straightforward to exploit it.
- Enhance security
- Enhance responsiveness of the UI
- Add campaigns feature
- Add extensive unit tests
- Perform cost effectiveness of HarperDB
Thanks a lot for reading till the end. I hope to make more open-source apps in future so that people wouldn't have to pay to silly functionalities.