Skip to content

Latest commit

 

History

History
24 lines (23 loc) · 1.85 KB

File metadata and controls

24 lines (23 loc) · 1.85 KB

Tech Stack

  • Framework: Next.js 16 (App Router)
  • Language: TypeScript (strict mode)
  • UI: React 19, Tailwind CSS 4, Base UI, CVA, tailwind-merge
  • Icons: Lucide React
  • Theming: next-themes
  • Formatting: Prettier (pre-commit via Husky)
  • Linting: ESLint with eslint-config-next
  • Package manager: bun
  • AI: AI SDK + @ai-sdk/react (useChat) + OpenRouter (Gemini Flash Lite) for tag generation, metadata cleanup, chat, and weekly digest synthesis
  • Markdown: streamdown (streaming markdown renderer for AI chat responses), @tailwindcss/typography for prose styling
  • Validation: Zod
  • Toasts: Sonner
  • Haptics: web-haptics (vibration feedback for meaningful interactions)
  • DB / Auth: Supabase (@supabase/supabase-js, @supabase/ssr)
  • MCP: Remote HTTP MCP server (@modelcontextprotocol/sdk) with API key auth — tools: list_links, search_links, get_link, save_link, update_link, delete_link (with pagination support)
  • Chrome Extension: extension/ directory — saves current tab URL via /api/save endpoint, uses Supabase access token auth with /api/auth/refresh for token renewal
  • iOS Shortcut: Save links via /api/save endpoint with API key auth
  • Import/Export: Settings > Data tab — export all links as JSON, import via JSON file with AI prompt for format conversion. Import preserves tags and dates.
  • Email digest: Weekly AI reflection email (Mondays via Vercel Cron, /api/cron/weekly-digest). Resend transport + React Email templates. AI generates topic sections with per-link notes and an optional archive callback. WEEKLY_DIGEST_AI_MAX_USERS caps per-run AI cost.
  • Animation: Motion (framer-motion) for spring physics and fluid interactions
  • Sound: soundcn (Web Audio API, inline base64 sounds via shadcn registry)
  • Path alias: @/* maps to project root