A modern, health-focused dream journaling application with AI-powered pattern analysis and personalized wellness insights.
- Dream Journaling: Beautiful, storybook-style interface for recording dreams
- AI Analysis: Individual dream analysis with humor and personalized insights
- Pattern Recognition: Comprehensive pattern analysis across your dream library
- Health & Wellness: Sleep quality tracking and wellness recommendations
- Dark Mode: Full dark/light theme support
- Responsive Design: Mobile-first, accessible design
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Authentication: Clerk
- Database: Supabase (PostgreSQL)
- AI: OpenAI GPT-4
- Background Jobs: Inngest
- Deployment: Vercel
src/
├── app/ # Next.js 14 App Router
│ ├── (auth)/ # Authentication pages
│ ├── (dashboard)/ # Protected dashboard routes
│ ├── api/ # API routes
│ ├── docs/ # Documentation page
│ └── globals.css # Global styles
├── components/ # Reusable UI components
├── lib/ # Utilities and configurations
└── types/ # TypeScript type definitions
-
Clone and install dependencies:
npm install
-
Environment Variables: Copy
.env.example
to.env.local
and fill in your keys:NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= CLERK_SECRET_KEY= NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= SUPABASE_SERVICE_ROLE_KEY= OPENAI_API_KEY= E2B_API_KEY= INNGEST_EVENT_KEY= INNGEST_SIGNING_KEY=
-
Database Setup: Run the migration files in
docs/migrations/
in your Supabase dashboard -
Start development server:
npm run dev
main
branch: Clean, stable code- Feature branches:
feature/your-feature-name
- Always create a new branch for improvements
- Commit regularly with clear messages
The app is configured for easy deployment on Vercel with automatic environment variable detection.
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Built with ❤️ for better sleep and dream insights.
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.