<?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: Anamul Hoque</title>
    <description>The latest articles on DEV Community by Anamul Hoque (@anamdev).</description>
    <link>https://dev.to/anamdev</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%2F4209001%2F4b0efc38-58fe-44ee-9d57-7cf6a922cb7f.jpg</url>
      <title>DEV Community: Anamul Hoque</title>
      <link>https://dev.to/anamdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anamdev"/>
    <language>en</language>
    <item>
      <title>Ghost Tales: Learn English Through Ghost Stories, Running Locally with Gemma</title>
      <dc:creator>Anamul Hoque</dc:creator>
      <pubDate>Sun, 01 Nov 2026 06:36:52 +0000</pubDate>
      <link>https://dev.to/anamdev/ghost-tales-learn-english-through-ghost-stories-running-locally-with-gemma-2ah5</link>
      <guid>https://dev.to/anamdev/ghost-tales-learn-english-through-ghost-stories-running-locally-with-gemma-2ah5</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Ghost Tales (ভূতের কথা in Bengali) is a small web app that teaches English through ghost stories, with Bengali beside every sentence. A local model, Gemma through Ollama, writes each story and translates it on my own Mac.&lt;/p&gt;

&lt;p&gt;You pick a place, such as an old zamindar mansion or a river ghat at dusk. You pick a mood: spooky, or a gentle "memory ghost". You can name the hero. The story is typed out one sentence at a time, and each sentence is then translated into Bengali. The two languages sit side by side.&lt;/p&gt;

&lt;p&gt;I live in Bangladesh. I wanted a language tool that needs no account, no subscription and no constant connection. A story you enjoy is easier to remember than a list of words, and a tool that runs on your own machine is easier to trust.&lt;/p&gt;

&lt;p&gt;The ghost in my machine is the model itself. It lives in my own computer and tells stories by lamplight.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq662p52398bywheqr5q3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq662p52398bywheqr5q3.png" alt=" " width="800" height="2400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/3o23L7_F6HU" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;In the video I switch Wi-Fi off on screen, and it stays off for the rest of the recording. Story writing, translation and the Listen button all worked on my Mac that way. The narration was generated with ElevenLabs. The quiet ambient sound in the middle of the video is the app's own, synthesized in the browser and captured with system audio; the Listen voice is not included. The recording is edited: some waiting time was cut or sped up.&lt;/p&gt;

&lt;p&gt;The app has three learning helpers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Side by side:&lt;/strong&gt; English on one side, Bengali on the other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn mode:&lt;/strong&gt; the English is blurred. Read the Bengali, guess the English, then click to reveal it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Listen:&lt;/strong&gt; the browser reads each sentence aloud with a speech voice from my system. On my Mac both an English and a Bengali voice were available, and both sound robotic. I did not check whether every voice runs locally or online.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is the last pair from the run in the screenshot above, unedited:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Some memories never leave us, they just become part of the home.&lt;br&gt;
কিছু স্মৃতি কখনো আমাদের ছেড়ে যায় না, সেগুলো শুধু ঘরের অংশ হয়ে যায়।&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/AnamulAI/ghost-tales" rel="noopener noreferrer"&gt;https://github.com/AnamulAI/ghost-tales&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One &lt;code&gt;index.html&lt;/code&gt; file, a README and an MIT licence. No framework, no build step, no external fonts or scripts. To run it: &lt;code&gt;ollama pull gemma4:12b&lt;/code&gt;, then &lt;code&gt;python3 -m http.server 8000&lt;/code&gt; in the folder, and open &lt;code&gt;http://localhost:8000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Submission snapshot: tag &lt;code&gt;submission-v1&lt;/code&gt; (&lt;a href="https://github.com/AnamulAI/ghost-tales/releases/tag/submission-v1" rel="noopener noreferrer"&gt;view&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemma, locally, through Ollama.&lt;/strong&gt; The page calls Ollama on &lt;code&gt;http://localhost:11434&lt;/code&gt; and uses &lt;code&gt;gemma4:12b&lt;/code&gt; (a 7.7 GB download). I tested on an Apple M4 Mac with 16 GB of RAM. In my own testing the model writes natural Bengali, which is the main reason I chose it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two steps, not one.&lt;/strong&gt; Step one streams an English story of about 12 short sentences, at level A2 to B1. Step two sends each sentence to the model on its own and asks for the Bengali only. Small models tend to be more accurate on short inputs; a whole-story translation has more room to drift, skip lines or add notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The &lt;code&gt;think: false&lt;/code&gt; finding.&lt;/strong&gt; Gemma 4 can "think" before it answers. In a manual test in the Ollama app, one short translation spent about 25 seconds thinking. That is far too slow for a dozen sentences, so the app sends &lt;code&gt;think: false&lt;/code&gt; (and retries without it if an Ollama version rejects the field). With thinking off, three test stories took 23 to 31 seconds in total, and a single sentence took about 1.1 to 1.3 seconds on average (raw outputs are in &lt;code&gt;sample-stories.md&lt;/code&gt;). The 25-second figure came from a different manual test, so it is not a controlled comparison, but the gap made the choice easy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Telling the story slowly.&lt;/strong&gt; By default each English sentence is typed out over a few seconds, then the Bengali fades in. There is a faster pace and a tap mode. In one test run at the default pace, the last sentence appeared about 50 seconds after Begin, and all twelve translations were done a few seconds later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local only, on purpose.&lt;/strong&gt; The model picker reads your installed models from Ollama and hides any with "cloud" in the name, because some Ollama models run on remote servers. That keeps story writing and translation on the machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The look and the sound.&lt;/strong&gt; The page is a haunted storybook by lamplight: a layered night scene with a moon, fog and fireflies that shift as you move the mouse, and a palette for each mood. Sound is synthesized in the browser with the Web Audio API, with no audio files: a quiet ambient bed for each place, and short effects triggered by words in the sentence on screen. Sound is off until you press the Sound button. I tried the visuals and sound only on my own Mac, in one browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honest limits.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Translation mistakes happen. My AI assistant checked three test stories and found a few clear defects: a stray Russian word at the start of one line, a garbled phrase, and a stray Latin letter inside a word. Most lines looked fine, but a small model's Bengali still needs review by a person. The page says so.&lt;/li&gt;
&lt;li&gt;The Listen voices are robotic, and Bengali speech needs a Bengali voice on your system.&lt;/li&gt;
&lt;li&gt;I have not run a user study, so I do not know yet how much it helps people learn.&lt;/li&gt;
&lt;li&gt;My code is MIT licensed. The Gemma model has its own terms, which I have not reviewed in detail.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What comes next.&lt;/strong&gt; Test it with real learners, add a "check my translation" mode, review the Bengali with native speakers, and try an open text-to-speech model for more natural voices.&lt;/p&gt;

