Framework selection for the next generation of GNUKhata

For developing the next generation of GNUKhata, one of the first steps is to decide which frameworks to pick. We need to pick frameworks for backend, frontend, ORM, authentication, role based access control. From the past experiences, we have formulated a few parameters and a couple of mandatory requirements to decide which frameworks to pick. The framework(s) should,

  • be matured, with enough community support and sustained contributions
  • support working with a portable data storage like SQLite
  • support encrypted storage and secure transfer of data
  • support REST API and have open API doc support
  • mobile friendly
  • be easy to package and deploy
  • scalable

With the above conditions, we have decided to go with Node.js frameworks for backend and frontend. The selected frameworks are,

Backend: Fastify
ORM: Prisma / Drizzle
Auth: Passport / Lucia
RBAC: CASL
Frontend: Vite + Vue