A premium, minimalist personal bookmarks application with public profiles and private dashboards, built using Next.js 16 (Turbopack), Tailwind CSS v4, and Supabase.
- Clone the repository and navigate to the root directory.
- Install dependencies:
npm install
- Configure Environment Variables:
Create a
.env.localfile in the root directory and define the required service credentials:NEXT_PUBLIC_SUPABASE_URL=https://your-supabase-url.supabase.co NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=sb_publishable_your_publishable_key # Brevo Email Service Configuration BREVO_API_KEY=xkeysib-your-brevo-api-key BREVO_SENDER_EMAIL=your-verified-sender-email@example.com
- Start the Development Server:
npm run dev
- Open localhost: Navigate to http://localhost:3000 to access the application.
- During our session, the AI agent introduced an explicit
anyparameter check invalidateBookmarkwhich triggered an ESLint warning (@typescript-eslint/no-explicit-any). Furthermore, declaring the parameters as optional in the payload interface caused the TypeScript compiler to throw a type assignment error oncreateBookmarkdue to a potentialstring | undefinedtype mismatch. We resolved this by defining a strict type guard interface (BookmarkPayload) and declaring properties as required, ensuring types were safely narrowed at compile-time. - Additionally, the agent initially used standard HTML anchor tags (
<a>) for routing between the home page and dashboard, triggering Next.js linting errors (@next/next/no-html-link-for-pages); this was solved by refactoring them into Next.js<Link>components.
With more time, I would implement Framer Motion page transition animations and add dynamic search query indexing inside the dashboard. This would allow users to search through hundreds of links instantly with visual filtering and animations that match the warm, minimalist cream theme.