Giter Club home page Giter Club logo

moodist's Introduction

Moodist Logo Banner

Moodist ๐ŸŒฒ

Ambient sounds for focus and calm.

Visit Moodist | Buy Me a Coffee

Table of Contents

Features

  1. ๐ŸŽต Over 75 ambient sounds.
  2. ๐Ÿ“ Persistent sound selection.
  3. โœˆ๏ธ Sharing sound selections with others.
  4. ๐Ÿงฐ Custom sound presets.
  5. ๐ŸŒ™ Sleep timer for sounds.
  6. ๐Ÿ““ Notepad for quick notes.
  7. ๐Ÿ… Pomodoro timer.
  8. โœ… Simple to-do list (soon).
  9. โŒจ๏ธ Keyboard shortcuts for everything.
  10. ๐Ÿฅท Privacy focused: no data collection.
  11. ๐Ÿ’ฐ Completely free, open-source, and self-hostable.

Tools

  • โšก TypeScript: Programming Language
  • ๐Ÿ”จ React: UI Library
  • ๐Ÿง‘โ€๐Ÿš€ Astro: Meta Framework
  • ๐ŸŽจ CSS Modules: Styling
  • ๐Ÿป Zustand: State Management
  • ๐ŸŽญ Framer Motion: Animation Library
  • โš™๏ธ Radix: Accessible Components
  • ๐Ÿ“• Storybook: Component Documentation
  • ๐Ÿงช Vitest: Unit Testing (soon)
  • ๐Ÿ”ญ Playwright: End-To-End Testing (soon)
  • ๐Ÿ” ESLint: Code Linting
  • ๐Ÿงน Prettier: Code Formatting
  • ๐Ÿงผ Stylelint: CSS Linting
  • ๐Ÿถ Husky: Git Hooks
  • ๐Ÿ“ Lint Staged: Running Linters on Staged Files
  • ๐Ÿงฝ Commitlint: Git Commit Linting
  • ๐Ÿงญ Commitizen: Git Commit Message Helper
  • ๐Ÿ““ Standard Version: Versioning and CHANGLOG Generation
  • ๐Ÿงฐ PostCSS: CSS Transformations

Commands

  • npm run dev: run development server
  • npm run build: build for production
  • npm run preview: preview the built app
  • npm run lint: lint files using ESLint
  • npm run lint:fix: lint and fix using ESLint
  • npm run lint:style: lint styles using Stylelint
  • npm run lint:style:fix: lint and fix styles using Stylelint
  • npm run format: format files using Prettier
  • npm run commit: commit message using Commitizen
  • npm run release:major: release major version
  • npm run release:minor: release minor version
  • npm run release:patch: release patch version
  • npm run storybook: run Storybook

Contributing

๐Ÿšง Please check CONTRIBUTING.md file.

Support Moodist

โญ Give a star if you liked this project.

โ˜• Buy Me a Coffee to help me maintain Moodist.

License

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

โš ๏ธ Third-Party Assets

Some sounds used in this project are sourced from third-party providers and are subject to different licenses:

moodist's People

Contributors

baldator avatar remvze avatar supermeepboy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

moodist's Issues

[Feature Request] Sleep Timer

It would be awesome if there was a built-in sleep timer so I could set this down in my bedroom when I'm ready to sleep, and be able to have it automatically stop after a time I define.

[Accessibility] Issue with the focus and the Show more/Show less buttons

When tabulating and triggering the "Show more" button, the focus is lost and tabulating would send us to the first item of the next category of sound. Therefore, to see the previously hidden items which were just shown to the user, the user would have to do a full loop again or tabulate backwards (and it would be a bad experience as they would be sent to the last item of the category, first).

Accessibility guidelines which can help us are the following :

I don't know which case is our case because our "Show more" button, then becomes a "Show less" button. So, as far as I understand it, we're in an in-between of those guidelines.

What I think we should do :

  • Focus the first "hidden" item which is shown after triggering "Show more".
  • If we click "Show less", jump to the first item of the following category.
  • I think we should use aria-expanded labels because the Show more/Show less buttons are kind of a panel thing.

I know you have a lot of work to do, I tried something on my side but I think it is too high level for me yet.

My plan was :

  • Add a ref on the Sound with index 6 of each category
  • Use forwardRef to pass that ref
  • Use that ref to send focus after calling setShowAll(prev => !prev);
  • I have not yet been thinking about how to code the "Show less" behavior

