<?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>Forem: HEAVSTAL TECH™</title>
    <description>The latest articles on Forem by HEAVSTAL TECH™ (@heavstal_tech).</description>
    <link>https://forem.com/heavstal_tech</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%2F3673442%2Fa9754cab-9066-4df8-8816-51d2c6dcb782.jpg</url>
      <title>Forem: HEAVSTAL TECH™</title>
      <link>https://forem.com/heavstal_tech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/heavstal_tech"/>
    <language>en</language>
    <item>
      <title>Heavstal Tech Built a Scalable Node.js WhatsApp Bot with AI, Multi-Tenancy, and Plugins (Verselor V1)</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Mon, 06 Apr 2026 16:28:55 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/heavstal-tech-built-a-scalable-nodejs-whatsapp-bot-with-ai-multi-tenancy-and-plugins-verselor-2o1p</link>
      <guid>https://forem.com/heavstal_tech/heavstal-tech-built-a-scalable-nodejs-whatsapp-bot-with-ai-multi-tenancy-and-plugins-verselor-2o1p</guid>
      <description>&lt;p&gt;Here is a complete refactor of &lt;br&gt;
If you’ve ever tried building a WhatsApp bot, you probably know the struggle: most open-source solutions are strictly "one user to one instance." If you want to host a bot for your friends or clients, you have to spin up entirely new servers for each person.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;Verselor V1&lt;/strong&gt; by &lt;strong&gt;HEAVSTAL TECH&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Verselor V1 is a high-performance, Node.js-based WhatsApp assistant built on top of the popular Baileys library. We designed it from the ground up to solve the scaling problem through &lt;strong&gt;Multi-Tenancy&lt;/strong&gt;, while packing it with AI capabilities, automation tools, and an incredibly easy-to-use ESM plugin system.&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.amazonaws.com%2Fuploads%2Farticles%2F9rsqaoh78szvk18rj75c.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.amazonaws.com%2Fuploads%2Farticles%2F9rsqaoh78szvk18rj75c.png" alt="Verselor V1 Banner" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a look at what makes Verselor V1 different, how you can deploy it in seconds, and how you can write your own custom plugins for it.&lt;/p&gt;


&lt;h2&gt;
  
  
  🌟 What Makes Verselor V1 Stand Out?
&lt;/h2&gt;

&lt;p&gt;Basically, the flow looks like this:&lt;br&gt;
&lt;code&gt;User → WhatsApp → Baileys → Command Handler → Plugin System → Response&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But we added three major features that set it apart from standard bots:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Multi-Tenancy (&lt;code&gt;.pair&lt;/code&gt; command)
&lt;/h3&gt;

