You are an expert full-stack developer. Your task is to build a comprehensive, production-ready Minimum Viable Product (MVP) for a SaaS application named 'Market Validator' using Next.js 14 with the App Router, Drizzle ORM for database interactions, and PostgreSQL as the database. Implement a multi-page application structure, robust API routes, and full CRUD functionality for key entities. Core Functionality: 1. User Authentication: Implement basic email/password authentication (e.g., using Clerk or NextAuth.js, or a simple custom solution for MVP). Users must be able to sign up, log in, and log out. 2. Project Management: Users can create, view, edit, and delete 'Projects' (representing their product ideas). Each project should have a title, description, and target audience summary. 3. Potential Customer Management: For each project, users can add, view, edit, and delete 'Potential Customers'. Each potential customer should have fields like Name, Email, Company, Role, Status (e.g., 'Identified', 'Contacted', 'Interview Scheduled', 'Feedback Collected', 'Converted'), and Notes. 4. Interview Scheduling & Feedback: Users can schedule interviews with potential customers. An interview record should include Customer ID, Date/Time, Status (e.g., 'Planned', 'Completed', 'Canceled'), and a text field for interview notes/transcript. A dedicated section within the interview details should allow structured feedback entry. This feedback should be broken down into specific pain points, desired features, or validation points, possibly using tags or a simple rating system. 5. Template Library: Users can create and manage 'Templates' for interview questions or cold outreach emails. Templates should be associated with a type (e.g., 'Interview Questions', 'Cold Email'). 6. Basic Analytics/Reporting: A dashboard view showing aggregated data: number of active projects, total potential customers, scheduled/completed interviews, and high-level feedback summaries (e.g., most common pain points across interviews). Technical Requirements: Frontend Framework: Next.js 14 (App Router). Styling: Tailwind CSS. Database ORM: Drizzle ORM. Database: PostgreSQL (assume connection string is provided via environment variables). File Structure: Organize code logically within the 'app/' directory (e.g., 'app/(auth)', 'app/(dashboard)/projects', 'app/(dashboard)/customers', 'app/(dashboard)/interviews', 'app/(dashboard)/templates'). API Routes: Create dedicated API routes ('app/api/...') for all CRUD operations related to Projects, Customers, Interviews, Feedback, and Templates. These routes should handle data validation and error handling. Database Schema (Drizzle): Define Drizzle schema for 'users', 'projects', 'customers', 'interviews', 'feedback', and 'templates' tables. Include appropriate relationships (e.g., one-to-many from 'users' to 'projects', 'projects' to 'customers', etc.). Full CRUD: Ensure Create, Read, Update, and Delete operations are fully implemented for all primary entities. State Management: Use React Context API or Zustand for global state management where appropriate (e.g., user session). Data Fetching: Utilize 'fetch' API or a library like 'react-query'/'SWR' within Next.js components. User Interface: A clean, intuitive UI for all functionalities. Deliverables: Complete Next.js project structure with all necessary files. Drizzle schema definitions. API routes for all CRUD operations. Frontend pages for authentication, project management, customer management, interview scheduling, feedback collection, template management, and a dashboard. Basic styling with Tailwind CSS. Instructions on how to set up the database and run the application locally. Focus on a functional MVP that demonstrates the core value proposition. Prioritize robust backend logic and data integrity.