<?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: Gopi Krishna Suvanam</title>
    <description>The latest articles on DEV Community by Gopi Krishna Suvanam (@gopisuvanam).</description>
    <link>https://dev.to/gopisuvanam</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1144367%2Fbe9f4aa4-6be1-434b-8c0f-05954866f7d4.png</url>
      <title>DEV Community: Gopi Krishna Suvanam</title>
      <link>https://dev.to/gopisuvanam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gopisuvanam"/>
    <language>en</language>
    <item>
      <title>Scribbler.live</title>
      <dc:creator>Gopi Krishna Suvanam</dc:creator>
      <pubDate>Thu, 27 Mar 2025 20:55:53 +0000</pubDate>
      <link>https://dev.to/gopisuvanam/scribblerlive-kl2</link>
      <guid>https://dev.to/gopisuvanam/scribblerlive-kl2</guid>
      <description></description>
      <category>emptystring</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Gopi Krishna Suvanam</dc:creator>
      <pubDate>Thu, 06 Mar 2025 09:47:18 +0000</pubDate>
      <link>https://dev.to/gopisuvanam/-2cak</link>
      <guid>https://dev.to/gopisuvanam/-2cak</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/shubhamtiwari909" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F670173%2F78e77632-a231-4735-a43e-8de08ff92c3f.jpeg" alt="shubhamtiwari909"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/shubhamtiwari909/callbacks-vs-promises-vs-asyncawait-the-ultimate-guide-to-asynchronous-javascript-1j5n" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Callbacks vs Promises vs Async/Await: The Ultimate Guide to Asynchronous Javascript&lt;/h2&gt;
      &lt;h3&gt;Shubham Tiwari ・ Mar 3&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to use LLM in Browser using WebLLM</title>
      <dc:creator>Gopi Krishna Suvanam</dc:creator>
      <pubDate>Wed, 19 Feb 2025 05:01:20 +0000</pubDate>
      <link>https://dev.to/gopisuvanam/how-to-use-llm-in-browser-using-webllm-5fon</link>
      <guid>https://dev.to/gopisuvanam/how-to-use-llm-in-browser-using-webllm-5fon</guid>
      <description>&lt;p&gt;The rise of large language models (LLMs) like GPT-4 and Llama has transformed the AI landscape, but most of these models run on powerful cloud servers. What if you could run an LLM directly in your browser without relying on external APIs? This is where WebLLM comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is WebLLM?
&lt;/h2&gt;

&lt;p&gt;WebLLM is an open-source project that enables running large language models entirely in the browser using WebGPU. This means you can execute LLMs like Llama 3, Mistral, and Gemma locally on your machine without requiring API calls to external servers.&lt;br&gt;
&lt;a href="https://app.scribbler.live/?jsnb=https://examples.scribbler.live/WebLLM-Experiments.jsnb" rel="noopener noreferrer"&gt;Jump to notebook&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Use WebLLM?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔒 Privacy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since WebLLM runs on your device, no data is sent to external servers, making it ideal for privacy-conscious applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Low Latency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because there’s no network request to an API, WebLLM provides near-instant responses compared to cloud-based models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌍 Offline Capability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;WebLLM allows running AI-powered apps without an internet connection once the model is downloaded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💰 Cost Savings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since there’s no need for expensive API calls (like OpenAI or Hugging Face’s hosted models), WebLLM can significantly reduce costs for AI applications.&lt;/p&gt;
&lt;h2&gt;
  
  
  How Does WebLLM Work?
&lt;/h2&gt;

&lt;p&gt;WebLLM leverages WebGPU, the next-gen browser graphics API, to run models efficiently on your GPU. It builds on MLC LLM, which compiles and optimizes models to run in the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supported Models&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;WebLLM currently supports:&lt;br&gt;
✅ Llama 3 (Meta AI)&lt;br&gt;
✅ Mistral (Open-weight LLM)&lt;br&gt;
✅ Gemma (Google’s lightweight LLM)&lt;br&gt;
✅ StableLM (Stability AI)&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started with WebLLM
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://app.scribbler.live/?jsnb=https://examples.scribbler.live/WebLLM-Experiments.jsnb" rel="noopener noreferrer"&gt;Jump to notebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1️⃣ Add WebLLM to Your JavaScript Project&lt;/p&gt;

&lt;p&gt;You can integrate WebLLM via a CDN or npm package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script type="module"&amp;gt;
  import { init, chat } from 'https://cdn.jsdelivr.net/npm/webllm@latest';

  async function main() {
    const model = await init('Llama-3-8B');
    const response = await chat(model, 'What is WebLLM?');
    console.log(response);
  }

  main();
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2️⃣ Running WebLLM in Scribbler (JavaScript Notebook)&lt;/p&gt;

&lt;p&gt;If you prefer notebooks (like Jupyter but for JavaScript), you can try this in Scribbler:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;window.default = await import('https://cdn.jsdelivr.net/npm/webllm@latest');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const model = await init('Mistral-7B');
const response = await chat(model, 'Explain quantum computing');
response;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3️⃣ Deploying a Chatbot with WebLLM&lt;/p&gt;