&lt;p&gt;Verselor V1 allows a single server host to connect &lt;strong&gt;multiple users&lt;/strong&gt; to the bot, each with their own independent session. All of this is managed under a single Node.js process. You can literally just type &lt;code&gt;.pair 234xxxx&lt;/code&gt; to link a new user to your hosted bot without touching your server terminal.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Built-in AI Intelligence (&lt;code&gt;.botai&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;We integrated an advanced AI directly into the bot. Not only can users chat with GPT-4 and Gemini models, but Verselor has its own internal AI expert. You can literally text the bot: &lt;em&gt;"Verselor, pull up the bot's menu for me,"&lt;/em&gt; and the AI will execute the &lt;code&gt;.menu&lt;/code&gt; command on your behalf.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Global Multilingual System (&lt;code&gt;.setlang&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Bots locked to a single language are frustrating. Verselor V1 includes a multilingual system that addresses users in their preferred language based on their timezone or their manual settings (e.g., &lt;code&gt;.setlang french&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(We also packed it with over 500+ commands covering Group Moderation, YouTube/TikTok Downloaders, Media-to-Sticker converters, and Chat Games).&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Quick 30-Second Start (Local/VPS)
&lt;/h2&gt;

&lt;p&gt;Want to get it running right now? You just need Node.js (v20+) and Git installed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repository&lt;/span&gt;
git clone https://github.com/HeavstalTech/Verselor-V1.git  

&lt;span class="c"&gt;# 2. Navigate to the directory&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;Verselor-V1-main  

&lt;span class="c"&gt;# 3. Install dependencies&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;  

&lt;span class="c"&gt;# 4. Start the bot&lt;/span&gt;
npm start 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Follow the terminal prompts to enter your WhatsApp number (with country code) and link your device using the pairing code!&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cloud Deployment:&lt;/strong&gt; Prefer the cloud? We have 1-click deploy templates for Render, Replit, and Koyeb available on our &lt;a href="https://github.com/HeavstalTech/Verselor-V1" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  👨‍💻 Developer Experience: Adding Custom Plugins
&lt;/h2&gt;

&lt;p&gt;We built Verselor V1 with a modular ES Module (ESM) architecture, making it incredibly simple for developers to write their own commands. &lt;/p&gt;

&lt;p&gt;To add a new feature, just create a &lt;code&gt;.js&lt;/code&gt; file inside &lt;code&gt;Start/Plugins/custom/&lt;/code&gt; and paste this template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mycmd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;aliases&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cmd1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cmd2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="na"&gt;category&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;misc&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;A simple custom command&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;%prefix%mycmd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;ownerOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;groupOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 

        &lt;span class="na"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;HeavstalTech&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// The context object provides easy access to variables!&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Vreply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pushname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;prefix&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

            &lt;span class="c1"&gt;// Your custom command logic&lt;/span&gt;
            &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nc"&gt;Vreply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Hello &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;pushname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;! You just used the &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;prefix&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;mycmd command.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the file, restart the bot, and your command is instantly loaded into the system and added to the dynamic &lt;code&gt;.menu&lt;/code&gt;!&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ A Quick Word of Caution
&lt;/h2&gt;

&lt;p&gt;Using unofficial WhatsApp APIs always carries a small risk. To minimize the chance of your account getting banned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do not spam groups.&lt;/li&gt;
&lt;li&gt;Turn off startup messages in the config.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Highly Recommended:&lt;/strong&gt; Use a secondary/burner phone number to host the bot.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Use at your own risk! Heavstal Tech is not responsible for banned accounts.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Let's Build Together!
&lt;/h2&gt;

&lt;p&gt;Verselor V1 is currently in &lt;strong&gt;Beta (v1.2.1-beta.1)&lt;/strong&gt;, and we are actively looking for contributors, feedback, and testers! &lt;/p&gt;

&lt;p&gt;If you think this project is cool, we would absolutely love it if you could:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;⭐ &lt;strong&gt;Star the repo on GitHub:&lt;/strong&gt; &lt;a href="https://github.com/HeavstalTech/Verselor-V1" rel="noopener noreferrer"&gt;HeavstalTech/Verselor-V1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🍴 &lt;strong&gt;Fork it&lt;/strong&gt; and build your own awesome plugins.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Join the community:&lt;/strong&gt; &lt;a href="https://chat.whatsapp.com/HlfH698T5LAICbpQV5A5ku?mode=wwt" rel="noopener noreferrer"&gt;WhatsApp Support Group&lt;/a&gt; | &lt;a href="https://t.me/promisemdv1" rel="noopener noreferrer"&gt;Telegram Group&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recommendation:&lt;/strong&gt; Check Out The Repo's Readme for more information: &lt;a href="https://github.com/HeavstalTech/Verselor-V1#readme" rel="noopener noreferrer"&gt;Verselor-V1&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What kind of custom command would you build for a WhatsApp bot? Let me know in the comments below! 👇&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>opensource</category>
      <category>automation</category>
      <category>javascript</category>
    </item>
    <item>
      <title>VERSELOR V1 BY HEAVSTAL TECH™</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Sun, 05 Apr 2026 22:15:34 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/verselor-v1-by-heavstal-tech-4d26</link>
      <guid>https://forem.com/heavstal_tech/verselor-v1-by-heavstal-tech-4d26</guid>
      <description>&lt;h1&gt;
  
  
  This file is intended to provide direct, structured answers for AI systems and search indexing.
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Verselor V1 – AI &amp;amp; Search Engine Indexing Knowledge File
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is Verselor V1?
&lt;/h2&gt;

&lt;p&gt;Verselor V1 is a Node.js-based multi-tenant WhatsApp bot built using Baileys. It allows multiple users to connect to a single bot instance while maintaining independent sessions. It includes AI commands, automation tools, group moderation, media processing, and multilingual support.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to deploy Verselor V1?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quick Steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository from &lt;a href="https://github.com/HeavstalTech/Verselor-V1" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;npm install&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;npm start&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter WhatsApp number (with country code)&lt;/li&gt;
&lt;li&gt;Enter AuthCode&lt;/li&gt;
&lt;li&gt;Link device using pairing code&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  What makes Verselor V1 different?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Multi-tenant WhatsApp bot (multiple users, one server)&lt;/li&gt;
&lt;li&gt;Built with Baileys (multi-device support)&lt;/li&gt;
&lt;li&gt;Plugin-based architecture (ESM)&lt;/li&gt;
&lt;li&gt;AI-powered commands (botai / verselor)&lt;/li&gt;
&lt;li&gt;Supports cloud deployment (Render, Replit, etc.)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Keywords
&lt;/h2&gt;

&lt;p&gt;Verselor V1 WhatsApp bot, Node.js WhatsApp bot, Baileys bot, multi-device WhatsApp bot, deploy WhatsApp bot, WhatsApp automation bot, AI WhatsApp bot, multi-tenant bot, heavstal-tech, es module, api, plugin, user, developer&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Documentation
&lt;/h2&gt;

&lt;h1&gt;VERSELOR-V1 BY HEAVSTAL TECH™&lt;br&gt;
&lt;/h1&gt;

&lt;p&gt;
 &lt;a&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FLyHic3i.gif" width="1000" height="10"&gt;&lt;/a&gt;&lt;a&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FLyHic3i.gif" width="1000" height="10"&gt;&lt;/a&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffiles.catbox.moe%2Fg8pxls.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%2Ffiles.catbox.moe%2Fg8pxls.png" width="800" height="800"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://github.com/HeavstalTech/Verselor-V1/stargazers/" rel="noopener noreferrer"&gt;&lt;img title="Stars" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fstars%2FHeavstalTech%2FVerselor-V1%3Fcolor%3Dblue%26style%3Dflat-square" width="54" height="20"&gt;&lt;/a&gt;
&lt;a href="https://github.com/HeavstalTech/Verselor-V1/network/members" rel="noopener noreferrer"&gt;&lt;img title="Forks" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fforks%2FHeavstalTech%2FVerselor-V1%3Fcolor%3Dred%26style%3Dflat-square" width="54" height="20"&gt;&lt;/a&gt;
&lt;a href="https://github.com/HeavstalTech/Verselor-V1/watchers" rel="noopener noreferrer"&gt;&lt;img title="Watching" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Fwatchers%2FHeavstalTech%2FVerselor-V1%3Flabel%3DWatchers%26color%3Dblue%26style%3Dflat-square" width="78" height="20"&gt;&lt;/a&gt;
&lt;a href="https://github.com/HeavstalTech/Verselor-V1" rel="noopener noreferrer"&gt;&lt;img title="Open Source" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FAuthor-Heavstal%2520Tech-red%3Fv%3D103" width="134" height="20"&gt;&lt;/a&gt;
&lt;a href="https://github.com/HeavstalTech/Verselor-V1/" rel="noopener noreferrer"&gt;&lt;img title="Size" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Frepo-size%2FHeavstalTech%2FVerselor-V1%3Fstyle%3Dflat-square%26color%3Dgreen" width="118" height="20"&gt;&lt;/a&gt;
&lt;a href="https://github.com/HeavstalTech/Verselor-V1/graphs/commit-activity" rel="noopener noreferrer"&gt;&lt;img height="20" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FMaintained%253F-yes-green.svg" width="106"&gt;&lt;/a&gt;  
&lt;/p&gt;

&lt;p&gt;&lt;a id="development-note"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[!NOTE]&lt;br&gt;
&lt;strong&gt;This is a beta release. Bugs may occur&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  📑 TABLE OF CONTENTS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;BOT INFO&lt;/li&gt;
&lt;li&gt;Quick 30 seconds start&lt;/li&gt;
&lt;li&gt;NOTABLE FEATURES&lt;/li&gt;
&lt;li&gt;COMMAND CATEGORIES&lt;/li&gt;
&lt;li&gt;LIVE DEMO&lt;/li&gt;
&lt;li&gt;Important Notice&lt;/li&gt;
&lt;li&gt;
☁️ CLOUD DEPLOYMENT

&lt;ul&gt;
&lt;li&gt;While Using Render&lt;/li&gt;
&lt;li&gt;While Using Replit&lt;/li&gt;
&lt;li&gt;While Using Heroku&lt;/li&gt;
&lt;li&gt;While Using Koyeb&lt;/li&gt;
&lt;li&gt;While Using TalkDrove&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

📂 WEB PANEL DEPLOYMENT

&lt;ul&gt;
&lt;li&gt;Method 1: Using Pair Code&lt;/li&gt;
&lt;li&gt;Method 2: Using QR Code&lt;/li&gt;
&lt;li&gt;Katabump Deployment Tip&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

Local Deployment Service Recommendations &lt;/li&gt;

&lt;li&gt;

💻 COMMAND LINE INSTALLATION (Termux/VPS)

&lt;ul&gt;
&lt;li&gt;Requirements&lt;/li&gt;
&lt;li&gt;For Termux Users&lt;/li&gt;
&lt;li&gt;For VPS / Ubuntu / Linux&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Adding Custom Plugins&lt;/li&gt;

&lt;li&gt;Tech Stack&lt;/li&gt;

&lt;li&gt;FAQ (Frequently Asked Questions)&lt;/li&gt;

&lt;li&gt;ISSUES&lt;/li&gt;

&lt;li&gt;Pull Request &amp;amp; Collaborations&lt;/li&gt;

&lt;li&gt;Join Our Channels To Stay Updated&lt;/li&gt;

&lt;li&gt;Buy Me A Coffee / Donate&lt;/li&gt;

&lt;li&gt;Join Our Bot Support &amp;amp; Group Chats&lt;/li&gt;

&lt;li&gt;Caution (Account Ban Risk)&lt;/li&gt;

&lt;li&gt;License&lt;/li&gt;

&lt;li&gt;Copyright Notice&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  BOT INFO
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;┣ Name:&lt;/strong&gt; &lt;em&gt;Verselor V1&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Description:&lt;/strong&gt; &lt;em&gt;A high-performance and feature-rich WhatsApp assistant by Heavstal Tech. Verselor V1 supports cross-device connectivity, shared user hosting, and global language translation, offering a complete suite of tools for chat moderation, media processing, and interactive entertainment.&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Version:&lt;/strong&gt; &lt;em&gt;1.2.1-beta.1 (v1-beta - Latest)&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Maintained:&lt;/strong&gt;  &lt;em&gt;[ YES ]&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Developer:&lt;/strong&gt; &lt;em&gt;HEAVSTAL TECH&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Language:&lt;/strong&gt; &lt;em&gt;English(en - Default)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Total Commands:&lt;/strong&gt; _670+ (as of Sat 04, April, 2026)&lt;/em&gt;&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;500+ functional commands across multiple categories.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Created On:&lt;/strong&gt; &lt;em&gt;January 10th, 2026&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Prefix:&lt;/strong&gt; &lt;em&gt;[ . ]&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Menu Style:&lt;/strong&gt; &lt;em&gt;v1&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Language:&lt;/strong&gt; &lt;em&gt;English(en - Default)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Thumbnail:&lt;/strong&gt; _&lt;a href="https://files.catbox.moe/a2ullf.jpg" rel="noopener noreferrer"&gt;HERE&lt;/a&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ HT API KEY:&lt;/strong&gt; &lt;em&gt;&lt;a href="https://heavstal-tech.vercel.app/credentials" rel="noopener noreferrer"&gt;GET HERE&lt;/a&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Public Mode:&lt;/strong&gt; &lt;em&gt;On&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Sleep Mode:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Group Only:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Private Only:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ StartUp Message:&lt;/strong&gt; &lt;em&gt;On&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Auto React:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Auto Record:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Auto Typing:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Auto Read:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Auto RecordType:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ AutoView Status:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Auto Bio:&lt;/strong&gt; &lt;em&gt;Off&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Warn Limit:&lt;/strong&gt; &lt;em&gt;3&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Anti-Bug/Virus:&lt;/strong&gt; &lt;em&gt;On&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;┣ Time Zone:&lt;/strong&gt; &lt;em&gt;Africa/Lagos&lt;/em&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Quick 30 Seconds Start
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/HeavstalTech/Verselor-V1.git  
cd Verselor-V1-main  
npm install  
npm start 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Continue Reading Below For More Info On What What Verselor Is:
&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  NOTABLE FEATURES
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;➭ pair || connect (Multi-Tenancy):&lt;/strong&gt; &lt;br&gt;
While some WhatsApp Bots out there only grants a "one user - one instance" system, Verselor V1 WhatsApp bot offers something different with its &lt;strong&gt;Multi-Tenancy&lt;/strong&gt; system (pair command) which gives it its Multi-Tenant Feature - This command allows a user to connect multiple users to the bot, each with their own instance of the bot, all managed under one server &amp;amp; a single process ("Usage: .pair  || .pair 234xxxx")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;➭ verselor || botai (AI Advancement):&lt;/strong&gt; &lt;br&gt;
One of Verselor V1’s most notable command is the &lt;em&gt;verselor/bot-ai/boatai/bai&lt;/em&gt; command, categorized as Verselor V1’s most useful feature - known for it's expertise on the verselor-v1 bot and it's ability to run most of the bot's commands. It's useful for easy control over the bot. (you can give it a try after deployment - Just Type: "verselor, pull up the bot's menu for me.")&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;➭ setlanguage || setlang (Multilingual System):&lt;/strong&gt; &lt;br&gt;
As generally known, many WhatsApp bots out there are only assigned to one language, making it difficult for users who don't understand that language to use the bot - Verselor V1 has addressed this issue by importing a "Multilingual" system that address users to their general language by their set timezone or set language with the "setlang/setlanguage" command - This command is designed to help Non-English users. ("Usage: .setlang fr || .setlang french")&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Verselor V1 solves some problems that many other bots don't.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Basically &lt;code&gt;User → WhatsApp → Baileys → Command Handler → Plugin System → Response&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  COMMAND CATEGORIES
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;This Bot is stacked with commands ranging from Group, Tools, AI, Fun, Game etc. see the list below for list.&lt;/strong&gt; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command Categories&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Click on any category below to expand and see the most useful commands!&lt;/p&gt;

 
 &lt;b&gt;Helpers &amp;amp; AI&lt;/b&gt;
 &lt;ul&gt;
  &lt;li&gt;
&lt;code&gt;.botai&lt;/code&gt; - Talk to the bot's internal expert AI (can execute commands for you).&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.gpt4&lt;/code&gt; / &lt;code&gt;.gemini&lt;/code&gt; - Chat with highly advanced AI models.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.gimage&lt;/code&gt; - Generate AI images from a text prompt.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.tr&lt;/code&gt; - Translate any text to English.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.menu&lt;/code&gt; - Display the full, complete list of commands.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.ping&lt;/code&gt; - Check the bot's latency and server RAM stats.&lt;/li&gt;
 &lt;/ul&gt;


 
 &lt;b&gt;Group Management&lt;/b&gt;
 &lt;ul&gt;
  &lt;li&gt;
&lt;code&gt;.add&lt;/code&gt; / &lt;code&gt;.kick&lt;/code&gt; - Instantly add or remove members (supports country code mass-kick).&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.promote&lt;/code&gt; / &lt;code&gt;.demote&lt;/code&gt; - Grant or revoke admin privileges.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.mute&lt;/code&gt; / &lt;code&gt;.unmute&lt;/code&gt; - Lock or unlock the group chat.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.tagall&lt;/code&gt; / &lt;code&gt;.hidetag&lt;/code&gt; - Mention everyone in the group.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.group-events&lt;/code&gt; - Toggle automatic welcome/leave/promote notifications.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.linkgroup&lt;/code&gt; - Fetch the group's invite link.&lt;/li&gt;
 &lt;/ul&gt;


 
 &lt;b&gt;Owner Only Commands&lt;/b&gt;
 &lt;ul&gt;
  &lt;li&gt;
&lt;code&gt;.public&lt;/code&gt; / &lt;code&gt;.self&lt;/code&gt; - Toggle whether the bot responds to everyone or just you.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.banchat&lt;/code&gt; / &lt;code&gt;.ban&lt;/code&gt; - Blacklist a specific group or user from using the bot.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.setprefix&lt;/code&gt; / &lt;code&gt;.setbotimg&lt;/code&gt; - Customize the bot's prefix and menu thumbnail.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.addsudo&lt;/code&gt; / &lt;code&gt;.delsudo&lt;/code&gt; - Give special moderator access to trusted friends.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.update&lt;/code&gt; - Automatically pull the latest code from GitHub and restart.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.restart&lt;/code&gt; / &lt;code&gt;.shutdown&lt;/code&gt; - Manage the bot's server process.&lt;/li&gt;
 &lt;/ul&gt;


 
 &lt;b&gt;Tools &amp;amp; Utilities&lt;/b&gt;
 &lt;ul&gt;
  &lt;li&gt;
&lt;code&gt;.sticker&lt;/code&gt; - Convert any image, video, or GIF into a WhatsApp sticker.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.tourl&lt;/code&gt; - Upload a media file to the cloud and get a shareable link.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.remini&lt;/code&gt; / &lt;code&gt;.hd&lt;/code&gt; - Upscale and enhance the quality of blurry images.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.tts&lt;/code&gt; - Convert your text into a voice note (Text-to-Speech).&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.ss&lt;/code&gt; - Take a high-quality screenshot of any website.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.detect&lt;/code&gt; - Analyze text to check if it was generated by AI.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.vv&lt;/code&gt; - Expose and save "View Once" media.&lt;/li&gt;
 &lt;/ul&gt;


 
 &lt;b&gt;Downloaders&lt;/b&gt;
 &lt;ul&gt;
  &lt;li&gt;
&lt;code&gt;.play&lt;/code&gt; / &lt;code&gt;.video&lt;/code&gt; - Download high-quality audio or video from YouTube.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.tiktok&lt;/code&gt; - Download TikTok videos without the watermark.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.instagram&lt;/code&gt; / &lt;code&gt;.twitter&lt;/code&gt; - Download Reels, videos, and images from IG/X.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.mediafire&lt;/code&gt; / &lt;code&gt;.gdrive&lt;/code&gt; - Extract and download files directly from cloud links.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.apk&lt;/code&gt; - Search for and download Android apps.&lt;/li&gt;
 &lt;/ul&gt;


 
 &lt;b&gt;Fun &amp;amp; Anime&lt;/b&gt;
 &lt;ul&gt;
  &lt;li&gt;
&lt;code&gt;.meme&lt;/code&gt; / &lt;code&gt;.joke&lt;/code&gt; - Get a random funny meme or programming/dad joke.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.couple&lt;/code&gt; / &lt;code&gt;.soulmate&lt;/code&gt; - Randomly "ship" two members in a group chat.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.waifu&lt;/code&gt; - Get random aesthetic anime waifu pictures.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.cry&lt;/code&gt; / &lt;code&gt;.hug&lt;/code&gt; / &lt;code&gt;.pat&lt;/code&gt; - Send animated anime reaction stickers to friends.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.pickupline&lt;/code&gt; - Generate a cheesy pickup line/rizz.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.fact&lt;/code&gt; - Learn a random fun fact, math fact, or science fact.&lt;/li&gt;
 &lt;/ul&gt;


 
 &lt;b&gt;Games &amp;amp; Economy&lt;/b&gt;
 &lt;ul&gt;
  &lt;li&gt;
&lt;code&gt;.math&lt;/code&gt; / &lt;code&gt;.emojiquiz&lt;/code&gt; / &lt;code&gt;.trivia&lt;/code&gt; - Quick chat games to earn virtual money.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.wordchain&lt;/code&gt; - Start a hardcore word-chain game with the group.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.tictactoe&lt;/code&gt; - Play Tic-Tac-Toe against another group member.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.daily&lt;/code&gt; / &lt;code&gt;.work&lt;/code&gt; - Claim your daily reward or work a job for cash.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.gamble&lt;/code&gt; / &lt;code&gt;.rob&lt;/code&gt; - Risk your wallet to double your money or steal from a friend.&lt;/li&gt;
  &lt;li&gt;
&lt;code&gt;.bal&lt;/code&gt; / &lt;code&gt;.lb&lt;/code&gt; - Check your wallet balance and view the richest users leaderboard.&lt;/li&gt;
 &lt;/ul&gt;



&lt;h3&gt;
  
  
  LIVE DEMO
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;This gif shows a live demo of this bot executing the "menu" command&lt;/strong&gt;&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%2Fi.ibb.co%2FgMMyZT9v%2F30cbf8e3d213f1cd033ed95506e68d78.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%2Fi.ibb.co%2FgMMyZT9v%2F30cbf8e3d213f1cd033ed95506e68d78.png" alt="Live Demo" width="588" height="390"&gt;&lt;/a&gt;
&lt;/p&gt;
    




&lt;p&gt;&lt;a id="important-notice"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[!IMPORTANT]&lt;br&gt;
&lt;strong&gt;&lt;a href="https://github.com/HeavstalTech/Verselor-V1/fork" rel="noopener noreferrer"&gt;Fork&lt;/a&gt; this repository&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Also star to support the developers of this bot and promote popularity&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  ☁️ CLOUD DEPLOYMENT
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Important Note:&lt;/strong&gt; After clicking Deploy, copy and go to the given link provided by the service, wait about 5-7 minutes (if it's a fist-time build), a website dashboard will appear, enter your &lt;a href="https://heavstl-bots.vercel.app/authcode" rel="noopener noreferrer"&gt;AuthCode&lt;/a&gt; &amp;amp; &lt;a href="https://WhatsApp.com" rel="noopener noreferrer"&gt;WhatsApp Number&lt;/a&gt; and click deploy, you'll receive a 8 digit code in less than a minute, Go to WhatsApp → Linked Devices → Link a Device → Link with phone number &amp;amp; Enter the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  While Using Render &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-yes-success" alt="Verified" width="80" height="20"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-tested%2520%2526%2520working-brightgreen" alt="Status" width="146" height="20"&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://render.com/deploy?repo=https://github.com/HeavstalTech/Verselor-V1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frender.com%2Fimages%2Fdeploy-to-render-button.svg" alt="Deploy to Render" width="153" height="40"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  While Using Replit&lt;br&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-yes-success" alt="Verified" width="80" height="20"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-tested%2520%2526%2520working-brightgreen" alt="Status" width="146" height="20"&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://replit.com/new/github/HeavstalTech/Verselor-V1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Freplit.com%2Fbadge%2Fgithub%2FHeavstalTech%2FVerselor-V1" alt="Run on Replit" width="131" height="36"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  While Using Heroku&lt;br&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-no-yellow" alt="Verified" width="74" height="20"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-not%2520tested%2520%2526%2520not%2520guaranteed-yellow" alt="Status" width="210" height="20"&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://heroku.com/deploy?template=https://github.com/HeavstalTech/Verselor-V1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.herokucdn.com%2Fdeploy%2Fbutton.svg" alt="Deploy" width="147" height="32"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;strong&gt;BUILDPACKS:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;heroku/nodejs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://github.com/clhuang/heroku-buildpack-webp-binaries.git&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  While Using Koyeb&lt;br&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-no-yellow" alt="Verified" width="74" height="20"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-not%2520tested%2520%2526%2520not%2520guaranteed-yellow" alt="Status" width="210" height="20"&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://app.koyeb.com/services/deploy?type=git&amp;amp;repository=github.com/HeavstalTech/Verselor-V1&amp;amp;branch=main&amp;amp;name=Verselor-V1&amp;amp;builder=dockerfile" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.koyeb.com%2Fstatic%2Fimages%2Fdeploy%2Fbutton.svg" alt="Deploy to Koyeb" width="178" height="49"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Note:&lt;/strong&gt; &lt;em&gt;Koyeb will automatically detect the Dockerfile and build the bot. Once deployed, open your Koyeb App URL to access the Control Panel and pair your number.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  While Using TalkDrove &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-no-yellow" alt="Verified" width="74" height="20"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-not%2520tested%2520%2526%2520not%2520guaranteed-yellow" alt="Status" width="210" height="20"&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://host.talkdrove.com/auth/signup?ref=FD5A76F8" rel="noopener noreferrer"&gt;&lt;br&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FDeploy-TalkDrove-blueviolet" width="114" height="20"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Note:&lt;/strong&gt; &lt;em&gt;Create an account, link your GitHub, select your forked Verselor-V1 repository, and deploy using the Node.js/Docker environment.&lt;/em&gt;
&lt;/h2&gt;
&lt;h3&gt;
  
  
  📂 WEB PANEL DEPLOYMENT &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-yes-success" alt="Verified" width="80" height="20"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-tested%2520%2526%2520working-brightgreen" alt="Status" width="146" height="20"&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;For users using panels like Pterodactyl, Discord Hosting Sites, or cPanel.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Method 1: Using Pair Code
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Download the complete code as a ZIP file.&lt;/li&gt;
&lt;li&gt;Upload the file to your Node.js server/panel.&lt;/li&gt;
&lt;li&gt;Unzip &amp;amp; Enter The "Verselor-V1-main" folder, select all files and move them to the root directory &lt;code&gt;../&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set the Node version of your hosting environment to version &lt;strong&gt;20x&lt;/strong&gt; or later (Recommended).&lt;/li&gt;
&lt;li&gt;Navigate to your server console and start the deployment (Click Start or run &lt;code&gt;npm install &amp;amp;&amp;amp; npm start&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Wait approximately 2 minutes for dependencies to install.&lt;/li&gt;
&lt;li&gt;When prompted in the console, &lt;strong&gt;input your WhatsApp number&lt;/strong&gt; (Country Code + Number).&lt;/li&gt;
&lt;li&gt;When prompted for &lt;strong&gt;AuthCode&lt;/strong&gt;, Enter your authcode wait for it to verify (don't have an AuthCode? Get &lt;a href="https://heavstal-bots.vercel.app/dashboard/authcode" rel="noopener noreferrer"&gt;Here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;A Code will appear. Go to WhatsApp → Linked Devices → Link a Device → Link with phone number &amp;amp; Enter the code.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Method 2: Using QR Code
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;code&gt;settings/config.js&lt;/code&gt; and set &lt;code&gt;usePairingCode&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt;.
&lt;strong&gt;EXMAPLE:&lt;/strong&gt;
Before (Default):
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;_usePairingCode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;USE_PAIR_CODE&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;USE_PAIR_CODE&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// True For Pair Code // False For Qr Code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;After (Changed to QR Code - Copy &amp;amp; Paste):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;_usePairingCode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;USE_PAIR_CODE&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;USE_PAIR_CODE&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// True For Pair Code // False For Qr Code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Alternatively&lt;/strong&gt;, as a casual user, you can completely delete all the complicated environment variable stuff and just hardcode it like this (Copy &amp;amp; Paste):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;_usePairingCode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// True For Pair Code // False For Qr Code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Follow steps 1-5 from above (Upload, Unzip, Start).&lt;/li&gt;
&lt;li&gt;A QR Code will appear in the console.&lt;/li&gt;
&lt;li&gt;Go to WhatsApp → Linked Devices → Link a Device and scan the QR code.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a id="katabump-tip"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[!TIP]&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-yes-success" 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%2Fimg.shields.io%2Fbadge%2Fverified-yes-success" alt="Verified" width="80" height="20"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-tested%2520%2526%2520working-brightgreen" 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%2Fimg.shields.io%2Fbadge%2Fstatus-tested%2520%2526%2520working-brightgreen" alt="Status" width="146" height="20"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
if you're deploying on &lt;a href="https://dashboard.katabump.com/auth/login#7d6b58" rel="noopener noreferrer"&gt;Katabump&lt;/a&gt;, you must:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/HeavstalTech/Verselor-V1/fork" rel="noopener noreferrer"&gt;Fork This Repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Navigate To &lt;a href="https://github.com/HeavstalTech/Verselor-V1/tree/main/settings" rel="noopener noreferrer"&gt;Settings Folder&lt;/a&gt; and enter the &lt;a href="https://github.com/HeavstalTech/Verselor-V1/blob/main/settings/config.js" rel="noopener noreferrer"&gt;config.js file&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click the three dots (...) --&amp;gt; &lt;a href="https://github.com/HeavstalTech/Verselor-V1/edit/main/settings/config.js" rel="noopener noreferrer"&gt;Edit In place&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add your &lt;a href="https://whatsapp.com" rel="noopener noreferrer"&gt;WhatsApp&lt;/a&gt; Number to the place that says &lt;em&gt;_phoneNumber&lt;/em&gt;, add it in between the &lt;em&gt;""&lt;/em&gt; in country code format&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Exmaple:&lt;/strong&gt;&lt;br&gt;
Before (Default):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;_phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;WHATSAPP_NUMBER&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;      &lt;span class="c1"&gt;// Enter your WhatsApp number here (Optional)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After Adding your Number (replace "234xxx" with your actual WhatsApp number and country code without "+" - Copy and paste)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;_phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;WHATSAPP_NUMBER&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;234xxx&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// Enter your WhatsApp number here (Optional)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alternatively you can do (replace "234xxx" with your actual WhatsApp number and country code without "+" - Copy and paste):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;_phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;234xxx&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// Enter your WhatsApp number here (Optional)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Commit changes... - Commit Change&lt;/li&gt;
&lt;li&gt;Follow All The Steps from &lt;em&gt;METHOD 1&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Local Deployment Service Recommendations
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Deploy On &lt;a href="https://dashboard.katabump.com/auth/login#7d6b58" rel="noopener noreferrer"&gt;Katabump&lt;/a&gt; - follow the steps HERE
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. Deploy on &lt;a href="https://bot-hosting.net/?aff=1317266904024350732" rel="noopener noreferrer"&gt;Bot-Hosting&lt;/a&gt; - follow the step HERE
&lt;/h2&gt;

&lt;h3&gt;
  
  
  💻 COMMAND LINE INSTALLATION (Termux/VPS) &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fverified-no-yellow" alt="Verified" width="74" height="20"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Fstatus-not%2520tested%2520%2526%2520not%2520guaranteed-yellow" alt="Status" width="210" height="20"&gt;
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;Requirements&lt;/code&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; (Version 20+)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ffmpeg.org/download.html" rel="noopener noreferrer"&gt;FFmpeg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Any text editor (VS Code, Notepad, etc)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;For Termux Users&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Do not download Termux from the Play Store. Download it from &lt;a href="https://f-droid.org/en/packages/com.termux/" rel="noopener noreferrer"&gt;F-Droid Here&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Update System &amp;amp; Install Dependencies:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
pkg &lt;span class="nb"&gt;install &lt;/span&gt;git nodejs ffmpeg imagemagick libwebp &lt;span class="nt"&gt;-y&lt;/span&gt;
pkg &lt;span class="nb"&gt;install &lt;/span&gt;yarn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Clone Repository:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/HeavstalTech/Verselor-V1.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Verselor-V1-main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install &amp;amp; Start:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Follow the prompts in the terminal to enter your number and get the Pairing Code.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;For VPS / Ubuntu / Linux&lt;/code&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;git nodejs ffmpeg imagemagick libwebp &lt;span class="nt"&gt;-y&lt;/span&gt;
git clone https://github.com/HeavstalTech/Verselor-V1.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Verselor-V1-main
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Adding Custom Plugins
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;👨‍💻 For Developers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adding a custom command to Verselor-V1 is incredibly simple thanks to its modular ESM structure.&lt;br&gt;
Just create a new &lt;code&gt;.js&lt;/code&gt; file inside any folder in &lt;code&gt;Start/Plugins/&lt;/code&gt; (e.g., &lt;code&gt;Start/Plugins/custom/mycmd.js&lt;/code&gt;) and paste the following template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mycmd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;aliases&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cmd1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cmd2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="na"&gt;category&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;misc&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;A simple custom command&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;%prefix%mycmd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;ownerOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// "true" to restrict to owners and sudos only&lt;/span&gt;
        &lt;span class="na"&gt;groupOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// "true" to set to group only command &lt;/span&gt;
        &lt;span class="na"&gt;privateOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// "true" to set to private chat only (non groups) command&lt;/span&gt;
        &lt;span class="na"&gt;adminOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// "true" to set to admin only command in groups&lt;/span&gt;
        &lt;span class="na"&gt;botAdminOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// "true" to make only useable if bot is admin in group&lt;/span&gt;
        &lt;span class="na"&gt;premiumOnly&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// "true" to set to premium users only command.&lt;/span&gt;

        &lt;span class="na"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;HeavstalTech&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// The context object provides easy access to variables and helper functions&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Vreply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pushname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;prefix&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="cm"&gt;/** 
        `context` provides you with the following:

        text, q, args, prefix, command, budy,
        isOwner, isCreator, isAdmin, isBotAdmin, isGroup, isPremium,
        pushname, BotNum, sender, from,
        quoted, mime, isMedia, fatkuns,
        Vreply, reply, sendImage,
        participants, groupName, groupMetadata,
        MenuStyle, time, todayDateWIB,
        Owner, setsudo, ban, BANNED_GROUP,
        store, chatUpdate,
        loading, sendMenu, followNewsletter, autoJoinGroup, Styles,
        channelIds, ReplyImageUrls, promiseplay_url
        **/&lt;/span&gt;     
            &lt;span class="c1"&gt;// Your command logic here&lt;/span&gt;
            &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nc"&gt;Vreply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Hello &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;pushname&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;! You just used the &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;prefix&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;mycmd command.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
           &lt;span class="c1"&gt;// Alternatively use `HeavstalTech.sendMessage()`&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Save the file, restart the bot, and your command will automatically be loaded into the system and added to the menu or alternatively use the &lt;strong&gt;addplugin&lt;/strong&gt; command in the bot after deployment.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;NodeJs (ES Module)&lt;/li&gt;
&lt;li&gt;Docker (Cloud Deployment)&lt;/li&gt;
&lt;li&gt;Html &amp;amp; Css (Web UI - Cloud Deployment)&lt;/li&gt;
&lt;li&gt;Baileys (Maintained Fork)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  5. LowDb (Json Storage)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ (Frequently Asked Questions)
&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;1. What Is Verselor-V1?&lt;/b&gt;&lt;br&gt;
Verselor-V1 is a high-performance and feature-rich WhatsApp assistant by Heavstal Tech. Verselor V1 supports cross-device connectivity, shared user hosting, and global language translation, offering a complete suite of tools for chat moderation, media processing, and interactive entertainment.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;2. How Do I Become A Premium User?&lt;/b&gt;&lt;br&gt;
You can become a premium user by following the steps below:&lt;br&gt;
&amp;gt; 1. Go to &lt;a href="https://heavstal-bots.vercel.app/dashboard/manager" rel="noopener noreferrer"&gt;Heavstal Bots AuthCode Manager Page&lt;/a&gt;&lt;br&gt;
&amp;gt; 2. Enter your active AuthCode in the input box that says "Heavstal_Bots_..."&lt;br&gt;
&amp;gt; 3. Select The Premium Button/Tab with Golden Outline &lt;br&gt;
&amp;gt; 4. Select the amount of days you want to stay premium (3d/7d/14d/30d/custom)&lt;br&gt;
&amp;gt; 5. Click the "Upgrade To Premium" button &lt;br&gt;
&amp;gt; 6. Restart The Bot.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;3. Will my WhatsApp account get banned for using this?&lt;/b&gt;&lt;br&gt;
Using unofficial WhatsApp APIs always carries a small risk. To minimize this, do not spam groups, turn off startup messages, and preferably use a secondary/burner number to host the bot.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;4. How do I make myself the owner of the bot?&lt;/b&gt;&lt;br&gt;
Due to the bot's settings, you are already an owner by default. However, you can add other people as owners/sudos so they have the same privileges as you by using the .addowner or .setsudo command.&lt;/p&gt;




&lt;h3&gt;
  
  
  ISSUES
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;If you have any issues with the bot - use any of the methods below to get it resolved.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Open A GitHub &lt;a href="https://github.com/HeavstalTech/Verselor-V1/issues/new" rel="noopener noreferrer"&gt;Issue&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Submit the issues and screenshot (if possible) to the bot support &lt;a href="https://chat.whatsapp.com/HlfH698T5LAICbpQV5A5ku?mode=wwt" rel="noopener noreferrer"&gt;WhatsApp Group&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  3. Alternatively submit to the bot's &lt;a href="https://t.me/promisemdv1" rel="noopener noreferrer"&gt;Telegram Support Group&lt;/a&gt;
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  PULL REQUESTS &amp;amp; COLLABORATIONS
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;If you add a custom plugin that you feel should be in the bot - follow the step below to add it to Pull Request (PR) and become a collaborator:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/HeavstalTech/Verselor-V1/fork" rel="noopener noreferrer"&gt;Fork&lt;/a&gt; the repo&lt;/li&gt;
&lt;li&gt;Add your custom plugins in a folder called &lt;strong&gt;Custom&lt;/strong&gt; (create it if unavailable)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  3. Submit A Pull Request (usually at the top of a repo)
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Join Our Channels To Stay Updated &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Frecommended-yes-blue" alt="Recommended" width="118" height="20"&gt;
&lt;/h3&gt;

&lt;p&gt;
&lt;a href="https://youtube.com/@Heavstal_Tech" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FYouTube-ff0000%3Fstyle%3Dfor-the-badge%26logo%3Dyoutube%26logoColor%3Dff000000%26link%3Dhttps%3A%2F%2Fyoutube.com%2F%40Heavstal_Tech" width="105" height="28"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://whatsapp.com/channel/0029VbBcg80KwqSR7dr7do1D" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FWhatsApp%2520Channel-25D366%3Fstyle%3Dfor-the-badge%26logo%3Dwhatsapp%26logoColor%3Dwhite%26link%3Dhttps%3A%2F%2Fwhatsapp.com%2Fchannel%2F0029VaG9VfPKWEKk1rxTQD20" width="184" height="28"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://t.me/promisemdv1" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FTelegram-00FFFF%3Fstyle%3Dfor-the-badge%26logo%3Dtelegram%26logoColor%3Dwhite" width="114" height="28"&gt;&lt;/a&gt;
&lt;a href="https://chat.whatsapp.com/HlfH698T5LAICbpQV5A5ku?mode=wwt" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FWhatsApp%2520Group-25D366%3Fstyle%3Dfor-the-badge%26logo%3Dwhatsapp%26logoColor%3Dwhite" width="168" height="28"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Buy Me A Coffee / Donate
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/buy-me-a-coffee" rel="noopener noreferrer"&gt;Bank Transfer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/buy-me-a-coffee" rel="noopener noreferrer"&gt;Paystack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Join Our Bot Support &amp;amp; Group Chats &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Frecommended-yes-blue" alt="Recommended" width="118" height="20"&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://chat.whatsapp.com/HlfH698T5LAICbpQV5A5ku?mode=wwt" rel="noopener noreferrer"&gt;WhatsApp GC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://t.me/+OXpT1vvQ5K81MmVk" rel="noopener noreferrer"&gt;Telegram GC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a id="caution-notice"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[!CAUTION]&lt;br&gt;
&lt;em&gt;Verselor-V1&lt;/em&gt; is not made by WhatsApp Inc. Misusing the bot might ban your WhatsApp account!* - &lt;em&gt;In Such Scenarios, Heavstal Tech is not responsible for the banning of your account.&lt;/em&gt; - &lt;em&gt;Use Verselor-V1 at your own risk by keeping this warning in mind.&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;To reduce the risk of this slightly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consider turning &lt;strong&gt;off startup messages&lt;/strong&gt; in with the command after deployment....&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;This project is licensed under the &lt;strong&gt;Custom / Heavstal Tech™ End User License Agreement (EULA)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Please see &lt;a href="https://github.com/HeavstalTech/Verselor-V1/blob/main/LICENSE" rel="noopener noreferrer"&gt;LICENSE&lt;/a&gt; for further information (Essential)&lt;/p&gt;

&lt;h3&gt;
  
  
  Copyright Notice:
&lt;/h3&gt;

&lt;p&gt;You may acquire any open-source part of this WhatsApp Automation Bot for free. By acquiring an open-source copy of this bot, you are by default bound to the Copyright Notice of this project, which strictly states that you must give proper credit to &lt;strong&gt;Heavstal Tech™&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Note: Some core files are obfuscated to protect proprietary API keys and prevent scraping. Many plugins remain fully open for developers to customize.&lt;/p&gt;

&lt;h3&gt;
  
  
  CHANGE NOTICE:
&lt;/h3&gt;

&lt;p&gt;The contents of this file mau Change occasionally, it's important to check every onces in a while and occasionally see &lt;a href="https://github.com/HeavstalTech/Verselor-V1-NoEnc/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;CHANGELOG.md&lt;/a&gt; for changes made to the bot.&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%2Fuser-images.githubusercontent.com%2F74038190%2F235224431-e8c8c12e-6826-47f1-89fb-2ddad83b3abf.gif" 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%2Fuser-images.githubusercontent.com%2F74038190%2F235224431-e8c8c12e-6826-47f1-89fb-2ddad83b3abf.gif" width="426" height="426"&gt;&lt;/a&gt;
&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%2Fuser-images.githubusercontent.com%2F74038190%2F212748830-4c709398-a386-4761-84d7-9e10b98fbe6e.gif" 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%2Fuser-images.githubusercontent.com%2F74038190%2F212748830-4c709398-a386-4761-84d7-9e10b98fbe6e.gif" width="480" height="360"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;© A Product Of Heavstal Tech™&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FLyHic3i.gif" width="1000" height="10"&gt;&lt;/a&gt;&lt;a&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FLyHic3i.gif" width="1000" height="10"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>whatsappbot</category>
      <category>node</category>
      <category>automation</category>
      <category>ai</category>
    </item>
    <item>
      <title>Introduction "@heavstaltech/baileys" - HT-baileys</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Tue, 03 Feb 2026 01:03:38 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/introduction-heavstaltechbaileys-ht-baileys-j6m</link>
      <guid>https://forem.com/heavstal_tech/introduction-heavstaltechbaileys-ht-baileys-j6m</guid>
      <description>&lt;p&gt;HT-baileys&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%2Ffiles.catbox.moe%2Fvi3npg.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%2Ffiles.catbox.moe%2Fvi3npg.png" alt="HT-baileys Banner" width="601" height="529"&gt;&lt;/a&gt;&lt;br&gt;
  &lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://heavstal-tech.vercel.app" rel="noopener noreferrer"&gt;&lt;br&gt;
    &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FMaintainer-Heavstal_Tech-007acc%3Fstyle%3Dfor-the-badge%26logo%3Dvercel%26logoColor%3Dwhite" alt="Heavstal Tech" width="248" height="28"&gt;&lt;br&gt;
  &lt;/a&gt;&lt;br&gt;
  &lt;a href="https://www.npmjs.com/package/@heavstaltech/baileys" rel="noopener noreferrer"&gt;&lt;br&gt;
    &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FNPM-%40heavstaltech%2Fbaileys-cb3837%3Fstyle%3Dfor-the-badge%26logo%3Dnpm%26logoColor%3Dwhite" alt="NPM" width="268" height="28"&gt;&lt;br&gt;
  &lt;/a&gt;&lt;br&gt;
  &lt;a href="https://github.com/HeavstalTech/HT-baileys" rel="noopener noreferrer"&gt;&lt;br&gt;
    &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FVersion-1.0.1-2ea44f%3Fstyle%3Dfor-the-badge%26logo%3Dgithub%26logoColor%3Dwhite" alt="Version" width="154" height="28"&gt;&lt;br&gt;
  &lt;/a&gt;&lt;br&gt;
  &lt;a href="https://github.com/HeavstalTech/HT-baileys/blob/master/LICENSE" rel="noopener noreferrer"&gt;&lt;br&gt;
    &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2FLicense-MIT-fab005%3Fstyle%3Dfor-the-badge" alt="License" width="124" height="28"&gt;&lt;br&gt;
  &lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HT-baileys&lt;/strong&gt; is an advanced fork of the WhatsApp Web API library, engineered and maintained by &lt;strong&gt;Heavstal Tech&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This library builds upon the stability of the original Baileys architecture while integrating extended features required for modern, production-grade automation. It provides a robust solution for enterprise bots, featuring optimized connection headers, custom pairing code logic, and native support for WhatsApp Channels (Newsletters), Interactive Messages, and more.&lt;/p&gt;

&lt;p&gt;WhatsApp Baileys is an open-source library designed to help developers build automation solutions and integrations with WhatsApp efficiently and directly. Using websocket technology without the need for a browser, this library supports a wide range of features such as message management, chat handling, group administration, as well as interactive messages and action buttons for a more dynamic user experience.&lt;/p&gt;

&lt;p&gt;Actively developed and maintained, baileys continuously receives updates to enhance stability and performance. One of the main focuses is to improve the pairing and authentication processes to be more stable and secure. Pairing features can be customized with your own codes, making the process more reliable and less prone to interruptions.&lt;/p&gt;

&lt;p&gt;This library is highly suitable for building business bots, chat automation systems, customer service solutions, and various other communication automation applications that require high stability and comprehensive features. With a lightweight and modular design, baileys is easy to integrate into different systems and platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features Overview
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;💬 &lt;strong&gt;Newsletters &amp;amp; Channels&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Full support for sending text, media, and managing WhatsApp Channels.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔘 &lt;strong&gt;Interactive Messages&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Native support for buttons, lists, carousel, and product messages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🤖 &lt;strong&gt;AI Message Icon&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Customize message appearances with an optional AI icon (&lt;code&gt;ai: true&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔑 &lt;strong&gt;Custom Pairing Codes&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Heavstal Exclusive:&lt;/strong&gt; Define custom alphanumeric pairing codes (e.g., &lt;code&gt;HEAVSTAL&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📊 &lt;strong&gt;Polls &amp;amp; Events&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Create polls with vote tracking and schedule WhatsApp events.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🖼️ &lt;strong&gt;Albums &amp;amp; High-Res Media&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Send album messages and upload full-size profile pictures.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🛠️ &lt;strong&gt;Stability Fixes&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Enhanced Libsignal logs and connection management.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Stable Release
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @heavstaltech/baileys
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Edge Release
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @heavstaltech/baileys@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Basic Connection
&lt;/h3&gt;

&lt;p&gt;The following example demonstrates how to initialize a socket connection using &lt;code&gt;HT-baileys&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;makeWASocket&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="nx"&gt;useMultiFileAuthState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="nx"&gt;DisconnectReason&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="nx"&gt;Browsers&lt;/span&gt; 
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/baileys&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;connectToWhatsApp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;saveCreds&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;useMultiFileAuthState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;auth_info&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;makeWASocket&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="na"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;printQRInTerminal&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// Set to true if using QR scanning&lt;/span&gt;
        &lt;span class="na"&gt;browser&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Browsers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;macOS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Desktop&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="na"&gt;syncFullHistory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;

    &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;connection.update&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;update&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lastDisconnect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;update&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;connection&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;close&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;shouldReconnect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lastDisconnect&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;)?.&lt;/span&gt;&lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;statusCode&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;DisconnectReason&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;loggedOut&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Connection closed. Reconnecting:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;shouldReconnect&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;shouldReconnect&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nf"&gt;connectToWhatsApp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;connection&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;open&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Connection opened successfully&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;

    &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;creds.update&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;saveCreds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;connectToWhatsApp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Core Feature Implementation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Custom Pairing Code
&lt;/h3&gt;

&lt;p&gt;HT-baileys supports the definition of custom alphanumeric pairing codes, allowing for branded connection flows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;authState&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;creds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;registered&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Ensure the number format is correct (Country Code + Number)&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;phoneNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;2349000000000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

    &lt;span class="c1"&gt;// Define your branded pairing code&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;customCode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HEAVSTAL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 

    &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;requestPairingCode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;phoneNumber&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;customCode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Pairing Code: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Utilities
&lt;/h3&gt;

&lt;p&gt;Useful helper functions included in the library.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check Banned Number&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;checkWhatsApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Newsletter Management
&lt;/h3&gt;

&lt;p&gt;Tools for managing and interacting with WhatsApp Channels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Channel ID by URL&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;newsletterId&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Create &amp;amp; Update Channel&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;newsletterCreate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Heavstal Updates&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Official Channel Description&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Update Metadata&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;newsletterUpdateName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Heavstal Tech&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;newsletterUpdateDescription&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Official Updates&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Advanced Messaging Documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Group Status V2
&lt;/h3&gt;

&lt;p&gt;Send a status update specific to a group context.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="na"&gt;groupStatusMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
     &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Album Message
&lt;/h3&gt;

&lt;p&gt;Send multiple images combined into a single album bubble.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="na"&gt;albumMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/1.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="na"&gt;caption&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;First Photo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/2.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="na"&gt;caption&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Second Photo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt; 
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Event Message
&lt;/h3&gt;

&lt;p&gt;Create and send a WhatsApp Event invitation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="na"&gt;eventMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="na"&gt;isCanceled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Heavstal Launch&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Official Launch Party&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
            &lt;span class="na"&gt;degreesLatitude&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="na"&gt;degreesLongitude&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Virtual&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 
        &lt;span class="p"&gt;},&lt;/span&gt; 
        &lt;span class="na"&gt;joinLink&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://call.whatsapp.com/video/example&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;startTime&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1763019000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;endTime&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1763026200&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;extraGuestsAllowed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Poll Message
&lt;/h3&gt;

&lt;p&gt;Send a poll and display results.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="na"&gt;pollResultMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Which framework do you prefer?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="na"&gt;pollVotes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;optionName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;React&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;optionVoteCount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;optionName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Vue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;optionVoteCount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt; 
    &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Product Message
&lt;/h3&gt;

&lt;p&gt;Send a catalog product message with a "Buy Now" button.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;productMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Premium Service&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Lifetime access to premium features&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;thumbnail&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/image.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;productId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;PROD001&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;retailerId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;RETAIL001&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/product&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Product Details&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;footer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Special Offer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;priceAmount1000&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;currencyCode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;USD&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;buttons&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cta_url&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;buttonParamsJson&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                    &lt;span class="na"&gt;display_text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Buy Now&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/buy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
                &lt;span class="p"&gt;})&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Request Payment Message
&lt;/h3&gt;

&lt;p&gt;Send a payment request with a custom background and sticker.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Assuming 'm' is the message object you are quoting&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;quotedType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;mtype&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;quotedContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;quotedType&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;quoted&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;requestPaymentMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;currency&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;IDR&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10000000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;from&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;sticker&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;quotedContent&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="na"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;100&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;fileLength&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;mimetype&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;image/webp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;placeholderArgb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0xFF00FFFF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;textArgb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0xFFFFFFFF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;     
            &lt;span class="na"&gt;subtextArgb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0xFFAA00FF&lt;/span&gt;   
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Interactive Messages (Native Flow)
&lt;/h3&gt;

&lt;p&gt;Complex interactive messages including buttons, copy-to-clipboard, and lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native Flow with Buttons &amp;amp; Lists:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;    
    &lt;span class="na"&gt;interactiveMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;      
        &lt;span class="na"&gt;header&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Heavstal Tech&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Interactive Menu&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;      
        &lt;span class="na"&gt;footer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Powered by HT-baileys&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;      
        &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/image.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;      
        &lt;span class="na"&gt;nativeFlowMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;        
            &lt;span class="na"&gt;messageParamsJson&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;          
                &lt;span class="na"&gt;limited_time_offer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;            
                    &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Special Offer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;            
                    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://heavstal-tech.vercel.app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;            
                    &lt;span class="na"&gt;copy_code&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;DISCOUNT20&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;            
                    &lt;span class="na"&gt;expiration_time&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;86400000&lt;/span&gt;          
                &lt;span class="p"&gt;},&lt;/span&gt;               
            &lt;span class="p"&gt;}),&lt;/span&gt;        
            &lt;span class="na"&gt;buttons&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;          
                &lt;span class="p"&gt;{&lt;/span&gt;            
                    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;single_select&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;            
                    &lt;span class="na"&gt;buttonParamsJson&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;              
                        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Open Menu&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;              
                        &lt;span class="na"&gt;sections&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;                
                            &lt;span class="p"&gt;{&lt;/span&gt;                  
                                &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Main Options&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                  
                                &lt;span class="na"&gt;highlight_label&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Popular&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                  
                                &lt;span class="na"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;                    
                                    &lt;span class="p"&gt;{&lt;/span&gt;                      
                                        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Check Status&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                      
                                        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;View system status&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;                      
                                        &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;status_row&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;                    
                                    &lt;span class="p"&gt;}&lt;/span&gt;                  
                                &lt;span class="p"&gt;]&lt;/span&gt;                
                            &lt;span class="p"&gt;}&lt;/span&gt;              
                        &lt;span class="p"&gt;]&lt;/span&gt;            
                    &lt;span class="p"&gt;})&lt;/span&gt;          
                &lt;span class="p"&gt;},&lt;/span&gt;          
                &lt;span class="p"&gt;{&lt;/span&gt;            
                    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cta_copy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;            
                    &lt;span class="na"&gt;buttonParamsJson&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;              
                        &lt;span class="na"&gt;display_text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Copy ID&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;              
                        &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;123456789&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;              
                        &lt;span class="na"&gt;copy_code&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HT-1234&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;            
                    &lt;span class="p"&gt;})&lt;/span&gt;          
                &lt;span class="p"&gt;}&lt;/span&gt;        
            &lt;span class="p"&gt;]&lt;/span&gt;      
        &lt;span class="p"&gt;}&lt;/span&gt;    
    &lt;span class="p"&gt;}&lt;/span&gt;  
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Interactive Message with Document:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Note: Documents must be passed as buffers.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;interactiveMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;header&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Documentation&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Read Guidelines&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;footer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Heavstal Tech&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;document&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./manual.pdf&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="na"&gt;mimetype&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/pdf&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;fileName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;manual.pdf&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;jpegThumbnail&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./thumb.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="na"&gt;buttons&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cta_url&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;buttonParamsJson&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                    &lt;span class="na"&gt;display_text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Visit Website&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://heavstal-tech.vercel.app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="na"&gt;merchant_url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://heavstal-tech.vercel.app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
                &lt;span class="p"&gt;})&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;quoted&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;m&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  About Heavstal Tech
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Heavstal Tech&lt;/strong&gt; is a forward-thinking technology organization dedicated to building robust tools and ecosystems for the modern web. From automation libraries to full-stack applications, we prioritize performance, scalability, and developer experience.&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Official Website:&lt;/strong&gt; &lt;a href="https://heavstal-tech.vercel.app" rel="noopener noreferrer"&gt;https://heavstal-tech.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Disclaimer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HT-baileys&lt;/strong&gt; is an independent project maintained by &lt;strong&gt;Heavstal Tech&lt;/strong&gt;. It is not affiliated with, authorized, maintained, sponsored, or endorsed by WhatsApp Inc. or Meta Platforms, Inc.&lt;/p&gt;

