I'm a new software developer, and one thing that has always bothered me is the amount of reinvention that occurs when developing web and mobile apps. Sure, there are excellent abstractions about the smallest HTTP requirements (back-end frameworks), browser caching (front-end frameworks) and databases (models & OOP) that make life easier, and even many extensions for things that require an abstraction level include, e.g. Authentication libraries for instant login implementation, but beyond that there doesn't seem to be an abstraction / open source level.
For example, I have a client who wants me to create an Instacart clone, and there are two options: First, I can either build from scratch, design all models and views myself, and write a few thousand lines of code, which is the most friends of my engineers said they would / most people tend to do this when prototyping. But it drives me crazy that something is repeated and beaten to death like an app for the delivery of food and groceries, with the same functionality at a high level – catalog listing, purchase processing, forwarding of buyers / deliverers, dealer inventory processing, customer chat created millions of times in different applications in the past.
If I've created an ecommerce website for someone in the past, I could use Django's Oscar or Saleor, which made sense to build on the implemented product list views, billing, shopping carts, checkouts, inventory management, etc., but for most others Apps This is almost as routine (carpooling, delivery of food, social networks of different flavors). There don't seem to be any good open source solutions to build on! If they exist, they are old, poorly documented, and often have dysfunctional parts.
I would post this on Startup Stack-Exchange, but it was out of date and it is not technical enough to stack the overflow, so I thought this would be the best place. I've heard the argument "build it from scratch so you can fully understand the code yourself", but this argument is not feasible for very large projects (we use other people's code by importing libraries / using frameworks freely, this is no different). .
Do I miss something? How can other freelancers / software developers prototype / create large but otherwise routine applications in a way that is half-tailor-made for clients? Is there really no better way than spending hundreds / thousands of hours building something from scratch just because there are no open source solutions for these products? Because when I search for them by searching for "clone / platform for the delivery of food" on Google or GitHub, there are almost 0 good results, with only freelance development agencies promoting their services. As someone new to the industry, this seems to be a huge organizational / industrial mis-optimization! Please check 🙂