I'm the CEO of a startup called Ratepunk. Ratepunk is a web extension that compares booking prices on most of the OTA's in existence - you would go to a booking website, choose your dates and the exact room you want, and then our little extension would pop out on the right side of your screen and tell you that there is an exact same room on the exact same dates you picked but just a few hundred EUROS (just an example, sometimes it's tens of euros, sometimes even thousands) cheaper than on the OTA you're currently looking at. We also have a few more complicated and sophisticated features, like live comparison on what IPs get the best price or whether the booking would be cheaper if you booked via your mobile device, etc.
Now, I explained what we do in detail because it is important to understand why we chose custom-coded solutions instead of the more traditional approach.
"What are the pros of custom coding an extension like this?
Flexibility - You are not tied to a specific framework. This gives you unparalleled freedom to explore and create all the features and functionalities that the team comes up with. It simply invites innovation.
Scale - you can scale the product without any issues.
Innovation - most of our extension functionalities are created by thinking "out of the box," and in this case, standard libraries are useless, and we need to create custom systems to overcome the problems that we face.
Performance - scaling a web extension will result in more and more power being consumed. Having an entirely custom extension allows us to be extremely flexible in the ways that we approach these scaling issues.
"Now, what are the cons of custom coding your software?"
Decision making - because there's no framework behind your back, you will have to, obviously, create everything from scratch. Every decision has to be well considered, looked over time and time again, and future-proofed. No quick solutions and no half-measures are acceptable.
Architecture - while creating the architecture for your custom-coded software, it is extremely important to plan ahead and kind of see the whole picture so you avoid any fuck ups in the future. Because if you suddenly start to shift the extension's logic - the entire thing can and will come crashing down. You kind of have to see into the future.
And, of course, it is very time-consuming when compared to the traditional approach. There is no guide for us on how to create the production-ready extension that we want; therefore, it is entirely up to us to figure it out. It requires A LOT of time and trial and error.
Our crown jewel achievement of the dev team is, without a doubt - AirBnb price matching.
If you didn't know, you can find AirBnb listings on other OTA's and for cheaper! It's just extremely hard to find them because Airbnb and OTA hotels most of the time have different names, pictures, descriptions, etc., despite being the exact same hotel. It's, in the eyes of Google, completely different content, sometimes with no similarities whatsoever (apart from the location).
This was a problem like no other, but we found a solution, a custom-coded one. No framework would've been flexible enough for us to do what we did, but we managed to do it anyway. Sadly, I am not at liberty to discuss the technicalities and details of this feature).
"Why did the team choose to custom code Ratepunk? Was it always the plan?"
For all the pros, probably. There were no other solutions that would allow us to create such a complex system.
"Why is it easier to scale a custom-coded project?"
Because it gives you complete freedom in project creation, whereas frameworks would limit us with functionalities and approaches that we can use.
"Is it harder to find coders who are open to working on this type of software (entirely custom-coded)?"
"I don't think so. The project is created using plain Javascript, which is popular among developers, but it's harder to train new developers because the system will be entirely new for them."
"Is custom coding most often the non-traditional approach when developing apps, extensions, and software similar to this one?"
"Extensions do not have production-ready frameworks like web devs (React, Angular, etc.) So, it's up to developers to decide if they want to use a framework/boilerplate from some hobbyist who was also working on Chrome extension or create a framework from scratch. The problem with working with other frameworks is that they will not always be suited to your needs. This is a good article about framework classification. This is a good article about framework classification"
"What flexible solutions were you able to execute only thanks to the fact that the extension is custom-coded?"
"Some flexible solutions:
Do you have custom-coded software? Share any pros and cons tips I might've missed. Also, feel free to reach out with technical and code-related questions; I'll relay them straight to Tadas and see if I can get the answers you seek!