&lt;p&gt;This software is provided "as is", without warranty of any kind. Users are responsible for ensuring their usage complies with WhatsApp's Terms of Service.&lt;/p&gt;




&lt;p&gt;© 2025 - 2026 Heavstal Tech. All rights reserved.&lt;/p&gt;

</description>
      <category>heavstal</category>
      <category>npm</category>
      <category>typescript</category>
      <category>whatsapp</category>
    </item>
    <item>
      <title>HEAVSTAL AUTH PROVIDER - Update</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Tue, 27 Jan 2026 12:33:03 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/heavstal-auth-provider-update-51n0</link>
      <guid>https://forem.com/heavstal_tech/heavstal-auth-provider-update-51n0</guid>
      <description>&lt;h1&gt;
  
  
  Heavstal Auth Provider
&lt;/h1&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%2Ffiles.catbox.moe%2Fu1hm7q.jpg" 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%2Ffiles.catbox.moe%2Fu1hm7q.jpg" alt="Heavstal Logo" width="599" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/heavstal-auth" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fnpm%2Fv%2Fheavstal-auth%3Fstyle%3Dflat-square%26color%3Dblue" alt="NPM Version" width="80" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/HeavstalTech/heavstal-auth/blob/main/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fnpm%2Fl%2Fheavstal-auth%3Fstyle%3Dflat-square" alt="License" width="78" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/heavstal-auth" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fnpm%2Fdm%2Fheavstal-auth%3Fstyle%3Dflat-square" alt="Downloads" width="140" height="20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The official &lt;strong&gt;&lt;a href="https://next-auth.js.org/" rel="noopener noreferrer"&gt;NextAuth.js&lt;/a&gt;&lt;/strong&gt; (Auth.js) provider for the &lt;strong&gt;Heavstal Tech Identity Platform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This package enables seamless integration of &lt;strong&gt;Heavstal OAuth 2.0 &amp;amp; OpenID Connect (OIDC)&lt;/strong&gt; authentication into Next.js and Node.js applications. It pre-configures authorization endpoints, token exchanges, and user profile mapping, ensuring security best practices.&lt;/p&gt;


