Dzhuneyt/5minutechill.com

Listen to relaxing sounds while at work or stressed

โ˜… 3Forks 0TypeScriptGitHub โ†—Compare

Project website โ†—

angularfirebase

README

5 Minute Chill

Find your calm in 5 minutes - A modern web application providing relaxing ambient sounds for stress relief and mindfulness.

Next.js React TypeScript Mantine License

๐ŸŽต Features

  • Curated Ambient Sounds: Carefully selected nature sounds, rain, ocean waves, and more
  • Interactive Sound Mixing: Play multiple sounds simultaneously with individual volume controls
  • Responsive Design: Works perfectly on desktop, tablet, and mobile devices
  • Modern UI: Built with Next.js 15, React 19, and Mantine UI
  • Fast Performance: Optimized for quick loading and smooth interactions
  • Static Export Ready: Can be deployed as static files to any hosting provider
  • Accessibility First: Keyboard navigation and screen reader support

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+
  • PNPM (recommended) or npm

Installation

# Install dependencies
pnpm install

# Start development server
pnpm dev

Open http://localhost:3000 to view the application.

๐Ÿ› ๏ธ Available Scripts

  • pnpm dev - Start development server on http://localhost:3000
  • pnpm build - Build for production
  • pnpm start - Start production server
  • pnpm lint - Run ESLint for code quality checks
  • pnpm export - Generate static export (files in out/ directory)

๐Ÿ—๏ธ Tech Stack

  • Framework: Next.js 15 with App Router
  • UI Library: Mantine UI v8.3.1
  • Language: TypeScript 5.9.2
  • Styling: CSS-in-JS with Mantine + Tailwind CSS v4
  • Package Manager: PNPM
  • Linting: ESLint with Next.js config
  • Deployment: Vercel (recommended) or static hosting

๐Ÿ“ Project Structure

โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/                 # Next.js App Router pages
โ”‚   โ”‚   โ”œโ”€โ”€ globals.css      # Global styles
โ”‚   โ”‚   โ”œโ”€โ”€ layout.tsx       # Root layout component
โ”‚   โ”‚   โ”œโ”€โ”€ page.tsx         # Home page
โ”‚   โ”‚   โ”œโ”€โ”€ providers.tsx    # Mantine providers
โ”‚   โ”‚   โ”œโ”€โ”€ error.tsx        # Error boundary
โ”‚   โ”‚   โ””โ”€โ”€ not-found.tsx    # 404 page
โ”‚   โ”œโ”€โ”€ components/          # Reusable React components
โ”‚   โ”‚   โ””โ”€โ”€ SoundCard.tsx    # Sound card component
โ”‚   โ””โ”€โ”€ types/              # TypeScript type definitions
โ”‚       โ””โ”€โ”€ sound.ts        # Sound interface
โ”œโ”€โ”€ public/
โ”‚   โ””โ”€โ”€ assets/             # Static assets
โ”‚       โ”œโ”€โ”€ audio/          # MP3 audio files
โ”‚       โ””โ”€โ”€ images/         # Background images (JPG/WebP)
โ”œโ”€โ”€ out/                    # Static export output
โ”œโ”€โ”€ package.json            # Dependencies and scripts
โ”œโ”€โ”€ next.config.ts          # Next.js configuration
โ”œโ”€โ”€ tsconfig.json           # TypeScript configuration
โ”œโ”€โ”€ eslint.config.mjs       # ESLint configuration
โ””โ”€โ”€ README.md               # This file

๐ŸŽจ Design Philosophy

The application focuses on simplicity and calmness:

  • Minimal Interface: Clean, distraction-free design
  • Natural Sounds: High-quality ambient audio
  • Intuitive Controls: Easy-to-use volume sliders and play/pause
  • Accessibility: Keyboard navigation and screen reader support

๐Ÿ”ง Development

Code Quality

This project follows modern development practices:

  • TypeScript: Full type safety throughout the application
  • ESLint: Code linting with Next.js recommended rules
  • Clean Git History: Proper .gitignore configuration (no node_modules tracked)
  • Modern Dependencies: Latest stable versions of all packages

Adding New Sounds

  1. Add audio files to public/assets/audio/
  2. Add corresponding images to public/assets/images/
  3. Update public/sounds.json with sound metadata
  4. The SoundCard component will automatically pick up new sounds

Environment Setup

# Clone the repository
git clone <repository-url>
cd 5minutechill.com

# Install dependencies
pnpm install

# Start development server
pnpm dev

๐Ÿš€ Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Connect your repository to Vercel
  3. Deploy automatically on every push

Static Export

pnpm build
# Static files will be generated in the 'out' directory

Other Hosting Providers

The static export works with any static hosting provider:

  • Netlify
  • GitHub Pages
  • AWS S3 + CloudFront
  • Any CDN or web server

๐Ÿ› Troubleshooting

Common Issues

Audio not playing:

  • Check browser autoplay policies
  • Ensure audio files are in the correct format (MP3)
  • Verify file paths in sounds.json

Build errors:

  • Run pnpm install to ensure all dependencies are installed
  • Check TypeScript errors with pnpm lint
  • Clear Next.js cache: rm -rf .next

Performance issues:

  • Audio files are optimized for web delivery
  • Images are provided in both JPG and WebP formats
  • Static export reduces server load

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

Ways to Contribute

  • Add new sounds: Submit high-quality ambient audio files
  • Improve UI/UX: Enhance the user interface and experience
  • Fix bugs: Report and fix issues
  • Documentation: Improve this README or add code comments
  • Performance: Optimize loading times and bundle size

Development Guidelines

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: pnpm lint
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Code Style

  • Follow TypeScript best practices
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Ensure accessibility compliance

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“‹ Changelog

v2.0.0 (Current)

  • โœ… Repository Cleanup: Removed node_modules from Git tracking
  • โœ… Modern Stack: Upgraded to Next.js 15, React 19, and Mantine UI v8
  • โœ… TypeScript: Full type safety implementation
  • โœ… Performance: Optimized build and static export
  • โœ… Documentation: Comprehensive README with development guidelines

v1.x (Previous)

  • Initial release with basic sound mixing functionality
  • Responsive design implementation
  • Core ambient sound library

๐Ÿ™ Acknowledgments

  • Audio Contributors:
    • Mike Koenig (SoundBible.com)
    • Daniel Simon
    • GlorySunz
    • Various Freesound.org contributors
  • Images: Beautiful nature photography from Unsplash photographers
  • Technology: Built with modern web technologies and best practices
  • Community: Thanks to all contributors and users

Created with โค๏ธ in Bulgaria
Powered by Next.js, React, and strong coffee

Last updated: December 2024

Contributors

DzhuneythasMobidependabot[bot]snyk-bot

Issues