&lt;p&gt;Want to build a chatbot with WebLLM? Here’s a minimal setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;input id="prompt" placeholder="Ask me anything..."&amp;gt;
&amp;lt;button onclick="runChat()"&amp;gt;Send&amp;lt;/button&amp;gt;
&amp;lt;p id="output"&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;script type="module"&amp;gt;
  import { init, chat } from 'https://cdn.jsdelivr.net/npm/webllm@latest';
  let model;

  async function setup() {
    model = await init('Gemma-2B');
  }

  async function runChat() {
    const input = document.getElementById('prompt').value;
    const response = await chat(model, input);
    document.getElementById('output').innerText = response;
  }

  setup();
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Performance Considerations&lt;/p&gt;

&lt;p&gt;WebLLM requires a modern GPU and browser to run efficiently. It works best on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google Chrome (latest)&lt;/li&gt;
&lt;li&gt;Edge (WebGPU enabled)&lt;/li&gt;
&lt;li&gt;Firefox Nightly (WebGPU experimental)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For best performance, enable WebGPU in Chrome by visiting:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chrome://flags/#enable-webgpu&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Future of WebLLM
&lt;/h2&gt;

&lt;p&gt;As WebGPU adoption grows, WebLLM could power offline AI assistants, interactive AI websites, and even AI-enhanced games. Future enhancements may include multi-modal AI (text + images) and custom fine-tuned models for specific applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;WebLLM is a game-changer for AI development, allowing LLMs to run entirely in the browser without cloud dependency. Whether you're building chatbots, AI-enhanced web apps, or offline AI tools, WebLLM makes it possible.&lt;/p&gt;

&lt;p&gt;🚀 Ready to try WebLLM? Drop a comment if you have questions or want more tutorials! 🙌&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Embracing the Simplicity and Power: Why I Love Vanilla JavaScript</title>
      <dc:creator>Gopi Krishna Suvanam</dc:creator>
      <pubDate>Wed, 23 Aug 2023 06:52:07 +0000</pubDate>
      <link>https://dev.to/gopisuvanam/embracing-the-simplicity-and-power-why-i-love-vanilla-javascript-lml</link>
      <guid>https://dev.to/gopisuvanam/embracing-the-simplicity-and-power-why-i-love-vanilla-javascript-lml</guid>
      <description>&lt;p&gt;In the vast expanse of the digital realm, where tools and frameworks shine in fleeting brilliance, there exists a timeless beauty that draws me like a moth to a flame. This beauty resides in the simplicity and raw power of vanilla JavaScript. In a world that seems obsessed with the allure of complex libraries and paradigms, my heart finds solace in the foundational elegance of this unadorned language.&lt;/p&gt;

&lt;p&gt;In the grand tapestry of programming languages, Python, Java, and JavaScript each hold their unique positions, like constellations lighting up the night sky. Python, with its graceful syntax, beckons with open arms, offering a path of least resistance to both newcomers and seasoned coders. Its clarity and readability create an immediate connection between thought and implementation, akin to a poet effortlessly weaving verses. Yet, as I contemplate Python's allure, I am drawn back to JavaScript's raw honesty.&lt;/p&gt;

&lt;p&gt;Java, on the other hand, stands tall and steadfast, a guardian of structured programming and object-oriented principles. Its disciplined nature appeals to the meticulous craftsman within us, constructing intricate architectures with a sense of order akin to that of an architect designing a grand cathedral. However, in the midst of Java's meticulousness, JavaScript whispers a different tale.&lt;/p&gt;

&lt;p&gt;JavaScript, in its vanilla form, is not bound by the confines of stringent structure or poetic grace. It is a language that thrives in the open wilderness, where lines of code are not just tools but brushstrokes on a canvas. In its seemingly humble syntax lies a canvas inviting experimentation, evolution, and the spark of creativity. There is a raw, primal connection to the web's very core, a dance with the Document Object Model (DOM) and asynchronous events that feels like communing with the digital spirit of the age.&lt;/p&gt;

&lt;p&gt;As we traverse the landscapes of programming languages, we find ourselves faced with trade-offs between simplicity and complexity, between poetry and prose, between structure and fluidity. Python's embrace is warm and comforting, like a serene lake reflecting the world around it. Java's embrace is firm and reassuring, like the steady grip of a mentor guiding us through a labyrinth.&lt;/p&gt;

&lt;p&gt;Yet, JavaScript's embrace is dynamic and boundless, like the wind carrying whispers from every corner of the digital cosmos. It celebrates the unfiltered essence of coding, reminding us that the journey matters as much as the destination. With it, we navigate the intricate dance of the DOM, breathing life into static pages and molding them into interactive experiences.&lt;/p&gt;

&lt;p&gt;In a world that's often in a hurry to embrace the next big thing, the quiet wisdom of vanilla JavaScript beckons us to pause, to revere the foundational artistry of our craft. Just as a painter returns to the simplicity of a blank canvas and a writer to an empty page, so too does the JavaScript developer find solace in the elegance of the unadorned canvas provided by vanilla JavaScript. It's a journey not just through code but through the essence of creation itself, where every keystroke is a brushstroke and every line a note in the symphony of the web.&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
  </channel>
</rss>