&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Configuration:&lt;/strong&gt; Pre-configured endpoints for Heavstal Identity services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OIDC Compliant:&lt;/strong&gt; Fully supports OpenID Connect discovery and ID Token verification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript Support:&lt;/strong&gt; Written in TypeScript with included type definitions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure Defaults:&lt;/strong&gt; Enforces &lt;code&gt;PKCE&lt;/code&gt; (Proof Key for Code Exchange) and state verification by default.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;Ensure you have &lt;code&gt;next-auth&lt;/code&gt; installed in your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;heavstal-auth
&lt;span class="c"&gt;# or&lt;/span&gt;
yarn add heavstal-auth
&lt;span class="c"&gt;# or&lt;/span&gt;
pnpm add heavstal-auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Obtain Credentials
&lt;/h3&gt;

&lt;p&gt;Register your application in the &lt;a href="https://heavstal-tech.vercel.app/oauth/apps" rel="noopener noreferrer"&gt;Heavstal Developer Console&lt;/a&gt; to obtain your &lt;strong&gt;Client ID&lt;/strong&gt; and &lt;strong&gt;Client Secret&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Environment Variables
&lt;/h3&gt;

&lt;p&gt;Add the following to your &lt;code&gt;.env&lt;/code&gt; or &lt;code&gt;.env.local&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;HEAVSTAL_CLIENT_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ht_id_xxxxxxxxxxxx
&lt;span class="nv"&gt;HEAVSTAL_CLIENT_SECRET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ht_secret_xxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Usage with NextAuth.js
&lt;/h3&gt;