&lt;p&gt;AI tools helped build this project. I used Claude and Claude Code for code, tests and drafts, and I ran the app myself on my Mac, including with Wi-Fi switched off.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A model that runs on your own machine can't be switched off, repriced or turned into a data pipeline. That matters most for learners with little money or a patchy connection. Open weights also let me inspect, swap and test the model: when I wanted a faster setting, I changed one flag and measured the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;Ghost stories are how many of us first learned how language can pull you in. It felt right that a ghost story be the thing a machine tells, in two languages, on a computer that stays in the room with you.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; the whole app is built around Gemma (&lt;code&gt;gemma4:12b&lt;/code&gt;) running locally through Ollama, for both story writing and Bengali translation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs:&lt;/strong&gt; I used ElevenLabs (Eleven v4, voice "Wyman - The Storyteller", with audio tags for tone) to generate the narration for the demo video. It is not used inside the app, on purpose: story writing and translation stay on the computer.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How I Ship Full-Stack Web Apps as a Vibe Coder Using Claude Code and Modern Cloud</title>
      <dc:creator>Anamul Hoque</dc:creator>
      <pubDate>Mon, 26 Oct 2026 15:52:30 +0000</pubDate>
      <link>https://dev.to/anamdev/how-i-ship-full-stack-web-apps-as-a-vibe-coder-using-claude-code-and-modern-cloud-4h5g</link>
      <guid>https://dev.to/anamdev/how-i-ship-full-stack-web-apps-as-a-vibe-coder-using-claude-code-and-modern-cloud-4h5g</guid>
      <description>&lt;p&gt;For the past year, my software development approach has fundamentally shifted. Rather than writing boilerplate infrastructure line by line, I operate as an AI-native builder—frequently described today as a "vibe coder."&lt;/p&gt;

&lt;p&gt;My focus is simple: turning functional ideas into live, production-ready web software at rapid execution speed.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Working Stack and Tooling
&lt;/h3&gt;

&lt;p&gt;To maintain high development velocity without sacrificing reliability, I rely on a concrete modern workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI-Assisted Code Generation:&lt;/strong&gt; Terminal-based agents like Claude Code, alongside tools like Lovable for interactive UI scaffolding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Backend and State Management:&lt;/strong&gt; Supabase for relational PostgreSQL databases, user authentication, and real-time triggers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Infrastructure and Edge Deployment:&lt;/strong&gt; Cloudflare Workers and Pages for lightning-fast routing and frontends, along with Render for long-running service instances.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Version Control:&lt;/strong&gt; Standard Git workflows connected directly to automated GitHub CI/CD pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What I’ve Built With This Pipeline
&lt;/h3&gt;

&lt;p&gt;This pipeline isn't theoretical; it directly powers my active software builds under my brand, &lt;strong&gt;Lcino&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Locino Writer:&lt;/strong&gt; An AI-powered writing workspace designed to streamline multi-format drafting and structured text refinement.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Find Profile:&lt;/strong&gt; A multi-platform web discovery and scraping utility built to parse public profile data across major networks efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Medical Practice Management System:&lt;/strong&gt; A specialized web application tailored for practicing physicians in Bangladesh to automate token management, digital prescriptions, and chamber scheduling.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What I’ve Learned About Vibe Coding
&lt;/h3&gt;

&lt;p&gt;The biggest lesson from shipping real applications with AI is that prompt engineering is only 20% of the battle. The remaining 80% is understanding system architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Knowing how data flows between your client and database.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setting strict constraints so the AI produces clean, maintainable TypeScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Having immediate deployment pipelines so you can test breaking changes in real time.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I joined DEV to document real-world AI development workflows, test new cloud developer tooling during Hacktoberfest, and collaborate with other builders.&lt;/p&gt;

&lt;p&gt;You can explore my background and active software projects at &lt;a href="https://www.anamulhoque.com/" rel="noopener noreferrer"&gt;anamulhoque.com&lt;/a&gt; and &lt;a href="https://lcino.com/" rel="noopener noreferrer"&gt;lcino.com&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What does your AI development stack look like right now? Drop your setup below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cloud</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
