<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Asmit Biswas</title>
    <description>The latest articles on DEV Community by Asmit Biswas (@asmittzzz).</description>
    <link>https://dev.to/asmittzzz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4091011%2F110ca1d0-4b89-4719-b589-8bbcc0627a0e.jpg</url>
      <title>DEV Community: Asmit Biswas</title>
      <link>https://dev.to/asmittzzz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/asmittzzz"/>
    <language>en</language>
    <item>
      <title>SlowSleep: a gentler way to end the day with open AI</title>
      <dc:creator>Asmit Biswas</dc:creator>
      <pubDate>Sat, 24 Oct 2026 12:59:14 +0000</pubDate>
      <link>https://dev.to/asmittzzz/slowsleep-a-gentler-way-to-end-the-day-with-open-ai-mbp</link>
      <guid>https://dev.to/asmittzzz/slowsleep-a-gentler-way-to-end-the-day-with-open-ai-mbp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;SlowSleep is a wind-down companion for the few minutes between finishing the day and falling asleep.&lt;br&gt;
It gives you two simple options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate a gentle bedtime story based on your mood, setting, and available time.&lt;/li&gt;
&lt;li&gt;Play a browser-generated ambient soundscape without downloading audio files.
The story flow lets you choose how you are arriving — peaceful, worn out, restless, or hopeful — then select a place such as a moonlit forest, rainy cabin, quiet ocean, or cloud garden.
The soundscape flow includes three room tones:&lt;/li&gt;
&lt;li&gt;Rain hush&lt;/li&gt;
&lt;li&gt;Night air&lt;/li&gt;
&lt;li&gt;Warm room
The goal is intentionally small: remove the effort of deciding what to listen to, what to read, or how to start winding down.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Try SlowSleep here:&lt;br&gt;
Open the live demo (&lt;a href="https://slowsleep.onrender.com/" rel="noopener noreferrer"&gt;https://slowsleep.onrender.com/&lt;/a&gt;)&lt;br&gt;
To use the soundscape:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Tonight’s ritual.&lt;/li&gt;
&lt;li&gt;Select Soundscape.&lt;/li&gt;
&lt;li&gt;Choose a room tone.&lt;/li&gt;
&lt;li&gt;Press Play soundscape.&lt;/li&gt;
&lt;li&gt;Adjust the volume slider if needed.
The sound is generated directly in the browser using the Web Audio API.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;View the SlowSleep source code on &lt;a href="https://github.com/itzAsmit/SlowSleep" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;SlowSleep is built with React, Vite, and a small Node server.&lt;br&gt;
The project has two separate creative paths:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AI bedtime stories
The browser sends the selected mood, place, duration, and optional name to a local /api/story endpoint.
The server then:&lt;/li&gt;
&lt;li&gt;Validates the incoming values.&lt;/li&gt;
&lt;li&gt;Builds a calm bedtime-story prompt.&lt;/li&gt;
&lt;li&gt;Calls OpenRouter using a server-side API key.&lt;/li&gt;
&lt;li&gt;Limits the response length.&lt;/li&gt;
&lt;li&gt;Applies a timeout and basic rate limiting.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Returns a friendly fallback if the provider is unavailable.&lt;br&gt;
The OpenRouter key is never placed in the frontend, localStorage, or the browser bundle.&lt;br&gt;
The deployed version is configured to use a Gemma model through OpenRouter. The model can be swapped through the server-side OPENROUTER_MODEL environment variable without changing the UI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Local ambient soundscapes&lt;br&gt;
The soundscape does not rely on an audio file or an external sound service.&lt;br&gt;
It uses the browser's Web Audio API to combine:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Low sine-wave tones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Slow frequency drift.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Filtered generated noise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A soft gain envelope.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Three selectable sound presets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A user-controlled volume level.&lt;br&gt;
This means the sound stays inside the browser tab and works without sending audio data to a server.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation made SlowSleep more flexible and more honest about its tradeoffs.&lt;br&gt;
Instead of tying the project to one fixed model or one proprietary interface, the story engine is configured through a model environment variable. That makes it possible to experiment with different open-weight models, compare quality, and eventually support local inference without redesigning the product.&lt;br&gt;
The project also keeps the local parts genuinely local:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ambient audio is generated in the browser.&lt;/li&gt;
&lt;li&gt;The built-in demo story works without OpenRouter.&lt;/li&gt;
&lt;li&gt;The API key remains server-side.&lt;/li&gt;
&lt;li&gt;The model provider can be changed without rewriting the frontend.
A closed API could have produced a story quickly, but the open model approach gives the project more control over model choice, deployment, cost, and future local inference.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;


&lt;div class="ltag-agent-session"&gt;
  &lt;div class="agent-session-header"&gt;
    
    &lt;span class="agent-session-tool-icon-badge" title="Gemini CLI"&gt;
&lt;/span&gt;
    &lt;span class="agent-session-title"&gt;Omnirush CLI Session&lt;/span&gt;
  &lt;/div&gt;

  &lt;div class="agent-session-scroll"&gt;
  &lt;/div&gt;

  &lt;div class="agent-session-footer"&gt;
    &lt;span class="agent-session-meta"&gt;
        0 of 0 messages
    &lt;/span&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;SlowSleep saves a small amount of effort at exactly the moment when effort feels expensive.&lt;br&gt;
Instead of opening another app, searching for sleep sounds, writing a prompt, or deciding what kind of story would feel right, the user can make a few quiet selections and press one button.&lt;br&gt;
The experience is designed to do less:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less setup.&lt;/li&gt;
&lt;li&gt;Less decision-making.&lt;/li&gt;
&lt;li&gt;Less tracking.&lt;/li&gt;
&lt;li&gt;Less stimulation.&lt;/li&gt;
&lt;li&gt;Less pressure to complete another task.
That is the whole idea behind “slow and steady”: let the software carry the small decisions so the person can stop carrying them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of Render — SlowSleep is deployed as a full Node application on Render, serving both the React frontend and the /api/story backend.&lt;/li&gt;
&lt;li&gt;Best Use of Gemma — The story-generation model is configured through OpenRouter using Gemma.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