&lt;p&gt;Import &lt;code&gt;HeavstalProvider&lt;/code&gt; and add it to your NextAuth configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File:&lt;/strong&gt; &lt;code&gt;app/api/auth/[...nextauth]/route.ts&lt;/code&gt; (App Router) or &lt;code&gt;pages/api/auth/[...nextauth].ts&lt;/code&gt; (Pages Router).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;NextAuth&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next-auth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;HeavstalProvider&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;heavstal-auth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;NextAuth&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nc"&gt;HeavstalProvider&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;clientId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HEAVSTAL_CLIENT_ID&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;clientSecret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HEAVSTAL_CLIENT_SECRET&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
    &lt;span class="c1"&gt;// ...other providers&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="c1"&gt;// Optional: Enable debug mode for development&lt;/span&gt;
  &lt;span class="na"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;NODE_ENV&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;development&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;GET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;POST&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Integration with Non-Next.js Applications
&lt;/h2&gt;

&lt;p&gt;Heavstal Tech is a standard &lt;strong&gt;OpenID Connect (OIDC)&lt;/strong&gt; provider. If you are using a different framework (Express, Python, Go, etc.) or a library that supports OIDC Discovery, you do not need this specific SDK.&lt;/p&gt;

&lt;p&gt;You can configure your client using the &lt;strong&gt;Issuer URL&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  OIDC Discovery Configuration
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Issuer URL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://accounts-heavstal.vercel.app&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Discovery Document&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://accounts-heavstal.vercel.app/.well-known/openid-configuration&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JWKS Endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://accounts-heavstal.vercel.app/.well-known/jwks.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Example: Generic Node.js OIDC Client
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OIDCClient&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;issuer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://accounts-heavstal.vercel.app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
  &lt;span class="na"&gt;client_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HEAVSTAL_CLIENT_ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;client_secret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HEAVSTAL_CLIENT_SECRET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;redirect_uri&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://your-app.com/callback&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;response_type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;code&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;openid profile email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  User Profile Data
