[x] code quality and performance are the two most important goals we try to achieve. in that order, keeping the dependencies updated is an essential. furthermore, using the new technologies that helps elevating the code base into the next level is also beneficial. in that matter here are suggestions to improve kartevonmorgen:
Package manager
[ ] while yarn is secure and fast, but it's not fast enough even when caching is enabled. this lack of performance results in breaking pipelines in the CI/CD. the alternative option is pnpm. however, moving from yarn to pnpm breaks the run scripts of NextJs
CSS Framework
[x] ant design is a complete solution for common use cases. however, there are tons of situations that requires writing custom styles. styled components has prove they are a failure in large projects like kartevonmorgen. instead TailwindCSS is an easy-to-use CSS framework that eliminated the need of in-line styles, provides themes, and reusable, readable components. but, when it's integrated with karte, it resets some styles. that means an extra amount of work. however, investing time on this matter will pay of in the long term.
React 18
[x] react is the core library at the hear of karte and it should be kept up updated. react 18 comes with strict mode that predicts and prevents bad codes. while upgrading react is compulsory but it reveals the hidden bugs underneath. and we have the unseen bugs we weren't aware of. that means we need times to fix hidden bad smells.
NextJS
[x] the version of Next 12.1.6 supports hybrid rendering which is equal to better performance in situation. however, it breaks the code as the rendered pages on the server should match the client. and there are unexpected breaks like the Drawer which is faulty by nature.
liniting
[ ] an other requirement is to keep the code clean as much as possible and introduce a unified integrated coding style that guides developer through coding standards and styles. eslint does the job. however, since we were not on a linter from the beginning, refactoring the codes consumes a huge amount of time, which is a good invest on for karte. because many developers are going to participate.
Requirement
Package manager
pnpm
. however, moving fromyarn
topnpm
breaks the run scripts of NextJsCSS Framework
ant design
is a complete solution for common use cases. however, there are tons of situations that requires writing custom styles.styled components
has prove they are a failure in large projects like kartevonmorgen. insteadTailwindCSS
is an easy-to-use CSS framework that eliminated the need of in-line styles, provides themes, and reusable, readable components. but, when it's integrated with karte, it resets some styles. that means an extra amount of work. however, investing time on this matter will pay of in the long term.React 18
strict mode
that predicts and prevents bad codes. while upgrading react is compulsory but it reveals the hidden bugs underneath. and we have the unseen bugs we weren't aware of. that means we need times to fix hidden bad smells.NextJS
Drawer
which is faulty by nature.liniting
eslint
does the job. however, since we were not on a linter from the beginning, refactoring the codes consumes a huge amount of time, which is a good invest on for karte. because many developers are going to participate.