If you think I can help you with that, don't hesitate to ping me to right directions, I'll work on it. Otherwise, I'll just read your commit. I'd appreciate if you can ping me once it is done so I can learn new things ! ๐Ÿ˜Š

Bug with modals superposition

Steps :
1/ Shift + P to open Pomodoro
2/ Shift + N to open Notepad
3/ Write somthing in the notepad
4/ Press Esc.

Expected :
The Notepad modal is closed

Actual :
The Pomodoro modal in the background is closed

Additional comments :
For some reasons if you don't interact with the notepad modal (such as typing or deleting things), escape will correctly close the Notepad modal.

Solution :
Either a fix to detect which modal to close but maybe the question is "should we allow 2 modals to be opened at the same time ?".
I don't have an opinion about it because I don't know more about modals, sorry ! :)

Shortcuts are not working in the menu

New shortcuts to open Pomodoro, Notepad or else in the menu don't seem to work for me.

For example, when I press Alt+P, Pomodoro modal does not open.

Missing Twitter/X account?

Not that I'm a fan of Twitter/X, but just wanted to point out that the linked X profile doesn't exist (yet, or any more). This is linked from the footer of the Moodist page, and also from this GitHub profile.

[Feature Request] Ability to save presets

Great app, thanks for sharing (especially via docker). It would be great if you could save a number of presets to make it easier to use each time you open it. They would include:

  • Ability to name the preset
  • Ideally the ability to add a description to the preset
  • Select what sounds you want included in the preset
  • What volume level you want each sound at
  • Any other features added in the future (e.g. if you add ability to change sound frequency)

[Feature request] Add a light theme

Currently, the default and only theme of the webpage is a dark page. It would be a great option to be able to have a switch allowing to chose between a dark theme and a light theme.

[Feature Request] Dynamic population of custom sounds

I love this! It's super clean and well executed. Definitely going to be the new white noise generator for my son.

For running my own copy of this at home, it would be handy if it could list the mp3s in a particular folder (custom or some such, or just all the data folders), and if there are files that aren't covered by the existing tsx files describing the sound, populate them into the UI with a generic icon or into the custom category

This way adding in our own sounds would be as easy as adding a docker volume mount, and not having to edit tsx files each time.

To keep it from hitting disk constantly you could just do it once in startup, or add a "reload from disk" button

I figured this would cut down on people asking for the addition of other extraneous signs. (like a heartbeat sound in my case)

Auth

Is there a way to add auth to this for the self hosted use case?

[Feature Request] Play audio with-in the local docker

Thanks for all the hard work! This thing is great.

I would love to have the functionality to pipe the audio to the local docker vs the user's browser. The idea is that the server's sound card running docker would be connected to my whole house audio. A user would be able to change the sounds by browsing to the page, but it would not play on their device, it would play on the docker server.

Thanks again.

[Feature Request] Ability to export mixes

It would be handy to be able to use this to export a particular mix as it's own mp3. Could be a big all to generate them, but sometimes you just really need a looping static file you can play somewhere specific.

[Feature Request] Fade in/out on play/pause

I'd fade the mix in or out when pressing play or pause:
right now the start and stop is immediate, which feels a bit abrupt for the calming vibe.

Thank you for this nifty piece of software! I also love the UI look and the ability to run it locally

[Feature Request] Home Assistant integration

Thank you for a great application! I know this is a lot to ask for but it would be great with a Home Assistant integration. I guess a prerequisite would be to implement the ability so save presets first as mentioned in #6.

Stereo support

It would be great allowing users to set the volume for each channel for a more immersive experience!

[Feature Request] Ability to stream generated audio

Hi. It would be a nice addition to be able to generate an MP3 or AAC audio stream which can then be streamed on any media player.

My example use case is to be able to self host at home, configure a preset with the sounds I want, and then stream that generated audio to an ESP32 based media player with a speaker attached. This also avoids having to have a browser window open in the background, and it can also be automated with Home Assistant quite easily.

[Feature Request] Add global/master audio slider

Add a slider to configure volume of entire tab.
When I figured out the preset I want with all the different slider set to specific values, but then I want the whole thing to be a bit quieter, a master slider would be very convenient

Thank you Very Much

Dear Developer,

I would just like to say thank you very much for making this, it is works excellently. Thank you especially for making it open and free. Your work and efforts are greatly appreciated.

Sounds credit and license?

The website says โ€œcarefully curatedโ€ and the Github that everything is placed under MIT, but it feels like some source is missing for all the sounds, and a confirmation that they are for sure under MIT as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.