Project Info
Core Features Slumber Synthesizer combines personal dream journaling with AI-powered analysis and community features, creating an engaging platform for recording and exploring dreams while maintaining user privacy when desired. It adds a fun way to share your silly dreams with friends worldwide while cataloging all of your dreams and analytics privately. 1. Dream Recording Record personal dreams with titles and descriptions Categorize dreams (nightmare, lucid, recurring, prophetic, normal) Add emotional context (joy, fear, confusion, anxiety, peace, etc.) Get AI-generated dream imagery Receive AI-enhanced descriptions and interpretations 2. Community Sharing Share dreams publicly with other users Browse and explore dreams shared by the community View AI-generated dream images from other users Keep dreams private or make them public 3. Analytics Track dream patterns over time View emotional and category distributions See total dreams recorded Analyze weekly dream frequency Visual charts and statistics 4. User Features Secure authentication Personal dream journal Profile management Privacy controls Responsive design for all devices What Inspired Us The inspiration for our project, Slumber Synthesizer, came from a shared fascination for understanding dreams and how they affect sleep. Dreams often hold untapped insights into our subconscious, yet they are fleeting and difficult to analyze. We wanted to create a platform where users could not only record their dreams but also explore patterns, themes, and meanings in a secure and engaging environment. What We Learned Throughout this journey, we gained valuable insights into both technical and non-technical aspects of building a web app. Technical Insights: Deepened our understanding of natural language processing (NLP) for analyzing dream patterns and themes. Learned how to design an intuitive user interface that balances functionality with aesthetic appeal. Technical Insights: Deepened our understanding of natural language processing (NLP) for analyzing dream patterns and themes. Learned how to design an intuitive user interface that balances functionality with aesthetic appeal. Non-Technical Insights: Discovered the importance of user feedback in shaping features. Ensured accessibility for diverse audiences. Non-Technical Insights: Discovered the importance of user feedback in shaping features. Ensured accessibility for diverse audiences. How We Built It Frontend Framework React with TypeScript Chosen for its robust ecosystem, type safety, and component-based architecture Used throughout the application for building reusable UI components TypeScript adds static typing, improving code reliability and developer experience Chosen for its robust ecosystem, type safety, and component-based architecture Used throughout the application for building reusable UI components TypeScript adds static typing, improving code reliability and developer experience UI Components & Styling Shadcn/UI Provides high-quality, accessible React components Used for buttons, cards, forms, and other UI elements Ensures consistent design language across the application Provides high-quality, accessible React components Used for buttons, cards, forms, and other UI elements Ensures consistent design language across the application Tailwind CSS Utility-first CSS framework for responsive design Used for custom styling and layouts Enables rapid UI development with minimal CSS overhead Utility-first CSS framework for responsive design Used for custom styling and layouts Enables rapid UI development with minimal CSS overhead Framer Motion Animation library for React Implements smooth transitions and animations Used in landing page and UI interactions for better user experience Also used Toast for status updates Animation library for React Implements smooth transitions and animations Used in landing page and UI interactions for better user experience Also used Toast for status updates State Management & Data Fetching TanStack Query (React Query) Manages server state and data fetching Handles caching and synchronization of dream data Used in Community and Journal pages for efficient data loading Manages server state and data fetching Handles caching and synchronization of dream data Used in Community and Journal pages for efficient data loading Backend & Database Supabase Provides backend-as-a-service functionality Used for: User authentication and authorization PostgreSQL database for storing dreams and user profiles Storage bucket for dream-related images Edge Functions for AI integration Provides backend-as-a-service functionality Used for: User authentication and authorization PostgreSQL database for storing dreams and user profiles Storage bucket for dream-related images Edge Functions for AI integration AI Integration OpenAI's DALL-E 3 Generates dream-inspired images Integrated via Supabase Edge Functions Generates dream-inspired images Integrated via Supabase Edge Functions Mistral AI Enhances dream descriptions Provides AI-powered dream analysis Also integrated through Edge Functions Enhances dream descriptions Provides AI-powered dream analysis Also integrated through Edge Functions Routing & Navigation React Router Handles client-side routing Manages navigation between different sections of the app Used for creating a seamless single-page application experience Handles client-side routing Manages navigation between different sections of the app Used for creating a seamless single-page application experience Development Tools Vite Modern build tool for faster development Provides quick hot module replacement Optimizes production builds Modern build tool for faster development Provides quick hot module replacement Optimizes production builds Each tool was chosen with consideration for the developer experience, performance, maintainability, and scalability. This stack provides a modern, robust foundation for building high-quality web applications while maintaining excellent developer experience and end-user performance. Challenges We Faced Building Slumber Synthesizer was not without its challenges: NLP Complexity Designing AI models capable of accurately analyzing subjective dream content required extensive research and iterative fine-tuning. Data Privacy Ensuring that user data remained secure and private was a top priority, which involved choosing the correct tools and implementing robust encryption protocols. User Engagement Creating a platform that felt both personal and community-driven required careful balancing of features to cater to individual users while fostering meaningful interactions within the community. Time Constraints As with any hackathon project, time was limited, so we had to prioritize features while maintaining a high-quality user experience. Despite these challenges, we are proud of what we accomplished in such a short time frame. Slumber Synthesizer is not just a tool for journaling dreams but a gateway to self-discovery and connection with others who share an interest in exploring the subconscious mind. Leveraging Perplexity for Development During our coding and development process, we used Perplexity as a valuable tool to streamline our workflow. Perplexity provided detailed explanations, troubleshooting tips, and best practices, which significantly improved our efficiency. It helped us in various areas: Research and Brainstorming: Offered quick insights on integrating new libraries and optimizing our codebase. Debugging Assistance: Provided code examples and tips to resolve errors in real-time. Documentation Support: Assisted in producing clear and concise documentation for our project. Time Efficiency: Accelerated our development process by reducing the time spent on repetitive research and troubleshooting. Market Potential Slumber Synthesizer isn’t just a dream journaling app—it’s a platform built for real-world impact. We’re addressing a significant personal wellness and mental health opportunity by enabling users to capture, analyze, and learn from their dreams. It also adds a fun way to share your silly dreams with friends around the world. Our product offers a personal wellness tool for self-reflection and incorporates a social media element—allowing users to share their dreams and interpretations within a vibrant community. There are over 4.7 billion social media users globally. If we capture just 0.1% of this vast audience, that’s roughly 4.7 million potential users. In addition, the digital mental wellness and self-improvement market is estimated at around $3–$4 billion today, with projections to reach $10 billion or more in the next 5–10 years. Assuming a conservative premium conversion rate of 5–10% among engaged users, capturing 0.1% of social media users could yield 235,000 to 470,000 premium subscribers. With an average revenue per user (ARPU) of $20 per year for premium features, this translates to an annual revenue potential of roughly $4.7M to $9.4M While our current implementation includes essential social sharing features, this is just the base. We plan to expand this aspect further by introducing personalized feeds, interactive community challenges, and integrations with popular social platforms, ensuring users remain engaged and inspired. We are committed to the long-term vision of continuous innovation and user-centric development, we’re poised to grow into a product that people truly want and trust. Security Security has been at the forefront of our design. We’ve implemented robust authentication protocols, encrypted data storage with Supabase, and strict privacy controls to ensure that every dream remains confidential. Our commitment to security isn’t an afterthought—it’s an integral part of the user experience, reflecting our dedication to building a trusted platform where users can safely explore their subconscious. Intuitive UX Our design philosophy is centered on clarity, accessibility, and engagement. By harnessing modern frameworks like React, Shadcn/UI, Tailwind CSS, and Framer Motion, we crafted an interface that is both visually appealing and remarkably intuitive. Every element—from the fluid animations to the responsive layouts—was designed to guide users effortlessly, ensuring that even the most complex features are easily accessible. We also have light mode AND dark mode!
Slumber Synthesizer - AI-Powered Dream Recording Platform
A modern web application for recording, analyzing, and sharing dreams with AI-enhanced features and community interaction.
Website: https://lucidrem.com/
Features
Dream Recording
- Record personal dreams with titles and descriptions
- Categorize dreams (nightmare, lucid, recurring, prophetic, normal)
- Add emotional context (joy, fear, confusion, anxiety, peace, etc.)
- AI-generated dream imagery
- AI-enhanced descriptions and interpretations
Community Features
- Share dreams publicly
- Browse community dreams
- View AI-generated dream images
- Privacy controls for sharing
Analytics
- Track dream patterns
- View emotional and category distributions
- Weekly dream frequency analysis
- Visual statistics and charts
Tech Stack
- Frontend: React, TypeScript, Vite
- UI: Tailwind CSS, Shadcn/UI, Framer Motion
- State Management: TanStack Query
- Backend: Supabase (Auth, Database, Storage, Edge Functions)
- AI Integration: Google Gemini, OpenAI, Mistral AI
Getting Started
Prerequisites
- Node.js (v18 or higher)
- npm or yarn
- Supabase account
- OpenAI API key (for AI features)
Installation
- Clone the repository:
git clone <repository-url>
cd dream-journal
- Install dependencies:
npm install
- Create a
.envfile in the root directory and add your environment variables:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
OPENAI_API_KEY=your_openai_api_key
GEMINI_API_KEY=your_gemini_api_key
- Start the development server:
npm run dev
The application will be available at http://localhost:8080 or at the port specified by the PORT environment variable.
Development
Project Structure
src/
├── components/ # Reusable UI components
├── contexts/ # React contexts
├── hooks/ # Custom hooks
├── lib/ # Utility functions and types
├── pages/ # Page components
└── integrations/ # Third-party service integrations
Available Scripts
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run typecheck- Run TypeScript type checking
Environment Variables and Security
Managing Sensitive API Keys
This project uses environment variables to securely manage sensitive information such as API keys and tokens. Here's how to properly set up and manage your environment variables:
-
Copy the
.env.examplefile to a new file named.env:cp .env.example .env -
Fill in your actual API keys and credentials in the
.envfile. This file should never be committed to the repository. -
Run the environment sync script to ensure all parts of the application have access to the required variables:
./scripts/sync_env.sh
Security Best Practices
- Never commit your
.envfile to version control - Never hardcode sensitive information in your source code
- Use session storage instead of localStorage for temporary client-side storage of sensitive data
- When deploying, set environment variables through your hosting platform's secure environment configuration
- Regularly rotate API keys and secrets
If you're developing new features that require additional environment variables:
- Add them to your
.envfile - Add them to
.env.examplewith placeholder values - Update the
sync_env.shscript if they need to be available to Supabase Edge Functions
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Supabase for backend services
- Google Gemini for AI image generation
- OpenAI for text generation
- Mistral AI for dream analysis
- Shadcn/UI for component library
- Framer Motion for animations
Analysis
View
Metric
- 21
- 15
- 4
- 3
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- ReactIn code
- SQLIn code
- SupabaseIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Mistral AIClaimed
- OpenAIClaimed
8 of 10 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
1.8 MB
Source files
309
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
MiPlayer123/slumber-synthesizer
360 files · 23.6 MB · @ cae19fb
Structure
Interface
245 files · 68%Screens, components and styles rendered to the user.
+2 moreAPI & routing
2 files · 1%Request entry points: routes, handlers and controllers.
Application logic
36 files · 10%Domain rules, services and shared utilities.
+4 moreData & schema
28 files · 8%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript96%
- SQL2%
- CSS1%
- HTML0%
- Markdown0%
- YAML0%
- Other (2)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 79- @hookform/resolvers
- @radix-ui/react-accordion
- @radix-ui/react-alert-dialog
- @radix-ui/react-aspect-ratio
- @radix-ui/react-avatar
- @radix-ui/react-checkbox
- @radix-ui/react-collapsible
- @radix-ui/react-context-menu
- @radix-ui/react-dialog
- @radix-ui/react-dropdown-menu
- @radix-ui/react-hover-card
- @radix-ui/react-label
- @radix-ui/react-menubar
- @radix-ui/react-navigation-menu
- @radix-ui/react-popover
- @radix-ui/react-progress
- @radix-ui/react-radio-group
- @radix-ui/react-scroll-area
- +61 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.