Coding a web app from scratch

Some time ago, I spent about 2 years coding a web app from scratch all by myself. This is not saying how proud I'm of doing this but there were a lot of things happened that made me think and do different in my future lives.
This app is about automating the team's localization works. From the very beginning, we were using a different system that was developed two or three years ago and not maintained anymore with 'React + AntDesign + Django'. I added some features to the frontend also because I don't write python and one of them was a 'Translation Turnaround Time Calculator' that helped users know when the translation/localization would be ready but mainly was to restrict users from giving unreasonable timelines, which was also a typical example that quantify methods were used to address a very qualitative issue, and because of which this calculator could only estimate instead of always giving very specific and accurate results since for example a lot of unpredictable things could happen in between.
But still, I was very into the idea that we need our own system even till today. Some of the reasons included: we have a lot of very our own business logics and using code to express and record there logics are not only beneficial but have many more other good effects like these expressions and records themselves are great that I'm still 100% agree; I can see the good future if we have the system and the team can go very further for localization works; the old system was bad and hard to keep developing as far as I could see; team members all have many good ideas but they didn't have a place to express and record them which can be super beneficial for the both team member themselves and the team as a whole.
I did not ask for anybody's help all the way till the release of the app. One thing was that the team did not have development background, which was related to how hard it world be working on the system together but also how different people considered the value and future of this system. But I still keep thinking, is this a good or bad thing?
To start the project, the first and always important work was to design everything as well as possible, especially considering the scalability and performance of the system. For frontend, I chose to use Next.JS as the new React framework because of its SSR, image optimization, route logics and so on. And for Material UI, to be honest, it was because of my first engineering work at Call-Em-All but it still has many good features like the paid version of their data table with very customizable filters. 'React + Material UI' can still be the very powerful combination for most of today's web apps and even till 10 years laterI think, which addresses almost all frontend requirements and thoughts. For backend, I considered Java, wrote some testing code and chatted with a former colleague. However, I was the only person who was going to code the system and Java was a bit too heavy for the system. NodeJS or Express was good enough, the language and library themselves are getting better and better with many new features making them solid for backend developments and I could write JavaScript for both frontend and backend. For database, I did not use SQL but chose MongoDB, which was also that I wanted it easy to start and provide the team with real benefits as soon as possible. Mongo is good but there're better data design approaches I should check and implement even though the system can work OK for the requirements. For DevOps, I could only use internal platforms even though at least for the development docs of these platforms, many of which were super hard to learn and use, but I still tried to make everything run but without very professional and huge DevOps infrastructures and designs. I also considered things like UIUX, project management, localization of the system and so on. How the codebase should be maintained and all Git related things were built by me and I sticked to these rules till the day I left the project.
For the coding work itself, I checked all kinds of docs everyday especially the issues I never touched before, e.g. how to build a file system with good speed and solid CDN, how to build email functionalities from basic sending logics to email design, how to work with third party platforms like Lark, how to apply for domains and deal with related legal and registration things and so on. I enjoyed all of them and hope I could do my second very similar project but I probably wouldn't do it the same way with this kind of special passion of this time.
To mention a specific tech difficulty was the not very good internal DevOps infrastructure. Due to company rules like data sharing and security concerns, I could only use the internal serverless platform which according to my idea is way behind AWS. Especially, the docs were written so badly and there're a lot of very not intuitive features and logics. Seems these platforms were developed to address specific issues on hand and not prepared ready (Lark is a good example on the other side) to be used by other teams. And I had to conquer them and made things running not breaking down for one single time.
And actually by coding this 'NextJS + Material UI + Express + Mongo' pattern out, many small good features started to help the team already though the system was not officially released and some team members were using both the old and new systems. Or they could not help using the new automations, which is really an interesting observation. For example, if there was a highly agile project, say a new release every week, the old system could not support this big amount of localization requests but do project bundlings. However, with the new system, it was super easy to record every request, which I think is a must and very good practice, even though I'm not 100% agree with the project manager's way of using these new automations.
I used a year to make everything ready to be released and the team could transfer to the new system. Even though several months later I was always finally realizing it was not ready and I made a 'big' rush but seems I did not have choices: the team was waiting for the system. We did some rounds of testings according to our own understandings and it was finally released.
To be honest, I thought the team should be very happy to have the system and we had a new level of doing the team's daily works supported by the system and its following developments. However, I never experienced such pressure before because team members wanted even more new features and there were some bugs. This is understandable and I could fix the bugs and give new features but the team reactions and atmosphere were more like the system should be more perfect. I kept making the system always running smoothly without any breakdown.
I also did project management works for the platform like introducing the development agile workflows, writing feature and bug fixing tickets, sharing new developed features of it and so on, since the platform or project was becoming bigger and bigger everyday.
After more 'urgent' requests were developed (including the downloading files from emails with CDN), bugs were fixed with other improvements and the overall project works started to run smoothly, I started to work on the feature to track all finance data of the team which were generated by working with various parties, e.g. LSPs, internal procurement teams and others. I found a vital issue of the already running system, I did not make a data table for every project task but make them a property of each individual project, meaning when creating a project, the system would just create the project object with its tasks as one of the properties, but actually it needs to create two things: a project in the project table and several its tasks as well in the project task table, so when working with the finance feature, I had to extract tasks from projects and considering project changes, the task change logics were very not straight-forward and complicated. By this, I started to know when working with a system, developers or the team need to know which is the minimal unit of the system, a project or a project task, which influences a lot of following developments. And database designing is really an important thing.
There're actually a lot that I can still develop and these are all great expressions of really good ideas as code. But I think the 'bad' ending might be that our ideas and how we think the future of the system are so different, even till today.
After leaving the project, I never felt regret though I might lose very good opportunities at the company and considering my current life situation. I just started to code and write things that are based on the good takeaways of the project. For example, I started to use TailwindCSS and thinking things like how about using it instead of Material UI for the system and how we think of the idea of borrowing other tools and developing by ourselves, which I already started thinking about when I was still at the company and very passionately working for the project all by myself.
I always treasure this experience of my life journey. But I'm also thinking of my next job very carefully or differently because of it. Farewell, one and the only LingoValley.