The project should follow modern best practices for code structure, authentication, environment configuration, and scalability.
Requirements:
Frontend (Next.js):
Setup with TypeScript and App Router.
Tailwind CSS integrated.
Use environment variables for configuration (e.g., Appwrite endpoint/project ID).
Pages for: Home, Login, Register, Dashboard (authenticated only).
Use Appwrite SDK for authentication.
Backend (Appwrite):
Authentication enabled (email/password).
A "users" collection with basic profile fields.
Role-based access for protected routes.
Dev Experience:
Include .env.example file.
Provide README with setup instructions.
Include reusable hooks (e.g., useAuth).
Modular file structure for components, services, utils.
Bonus (Optional):
Add support for SSR and protected server components using Appwrite sessions.
Docker support for local development.