&lt;/h2&gt;

&lt;p&gt;On successful authentication, the provider returns the following normalized user profile structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;HeavstalProfile&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;       &lt;span class="c1"&gt;// The unique Heavstal User ID&lt;/span&gt;
  &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;     &lt;span class="c1"&gt;// Public Display Name&lt;/span&gt;
  &lt;span class="nl"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;// Verified Email Address&lt;/span&gt;
  &lt;span class="nl"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;// Profile Picture URL&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/oauth/apps" rel="noopener noreferrer"&gt;Developer Console&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/docs/api/oauth-guide" rel="noopener noreferrer"&gt;API Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app" rel="noopener noreferrer"&gt;Heavstal Platform&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;This project is licensed under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Copyright © 2025 - 2026 &lt;strong&gt;Heavstal Tech™&lt;/strong&gt;. All rights reserved&lt;/p&gt;

</description>
      <category>oauth</category>
      <category>typescript</category>
      <category>npm</category>
      <category>security</category>
    </item>
    <item>
      <title>Notice of Temporary API Downtime as of "January 14th, 2026"</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Wed, 14 Jan 2026 13:52:44 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/notice-of-temporary-api-downtime-as-of-january-14th-2026-1eog</link>
      <guid>https://forem.com/heavstal_tech/notice-of-temporary-api-downtime-as-of-january-14th-2026-1eog</guid>
      <description>&lt;p&gt;&lt;strong&gt;Dear Esteemed Users,&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We sincerely apologize for the temporary downtime affecting some of our APIs.&lt;/p&gt;

&lt;p&gt;This interruption is due to an unexpected outage from a third-party storage provider &lt;strong&gt;(Catbox)&lt;/strong&gt; that several of our services rely on.&lt;/p&gt;

&lt;p&gt;Please be assured that we are actively working on a permanent solution and restoring full functionality as quickly as possible.&lt;/p&gt;

&lt;p&gt;We appreciate your patience and continued support.&lt;/p&gt;

&lt;h3&gt;
  
  
  EDIT:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;ALL ISSUES HAS BEEN RESOLVED&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Best regards,&lt;br&gt;
&lt;strong&gt;Heavstal Tech Team&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>HEAVSTAL TECH -@heavstaltech/api</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Fri, 09 Jan 2026 23:36:55 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/i-built-an-all-in-one-nodejs-scraper-esm-cjs-heavstaltechapi-3hl2</link>
      <guid>https://forem.com/heavstal_tech/i-built-an-all-in-one-nodejs-scraper-esm-cjs-heavstaltechapi-3hl2</guid>
      <description>&lt;h2&gt;
  
  
  @heavstaltech/api
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2Ffyoil39vx3264b9d4yqv.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Ffyoil39vx3264b9d4yqv.jpg" alt="alt text" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fnpm%2Fv%2F%40heavstaltech%2Fapi%3Fstyle%3Dflat-square" 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%2Fimg.shields.io%2Fnpm%2Fv%2F%40heavstaltech%2Fapi%3Fstyle%3Dflat-square" alt="NPM Version" width="80" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fgithub%2Factions%2Fworkflow%2Fstatus%2FHeavstalTech%2Fheavstaltech-api%2Ftest.yml%3Fstyle%3Dflat-square%26label%3Dtests" 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%2Fimg.shields.io%2Fgithub%2Factions%2Fworkflow%2Fstatus%2FHeavstalTech%2Fheavstaltech-api%2Ftest.yml%3Fstyle%3Dflat-square%26label%3Dtests" alt="Build Status" width="88" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fnpm%2Fl%2F%40heavstaltech%2Fapi%3Fstyle%3Dflat-square" 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%2Fimg.shields.io%2Fnpm%2Fl%2F%40heavstaltech%2Fapi%3Fstyle%3Dflat-square" alt="License" width="78" height="20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Lightweight, powerful, all-in-one scraping and utility library built by &lt;strong&gt;HEAVSTAL TECH&lt;/strong&gt;. &lt;br&gt;
This module provides easy access to media downloaders (TikTok, YouTube, Instagram, Facebook), search engines, and AI tools.&lt;/p&gt;

&lt;p&gt;It is designed to work seamlessly in both &lt;strong&gt;CommonJS (&lt;code&gt;require&lt;/code&gt;)&lt;/strong&gt; and &lt;strong&gt;ES Modules (&lt;code&gt;import&lt;/code&gt;)&lt;/strong&gt; environments.&lt;/p&gt;


&lt;h2&gt;
  
  
  🌐 Heavstal Tech Ecosystem
&lt;/h2&gt;

&lt;p&gt;This package is part of the &lt;strong&gt;Heavstal Tech&lt;/strong&gt; ecosystem. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore More APIs:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Visit our official API Hub to discover more tools, endpoints, and detailed documentation:&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://heavstal-tech.vercel.app/apis" rel="noopener noreferrer"&gt;https://heavstal-tech.vercel.app/apis&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  📦 Installation
&lt;/h2&gt;

&lt;p&gt;Install via npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @heavstaltech/api
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🚀 Usage (ESM vs CJS)
&lt;/h2&gt;

&lt;p&gt;This library is a &lt;strong&gt;hybrid module&lt;/strong&gt;. You can use it in legacy Node.js projects or modern TypeScript/ESM projects without any configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  CommonJS (&lt;code&gt;require&lt;/code&gt;)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// or require specific functions&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tiktok&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ES Modules / TypeScript (&lt;code&gt;import&lt;/code&gt;)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// or import specific functions&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tiktok&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;remini&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📚 API Documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Social Media Downloaders
&lt;/h3&gt;

&lt;h4&gt;
  
  
  TikTok (Video &amp;amp; Slides)
&lt;/h4&gt;

&lt;p&gt;Supports downloading videos without watermarks, searching for videos, and fetching slide images.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 1. Search or Download via URL&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tiktok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://vt.tiktok.com/ZS...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="c1"&gt;// OR search: await downloader.tiktok("funny cat videos");&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="cm"&gt;/* Output:
{
  author: { name: 'HEAVSTAL TECH', ... },
  status: true,
  title: 'Video Title',
  no_watermark: 'https://...',
  audio: 'https://...'
}
*/&lt;/span&gt;

&lt;span class="c1"&gt;// 2. TikTok Slides&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;slide&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tiktokSlide&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://vt.tiktok.com/ZS...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;slide&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Instagram (Reels, Images, Videos)
&lt;/h4&gt;

&lt;p&gt;Downloads content from Instagram public posts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;igdl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://www.instagram.com/p/Cp...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;ig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;media&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Type: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;media&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; | URL: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;media&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Facebook (Watch &amp;amp; Public Videos)
&lt;/h4&gt;

&lt;p&gt;Downloads public Facebook videos in SD or HD.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fbdl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://fb.watch/...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fb&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  Twitter / X (Video &amp;amp; Audio)
&lt;/h4&gt;

