I've been working in Megaplan for 5 year. I've worked my way from junior to architect. Now I'm responsible for the development of backend and frontend.
1. How bad it was: complete absence of backend-frontend protocol, lack of auto-documentation, and many different parts of the system that had to be maintained separately.
2. The choice of the ‘point of truth’ – backend.
3. Backend uses PHP, and therefore, it is necessary to teach it the strict typing of entities - all that endpoints return should be entities expressed in the form of a class in PHP with typification in the form of annotations to the fields.
4. Static class analysis and generation of raml descriptions
5. Generation of the typescript scheme by raml description to be used on the client side.
6. To show how it's great when changing the data scheme without any respective edits on the client side breaks the compilation.