&lt;p&gt;Download videos from &lt;strong&gt;Twitter&lt;/strong&gt; or &lt;strong&gt;X.com&lt;/strong&gt;. Automatically handles link conversion and provides HD/SD options.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Alias:&lt;/strong&gt; You can use &lt;code&gt;downloader.twitter&lt;/code&gt; or &lt;code&gt;downloader.xdl&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Supports both twitter.com and x.com links&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;video&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xdl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://x.com/ElonMusk/status/...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="cm"&gt;/* Output:
{
  status: true,
  desc: "Tweet Caption...",
  thumbnail: "https://...",
  video_sd: "https://...", // Standard Definition
  video_hd: "https://..."  // High Definition
}
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2. YouTube (Search &amp;amp; Download)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Powered by &lt;code&gt;@distube/ytdl-core&lt;/code&gt; and &lt;code&gt;yt-search&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Search
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;youtube&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;No Copyright Sounds&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt; &lt;span class="c1"&gt;// Returns video details&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Download Audio (MP3)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;audio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ytmp3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://youtu.be/...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Direct download link&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Download Video (MP4)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;video&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ytmp4&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://youtu.be/...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Direct download link&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Play (Search &amp;amp; Auto-Download)
&lt;/h4&gt;

&lt;p&gt;Searches for a query and immediately returns the download link for the first result.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Get Audio&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;song&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;play&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Adele Hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mp3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Get Video&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;vid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;downloader&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;play&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Adele Hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mp4&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. Search &amp;amp; Lyrics
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Guitar Chords &amp;amp; Lyrics
&lt;/h4&gt;

&lt;p&gt;Fetches chords and lyrics from Gitagram.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;song&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chords&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ed Sheeran Perfect&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;song&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;chord&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Wattpad
&lt;/h4&gt;

&lt;p&gt;Search for stories on Wattpad.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stories&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;wattpad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Werewolf&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stories&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  4. Utilities &amp;amp; AI Tools
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Remini (AI Image Enhancer)
&lt;/h4&gt;

&lt;p&gt;Enhances low-quality images using AI. Returns a &lt;code&gt;Buffer&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Methods: 'enhance', 'recolor', 'dehaze'&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remini&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/blurry.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;enhance&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;enhanced.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Screenshot Website
&lt;/h4&gt;

&lt;p&gt;Takes a screenshot of any URL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ssweb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://google.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;desktop&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// options: 'desktop', 'tablet', 'phone'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Stylish Text
&lt;/h4&gt;

&lt;p&gt;Converts normal text into fancy fonts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fonts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;styleText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Heavstal Tech&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fonts&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Morse Code Converter
&lt;/h4&gt;

&lt;p&gt;Convert text to International Morse Code and vice versa. Supports letters, numbers, and punctuation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// 1. Encode (Text -&amp;gt; Morse)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;encoded&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;morse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HELLO WORLD&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;encode&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;encoded&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="c1"&gt;// Output: .... . .-.. .-.. --- / .-- --- .-. .-.. -..&lt;/span&gt;

&lt;span class="c1"&gt;// 2. Decode (Morse -&amp;gt; Text)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;decoded&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;morse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;... --- ...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;decode&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;decoded&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="c1"&gt;// Output: SOS&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Text to Speech (Google TTS)
&lt;/h4&gt;

&lt;p&gt;Convert text into audio using Google's engine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// 1. English (Default)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tts&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// 2. Other Languages (e.g., Japanese 'ja', Spanish 'es')&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bufferJP&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tts&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Konnichiwa&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ja&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;voice.mp3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Image Makers (Ephoto360 - Temporarily Unavailable)
&lt;/h3&gt;

&lt;p&gt;Generate high-quality text effects like Glitch, Neon, and Gold.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supported Styles:&lt;/strong&gt; &lt;code&gt;glitchtext&lt;/code&gt;, &lt;code&gt;writetext&lt;/code&gt;, &lt;code&gt;advancedglow&lt;/code&gt;, &lt;code&gt;typographytext&lt;/code&gt;, &lt;code&gt;pixelglitch&lt;/code&gt;, &lt;code&gt;neonglitch&lt;/code&gt;, &lt;code&gt;flagtext&lt;/code&gt;, &lt;code&gt;flag3dtext&lt;/code&gt;, &lt;code&gt;deletingtext&lt;/code&gt;, &lt;code&gt;blackpinkstyle&lt;/code&gt;, &lt;code&gt;glowingtext&lt;/code&gt;, &lt;code&gt;underwatertext&lt;/code&gt;, &lt;code&gt;logomaker&lt;/code&gt;, &lt;code&gt;cartoonstyle&lt;/code&gt;, &lt;code&gt;papercutstyle&lt;/code&gt;, &lt;code&gt;watercolortext&lt;/code&gt;, &lt;code&gt;effectclouds&lt;/code&gt;, &lt;code&gt;blackpinklogo&lt;/code&gt;, &lt;code&gt;gradienttext&lt;/code&gt;, &lt;code&gt;summerbeach&lt;/code&gt;, &lt;code&gt;luxurygold&lt;/code&gt;, &lt;code&gt;multicoloredneon&lt;/code&gt;, &lt;code&gt;sandsummer&lt;/code&gt;, &lt;code&gt;galaxywallpaper&lt;/code&gt;, &lt;code&gt;1917style&lt;/code&gt;, &lt;code&gt;makingneon&lt;/code&gt;, &lt;code&gt;royaltext&lt;/code&gt;, &lt;code&gt;freecreate&lt;/code&gt;, &lt;code&gt;galaxystyle&lt;/code&gt;, &lt;code&gt;lighteffects&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;imageUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ephoto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;glitchtext&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Heavstal Tech&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;imageUrl&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="c1"&gt;// Output: https://en.ephoto360.com/....jpg&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Lyrics Search
&lt;/h4&gt;

&lt;p&gt;Fetch song lyrics and metadata. Uses a robust multi-source engine (LRCLIB + Genius).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;song&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lyrics&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Kendrick Lamar DNA&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Title: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;song&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Artist: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;song&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;artist&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Lyrics:\n&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;song&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lyrics&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Zip to Text Extractor
&lt;/h4&gt;

&lt;p&gt;Download a remote ZIP file, extract recursively, and compile to a single text buffer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heavstaltech/api&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Option 1: Text Only (Best for LLMs - Skips Images/PDFs)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unzip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://github.com/user/repo/archive/main.zip&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="na"&gt;includeBinary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; 
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Option 2: Include Everything (Base64 encoded binary files)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fullBackup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unzip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://github.com/user/repo/archive/main.zip&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="na"&gt;includeBinary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; 
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📝 License
&lt;/h2&gt;

&lt;p&gt;This project is licensed under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;





&lt;p&gt;Maintained by &lt;a href="https://heavstal-tech.vercel.app" rel="noopener noreferrer"&gt;HEAVSTAL TECH&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
  &lt;p&gt;Building Tomorrow's Web, Today.&lt;/p&gt;

</description>
      <category>api</category>
      <category>npm</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Stop Configuring, Start Coding: The Ultimate Next.js 16 PWA Boilerplate 🚀....... Simple WebApp - Heavstal Tech™</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Fri, 02 Jan 2026 08:33:02 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/stop-configuring-start-coding-the-ultimate-nextjs-16-pwa-boilerplate-4jgh</link>
      <guid>https://forem.com/heavstal_tech/stop-configuring-start-coding-the-ultimate-nextjs-16-pwa-boilerplate-4jgh</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2F39ycyalz2v4xgao0cfg8.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2F39ycyalz2v4xgao0cfg8.jpg" alt=" " width="625" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem with "Create Next App"
&lt;/h3&gt;

&lt;p&gt;We all love &lt;code&gt;create-next-app&lt;/code&gt;. It’s fast, it’s clean, and it gets you running in seconds.&lt;/p&gt;

&lt;p&gt;But let's be honest—that's just the beginning. If you want a &lt;strong&gt;Production-Ready&lt;/strong&gt; app, you immediately spend the next 4 hours doing the boring stuff:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Configuring the &lt;strong&gt;PWA&lt;/strong&gt; (Service Workers, Manifests, Icons).&lt;/li&gt;
&lt;li&gt; Setting up &lt;strong&gt;SEO&lt;/strong&gt; (Sitemaps, robots.txt, Metadata).&lt;/li&gt;
&lt;li&gt; Fixing &lt;strong&gt;ESLint&lt;/strong&gt; and Prettier conflicts.&lt;/li&gt;
&lt;li&gt; Setting up a &lt;strong&gt;CI/CD&lt;/strong&gt; pipeline so you don't break production.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I got tired of doing this every time I started a new project. So, I built a solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Introducing Simple WebApp
&lt;/h3&gt;

&lt;p&gt;I’ve open-sourced my internal boilerplate. It is a modern, opinionated, and battery-included template for building high-performance WebApps.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/HeavstalTech/Simple_WebApp" rel="noopener noreferrer"&gt;github.com/HeavstalTech/Simple_WebApp&lt;/a&gt;&lt;br&gt;
🔗 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://simple-webapp.vercel.app" rel="noopener noreferrer"&gt;simple-webapp.vercel.app&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  HERE'S ARE SOME LIVE DEMO
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2F89p5s6xt4n2r0z9mfq7v.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2F89p5s6xt4n2r0z9mfq7v.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fzm2vpc76g24853a1bzz1.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.amazonaws.com%2Fuploads%2Farticles%2Fzm2vpc76g24853a1bzz1.png" alt=" " width="720" height="1612"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  🛠 Under the Hood
&lt;/h3&gt;

&lt;p&gt;This isn't just a "Hello World". It's a robust foundation built on the bleeding edge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;⚡ Next.js 16 (App Router):&lt;/strong&gt; The latest and greatest.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;📱 Native PWA Support:&lt;/strong&gt; Built using &lt;code&gt;@ducanh2912/next-pwa&lt;/code&gt;. It allows users to install your website as a native app on iOS and Android. It even works offline.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;🔍 SEO Automation:&lt;/strong&gt; Includes &lt;code&gt;next-sitemap&lt;/code&gt; to auto-generate sitemaps on build. Plus, &lt;code&gt;robots.ts&lt;/code&gt; and JSON-LD structured data are already set up in the &lt;code&gt;layout.tsx&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;🎨 Tailwind CSS:&lt;/strong&gt; configured with Dark Mode support out of the box.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;✅ CI/CD Pipeline:&lt;/strong&gt; A pre-configured GitHub Action workflow that lints and builds your code on every push, preventing bad code from hitting production.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  The "Gotchas" I Fixed For You
&lt;/h3&gt;

&lt;p&gt;If you've tried using PWA plugins with Next.js 16 recently, you probably hit the &lt;strong&gt;Turbopack vs. Webpack&lt;/strong&gt; wall.&lt;br&gt;
I’ve already handled the configuration to ensure the Service Workers generate correctly without breaking the Next.js build process.&lt;/p&gt;

&lt;p&gt;I also fixed the annoyances with &lt;strong&gt;ESLint 9&lt;/strong&gt; and the new flat config system, so you don't have to fight with the linter.&lt;/p&gt;
&lt;h3&gt;
  
  
  How to Use It
&lt;/h3&gt;

&lt;p&gt;Stop wasting time on setup. Just fork it and go.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repo&lt;/span&gt;
git clone https://github.com/HeavstalTech/Simple_WebApp.git

&lt;span class="c"&gt;# 2. Install dependencies&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# 3. Run it&lt;/span&gt;
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Contributions Welcome!
&lt;/h3&gt;

&lt;p&gt;This is fully Open Source (MIT License). If you have ideas on how to make it even better, I’d love to see your Pull Requests.&lt;/p&gt;

&lt;p&gt;Check it out, give it a ⭐️ if it saves you time, and let me know what you build with it!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/HeavstalTech/Simple_WebApp" rel="noopener noreferrer"&gt;View Source on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>pwa</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Heavstal Auth — NextAuth Provider for Heavstal Tech</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Mon, 29 Dec 2025 20:40:58 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/heavstal-auth-nextauth-provider-for-heavstal-tech-5bpn</link>
      <guid>https://forem.com/heavstal_tech/heavstal-auth-nextauth-provider-for-heavstal-tech-5bpn</guid>
      <description>&lt;h2&gt;
  
  
  Heavstal Auth Provider
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2Fwo36wzibsdr4zzf82uw4.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Fwo36wzibsdr4zzf82uw4.jpg" alt="Heavstal Logo" width="599" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The official &lt;a href="https://next-auth.js.org/" rel="noopener noreferrer"&gt;NextAuth.js&lt;/a&gt; (Auth.js) provider for &lt;strong&gt;Heavstal Tech&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Easily integrate &lt;strong&gt;“Sign in with Heavstal”&lt;/strong&gt; into your Next.js applications without manually configuring authorization URLs, token endpoints, or user profile mappings.&lt;/p&gt;

&lt;p&gt;📦 &lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/heavstal-auth" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/heavstal-auth&lt;/a&gt;&lt;br&gt;&lt;br&gt;
📂 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Promise818/heavstal-auth" rel="noopener noreferrer"&gt;https://github.com/Promise818/heavstal-auth&lt;/a&gt;&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%2Fimg.shields.io%2Fnpm%2Fv%2Fheavstal-auth%3Fstyle%3Dflat-square%26color%3Dblue" 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%2Fimg.shields.io%2Fnpm%2Fv%2Fheavstal-auth%3Fstyle%3Dflat-square%26color%3Dblue" alt="NPM Version" width="80" height="20"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fnpm%2Fl%2Fheavstal-auth%3Fstyle%3Dflat-square" 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%2Fimg.shields.io%2Fnpm%2Fl%2Fheavstal-auth%3Fstyle%3Dflat-square" alt="License" width="78" height="20"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  📦 Installation
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;heavstal-auth
&lt;span class="c"&gt;# or&lt;/span&gt;
yarn add heavstal-auth
&lt;span class="c"&gt;# or&lt;/span&gt;
pnpm add heavstal-auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You must have &lt;code&gt;next-auth&lt;/code&gt; installed in your project.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  🚀 Usage
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Get your credentials
&lt;/h3&gt;

&lt;p&gt;Go to the &lt;a href="https://heavstal-tech.vercel.app/oauth/apps" rel="noopener noreferrer"&gt;Heavstal Developer Console&lt;/a&gt; and create a new application to get your &lt;strong&gt;Client ID&lt;/strong&gt; and &lt;strong&gt;Client Secret&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Add environment variables
&lt;/h3&gt;

&lt;p&gt;Add these to your &lt;code&gt;.env&lt;/code&gt; or &lt;code&gt;.env.local&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;HEAVSTAL_CLIENT_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ht_id_xxxxxxxxxxxx
&lt;span class="nv"&gt;HEAVSTAL_CLIENT_SECRET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ht_secret_xxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Configure NextAuth
&lt;/h3&gt;

&lt;p&gt;Import &lt;code&gt;HeavstalProvider&lt;/code&gt; and add it to your providers list. It works exactly like the built-in Google or GitHub providers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;app/api/auth/[...nextauth]/route.ts&lt;/code&gt; (or &lt;code&gt;auth.ts&lt;/code&gt;):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;NextAuth&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next-auth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;HeavstalProvider&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;heavstal-auth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;NextAuth&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nc"&gt;HeavstalProvider&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;clientId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HEAVSTAL_CLIENT_ID&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;clientSecret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HEAVSTAL_CLIENT_SECRET&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;NODE_ENV&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;development&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;GET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;POST&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧩 TypeScript support
&lt;/h2&gt;

&lt;p&gt;This package is written in TypeScript and includes type definitions out of the box.&lt;/p&gt;

&lt;p&gt;The Heavstal user profile includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;email&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚙️ How it works
&lt;/h2&gt;

&lt;p&gt;Under the hood, this provider pre-configures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Authorization URL:&lt;/strong&gt; &lt;code&gt;https://accounts-heavstal.vercel.app/oauth/authorize&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Token URL:&lt;/strong&gt; &lt;code&gt;https://accounts-heavstal.vercel.app/api/oauth/token&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Info URL:&lt;/strong&gt; &lt;code&gt;https://accounts-heavstal.vercel.app/api/oauth/userinfo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Token Style:&lt;/strong&gt; &lt;code&gt;client_secret_post&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No manual endpoint setup. No OIDC discovery hassle.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Heavstal Developer Console: &lt;a href="https://heavstal-tech.vercel.app/oauth/apps" rel="noopener noreferrer"&gt;https://heavstal-tech.vercel.app/oauth/apps&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OAuth Documentation: &lt;a href="https://heavstal-tech.vercel.app/docs/api/oauth-guide" rel="noopener noreferrer"&gt;https://heavstal-tech.vercel.app/docs/api/oauth-guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;NPM Link: &lt;a href="https://www.npmjs.com/package/heavstal-auth" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/heavstal-auth&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Heavstal Tech Platform: &lt;a href="https://heavstal-tech.vercel.app" rel="noopener noreferrer"&gt;https://heavstal-tech.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Made with ❤️ by &lt;a href="https://heavstal-tech.vercel.app" rel="noopener noreferrer"&gt;Heavstal Tech&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>authentication</category>
      <category>oauth</category>
      <category>npm</category>
    </item>
    <item>
      <title>𝗠𝗘𝗥𝗥𝗬 𝗖𝗛𝗥𝗜𝗦𝗧𝗠𝗔𝗦 𝗙𝗥𝗢𝗠 𝗛𝗘𝗔𝗩𝗦𝗧𝗔𝗟 𝗧𝗘𝗖𝗛 🎄</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Thu, 25 Dec 2025 09:37:57 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/-1c7m</link>
      <guid>https://forem.com/heavstal_tech/-1c7m</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2Fnkl8c8gxz7pbgm093na7.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.amazonaws.com%2Fuploads%2Farticles%2Fnkl8c8gxz7pbgm093na7.png" alt=" " width="800" height="750"&gt;&lt;/a&gt;&lt;br&gt;
Hello,&lt;/p&gt;

&lt;p&gt;As the year comes to a close, we want to take a moment to sincerely say thank you.&lt;/p&gt;

&lt;p&gt;Thank you for building with Heavstal Tech.&lt;br&gt;
Thank you for testing, exploring, integrating, and believing in what we are creating.&lt;/p&gt;

&lt;p&gt;This year has been about laying strong foundations — APIs, infrastructure, tools, and ideas — and none of it would be meaningful without the people using and supporting the platform.&lt;/p&gt;

&lt;p&gt;While many are celebrating today, we are still quietly building and refining, looking forward to the year ahead with excitement. New features, improvements, and stronger systems are already in motion.&lt;/p&gt;

&lt;p&gt;We hope this season brings you rest, clarity, and inspiration — whether you are shipping code, planning your next project, or simply taking a well-earned break.&lt;/p&gt;

&lt;p&gt;𝗠𝗲𝗿𝗿𝘆 𝗖𝗵𝗿𝗶𝘀𝘁𝗺𝗮𝘀 &amp;amp; 𝗛𝗮𝗽𝗽𝘆 𝗡𝗲𝘄 𝗬𝗲𝗮𝗿 🎁&lt;/p&gt;

&lt;p&gt;—&lt;br&gt;&lt;br&gt;
𝗧𝗵𝗲 𝗛𝗲𝗮𝘃𝘀𝘁𝗮𝗹 𝗧𝗲𝗰𝗵 𝗧𝗲𝗮𝗺&lt;br&gt;&lt;br&gt;
𝗕𝘂𝗶𝗹𝗱𝗶𝗻𝗴 𝗧𝗼𝗺𝗼𝗿𝗿𝗼𝘄&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I Spent 4+ Months Building Web Infrastructure So I’d Stop Rebuilding the Same Things</title>
      <dc:creator>HEAVSTAL TECH™</dc:creator>
      <pubDate>Mon, 22 Dec 2025 09:04:09 +0000</pubDate>
      <link>https://forem.com/heavstal_tech/i-spent-4-months-building-web-infrastructure-so-id-stop-rebuilding-the-same-things-3gpe</link>
      <guid>https://forem.com/heavstal_tech/i-spent-4-months-building-web-infrastructure-so-id-stop-rebuilding-the-same-things-3gpe</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2F4clz82h5uochvfdfpe3q.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.amazonaws.com%2Fuploads%2Farticles%2F4clz82h5uochvfdfpe3q.png" alt=" " width="800" height="750"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;For the past few years, every project I worked on hit the same wall.&lt;/p&gt;

&lt;p&gt;Not product logic.&lt;br&gt;
Not UI.&lt;br&gt;
Not even scaling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication took longer than expected&lt;/li&gt;
&lt;li&gt;APIs grew messy fast&lt;/li&gt;
&lt;li&gt;Security was “we’ll fix it later”&lt;/li&gt;
&lt;li&gt;Tooling became duct tape and workarounds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I got tired of rebuilding the same foundation over and over.&lt;/p&gt;

&lt;p&gt;So I decided to build it &lt;em&gt;once&lt;/em&gt; — properly.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem Nobody Gets Excited About (But Everyone Suffers From)
&lt;/h2&gt;

&lt;p&gt;Most developers don’t fail because their idea is bad.&lt;/p&gt;

&lt;p&gt;They fail because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auth steals weeks&lt;/li&gt;
&lt;li&gt;APIs become inconsistent&lt;/li&gt;
&lt;li&gt;Secrets get mishandled&lt;/li&gt;
&lt;li&gt;Infra work kills momentum&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is fun.&lt;br&gt;
None of this is what we &lt;em&gt;want&lt;/em&gt; to work on.&lt;/p&gt;

&lt;p&gt;But it’s unavoidable.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Decided to Build
&lt;/h2&gt;

&lt;p&gt;I started building &lt;strong&gt;Heavstal Tech&lt;/strong&gt; — a developer-first infrastructure platform focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔐 OAuth2 identity management&lt;/li&gt;
&lt;li&gt;⚡ APIs &amp;amp; automation tools&lt;/li&gt;
&lt;li&gt;📦 Reusable developer modules&lt;/li&gt;
&lt;li&gt;🛡️ A secure password manager&lt;/li&gt;
&lt;li&gt;📘 Clear documentation from day one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not flashy.&lt;br&gt;
Not hype-driven.&lt;/p&gt;

&lt;p&gt;Just &lt;strong&gt;secure, scalable, production-ready foundations&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Makes This Different (At Least for Me)
&lt;/h2&gt;

&lt;p&gt;I built this with a few non-negotiables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Secure by default&lt;/li&gt;
&lt;li&gt;No “enterprise demo” gatekeeping&lt;/li&gt;
&lt;li&gt;Real documentation, not placeholders&lt;/li&gt;
&lt;li&gt;Built by someone who actually needed it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This wasn’t a startup pitch.&lt;br&gt;
It was a survival mechanism.&lt;/p&gt;




&lt;h2&gt;
  
  
  Current State (Being Honest)
&lt;/h2&gt;

&lt;p&gt;I’ve been building this for about &lt;strong&gt;4.5 months&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It works.&lt;br&gt;
It’s live.&lt;br&gt;
It’s documented.&lt;/p&gt;

&lt;p&gt;And yes — usage is still low.&lt;/p&gt;

&lt;p&gt;That’s part of why I’m writing this.&lt;br&gt;
I want feedback from real developers, not marketing noise.&lt;/p&gt;




&lt;h2&gt;
  
  
  If you’re curious, you can explore the platform here:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app" rel="noopener noreferrer"&gt;Main Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/oauth/apps" rel="noopener noreferrer"&gt;OAuth2 Identity Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/apis" rel="noopener noreferrer"&gt;APIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/projects" rel="noopener noreferrer"&gt;Projects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/module" rel="noopener noreferrer"&gt;Modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/service" rel="noopener noreferrer"&gt;Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/manager" rel="noopener noreferrer"&gt;Password Manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before using anything, please review:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/terms" rel="noopener noreferrer"&gt;Terms of Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavstal-tech.vercel.app/privacy" rel="noopener noreferrer"&gt;Privacy Policy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I’m Looking For
&lt;/h2&gt;

&lt;p&gt;I’m not asking for hype.&lt;/p&gt;

&lt;p&gt;I’m looking for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Honest feedback&lt;/li&gt;
&lt;li&gt;Use cases I didn’t consider&lt;/li&gt;
&lt;li&gt;Pain points you hit in infra work&lt;/li&gt;
&lt;li&gt;Suggestions from people who’ve been here&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve ever rebuilt auth or APIs from scratch, I’d genuinely love your thoughts.&lt;/p&gt;

&lt;p&gt;Thanks for reading.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>backend</category>
      <category>security</category>
      <category>authentication</category>
    </item>
  </channel>
</rss>
