<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Puneet-Kumar2010</title>
    <description>The latest articles on DEV Community by Puneet-Kumar2010 (@puneetkumar2010).</description>
    <link>https://dev.to/puneetkumar2010</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1064459%2F35766cba-ddfc-4ef6-aebb-39c79676bc62.png</url>
      <title>DEV Community: Puneet-Kumar2010</title>
      <link>https://dev.to/puneetkumar2010</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/puneetkumar2010"/>
    <language>en</language>
    <item>
      <title>I Was Tired of Configuring Every LLM Parameter, So I Built Tensorless 🤯</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Thu, 27 Aug 2026 10:39:12 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/i-was-tired-of-configuring-every-llm-parameter-so-i-built-tensorless-12oh</link>
      <guid>https://dev.to/puneetkumar2010/i-was-tired-of-configuring-every-llm-parameter-so-i-built-tensorless-12oh</guid>
      <description>&lt;p&gt;About a year ago, I was learning PyTorch.&lt;/p&gt;

&lt;p&gt;I was learning about model training, transformers, language models, tokenization, architectures, and all the other things that come with building models.&lt;/p&gt;

&lt;p&gt;And honestly?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There were a LOT of parameters.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;d_model&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;hidden_size&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;layers&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;heads&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;max_seq_len&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;top_k&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;top_p&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;sampling parameters...&lt;/p&gt;

&lt;p&gt;And then there was tokenization.&lt;/p&gt;

&lt;p&gt;And then the dataset.&lt;/p&gt;

&lt;p&gt;And then training.&lt;/p&gt;

&lt;p&gt;And then the hardware.&lt;/p&gt;

&lt;p&gt;And then CUDA.&lt;/p&gt;

&lt;p&gt;And then multi-GPU.&lt;/p&gt;

&lt;p&gt;And then...&lt;/p&gt;

&lt;p&gt;You get the idea. 😭&lt;/p&gt;

&lt;p&gt;At some point I started thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if I could just give the system my data and let it figure most of this stuff out?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That thought eventually became &lt;strong&gt;Tensorless&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Before Tensorless
&lt;/h1&gt;

&lt;p&gt;I wasn't starting completely from zero.&lt;/p&gt;

&lt;p&gt;While learning PyTorch and experimenting with language models, I eventually built two models myself.&lt;/p&gt;

&lt;p&gt;One was around &lt;strong&gt;91M parameters&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Another was around &lt;strong&gt;35M parameters&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That experience was actually what pushed me toward Tensorless.&lt;/p&gt;

&lt;p&gt;Because once you build a model yourself, you start seeing just how many decisions are involved.&lt;/p&gt;

&lt;p&gt;And I started wondering:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if someone just wants to experiment with a small or medium-sized language model without having to become an expert in every single configuration option first?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That was the problem I wanted to solve.&lt;/p&gt;




&lt;h1&gt;
  
  
  My first approach was probably too ambitious 💀
&lt;/h1&gt;

&lt;p&gt;The original Tensorless idea was much more extreme.&lt;/p&gt;

&lt;p&gt;I wanted Tensorless to have its own neural-network components, its own processing, its own structure, and its own training system.&lt;/p&gt;

&lt;p&gt;Basically, I was trying to build a lot of the stack myself.&lt;/p&gt;

&lt;p&gt;It sounded cool.&lt;/p&gt;

&lt;p&gt;It also caused &lt;strong&gt;a ridiculous number of problems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GPU support had issues.&lt;/p&gt;

&lt;p&gt;Multi-GPU had issues.&lt;/p&gt;

&lt;p&gt;TPU setup had issues.&lt;/p&gt;

&lt;p&gt;There were bugs I had to chase because I was trying to control things that frameworks like PyTorch already handle extremely well.&lt;/p&gt;

&lt;p&gt;Eventually I realized:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I don't need to reinvent PyTorch to simplify model training.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I changed the direction.&lt;/p&gt;




&lt;h1&gt;
  
  
  Tensorless-PyTorch
&lt;/h1&gt;

&lt;p&gt;The current version uses &lt;strong&gt;PyTorch underneath&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tensorless becomes the higher-level layer that tries to automate the annoying parts.&lt;/p&gt;

&lt;p&gt;The package is available on PyPI:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/tensorless-pytorch/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Tensorless PyTorch on PyPI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;tensorless-pytorch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tensorless&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./corpus.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's an actual example from the package's current PyPI documentation.&lt;/p&gt;

&lt;p&gt;And that's basically the philosophy of Tensorless:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give it data. Train. Generate.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  So what does Tensorless actually automate?
&lt;/h1&gt;

&lt;p&gt;When you train a text-generation model, Tensorless can derive a number of settings from the data instead of making you configure everything manually.&lt;/p&gt;

&lt;p&gt;The current package automatically derives things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;model size&lt;/li&gt;
&lt;li&gt;batch size&lt;/li&gt;
&lt;li&gt;epochs&lt;/li&gt;
&lt;li&gt;validation setup&lt;/li&gt;
&lt;li&gt;device&lt;/li&gt;
&lt;li&gt;BPE vocabulary size&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model size is automatically scaled according to corpus size across several tiers.&lt;/p&gt;

&lt;p&gt;And if you &lt;em&gt;do&lt;/em&gt; want control, you can override the automatically selected settings.&lt;/p&gt;

&lt;p&gt;So you can start simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./corpus.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or start taking control of the configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./corpus.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;epochs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_seq_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The idea isn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You are never allowed to configure anything."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"You shouldn't have to configure everything just to get started."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  Tokenization is handled too
&lt;/h1&gt;

&lt;p&gt;For text training, Tensorless currently uses &lt;strong&gt;BPE as the default tokenizer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can also explicitly choose character-level tokenization:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./corpus.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;char&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The text is tokenized once up front and then streamed through PyTorch in fixed-size batches.&lt;/p&gt;

&lt;p&gt;That means the user doesn't have to manually build an entire tokenization → batching → training pipeline before experimenting.&lt;/p&gt;




&lt;h1&gt;
  
  
  What about pretraining?
&lt;/h1&gt;

&lt;p&gt;There is also a starter English pretraining workflow.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tensorless&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pretrain&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;english.tl&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;epochs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_seq_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A complete sentence&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;30&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;Tensorless includes an offline starter corpus for demonstrations and smoke tests.&lt;/p&gt;

&lt;p&gt;But it's important to say this clearly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That starter corpus isn't supposed to magically produce a powerful LLM.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's there to demonstrate the pipeline.&lt;/p&gt;

&lt;p&gt;For actual pretraining, you should provide your own substantially larger corpus.&lt;/p&gt;




&lt;h1&gt;
  
  
  And you can fine-tune
&lt;/h1&gt;

&lt;p&gt;This is one of the things I wanted to support beyond just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here's a dataset, train from scratch."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can train a base model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./big_corpus.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;base.tl&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;epochs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then fine-tune it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;tuned&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./my_conversations.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tuned.tl&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;pretrained&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;base.tl&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;epochs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The current implementation keeps the architecture and tokenizer aligned with the pretrained model when using &lt;code&gt;pretrained=&lt;/code&gt;, rather than silently accepting incompatible overrides.&lt;/p&gt;

&lt;p&gt;That's useful because the whole point of fine-tuning is to build on what the base model already learned.&lt;/p&gt;




&lt;h1&gt;
  
  
  It isn't only text generation
&lt;/h1&gt;

&lt;p&gt;Tensorless isn't limited to language models.&lt;/p&gt;

&lt;p&gt;The current package also exposes other training tasks.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reviews/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-classification&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And tabular regression:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;housing.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;regression&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The package also supports tabular classification, with preprocessing for things such as numeric values, ISO dates, and high-cardinality categories.&lt;/p&gt;

&lt;p&gt;So the broader idea became:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't make every experiment start with a giant configuration file.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  What about GPUs?
&lt;/h1&gt;

&lt;p&gt;This was one of the reasons the original from-scratch version became difficult.&lt;/p&gt;

&lt;p&gt;In the current PyTorch-based implementation, CUDA training can automatically use mixed precision where supported.&lt;/p&gt;

&lt;p&gt;The current version also supports TPU training through:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tpu&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And larger automatically sized models can enable gradient checkpointing to reduce memory usage.&lt;/p&gt;

&lt;p&gt;That's one of the big lessons I learned from the original Tensorless:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sometimes the best engineering decision is not to rebuild something that already works.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Then I built a cat. 🐈
&lt;/h1&gt;

&lt;p&gt;After building a framework for training models, I needed an actual project to play with it.&lt;/p&gt;

&lt;p&gt;So obviously...&lt;/p&gt;

&lt;p&gt;I made a chatbot that talks like a dramatic cat.&lt;/p&gt;

&lt;p&gt;Introducing:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/DeveloperPuneet/CatTongue?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;CatTongue on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CatTongue is a tiny Tensorless-powered chatbot trained on human messages and cat responses.&lt;/p&gt;

&lt;p&gt;The repository is intentionally simple.&lt;/p&gt;

&lt;p&gt;Its structure looks roughly like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CatTongue/
├── data/
│   └── conversations.json
├── train.py
├── chat.py
├── README.md
└── .gitignore
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual repository also contains trained &lt;code&gt;.tl&lt;/code&gt; model files and the training/chat scripts.&lt;/p&gt;




&lt;h1&gt;
  
  
  Running CatTongue
&lt;/h1&gt;

&lt;p&gt;First install Tensorless:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;tensorless-pytorch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then train:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python train.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That produces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat.tl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python chat.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you can talk to the cat.&lt;/p&gt;

&lt;p&gt;That's the actual workflow documented in the CatTongue repository.&lt;/p&gt;




&lt;h1&gt;
  
  
  The dataset is ridiculously simple
&lt;/h1&gt;

&lt;p&gt;The training data lives in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;data/conversations.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An individual example looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"what are you doing?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"cat"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"mrrp... watching the wall. the wall is suspicious."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So if you want to experiment with the personality, you can literally add more conversations.&lt;/p&gt;

&lt;p&gt;More data.&lt;/p&gt;

&lt;p&gt;Different responses.&lt;/p&gt;

&lt;p&gt;Different personality.&lt;/p&gt;

&lt;p&gt;Then train again.&lt;/p&gt;

&lt;p&gt;That's one of the things I like most about this experiment: &lt;strong&gt;the entire pipeline is accessible enough to mess with.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  And yes, the model is imperfect 😂
&lt;/h1&gt;

&lt;p&gt;Some of the CatTongue outputs are genuinely funny.&lt;/p&gt;

&lt;p&gt;Others are completely broken.&lt;/p&gt;

&lt;p&gt;And that's expected.&lt;/p&gt;

&lt;p&gt;This isn't a massive pretrained language model.&lt;/p&gt;

&lt;p&gt;It's a small experiment trained on a small dataset.&lt;/p&gt;

&lt;p&gt;The repository even has examples where the model produces grammatically broken or nonsensical responses.&lt;/p&gt;

&lt;p&gt;But that's actually useful.&lt;/p&gt;

&lt;p&gt;Because you can see the relationship between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;data → training → model behavior.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Change the dataset and train again.&lt;/p&gt;

&lt;p&gt;The behavior changes.&lt;/p&gt;

&lt;p&gt;That's exactly the kind of experimentation I wanted Tensorless to make easier.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why "Tensorless"?
&lt;/h1&gt;

&lt;p&gt;The name came from the original idea.&lt;/p&gt;

&lt;p&gt;I wanted the user to think less about the underlying tensor/model configuration and more about:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What data do I want to train on?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's not literally "tensor-free."&lt;/p&gt;

&lt;p&gt;PyTorch is underneath it.&lt;/p&gt;

&lt;p&gt;The name is more about the abstraction.&lt;/p&gt;

&lt;p&gt;You don't need to manually deal with every underlying detail before you can start experimenting.&lt;/p&gt;




&lt;h1&gt;
  
  
  A year later...
&lt;/h1&gt;

&lt;p&gt;It's kind of funny looking back.&lt;/p&gt;

&lt;p&gt;I started this because I was learning PyTorch and getting confused by all the configuration.&lt;/p&gt;

&lt;p&gt;Then I tried building basically everything myself.&lt;/p&gt;

&lt;p&gt;That caused problems.&lt;/p&gt;

&lt;p&gt;Then I realized I could use PyTorch instead of fighting it.&lt;/p&gt;

&lt;p&gt;And now Tensorless is an actual Python package.&lt;/p&gt;

&lt;p&gt;The current PyPI release is &lt;strong&gt;0.8.0&lt;/strong&gt;, published on &lt;strong&gt;August 27, 2026&lt;/strong&gt;, and the package is MIT licensed.&lt;/p&gt;

&lt;p&gt;The project is still evolving.&lt;/p&gt;

&lt;p&gt;There are things I want to improve.&lt;/p&gt;

&lt;p&gt;There will definitely be bugs.&lt;/p&gt;

&lt;p&gt;And there are probably design decisions I'll change later.&lt;/p&gt;

&lt;p&gt;But that's what makes open source interesting.&lt;/p&gt;




&lt;h1&gt;
  
  
  So, what can you do with it?
&lt;/h1&gt;

&lt;p&gt;You can start ridiculously simply:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tensorless&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./my_data.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can go deeper and configure the training yourself.&lt;/p&gt;

&lt;p&gt;You can pretrain.&lt;/p&gt;

&lt;p&gt;You can fine-tune.&lt;/p&gt;

&lt;p&gt;You can do text classification.&lt;/p&gt;

&lt;p&gt;You can work with tabular data.&lt;/p&gt;

&lt;p&gt;You can save models as &lt;code&gt;.tl&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can load them later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model.tl&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All of these are part of the current package API.&lt;/p&gt;




&lt;h1&gt;
  
  
  It's not trying to replace serious ML frameworks
&lt;/h1&gt;

&lt;p&gt;Tensorless isn't meant to replace PyTorch.&lt;/p&gt;

&lt;p&gt;Actually, &lt;strong&gt;it uses PyTorch.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's intentional.&lt;/p&gt;

&lt;p&gt;PyTorch already gives us an enormous amount of mature infrastructure.&lt;/p&gt;

&lt;p&gt;Tensorless sits above it and tries to make certain workflows more automated.&lt;/p&gt;

&lt;p&gt;Think of it as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your data
   ↓
Tensorless
   ↓
automatic configuration
   ↓
tokenization / preprocessing
   ↓
model + training setup
   ↓
PyTorch
   ↓
trained model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is to reduce the amount of boilerplate between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"I have some data"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"I have a model I can experiment with."&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Where it goes from here
&lt;/h1&gt;

&lt;p&gt;I don't know exactly.&lt;/p&gt;

&lt;p&gt;That's part of the fun.&lt;/p&gt;

&lt;p&gt;I want to keep improving the automation, hardware support, training behavior, documentation, and model capabilities.&lt;/p&gt;

&lt;p&gt;And I want people to actually use it.&lt;/p&gt;

&lt;p&gt;Break it.&lt;/p&gt;

&lt;p&gt;Experiment with it.&lt;/p&gt;

&lt;p&gt;Build weird projects with it.&lt;/p&gt;

&lt;p&gt;Find bugs I didn't find.&lt;/p&gt;

&lt;p&gt;Send pull requests.&lt;/p&gt;

&lt;p&gt;Maybe someone will build something genuinely useful with it.&lt;/p&gt;

&lt;p&gt;Maybe someone will build another ridiculous chatbot.&lt;/p&gt;

&lt;p&gt;Both are fine. 😂&lt;/p&gt;




&lt;h1&gt;
  
  
  Try it yourself 🚀
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;PyPI:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://pypi.org/project/tensorless-pytorch/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;tensorless-pytorch&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CatTongue:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/DeveloperPuneet/CatTongue?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;DeveloperPuneet/CatTongue&lt;/a&gt;&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;tensorless-pytorch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then try:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tensorless&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;train&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;./corpus.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&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;And if you want something more entertaining, clone CatTongue and train the dramatic cat. 🐈&lt;/p&gt;




&lt;h2&gt;
  
  
  One last thing
&lt;/h2&gt;

&lt;p&gt;Tensorless started because I thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Why are there so many things I have to configure just to train a model?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A year later, I ended up publishing the answer I came up with.&lt;/p&gt;

&lt;p&gt;It's not perfect.&lt;/p&gt;

&lt;p&gt;It's not some revolutionary new architecture.&lt;/p&gt;

&lt;p&gt;It's not going to train a frontier model on your laptop.&lt;/p&gt;

&lt;p&gt;It's simply an attempt to make model training &lt;strong&gt;less annoying to start with&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And honestly?&lt;/p&gt;

&lt;p&gt;I'm pretty happy that the idea that started with me being confused about PyTorch eventually became a package people can actually &lt;code&gt;pip install&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now I want to see what other people do with it.&lt;/strong&gt; 🚀&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>ai</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>I Was Learning PyTorch, Then I Accidentally Started Building My Own AI Training Framework</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Sun, 23 Aug 2026 10:48:35 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/i-was-learning-pytorch-then-i-accidentally-started-building-my-own-ai-training-framework-55a9</link>
      <guid>https://dev.to/puneetkumar2010/i-was-learning-pytorch-then-i-accidentally-started-building-my-own-ai-training-framework-55a9</guid>
      <description>&lt;p&gt;Honestly, &lt;strong&gt;Tensorless was not supposed to become this big.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I was learning PyTorch.&lt;/p&gt;

&lt;p&gt;I wanted to understand how neural networks and model training actually worked, so before starting Tensorless, I built &lt;strong&gt;two AI models with PyTorch&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Those two projects were mainly for learning. I wanted to understand the basics by actually building things instead of only reading tutorials.&lt;/p&gt;

&lt;p&gt;And after doing that, I started thinking about something pretty simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why does training a model have to involve so much setup every time?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If I already have the training data, why can't I just give it to a framework and let it figure out most of the boring stuff?&lt;/p&gt;

&lt;p&gt;That was the beginning of Tensorless.&lt;/p&gt;




&lt;h2&gt;
  
  
  First, I Built Two Models With PyTorch
&lt;/h2&gt;

&lt;p&gt;Before Tensorless existed, I spent time learning PyTorch by actually building &lt;strong&gt;two AI models&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That gave me a basic understanding of how the whole process worked:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preparing data&lt;/li&gt;
&lt;li&gt;Creating a model&lt;/li&gt;
&lt;li&gt;Training&lt;/li&gt;
&lt;li&gt;Loss&lt;/li&gt;
&lt;li&gt;Optimizers&lt;/li&gt;
&lt;li&gt;Batching&lt;/li&gt;
&lt;li&gt;Saving models&lt;/li&gt;
&lt;li&gt;Loading models&lt;/li&gt;
&lt;li&gt;Inference&lt;/li&gt;
&lt;li&gt;And all the configuration around training&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building those two models was important because I wasn't starting Tensorless completely blind.&lt;/p&gt;

&lt;p&gt;I had already experienced the process myself.&lt;/p&gt;

&lt;p&gt;And after doing it twice, I started noticing how much of the setup was repetitive.&lt;/p&gt;

&lt;p&gt;Sometimes I don't want to spend a huge amount of time configuring everything.&lt;/p&gt;

&lt;p&gt;Sometimes I just want to get a result quickly.&lt;/p&gt;

&lt;p&gt;So I started thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if most of this could just happen automatically?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  The Original Idea Was Actually Pretty Simple
&lt;/h1&gt;

&lt;p&gt;My initial goal wasn't to create another huge machine-learning framework.&lt;/p&gt;

&lt;p&gt;I wanted something more like:&lt;/p&gt;

&lt;p&gt;Give Tensorless your training data&lt;br&gt;
            ↓&lt;br&gt;
Tensorless figures out the setup&lt;br&gt;
            ↓&lt;br&gt;
Train&lt;br&gt;
            ↓&lt;br&gt;
Get your model&lt;/p&gt;

&lt;p&gt;The idea was basically:&lt;/p&gt;

&lt;p&gt;Put data in → go.&lt;/p&gt;

&lt;p&gt;If you're a beginner, you shouldn't need to understand every training parameter before you can train a model.&lt;/p&gt;

&lt;p&gt;But if you're an advanced programmer, you should still be able to configure everything yourself.&lt;/p&gt;

&lt;p&gt;So the philosophy became:&lt;/p&gt;

&lt;p&gt;Simple by default. Configurable when you need it.&lt;/p&gt;

&lt;p&gt;The First Tensorless Version Used PyTorch&lt;/p&gt;

&lt;p&gt;The first version of Tensorless actually used PyTorch underneath.&lt;/p&gt;

&lt;p&gt;I wasn't trying to reinvent neural networks at that point.&lt;/p&gt;

&lt;p&gt;I was trying to automate the training process.&lt;/p&gt;

&lt;p&gt;The configuration was mostly determined automatically using fixed conditions in the code.&lt;/p&gt;

&lt;p&gt;So instead of manually deciding every parameter, Tensorless would make those decisions for you.&lt;/p&gt;

&lt;p&gt;That was the first version.&lt;/p&gt;

&lt;p&gt;And honestly, it worked surprisingly well for what I wanted.&lt;/p&gt;

&lt;p&gt;But then I ran into another problem.&lt;/p&gt;

&lt;p&gt;I Wanted It To Be Small&lt;/p&gt;

&lt;p&gt;One of the reasons I started thinking differently about the architecture was the amount of stuff involved in a PyTorch-based workflow.&lt;/p&gt;

&lt;p&gt;When I was experimenting with the project, the dependencies and modules could become 500+ MB.&lt;/p&gt;

&lt;p&gt;And I started thinking:&lt;/p&gt;

&lt;p&gt;"I'm trying to make training simpler and lightweight, but I'm bringing in a huge stack just to do it."&lt;/p&gt;

&lt;p&gt;I didn't want Tensorless to become a massive package full of components that users might never need.&lt;/p&gt;

&lt;p&gt;I wanted the package to contain the things actually required for its own workflow.&lt;/p&gt;

&lt;p&gt;So I decided to go much further.&lt;/p&gt;

&lt;p&gt;Then I Made A Slightly Insane Decision&lt;/p&gt;

&lt;p&gt;I started building more of the system myself.&lt;/p&gt;

&lt;p&gt;Instead of keeping Tensorless as a PyTorch wrapper forever, I started working toward my own neural/training system.&lt;/p&gt;

&lt;p&gt;That meant getting into things I originally hadn't planned to touch.&lt;/p&gt;

&lt;p&gt;I started working on:&lt;/p&gt;

&lt;p&gt;Neural network components&lt;br&gt;
Training&lt;br&gt;
CUDA optimization&lt;br&gt;
Data optimization&lt;br&gt;
Data pipelines&lt;br&gt;
TPU support&lt;br&gt;
Automatic configuration&lt;br&gt;
Tokenization&lt;br&gt;
BPE&lt;br&gt;
Model saving/loading&lt;br&gt;
And other training infrastructure&lt;/p&gt;

&lt;p&gt;At this point, Tensorless had changed completely.&lt;/p&gt;

&lt;p&gt;It wasn't just:&lt;/p&gt;

&lt;p&gt;"PyTorch, but with easier configuration."&lt;/p&gt;

&lt;p&gt;It was becoming an attempt to build a lightweight training system around the workflow I wanted.&lt;/p&gt;

&lt;p&gt;Then I Needed Something Real To Test It On&lt;/p&gt;

&lt;p&gt;So I built a small chatbot.&lt;/p&gt;

&lt;p&gt;A cat chatbot.&lt;/p&gt;

&lt;p&gt;I called it CatTongue. 🐈&lt;/p&gt;

&lt;p&gt;The model was trained on CPU, and with the PyTorch-based version of my training system, I was getting results that were honestly pretty fun.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;You: "Do you trust me?"&lt;br&gt;
Cat: "only if you walk toward the kitchen. 😼🐾"&lt;/p&gt;

&lt;p&gt;You: "Who is your enemy?"&lt;br&gt;
Cat: "empty boxes. 📦😾 they are useful for exactly zero seconds."&lt;/p&gt;

&lt;p&gt;You: "Who is your favorite human?"&lt;br&gt;
Cat: "are you holding food? 🤨🍗"&lt;/p&gt;

&lt;p&gt;You: "Do you have a best friend?"&lt;br&gt;
Cat: "the vacuum cleaner. 😾🧹 we have unfinished business."&lt;/p&gt;

&lt;p&gt;It wasn't perfect.&lt;/p&gt;

&lt;p&gt;But it was understandable.&lt;/p&gt;

&lt;p&gt;The model was actually producing responses that made sense.&lt;/p&gt;

&lt;p&gt;And I thought:&lt;/p&gt;

&lt;p&gt;Okay. This is working.&lt;/p&gt;

&lt;p&gt;Then I Changed The Training System Again&lt;/p&gt;

&lt;p&gt;I continued developing my own training implementation.&lt;/p&gt;

&lt;p&gt;And then I trained again.&lt;/p&gt;

&lt;p&gt;This time...&lt;/p&gt;

&lt;p&gt;OH MY GOD.&lt;/p&gt;

&lt;p&gt;The results were terrible. 😭&lt;/p&gt;

&lt;p&gt;I started getting things like:&lt;/p&gt;

&lt;p&gt;You: Hello&lt;br&gt;
Cat: yes. � I understand the ancient languagnacke.&lt;/p&gt;

&lt;p&gt;You: do you want food?&lt;br&gt;
Cat: food. �� � I have interrupt the sound forctinking.&lt;/p&gt;

&lt;p&gt;You: fish?&lt;br&gt;
Cat: food. � � � suspicious.&lt;/p&gt;

&lt;p&gt;You: who is your enemy?&lt;br&gt;
Cat: yes. � I amain but jobs.&lt;/p&gt;

&lt;p&gt;You: meow&lt;br&gt;
Cat: okay. � I superiore your fish.&lt;/p&gt;

&lt;p&gt;You: kitchen&lt;br&gt;
Cat: fish. � They are you mrrp.&lt;/p&gt;

&lt;p&gt;And my reaction was basically:&lt;/p&gt;

&lt;p&gt;FAAAAAAAAAAAAAAAAAAAAH.&lt;/p&gt;

&lt;p&gt;😂&lt;/p&gt;

&lt;p&gt;There were recognizable words.&lt;/p&gt;

&lt;p&gt;There were sometimes recognizable meanings.&lt;/p&gt;

&lt;p&gt;But the language wasn't behaving properly.&lt;/p&gt;

&lt;p&gt;And this was actually one of the most important moments in the project.&lt;/p&gt;

&lt;p&gt;Running a Neural Network Isn't The Same As Making It Learn Properly&lt;/p&gt;

&lt;p&gt;I had already learned how to make the system train.&lt;/p&gt;

&lt;p&gt;I had a model.&lt;/p&gt;

&lt;p&gt;I had data.&lt;/p&gt;

&lt;p&gt;I had a training loop.&lt;/p&gt;

&lt;p&gt;I had the infrastructure.&lt;/p&gt;

&lt;p&gt;But getting something to actually learn useful language representations is a completely different problem.&lt;/p&gt;

&lt;p&gt;That experiment showed me that my implementation still had a lot to improve.&lt;/p&gt;

&lt;p&gt;And that's where I started understanding the difference between:&lt;/p&gt;

&lt;p&gt;"The code runs."&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;"The model works well."&lt;/p&gt;

&lt;p&gt;Those are VERY different things.&lt;/p&gt;

&lt;p&gt;But The API Was Becoming What I Wanted&lt;/p&gt;

&lt;p&gt;Even while the underlying system still needed work, the interface was becoming extremely simple.&lt;/p&gt;

&lt;p&gt;For example, pretraining and fine-tuning can look like:&lt;/p&gt;

&lt;p&gt;import tensorless as tl&lt;/p&gt;

&lt;p&gt;print("Pretraining base model...")&lt;/p&gt;

&lt;p&gt;base_model = tl.pretrain(&lt;br&gt;
    out="pretrained_base.tl",&lt;br&gt;
    max_seq_len=30&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;print("Base model pretrained -&amp;gt; pretrained_base.tl")&lt;/p&gt;

&lt;p&gt;print("Fine-tuning on cat conversations...")&lt;/p&gt;

&lt;p&gt;model = tl.train(&lt;br&gt;
    "data/conversations.json",&lt;br&gt;
    pretrained="pretrained_base.tl",&lt;br&gt;
    out="cat.tl",&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;print("CatTongue trained successfully!")&lt;/p&gt;

&lt;p&gt;That's basically the experience I'm trying to create.&lt;/p&gt;

&lt;p&gt;You don't need to write a massive training script.&lt;/p&gt;

&lt;p&gt;You don't need thousands of lines just to get started.&lt;/p&gt;

&lt;p&gt;You provide your data.&lt;/p&gt;

&lt;p&gt;Tensorless handles the setup.&lt;/p&gt;

&lt;p&gt;And if you want to customize things, you can.&lt;/p&gt;

&lt;p&gt;Beginner vs Advanced User&lt;/p&gt;

&lt;p&gt;This is something I really want Tensorless to get right.&lt;/p&gt;

&lt;p&gt;If you're a beginner&lt;/p&gt;

&lt;p&gt;You shouldn't have to understand every parameter.&lt;/p&gt;

&lt;p&gt;You should be able to do something like:&lt;/p&gt;

&lt;p&gt;model = tl.train("data/")&lt;/p&gt;

&lt;p&gt;and get started.&lt;/p&gt;

&lt;p&gt;If you're an advanced programmer&lt;/p&gt;

&lt;p&gt;You should be able to configure the training yourself.&lt;/p&gt;

&lt;p&gt;I want all the important configuration to be accessible in one place rather than making someone jump through a huge project just to change one setting.&lt;/p&gt;

&lt;p&gt;So the idea is:&lt;/p&gt;

&lt;p&gt;One simple function for beginners. Deep configuration for advanced users.&lt;/p&gt;

&lt;p&gt;I Also Wanted It To Stay Lightweight&lt;/p&gt;

&lt;p&gt;Another thing I'm trying to maintain is the overall package size.&lt;/p&gt;

&lt;p&gt;Tensorless is currently under roughly 30–40 MB overall, rather than pulling in a huge collection of unnecessary components.&lt;/p&gt;

&lt;p&gt;That's important to me because the original reason for this project was partly:&lt;/p&gt;

&lt;p&gt;I want to experiment without needing a giant stack just to get started.&lt;/p&gt;

&lt;p&gt;I don't want someone to install Tensorless for a small experiment and feel like they installed an entire operating system. 😭&lt;/p&gt;

&lt;p&gt;Tensorless Is Now Actually Open Source&lt;/p&gt;

&lt;p&gt;The project is available on GitHub and PyPI.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/DeveloperPuneet/Tensorless" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/Tensorless&lt;/a&gt;&lt;br&gt;
PyPI: &lt;a href="https://pypi.org/project/tensorless/" rel="noopener noreferrer"&gt;https://pypi.org/project/tensorless/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And CatTongue is also open source:&lt;/p&gt;

&lt;p&gt;CatTongue: &lt;a href="https://github.com/DeveloperPuneet/CatTongue" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/CatTongue&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CatTongue experiment is one of the things I'm using to test whether the training system is actually improving.&lt;/p&gt;

&lt;p&gt;And Now I'm Stuck On The Hard Stuff&lt;/p&gt;

&lt;p&gt;This is where the project is today.&lt;/p&gt;

&lt;p&gt;The basic system works.&lt;/p&gt;

&lt;p&gt;The API works.&lt;/p&gt;

&lt;p&gt;Training works to a certain extent.&lt;/p&gt;

&lt;p&gt;The automatic setup works.&lt;/p&gt;

&lt;p&gt;But now I'm running into problems that aren't as easy as writing another Python function.&lt;/p&gt;

&lt;p&gt;CUDA&lt;/p&gt;

&lt;p&gt;I've been working on CUDA support and optimization.&lt;/p&gt;

&lt;p&gt;The system can detect the GPU and show GPU-related activity, but I'm having problems getting the actual training workload to behave properly on the GPU.&lt;/p&gt;

&lt;p&gt;Basically:&lt;/p&gt;

&lt;p&gt;The GPU is detected, but it doesn't always mean the training is actually being accelerated the way it should be.&lt;/p&gt;

&lt;p&gt;That's something I really want to fix.&lt;/p&gt;

&lt;p&gt;TPU&lt;/p&gt;

&lt;p&gt;I've also started working toward TPU support.&lt;/p&gt;

&lt;p&gt;Again, detection is one thing.&lt;/p&gt;

&lt;p&gt;Actually getting the training workload to execute correctly on the TPU is another.&lt;/p&gt;

&lt;p&gt;So TPU support is currently something I want to improve substantially.&lt;/p&gt;

&lt;p&gt;Multi-GPU&lt;/p&gt;

&lt;p&gt;I've also been working on multi-GPU support.&lt;/p&gt;

&lt;p&gt;The problem is that detecting multiple GPUs doesn't automatically mean the training workload is correctly distributed across them.&lt;/p&gt;

&lt;p&gt;I want multi-GPU training to actually make use of the available devices rather than simply detecting them.&lt;/p&gt;

&lt;p&gt;Training Results&lt;/p&gt;

&lt;p&gt;This is probably the biggest issue.&lt;/p&gt;

&lt;p&gt;The same training data can behave differently depending on the implementation.&lt;/p&gt;

&lt;p&gt;My current training implementation doesn't always produce results comparable to established training frameworks.&lt;/p&gt;

&lt;p&gt;The CatTongue experiment made that very obvious.&lt;/p&gt;

&lt;p&gt;The model can learn words.&lt;/p&gt;

&lt;p&gt;It can sometimes learn relationships between words.&lt;/p&gt;

&lt;p&gt;But getting consistently good results is another level.&lt;/p&gt;

&lt;p&gt;Automatic Configuration&lt;/p&gt;

&lt;p&gt;The automatic configuration is also something I want to improve.&lt;/p&gt;

&lt;p&gt;Right now, some decisions are based on predefined logic.&lt;/p&gt;

&lt;p&gt;That's useful, but it isn't flexible enough for every dataset or model.&lt;/p&gt;

&lt;p&gt;I want the system to become smarter about determining what configuration makes sense.&lt;/p&gt;

&lt;p&gt;This Is Where I Need Help&lt;/p&gt;

&lt;p&gt;And honestly, this is the main reason I'm writing this article.&lt;/p&gt;

&lt;p&gt;I'm still learning.&lt;/p&gt;

&lt;p&gt;I started this entire project because I was learning PyTorch.&lt;/p&gt;

&lt;p&gt;I built two models with PyTorch.&lt;/p&gt;

&lt;p&gt;Then I started automating the process.&lt;/p&gt;

&lt;p&gt;Then I started building my own system.&lt;/p&gt;

&lt;p&gt;And now I've reached areas where there are people who know way more than I do.&lt;/p&gt;

&lt;p&gt;If you have experience with:&lt;/p&gt;

&lt;p&gt;CUDA&lt;br&gt;
GPU optimization&lt;br&gt;
TPU/XLA&lt;br&gt;
multi-GPU training&lt;br&gt;
neural network implementation&lt;br&gt;
training stability&lt;br&gt;
data pipelines&lt;br&gt;
model optimization&lt;br&gt;
BPE/tokenization&lt;br&gt;
machine-learning infrastructure&lt;/p&gt;

&lt;p&gt;I'd genuinely love feedback.&lt;/p&gt;

&lt;p&gt;You don't have to write code.&lt;/p&gt;

&lt;p&gt;Even finding a problem and explaining why something is wrong would help.&lt;/p&gt;

&lt;p&gt;And if you want to contribute code, even better.&lt;/p&gt;

&lt;p&gt;The project is open source and the issues are there for exactly this reason.&lt;/p&gt;

&lt;p&gt;What I Want To Build Next&lt;/p&gt;

&lt;p&gt;I have a pretty ambitious list of things I'd like to experiment with.&lt;/p&gt;

&lt;p&gt;Some of the ideas currently on my roadmap are:&lt;/p&gt;

&lt;p&gt;Better CUDA optimization&lt;br&gt;
Proper TPU training&lt;br&gt;
Reliable multi-GPU training&lt;br&gt;
Smarter automatic configuration&lt;br&gt;
Improved data pipelines&lt;br&gt;
More training/data formats&lt;br&gt;
Additional model architectures&lt;br&gt;
Game integration&lt;br&gt;
CLI-based AI interaction&lt;br&gt;
UI-based AI interaction&lt;br&gt;
User-vs-AI experiences&lt;br&gt;
Reinforcement learning&lt;br&gt;
Q-learning&lt;br&gt;
Deep Q-learning&lt;br&gt;
And more&lt;/p&gt;

&lt;p&gt;The goal isn't necessarily to implement everything immediately.&lt;/p&gt;

&lt;p&gt;I want to keep expanding the system as I learn.&lt;/p&gt;

&lt;p&gt;From Two PyTorch Models To Tensorless&lt;/p&gt;

&lt;p&gt;Looking back, the progression is kind of funny.&lt;/p&gt;

&lt;p&gt;I started with:&lt;/p&gt;

&lt;p&gt;"I want to learn PyTorch."&lt;/p&gt;

&lt;p&gt;Then I built two models with PyTorch.&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;p&gt;"Why do I have to configure all this stuff every time?"&lt;/p&gt;

&lt;p&gt;So I started automating it.&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;p&gt;"Why is this getting so heavy?"&lt;/p&gt;

&lt;p&gt;So I started trying to make it lightweight.&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;p&gt;"What if I build more of the system myself?"&lt;/p&gt;

&lt;p&gt;Then came:&lt;/p&gt;

&lt;p&gt;CUDA.&lt;/p&gt;

&lt;p&gt;TPUs.&lt;/p&gt;

&lt;p&gt;Data pipelines.&lt;/p&gt;

&lt;p&gt;BPE.&lt;/p&gt;

&lt;p&gt;Multi-GPU.&lt;/p&gt;

&lt;p&gt;And then eventually:&lt;/p&gt;

&lt;p&gt;"Why does my cat suddenly speak ancient alien language?" 💀&lt;/p&gt;

&lt;p&gt;That's basically how Tensorless happened.&lt;/p&gt;

&lt;p&gt;I didn't start this project because I thought I could build something better than PyTorch.&lt;/p&gt;

&lt;p&gt;I started it because I wanted to make one specific thing easier:&lt;/p&gt;

&lt;p&gt;Take training data → configure as little as possible → train a model.&lt;/p&gt;

&lt;p&gt;I wanted something where beginners could just give it their data and go, while advanced users could still control the system when they needed to.&lt;/p&gt;

&lt;p&gt;And now I'm trying to figure out how far I can actually take that idea.&lt;/p&gt;

&lt;p&gt;If You Want To Check It Out&lt;br&gt;
Tensorless&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/DeveloperPuneet/Tensorless" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/Tensorless&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/tensorless/" rel="noopener noreferrer"&gt;https://pypi.org/project/tensorless/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CatTongue&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/DeveloperPuneet/CatTongue" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/CatTongue&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're interested in the project, try it, break it, report something, suggest something, or contribute.&lt;/p&gt;

&lt;p&gt;Especially if you understand the parts I'm currently struggling with.&lt;/p&gt;

&lt;p&gt;I'm still learning.&lt;/p&gt;

&lt;p&gt;That's kind of the whole reason this project exists.&lt;/p&gt;

&lt;p&gt;I started by learning PyTorch.&lt;/p&gt;

&lt;p&gt;Now I'm learning what it actually takes to build the stuff underneath it.&lt;/p&gt;

&lt;p&gt;And honestly?&lt;/p&gt;

&lt;p&gt;I'm curious to see where this goes. 🚀&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>opensource</category>
      <category>ai</category>
      <category>python</category>
    </item>
    <item>
      <title>People Liked My Product. They Just Didn't Need It.</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Mon, 17 Aug 2026 03:37:39 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/people-liked-my-product-they-just-didnt-need-it-3oic</link>
      <guid>https://dev.to/puneetkumar2010/people-liked-my-product-they-just-didnt-need-it-3oic</guid>
      <description>&lt;p&gt;I recently learned something about building products that I probably should have understood much earlier:&lt;/p&gt;

&lt;p&gt;People liking your product doesn't necessarily mean they need it.&lt;/p&gt;

&lt;p&gt;I built a platform called Rizzzler, an open-source profile/link-in-bio platform.&lt;/p&gt;

&lt;p&gt;The idea was pretty simple.&lt;/p&gt;

&lt;p&gt;I'd seen people using platforms where they could put a link in their social media bio and create a small personal page. I thought I could build my own version — something simple, fast, customizable, and a little more fun.&lt;/p&gt;

&lt;p&gt;So I built it.&lt;/p&gt;

&lt;p&gt;And because I wanted people to be able to trust what they were using, I made the project open source too.&lt;/p&gt;

&lt;p&gt;I spent a lot of time building the actual product.&lt;/p&gt;

&lt;p&gt;There are profiles, customization, coins, notifications, milestones, community chat, and other small systems intended to make the platform feel less like a static link page and more like something people could actually interact with.&lt;/p&gt;

&lt;p&gt;At that point, I thought:&lt;/p&gt;

&lt;p&gt;"Okay, now I just need people to find it."&lt;/p&gt;

&lt;p&gt;That turned out to be the easy part.&lt;/p&gt;

&lt;p&gt;Then I started promoting it.&lt;/p&gt;

&lt;p&gt;I submitted Rizzzler to places like Product Hunt, SaaSFrame, and other platforms where people discover new products.&lt;/p&gt;

&lt;p&gt;And for a few days, things actually looked pretty good.&lt;/p&gt;

&lt;p&gt;I started getting visitors.&lt;/p&gt;

&lt;p&gt;At one point, the traffic was above the 25th percentile for the category I was looking at in GA4.&lt;/p&gt;

&lt;p&gt;People were visiting.&lt;/p&gt;

&lt;p&gt;Some people signed up.&lt;/p&gt;

&lt;p&gt;And I started getting feedback like:&lt;/p&gt;

&lt;p&gt;"Good UI."&lt;/p&gt;

&lt;p&gt;"This is good."&lt;/p&gt;

&lt;p&gt;"Someone finally made link-in-bio profiles look cool."&lt;/p&gt;

&lt;p&gt;Those comments felt great.&lt;/p&gt;

&lt;p&gt;They also gave me a slightly dangerous impression:&lt;/p&gt;

&lt;p&gt;Maybe I've built something people actually want.&lt;/p&gt;

&lt;p&gt;Then the traffic stopped.&lt;/p&gt;

&lt;p&gt;Not gradually.&lt;/p&gt;

&lt;p&gt;It just became cold again.&lt;/p&gt;

&lt;p&gt;The initial spike from launching and posting about the product disappeared, and there wasn't enough organic interest to keep bringing people back.&lt;/p&gt;

&lt;p&gt;That was the part I didn't expect.&lt;/p&gt;

&lt;p&gt;The product wasn't necessarily bad.&lt;/p&gt;

&lt;p&gt;This is something I've been thinking about a lot.&lt;/p&gt;

&lt;p&gt;I don't think the main problem was that Rizzzler was completely useless.&lt;/p&gt;

&lt;p&gt;People could understand what it did.&lt;/p&gt;

&lt;p&gt;People could use it.&lt;/p&gt;

&lt;p&gt;Some people even liked the design.&lt;/p&gt;

&lt;p&gt;But when I actually talked to people about creating an account, I started hearing a different kind of feedback.&lt;/p&gt;

&lt;p&gt;Something along the lines of:&lt;/p&gt;

&lt;p&gt;"The product is good, but I don't really need this."&lt;/p&gt;

&lt;p&gt;And honestly, that sentence taught me more than the positive reviews did.&lt;/p&gt;

&lt;p&gt;Because a positive review tells you:&lt;/p&gt;

&lt;p&gt;"This is nice."&lt;/p&gt;

&lt;p&gt;But a person refusing to use your product tells you:&lt;/p&gt;

&lt;p&gt;"This doesn't solve a problem important enough for me to change my behavior."&lt;/p&gt;

&lt;p&gt;Those are very different things.&lt;/p&gt;

&lt;p&gt;I underestimated marketing.&lt;/p&gt;

&lt;p&gt;When I started building, I mostly thought about the product itself.&lt;/p&gt;

&lt;p&gt;How should the UI look?&lt;/p&gt;

&lt;p&gt;What features should I add?&lt;/p&gt;

&lt;p&gt;How can I make it faster?&lt;/p&gt;

&lt;p&gt;How can I make people interact with it?&lt;/p&gt;

&lt;p&gt;So I kept adding things.&lt;/p&gt;

&lt;p&gt;Coins.&lt;/p&gt;

&lt;p&gt;Community chat.&lt;/p&gt;

&lt;p&gt;Milestones.&lt;/p&gt;

&lt;p&gt;Notifications.&lt;/p&gt;

&lt;p&gt;Small features intended to encourage people to return.&lt;/p&gt;

&lt;p&gt;But there was a problem underneath all of that:&lt;/p&gt;

&lt;p&gt;I was trying to improve retention before I had really proven that people wanted to return.&lt;/p&gt;

&lt;p&gt;That's a mistake I understand much better now.&lt;/p&gt;

&lt;p&gt;You can't solve a demand problem by endlessly adding features.&lt;/p&gt;

&lt;p&gt;And you can't necessarily advertise your way out of a demand problem either.&lt;/p&gt;

&lt;p&gt;The interesting part about advertising&lt;/p&gt;

&lt;p&gt;This made me question something I've been thinking about:&lt;/p&gt;

&lt;p&gt;Is advertising a product actually worth it if people don't already have a reason to use it?&lt;/p&gt;

&lt;p&gt;You can put your product in front of people.&lt;/p&gt;

&lt;p&gt;You can post it on Product Hunt.&lt;/p&gt;

&lt;p&gt;You can submit it to directories.&lt;/p&gt;

&lt;p&gt;You can write posts.&lt;/p&gt;

&lt;p&gt;You can share it on social media.&lt;/p&gt;

&lt;p&gt;You can get hundreds or thousands of impressions.&lt;/p&gt;

&lt;p&gt;But if someone sees it and thinks:&lt;/p&gt;

&lt;p&gt;"That's cool, but I don't need it."&lt;/p&gt;

&lt;p&gt;then the traffic doesn't really mean much.&lt;/p&gt;

&lt;p&gt;You may get visitors.&lt;/p&gt;

&lt;p&gt;You may get likes.&lt;/p&gt;

&lt;p&gt;You may even get compliments.&lt;/p&gt;

&lt;p&gt;But once the promotion stops, everything goes quiet again.&lt;/p&gt;

&lt;p&gt;That's basically what happened to me.&lt;/p&gt;

&lt;p&gt;The traffic came when I told people about Rizzzler.&lt;/p&gt;

&lt;p&gt;Then the traffic went away when I stopped telling people.&lt;/p&gt;

&lt;p&gt;That was a pretty useful reality check.&lt;/p&gt;

&lt;p&gt;And some users did join.&lt;/p&gt;

&lt;p&gt;This is another part I don't want to ignore.&lt;/p&gt;

&lt;p&gt;Rizzzler wasn't completely empty.&lt;/p&gt;

&lt;p&gt;Some people signed up.&lt;/p&gt;

&lt;p&gt;Some visited more than once.&lt;/p&gt;

&lt;p&gt;But most weren't coming back regularly.&lt;/p&gt;

&lt;p&gt;And that made me look at another assumption I'd made.&lt;/p&gt;

&lt;p&gt;I had built things like newsletters, milestones, coins, community chat, and other mechanisms to encourage interaction.&lt;/p&gt;

&lt;p&gt;But those things don't automatically create a reason for someone to return.&lt;/p&gt;

&lt;p&gt;If the underlying product isn't something they genuinely need, a notification or reward system isn't going to magically turn it into a habit.&lt;/p&gt;

&lt;p&gt;Retention starts with value.&lt;/p&gt;

&lt;p&gt;Not with notifications.&lt;/p&gt;

&lt;p&gt;So what did I actually learn?&lt;/p&gt;

&lt;p&gt;Probably more than I expected from one small project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Building isn't the same as validating.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I spent a lot of time making the product better before fully understanding whether the problem was important enough to solve.&lt;/p&gt;

&lt;p&gt;Next time, I want to validate the need much earlier.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;"People like it" isn't enough.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A person saying your product is cool is nice.&lt;/p&gt;

&lt;p&gt;A person changing their behavior because they need your product is much more meaningful.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Marketing isn't just posting links.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I used to think of marketing mostly as getting the product in front of people.&lt;/p&gt;

&lt;p&gt;Now I think it's much more about understanding:&lt;/p&gt;

&lt;p&gt;Who actually needs this? Why do they need it? And why would they choose this instead of doing nothing?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Traffic can be misleading.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A launch can create a nice graph.&lt;/p&gt;

&lt;p&gt;But a spike isn't the same thing as sustainable growth.&lt;/p&gt;

&lt;p&gt;The more interesting number is what happens after everyone stops talking about you.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Features can't manufacture demand.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can build a coin system.&lt;/p&gt;

&lt;p&gt;You can build a community.&lt;/p&gt;

&lt;p&gt;You can build notifications.&lt;/p&gt;

&lt;p&gt;You can build a beautiful dashboard.&lt;/p&gt;

&lt;p&gt;But none of those things matter much if the user doesn't have a strong reason to come back.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open source doesn't automatically create users either.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I made Rizzzler open source partly because I wanted people to be able to inspect and trust the project.&lt;/p&gt;

&lt;p&gt;I'm still happy that I did it.&lt;/p&gt;

&lt;p&gt;But open source is not a substitute for distribution, product-market fit, or understanding your audience.&lt;/p&gt;

&lt;p&gt;It's one part of the product story — not the whole story.&lt;/p&gt;

&lt;p&gt;But I'm not calling Rizzzler a failure.&lt;/p&gt;

&lt;p&gt;Actually, I don't think of it that way.&lt;/p&gt;

&lt;p&gt;If anything, it gave me something I couldn't have learned by just watching videos about startups.&lt;/p&gt;

&lt;p&gt;I experienced the entire cycle myself:&lt;/p&gt;

&lt;p&gt;Build → Launch → Get attention → Get feedback → Watch the attention disappear → Figure out why.&lt;/p&gt;

&lt;p&gt;And that experience is valuable.&lt;/p&gt;

&lt;p&gt;I also learned that I genuinely enjoy building things.&lt;/p&gt;

&lt;p&gt;Even after seeing the traffic disappear, my first thought wasn't:&lt;/p&gt;

&lt;p&gt;"I'm never building again."&lt;/p&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;p&gt;"Okay... what should I build next?"&lt;/p&gt;

&lt;p&gt;That's probably the most important thing I got from this.&lt;/p&gt;

&lt;p&gt;So, what's next?&lt;/p&gt;

&lt;p&gt;I'm thinking about building something else.&lt;/p&gt;

&lt;p&gt;Maybe it will make money.&lt;/p&gt;

&lt;p&gt;Maybe it won't.&lt;/p&gt;

&lt;p&gt;Most of the things I've built so far have been free anyway.&lt;/p&gt;

&lt;p&gt;But this time, I want to start with the problem before the product.&lt;/p&gt;

&lt;p&gt;I want to talk to people first.&lt;/p&gt;

&lt;p&gt;I want to understand what annoys them, what they already use, what they refuse to use, and what problem is actually painful enough for them to care about.&lt;/p&gt;

&lt;p&gt;Then I'll build.&lt;/p&gt;

&lt;p&gt;Maybe the next thing will work.&lt;/p&gt;

&lt;p&gt;Maybe I'll make another mistake.&lt;/p&gt;

&lt;p&gt;Either way, I think that's part of the process.&lt;/p&gt;

&lt;p&gt;I don't necessarily want to build something just because it can make money.&lt;/p&gt;

&lt;p&gt;I'd like to build something that I created, that other people genuinely find useful, and that contributes something to the world — even if it's small.&lt;/p&gt;

&lt;p&gt;And I'll try to keep improving it, keeping it useful, and updating it as quickly as I can.&lt;/p&gt;

&lt;p&gt;That's probably a better goal than simply watching a traffic graph go up.&lt;/p&gt;

&lt;p&gt;If you're building something too: what was the biggest lesson you learned from your first product?&lt;/p&gt;

&lt;p&gt;And if you have an idea for something worth building, I'd genuinely love to hear it. Maybe we could even build something together.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>discuss</category>
      <category>marketing</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Would You Choose a Giant Product… or a Fast-Moving Indie One?</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Fri, 07 Aug 2026 17:01:06 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/would-you-choose-a-giant-product-or-a-fast-moving-indie-one-1ig0</link>
      <guid>https://dev.to/puneetkumar2010/would-you-choose-a-giant-product-or-a-fast-moving-indie-one-1ig0</guid>
      <description>&lt;p&gt;This isn't a promotion.&lt;/p&gt;

&lt;p&gt;I'm genuinely curious how developers think.&lt;/p&gt;

&lt;p&gt;Imagine you have two platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Platform A
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Used by millions.&lt;/li&gt;
&lt;li&gt;Been around for years.&lt;/li&gt;
&lt;li&gt;Stable and reliable.&lt;/li&gt;
&lt;li&gt;Updates happen occasionally.&lt;/li&gt;
&lt;li&gt;Your feature requests may never be seen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Platform B
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Built by a solo developer or a small team.&lt;/li&gt;
&lt;li&gt;Open source.&lt;/li&gt;
&lt;li&gt;Modern tech stack.&lt;/li&gt;
&lt;li&gt;New features ship quickly.&lt;/li&gt;
&lt;li&gt;Bugs get fixed in hours or days.&lt;/li&gt;
&lt;li&gt;You suggest something today, and there's a real chance you'll see it tomorrow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which one would you choose?&lt;/p&gt;

&lt;p&gt;Not which one is more popular.&lt;/p&gt;

&lt;p&gt;Which one would you actually enjoy using?&lt;/p&gt;

&lt;p&gt;Something I've noticed while building projects is that new products don't just struggle to grow they often struggle to get people to even try them.&lt;/p&gt;

&lt;p&gt;Most people naturally trust what they've already used for years.&lt;/p&gt;

&lt;p&gt;And honestly, that makes sense.&lt;/p&gt;

&lt;p&gt;Why move away from something that already works?&lt;/p&gt;

&lt;p&gt;But sometimes I wonder...&lt;/p&gt;

&lt;p&gt;How many genuinely good products never get a chance simply because they launched yesterday instead of five years ago?&lt;/p&gt;

&lt;p&gt;We've all seen products that exploded overnight.&lt;/p&gt;

&lt;p&gt;But they're the exception.&lt;/p&gt;

&lt;p&gt;Most great software grows quietly.&lt;/p&gt;

&lt;p&gt;Slowly.&lt;/p&gt;

&lt;p&gt;One user at a time.&lt;/p&gt;

&lt;p&gt;Here's another question.&lt;/p&gt;

&lt;p&gt;If you knew a platform would:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ship updates every week,&lt;/li&gt;
&lt;li&gt;listen to community feedback,&lt;/li&gt;
&lt;li&gt;add useful features in under 24–48 hours whenever possible,&lt;/li&gt;
&lt;li&gt;stay transparent about development,&lt;/li&gt;
&lt;li&gt;and remain open source...
...would that make you more likely to try it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or would you still choose the established product because it already has the reputation?&lt;/p&gt;

&lt;p&gt;I'm asking because I've been thinking about building something around this philosophy.&lt;/p&gt;

&lt;p&gt;Not just another project.&lt;/p&gt;

&lt;p&gt;A product where users aren't waiting months for improvements.&lt;/p&gt;

&lt;p&gt;Where feedback actually changes what gets built.&lt;/p&gt;

&lt;p&gt;Where development happens in public.&lt;/p&gt;

&lt;p&gt;Maybe that's a terrible idea.&lt;/p&gt;

&lt;p&gt;Maybe it's exactly what some people want.&lt;/p&gt;

&lt;p&gt;I honestly don't know yet.&lt;/p&gt;

&lt;p&gt;That's why I'm asking.&lt;/p&gt;

&lt;p&gt;What would make you switch from a big, established platform to a new indie one?&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts—even if your answer is "Nothing would convince me."&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>buildinpublic</category>
      <category>opensource</category>
      <category>indiehackers</category>
    </item>
    <item>
      <title>I Built the Product. Made It Open Source. Deployed It Cheaply. Then... 7 Users Signed Up.</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Thu, 06 Aug 2026 14:50:42 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/i-built-the-product-made-it-open-source-deployed-it-cheaply-then-7-users-signed-up-51h8</link>
      <guid>https://dev.to/puneetkumar2010/i-built-the-product-made-it-open-source-deployed-it-cheaply-then-7-users-signed-up-51h8</guid>
      <description>&lt;p&gt;Not 7,000.&lt;/p&gt;

&lt;p&gt;Not 700.&lt;/p&gt;

&lt;p&gt;Just 7.&lt;/p&gt;

&lt;p&gt;And somehow, that hurts more than failing to build the project itself.&lt;/p&gt;

&lt;p&gt;Everyone talks about building.&lt;/p&gt;

&lt;p&gt;"Ship fast."&lt;/p&gt;

&lt;p&gt;"Deploy early."&lt;/p&gt;

&lt;p&gt;"Build in public."&lt;/p&gt;

&lt;p&gt;So I did.&lt;/p&gt;

&lt;p&gt;I built a real project, spent hours improving the UI, added features that users actually need, kept optimizing the experience, and even made the source code public because I wanted people to trust what I was building.&lt;/p&gt;

&lt;p&gt;Repository:&lt;br&gt;
&lt;a href="https://github.com/DeveloperPuneet/Rizzzler-Stable" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/Rizzzler-Stable&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Live project:&lt;br&gt;
&lt;a href="https://www.rizzzler.work.gd/" rel="noopener noreferrer"&gt;https://www.rizzzler.work.gd/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wasn't backed by investors.&lt;/p&gt;

&lt;p&gt;I don't have a huge audience.&lt;/p&gt;

&lt;p&gt;I'm just another developer trying to build something useful with almost no budget, deploying in the cheapest way possible and learning everything along the way.&lt;/p&gt;

&lt;p&gt;The hardest part wasn't coding.&lt;/p&gt;

&lt;p&gt;It was realizing that building something good doesn't mean people will come.&lt;/p&gt;

&lt;p&gt;After all that work...&lt;/p&gt;

&lt;p&gt;Only 7 people created an account.&lt;/p&gt;

&lt;p&gt;That's the part nobody prepares you for.&lt;/p&gt;

&lt;p&gt;Not the bugs.&lt;/p&gt;

&lt;p&gt;Not deployment.&lt;/p&gt;

&lt;p&gt;Not debugging at 2 AM.&lt;/p&gt;

&lt;p&gt;The silence after you launch.&lt;/p&gt;

&lt;p&gt;I'm not writing this because I want sympathy.&lt;/p&gt;

&lt;p&gt;I'm writing this because I know there are hundreds of developers here who have experienced the exact same thing.&lt;/p&gt;

&lt;p&gt;You build.&lt;/p&gt;

&lt;p&gt;You polish.&lt;/p&gt;

&lt;p&gt;You improve.&lt;/p&gt;

&lt;p&gt;You compare your product with others and keep adding features.&lt;/p&gt;

&lt;p&gt;Then you refresh your analytics...&lt;/p&gt;

&lt;p&gt;Nothing.&lt;/p&gt;

&lt;p&gt;If you've ever been in that position, I'd genuinely love your feedback.&lt;/p&gt;

&lt;p&gt;Tell me what's wrong.&lt;/p&gt;

&lt;p&gt;What would stop you from using it?&lt;/p&gt;

&lt;p&gt;What feels missing?&lt;/p&gt;

&lt;p&gt;I'd rather hear honest criticism than watch another day go by with zero users.&lt;/p&gt;

&lt;p&gt;Maybe this post reaches nobody.&lt;/p&gt;

&lt;p&gt;Or maybe someone reading this becomes user number 8.&lt;/p&gt;

&lt;p&gt;Either way, I'll keep building.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>buildinpublic</category>
      <category>opensource</category>
      <category>indiehack</category>
    </item>
    <item>
      <title>Rizzzler v1.2 — Stronger Security, Better Customization &amp; Smarter Architecture 🚀</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Wed, 22 Jul 2026 10:23:50 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/rizzzler-v12-stronger-security-better-customization-smarter-architecture-cia</link>
      <guid>https://dev.to/puneetkumar2010/rizzzler-v12-stronger-security-better-customization-smarter-architecture-cia</guid>
      <description>&lt;p&gt;Over the past few days, I received some incredibly valuable feedback from developers who reviewed the Rizzzler codebase. Some comments pointed out architectural improvements, while others highlighted security issues that I had overlooked.&lt;/p&gt;

&lt;p&gt;Instead of treating them as criticism, I treated them as opportunities to improve the project.&lt;/p&gt;

&lt;p&gt;This update is the result.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 What is Rizzzler?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rizzzler&lt;/strong&gt; is an open-source profile platform where you can create your own customizable profile page and share it with others.&lt;/p&gt;

&lt;p&gt;🌍 Live Demo: &lt;a href="https://rizzzler.onrender.com/" rel="noopener noreferrer"&gt;https://rizzzler.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ GitHub: &lt;a href="https://github.com/DeveloperPuneet/Rizzzler-Stable" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/Rizzzler-Stable&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 Product Hunt: &lt;a href="https://www.producthunt.com/products/rizzzler-show-yourself-off" rel="noopener noreferrer"&gt;https://www.producthunt.com/products/rizzzler-show-yourself-off&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  ✨ What's New?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  🎨 Shared Customization Registry
&lt;/h2&gt;

&lt;p&gt;Previously, customization options existed in multiple places.&lt;/p&gt;

&lt;p&gt;Now everything is driven from a shared registry.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single source of truth&lt;/li&gt;
&lt;li&gt;Easier to add new themes/effects&lt;/li&gt;
&lt;li&gt;Client and server always stay in sync&lt;/li&gt;
&lt;li&gt;Cleaner architecture&lt;/li&gt;
&lt;li&gt;No validation drift&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adding a new customization option is now much simpler.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛡️ Better Server-side Validation
&lt;/h2&gt;

&lt;p&gt;Customization values are now fully validated on the server.&lt;/p&gt;

&lt;p&gt;This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Theme&lt;/li&gt;
&lt;li&gt;Avatar Effect&lt;/li&gt;
&lt;li&gt;Title Effect&lt;/li&gt;
&lt;li&gt;Showcase Effect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only registered values can be stored.&lt;/p&gt;

&lt;p&gt;Even if someone sends a custom request manually, invalid values are rejected.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎭 New Theme
&lt;/h2&gt;

&lt;p&gt;Added another profile theme to the customization collection.&lt;/p&gt;

&lt;p&gt;More themes are planned in future updates.&lt;/p&gt;




&lt;h2&gt;
  
  
  📷 Better Image Upload Limits
&lt;/h2&gt;

&lt;p&gt;To improve storage efficiency and keep the project sustainable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maximum profile image size is now &lt;strong&gt;2 MB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Better validation&lt;/li&gt;
&lt;li&gt;Reduced unnecessary storage usage&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  👤 Automatic Cleanup
&lt;/h2&gt;

&lt;p&gt;Inactive unverified accounts no longer stay forever.&lt;/p&gt;

&lt;p&gt;Accounts that remain unverified for &lt;strong&gt;15 days&lt;/strong&gt; are automatically removed along with their associated data.&lt;/p&gt;

&lt;p&gt;This helps keep the database clean and reduces wasted storage.&lt;/p&gt;




&lt;h1&gt;
  
  
  📊 Admin Panel Improvements
&lt;/h1&gt;

&lt;p&gt;The admin dashboard has been expanded significantly.&lt;/p&gt;

&lt;p&gt;It now provides much better insight into the platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Visitor Analytics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Total visitors&lt;/li&gt;
&lt;li&gt;Unique visitors&lt;/li&gt;
&lt;li&gt;Returning visitors&lt;/li&gt;
&lt;li&gt;IP Address&lt;/li&gt;
&lt;li&gt;Country / Region&lt;/li&gt;
&lt;li&gt;Browser&lt;/li&gt;
&lt;li&gt;Operating System&lt;/li&gt;
&lt;li&gt;Device&lt;/li&gt;
&lt;li&gt;User Agent&lt;/li&gt;
&lt;li&gt;Referral Source&lt;/li&gt;
&lt;li&gt;First Visit&lt;/li&gt;
&lt;li&gt;Last Visit&lt;/li&gt;
&lt;li&gt;Request Frequency&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  User Analytics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Total Users&lt;/li&gt;
&lt;li&gt;Verified Users&lt;/li&gt;
&lt;li&gt;Unverified Users&lt;/li&gt;
&lt;li&gt;Recently Joined Users&lt;/li&gt;
&lt;li&gt;Last Active&lt;/li&gt;
&lt;li&gt;Account Creation Date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes monitoring the platform much easier.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚙️ Improved Architecture
&lt;/h1&gt;

&lt;p&gt;One of the best suggestions I received was avoiding duplicated configuration between the frontend and backend.&lt;/p&gt;

&lt;p&gt;That led to restructuring the customization system into a shared registry.&lt;/p&gt;

&lt;p&gt;Small change...&lt;/p&gt;

&lt;p&gt;Huge long-term improvement.&lt;/p&gt;

&lt;p&gt;It's one of those improvements users never directly notice, but developers certainly appreciate.&lt;/p&gt;




&lt;h1&gt;
  
  
  ❤️ Open Source is Awesome
&lt;/h1&gt;

&lt;p&gt;One thing I love about open source is that complete strangers spend their own time reviewing your project and suggesting improvements.&lt;/p&gt;

&lt;p&gt;Several developers reviewed Rizzzler and pointed out things that made the project significantly better.&lt;/p&gt;

&lt;p&gt;A huge &lt;strong&gt;thank you&lt;/strong&gt; to everyone who took the time to review the code, report issues, suggest improvements, and provide constructive feedback.&lt;/p&gt;

&lt;p&gt;Every review helped improve the project.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 What's Next?
&lt;/h1&gt;

&lt;p&gt;Some ideas currently on the roadmap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More profile themes&lt;/li&gt;
&lt;li&gt;More customization effects&lt;/li&gt;
&lt;li&gt;Better analytics&lt;/li&gt;
&lt;li&gt;Performance improvements&lt;/li&gt;
&lt;li&gt;More profile components&lt;/li&gt;
&lt;li&gt;Even better developer experience&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🤝 Contributions are Welcome!
&lt;/h1&gt;

&lt;p&gt;If you'd like to contribute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open an Issue&lt;/li&gt;
&lt;li&gt;Submit a Pull Request&lt;/li&gt;
&lt;li&gt;Suggest improvements&lt;/li&gt;
&lt;li&gt;Report bugs&lt;/li&gt;
&lt;li&gt;Review the code&lt;/li&gt;
&lt;li&gt;Share feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every contribution—big or small—is appreciated.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/DeveloperPuneet/Rizzzler-Stable" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/Rizzzler-Stable&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you try Rizzzler, I'd genuinely love to hear your thoughts.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>🚀 Rizzzler Just Got Even Better!</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Tue, 21 Jul 2026 03:43:54 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/rizzzler-just-got-even-better-569k</link>
      <guid>https://dev.to/puneetkumar2010/rizzzler-just-got-even-better-569k</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;First of all, thank you so much for all the support, feedback, and feature suggestions since the Product Hunt launch. Every comment has been incredibly valuable, and I've already started implementing some of your ideas.&lt;/p&gt;

&lt;p&gt;Today I'm excited to share a new update to &lt;strong&gt;Rizzzler&lt;/strong&gt;! 🌙&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ What's New?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🎨 2 Brand-New Themes
&lt;/h3&gt;

&lt;p&gt;I've added &lt;strong&gt;two new themes&lt;/strong&gt;, giving you even more ways to personalize your profile and match your own style.&lt;/p&gt;

&lt;p&gt;Whether you prefer something clean, vibrant, or expressive, there's now even more variety to choose from.&lt;/p&gt;




&lt;h3&gt;
  
  
  👀 Live Preview Panel
&lt;/h3&gt;

&lt;p&gt;One of the most requested improvements is finally here!&lt;/p&gt;

&lt;p&gt;You can now preview your showcase page &lt;strong&gt;while editing it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No more guessing how your profile will look after saving—see your changes in real time before publishing.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎵 Audio Preview
&lt;/h3&gt;

&lt;p&gt;Choosing background music is now much easier.&lt;/p&gt;

&lt;p&gt;Instead of selecting tracks blindly, you can now &lt;strong&gt;preview audio directly&lt;/strong&gt; before applying it to your profile.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✨ Profile Picture Decorations
&lt;/h3&gt;

&lt;p&gt;Want your profile to stand out even more?&lt;/p&gt;

&lt;p&gt;You can now add &lt;strong&gt;Profile Picture Decorations&lt;/strong&gt; to give your avatar a unique look and make your showcase even more personal.&lt;/p&gt;

&lt;p&gt;More decoration styles will be added in future updates!&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Thank You
&lt;/h2&gt;

&lt;p&gt;The feedback from the GitHub community and Product Hunt has been incredibly helpful.&lt;/p&gt;

&lt;p&gt;Many of these improvements came directly from community suggestions, and I'll continue building Rizzzler based on your ideas.&lt;/p&gt;

&lt;p&gt;If you have feature requests, bug reports, or suggestions, I'd love to hear them!&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Try Rizzzler
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://rizzzler.onrender.com" rel="noopener noreferrer"&gt;https://rizzzler.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product Hunt&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.producthunt.com/p/rizzzler-show-yourself-off" rel="noopener noreferrer"&gt;https://www.producthunt.com/p/rizzzler-show-yourself-off&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/DeveloperPuneet/Rizzzler-Stable" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/Rizzzler-Stable&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for supporting Rizzzler! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>🚀 I Built a Free Alternative to Premium Social Profile Pages (Because Someone Said I Couldn't Afford It)</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Sun, 12 Jul 2026 05:07:32 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/i-built-a-free-alternative-to-premium-social-profile-pages-because-someone-said-i-couldnt-5flm</link>
      <guid>https://dev.to/puneetkumar2010/i-built-a-free-alternative-to-premium-social-profile-pages-because-someone-said-i-couldnt-5flm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"You can't afford it."&lt;br&gt;
That one sentence was enough motivation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wasn't planning to build another project.&lt;/p&gt;

&lt;p&gt;I was just hanging out on Discord, chatting with people and making new friends. Then I came across someone's profile that had a really beautiful personal page linked to it.&lt;/p&gt;

&lt;p&gt;I clicked it.&lt;/p&gt;

&lt;p&gt;It looked clean, animated, interactive, and honestly... way better than a normal Linktree page.&lt;/p&gt;

&lt;p&gt;I asked the person how they made it.&lt;/p&gt;

&lt;p&gt;They told me about a few platforms.&lt;/p&gt;

&lt;p&gt;Then came the sentence that changed everything.&lt;/p&gt;

&lt;p&gt;"They're paid. You probably can't afford them."&lt;/p&gt;

&lt;p&gt;Challenge accepted.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Why Build Another Profile Website?
&lt;/h2&gt;

&lt;p&gt;Instead of paying for an existing service, I decided to build my own.&lt;/p&gt;

&lt;p&gt;Not just for myself.&lt;/p&gt;

&lt;p&gt;For everyone.&lt;/p&gt;

&lt;p&gt;And I wanted it to be completely free.&lt;/p&gt;

&lt;p&gt;That's how Rizzzler was born.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌟 Meet Rizzzler
&lt;/h2&gt;

&lt;p&gt;Rizzzler is a platform where anyone can create a beautiful animated profile page that can be shared anywhere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discord&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;Instagram&lt;/li&gt;
&lt;li&gt;X (Twitter)&lt;/li&gt;
&lt;li&gt;Telegram&lt;/li&gt;
&lt;li&gt;LinkedIn&lt;/li&gt;
&lt;li&gt;Portfolio
Anywhere you can paste a link&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://rizzzler.onrender.com/yourusername" rel="noopener noreferrer"&gt;https://rizzzler.onrender.com/yourusername&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mine:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rizzzler.onrender.com/kiddumishri" rel="noopener noreferrer"&gt;https://rizzzler.onrender.com/kiddumishri&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnaq9grrd2rjiz420apsb.png" alt=" " width="800" height="600"&gt;
&lt;/h2&gt;

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

&lt;p&gt;Instead of making just another "link in bio" website, I wanted every profile to feel alive.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎨 Multiple Beautiful Themes&lt;/li&gt;
&lt;li&gt;Choose from 5 different themes.&lt;/li&gt;
&lt;li&gt;Switch whenever you want.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1utcmrr60yoac8u27jel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1utcmrr60yoac8u27jel.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Every theme completely changes the look of your profile.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Realtime Updates
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F51j7mxsxn3n6b2xlho39.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F51j7mxsxn3n6b2xlho39.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
To &lt;/p&gt;

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

&lt;p&gt;Edit your profile and changes appear instantly.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖼 Upload Profile &amp;amp; Banner Images
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmrc6jwqvunsjt6uawwom.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmrc6jwqvunsjt6uawwom.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Upload:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Profile Picture&lt;/li&gt;
&lt;li&gt;Banner Image&lt;/li&gt;
&lt;li&gt;2 extra images as showcase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All feature for free.&lt;/p&gt;

&lt;p&gt;Maximum size:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5 MB each&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎵 Background Music
&lt;/h2&gt;

&lt;p&gt;Want your profile to have a vibe?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;planning to add the feature "upload your own audio"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Visitors can enjoy your profile with background music.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Smooth Animations
&lt;/h2&gt;

&lt;p&gt;The entire website is filled with subtle animations and effects.&lt;/p&gt;

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




&lt;h2&gt;
  
  
  🔒 Security First
&lt;/h2&gt;

&lt;p&gt;Even though it's free, security wasn't an afterthought.&lt;/p&gt;

&lt;p&gt;Passwords are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;encrypted&lt;/li&gt;
&lt;li&gt;securely stored&lt;/li&gt;
&lt;li&gt;never saved as plain text&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;User data is handled safely.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://youtu.be/8FONP9F-qxg" rel="noopener noreferrer"&gt;https://youtu.be/8FONP9F-qxg&lt;/a&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🆓 Completely Free
&lt;/h2&gt;

&lt;p&gt;No subscriptions.&lt;/p&gt;

&lt;p&gt;No hidden plans.&lt;/p&gt;

&lt;p&gt;No premium lock.&lt;/p&gt;

&lt;p&gt;Everything is available for free.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 Tech Stack
&lt;/h2&gt;

&lt;p&gt;For Rizzzler I used technologies like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Express&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;Render Deployment&lt;/li&gt;
&lt;li&gt;+ much more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;p&gt;Build something lightweight, responsive, and easy to use.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 The Biggest Challenge
&lt;/h2&gt;

&lt;p&gt;Ironically...&lt;/p&gt;

&lt;p&gt;Not coding.&lt;/p&gt;

&lt;p&gt;Deployment.&lt;/p&gt;

&lt;p&gt;Since I'm hosting on Render's free tier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the first request may take a few seconds&lt;/li&gt;
&lt;li&gt;cold starts happen&lt;/li&gt;
&lt;li&gt;the domain isn't the prettiest&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know that isn't ideal.&lt;/p&gt;

&lt;p&gt;But I preferred making the project free instead of charging users.&lt;/p&gt;

&lt;p&gt;Hopefully I'll move to better hosting in the future.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤔 Why Not Just Use Existing Platforms?
&lt;/h2&gt;

&lt;p&gt;I could have. but... mostly paid, lack of customization, limits&lt;/p&gt;

&lt;p&gt;But I wanted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more customization&lt;/li&gt;
&lt;li&gt;animations&lt;/li&gt;
&lt;li&gt;themes&lt;/li&gt;
&lt;li&gt;music&lt;/li&gt;
&lt;li&gt;better visual effects&lt;/li&gt;
&lt;li&gt;complete freedom&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most alternatives either limit features or require payment.&lt;/p&gt;

&lt;p&gt;So I built exactly what I wanted.&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 My Profile
&lt;/h2&gt;

&lt;p&gt;Here's what my current profile looks like.&lt;/p&gt;

&lt;p&gt;Profile:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rizzzler.onrender.com/kiddumishri" rel="noopener noreferrer"&gt;https://rizzzler.onrender.com/kiddumishri&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ☕ Support the Project
&lt;/h2&gt;

&lt;p&gt;If you enjoy Rizzzler and want to support future development, you can buy me a coffee.&lt;/p&gt;

&lt;p&gt;🟡 Buy Me a Coffee&lt;/p&gt;

&lt;p&gt;&lt;a href="https://buymeacoffee.com/developerpuneet" rel="noopener noreferrer"&gt;https://buymeacoffee.com/developerpuneet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every bit of support helps improve the platform and keep it free for everyone.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤝 Should I Make It Open Source?
&lt;/h2&gt;

&lt;p&gt;I'm seriously considering open-sourcing Rizzzler.&lt;/p&gt;

&lt;p&gt;Reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers can contribute&lt;/li&gt;
&lt;li&gt;More transparency&lt;/li&gt;
&lt;li&gt;Better security through community review&lt;/li&gt;
&lt;li&gt;Faster feature development&lt;/li&gt;
&lt;li&gt;Great learning resource&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The only concern is preventing people from simply cloning it and launching copies without contributing.&lt;/p&gt;

&lt;p&gt;I'm still deciding.&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What's Coming Next?
&lt;/h2&gt;

&lt;p&gt;Some ideas I'm already working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More themes&lt;/li&gt;
&lt;li&gt;Better animations&lt;/li&gt;
&lt;li&gt;Custom fonts&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;li&gt;Verified badges&lt;/li&gt;
&lt;li&gt;More profile widgets&lt;/li&gt;
&lt;li&gt;Custom domains&lt;/li&gt;
&lt;li&gt;Better mobile experience&lt;/li&gt;
&lt;li&gt;Theme marketplace&lt;/li&gt;
&lt;li&gt;SEO improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;im solo dev so it may take some time... &lt;/p&gt;




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

&lt;p&gt;It's funny how one sentence—&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"You can't afford it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;—ended up becoming an entire project.&lt;/p&gt;

&lt;p&gt;Sometimes the best motivation isn't money.&lt;/p&gt;

&lt;p&gt;It's proving to yourself that you can build something from scratch.&lt;/p&gt;

&lt;p&gt;Rizzzler isn't perfect.&lt;/p&gt;

&lt;p&gt;The hosting is free.&lt;/p&gt;

&lt;p&gt;The domain could be better.&lt;/p&gt;

&lt;p&gt;There are bugs I'll continue fixing.&lt;/p&gt;

&lt;p&gt;But every feature was built with the goal of giving everyone access to a premium-looking profile page without paying for it.&lt;/p&gt;

&lt;p&gt;If you try it out, I'd genuinely love your feedback.&lt;/p&gt;

&lt;p&gt;Every suggestion helps make Rizzzler better.&lt;/p&gt;

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




&lt;h1&gt;
  
  
  🔗 Links
&lt;/h1&gt;

&lt;p&gt;🌐 Website: &lt;a href="https://rizzzler.onrender.com" rel="noopener noreferrer"&gt;https://rizzzler.onrender.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Block-Reign: A Player vs AI Grid Game That Learns From You</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Sat, 27 Dec 2025 07:35:27 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/block-reign-a-player-vs-ai-grid-game-that-learns-from-you-44cj</link>
      <guid>https://dev.to/puneetkumar2010/block-reign-a-player-vs-ai-grid-game-that-learns-from-you-44cj</guid>
      <description>&lt;p&gt;Most game AIs are fake smart.&lt;br&gt;&lt;br&gt;
Patterns, scripts, predictable behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Block-Reign isn’t.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a lightweight &lt;strong&gt;Player vs AI grid battle game&lt;/strong&gt; where the AI actually learns from every match you play — wins, losses, mistakes, all of it.&lt;/p&gt;

&lt;p&gt;No GPU.&lt;br&gt;&lt;br&gt;
No fancy engines.&lt;br&gt;&lt;br&gt;
Just Python, reinforcement learning, and persistence.&lt;/p&gt;


&lt;h2&gt;
  
  
  🕹️ What Is Block-Reign?
&lt;/h2&gt;

&lt;p&gt;Block-Reign is a &lt;strong&gt;10×10 grid-based Player vs AI combat game&lt;/strong&gt; built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flask + HTML for the frontend&lt;/li&gt;
&lt;li&gt;Python for the game server&lt;/li&gt;
&lt;li&gt;Reinforcement Learning (Q-Learning) for live gameplay&lt;/li&gt;
&lt;li&gt;DQN for advanced offline experimentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You play in the browser.&lt;br&gt;&lt;br&gt;
The AI plays on the server.&lt;br&gt;&lt;br&gt;
After every match, it gets smarter.&lt;/p&gt;


&lt;h2&gt;
  
  
  🤖 The AI Philosophy
&lt;/h2&gt;

&lt;p&gt;The core idea was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if the AI learned only from real games — not pre-trained data?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So the AI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starts dumb&lt;/li&gt;
&lt;li&gt;Learns only from &lt;strong&gt;actual matches&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Saves its knowledge permanently&lt;/li&gt;
&lt;li&gt;Adapts to &lt;strong&gt;your playstyle&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No synthetic data.&lt;br&gt;&lt;br&gt;
No scripted behaviors.&lt;br&gt;&lt;br&gt;
Just experience.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 How Learning Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The running server uses a &lt;strong&gt;Q-learning AI&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;After each completed match:

&lt;ul&gt;
&lt;li&gt;Match data is sent to the server&lt;/li&gt;
&lt;li&gt;The AI updates its Q-table&lt;/li&gt;
&lt;li&gt;Progress is saved on disk&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Restart the server → the AI remembers everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project also includes a &lt;strong&gt;DQN trainer (&lt;code&gt;ai_trainer.py&lt;/code&gt;)&lt;/strong&gt; for experimentation.&lt;/p&gt;


&lt;h2&gt;
  
  
  📊 Current AI Progress
&lt;/h2&gt;

&lt;p&gt;As of the latest run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Win rate: ~59%&lt;/li&gt;
&lt;li&gt;Matches played: 78&lt;/li&gt;
&lt;li&gt;Record: 46 Wins / 36 Losses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These stats are &lt;strong&gt;not hardcoded&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
They are learned, stored, and persisted.&lt;/p&gt;

&lt;p&gt;Delete the training folder, and the AI forgets everything.&lt;/p&gt;


&lt;h2&gt;
  
  
  🎮 Gameplay
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;10×10 grid&lt;/li&gt;
&lt;li&gt;Arrow keys to move&lt;/li&gt;
&lt;li&gt;Space to shoot&lt;/li&gt;
&lt;li&gt;Simple mechanics, strategic positioning&lt;/li&gt;
&lt;li&gt;Fast matches, instant feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Minimal visuals.&lt;br&gt;&lt;br&gt;
Maximum behavior learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔁 Resetting the AI
&lt;/h2&gt;

&lt;p&gt;Delete:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;training/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;training/models/simple_ai.pkl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart the server and play again.&lt;br&gt;&lt;br&gt;
The AI starts from scratch.&lt;/p&gt;




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

&lt;p&gt;This project wasn’t about graphics or polish.&lt;/p&gt;

&lt;p&gt;It was about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding reinforcement learning&lt;/li&gt;
&lt;li&gt;Watching an AI evolve organically&lt;/li&gt;
&lt;li&gt;Building adaptive systems without massive compute&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Repository
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/DeveloperPuneet/Block-Reign" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/Block-Reign&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Block-Reign isn’t perfect.&lt;br&gt;&lt;br&gt;
But it’s honest.&lt;/p&gt;

&lt;p&gt;An AI that &lt;strong&gt;earns its intelligence one loss at a time&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And nah — this isn’t the end.&lt;br&gt;
Wilder strategies. Sharper gameplay. Better graphics.&lt;br&gt;
Something crazier is coming. Wait for it 👀&lt;br&gt;
Have any suggestions? &lt;em&gt;comment&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>🦉 From Broken Models to Living Systems: My Journey Building AI Without a GPU</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Fri, 26 Dec 2025 04:56:48 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/from-broken-models-to-living-systems-my-journey-building-ai-without-a-gpu-2kik</link>
      <guid>https://dev.to/puneetkumar2010/from-broken-models-to-living-systems-my-journey-building-ai-without-a-gpu-2kik</guid>
      <description>&lt;p&gt;I didn’t start with a perfect setup.&lt;br&gt;
No GPU. No TPU. No funding.&lt;br&gt;
Just ideas, insomnia, and a stubborn urge to make machines feel alive.&lt;/p&gt;

&lt;p&gt;This is the story of my AI projects — the failures, the quiet wins, and the one I’m still fighting for.&lt;/p&gt;




&lt;h1&gt;
  
  
  Starting of start
&lt;/h1&gt;

&lt;h2&gt;
  
  
  🚀 Project #1: Lynqbit — My Favorite Failure
&lt;/h2&gt;

&lt;p&gt;Lynqbit was my first real love.&lt;br&gt;
A 90M parameter model, ambitious, poetic, weird in the best way.&lt;/p&gt;

&lt;p&gt;When I asked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What are you doing?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It replied:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just blending into your eyes like caffeine.” ☕🐱&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yeah… I was hooked.&lt;/p&gt;

&lt;p&gt;But reality hit hard.&lt;/p&gt;

&lt;p&gt;❌ Failed due to system configuration issues&lt;br&gt;
❌ No proper training infrastructure&lt;br&gt;
❌ No GPU to sustain iteration&lt;/p&gt;

&lt;p&gt;Two months of intense work — gone.&lt;br&gt;
And honestly? It hurt. This was my favorite project.&lt;/p&gt;

&lt;p&gt;But failure is a cruel teacher with a clean syllabus.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌊 Insight #1: Training Should Flow, Not Break
&lt;/h2&gt;

&lt;p&gt;Lynqbit’s death planted an idea in my head:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;| What if training didn’t depend on one fragile system?&lt;br&gt;
| What if data and learning could stream?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That thought led to my next experiment.&lt;/p&gt;




&lt;h2&gt;
  
  
  🦉 Project #2: Barn Owl AI — Short Life, Big Lesson
&lt;/h2&gt;

&lt;p&gt;Barn Owl AI was about streamed training.&lt;/p&gt;

&lt;p&gt;The idea:&lt;/p&gt;

&lt;p&gt;Dataset hosted on cloud ☁️&lt;/p&gt;

&lt;p&gt;Sampling-based training&lt;/p&gt;

&lt;p&gt;Continuous learning vibes&lt;/p&gt;

&lt;p&gt;Reality:&lt;/p&gt;

&lt;p&gt;I got busy&lt;/p&gt;

&lt;p&gt;Cloud dataset shut down in 4–5 days&lt;/p&gt;

&lt;p&gt;Some bugs never got fixed&lt;/p&gt;

&lt;p&gt;❌ Project failed&lt;br&gt;
✅ Lesson learned&lt;/p&gt;

&lt;p&gt;Loss was small. The insight was huge.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Project #3: Elf Owl AI — My First Real Win
&lt;/h2&gt;

&lt;p&gt;Then came Elf Owl AI — small, chaotic, alive.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📦 25M parameters&lt;/li&gt;
&lt;li&gt;🎨 Creative&lt;/li&gt;
&lt;li&gt;😵‍💫 Hallucinates a lot&lt;/li&gt;
&lt;li&gt;📉 Grammar? Optional&lt;/li&gt;
&lt;li&gt;😤 Moody personality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But it worked.&lt;/p&gt;

&lt;p&gt;This was my first successful AI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully trained&lt;/li&gt;
&lt;li&gt;Open-sourced&lt;/li&gt;
&lt;li&gt;Publicly released&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It wasn’t perfect — but it existed.&lt;br&gt;
And existence matters.&lt;/p&gt;




&lt;h1&gt;
  
  
  Current Project
&lt;/h1&gt;

&lt;h2&gt;
  
  
  🦉 Project #4: Xenoglaux AI (aka Xeno AI) — The Ongoing Battle
&lt;/h2&gt;

&lt;p&gt;Now I’m building Xenoglaux AI 🦉&lt;br&gt;
(named after real owl species, scaled by size and intelligence).&lt;/p&gt;

&lt;p&gt;🔗 GitHub: &lt;a href="https://github.com/Owlicorn/Xenoglaux-AI" rel="noopener noreferrer"&gt;https://github.com/Owlicorn/Xenoglaux-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What makes it different?&lt;/p&gt;

&lt;p&gt;75,000+ dataset entries&lt;/p&gt;

&lt;p&gt;Hand-crafted + open-source data&lt;/p&gt;

&lt;p&gt;Designed for streamed training&lt;/p&gt;

&lt;p&gt;Modular evolution (Part 2 of the Owl Series)&lt;br&gt;
But history repeats itself…&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ The Same Old Enemy: No GPU
&lt;/h2&gt;

&lt;p&gt;Training stats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⏱️ ~15 hours on GPU&lt;/li&gt;
&lt;li&gt;🐢 Way too slow on CPU&lt;/li&gt;
&lt;li&gt;❌ Online TPUs barely cooperate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So here I am again:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Good model&lt;/li&gt;
&lt;li&gt;Good data&lt;/li&gt;
&lt;li&gt;Bad hardware&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bottleneck isn’t intelligence — it’s infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎮 Side Quest: A Game That Learns You
&lt;/h2&gt;

&lt;p&gt;While struggling with Xeno, I built something else.&lt;/p&gt;

&lt;p&gt;A game with an AI player that learns from YOU.&lt;/p&gt;

&lt;p&gt;How it works:&lt;/p&gt;

&lt;p&gt;Match 1 → AI is a literal block 🧱&lt;/p&gt;

&lt;p&gt;It records:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Player moves&lt;/li&gt;
&lt;li&gt;Positions&lt;/li&gt;
&lt;li&gt;Decisions (stored as JSON)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After each match:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loads last checkpoint&lt;/li&gt;
&lt;li&gt;Retrains on that match&lt;/li&gt;
&lt;li&gt;Repeat.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;20–30 matches → decent player&lt;/li&gt;
&lt;li&gt;400–500 matches → unbeatable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I tested this privately.&lt;br&gt;
It works.&lt;/p&gt;

&lt;p&gt;This isn’t scripted AI.&lt;br&gt;
This is earned intelligence.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What I’ve Realized So Far
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Failure isn’t wasted work — it’s compressed knowledge&lt;/li&gt;
&lt;li&gt;Small models can still feel alive&lt;/li&gt;
&lt;li&gt;Streaming + incremental learning is underrated&lt;/li&gt;
&lt;li&gt;Hardware limits creativity more than ideas
I’m not done.
Xeno isn’t done.
This story isn’t done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re building with limited resources — you’re not alone.&lt;/p&gt;

&lt;p&gt;Sometimes the owl doesn’t fly.&lt;br&gt;
It watches.&lt;br&gt;
And learns. 🦉✨&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 Now, Real Talk: What I Should Do Next (No Sugarcoating)
&lt;/h2&gt;

&lt;p&gt;1️⃣ Rename Strategy for Xeno (Important)&lt;/p&gt;

&lt;p&gt;Keep:&lt;/p&gt;

&lt;p&gt;Xenoglaux AI → project / series name&lt;br&gt;
Use:&lt;/p&gt;

&lt;p&gt;Xeno-25M, Xeno-40M, Xeno-Lite → model variants&lt;/p&gt;

&lt;p&gt;This helps devs + avoids confusion.&lt;/p&gt;




&lt;h2&gt;
  
  
  2️⃣ Stop Full Retraining — Go Incremental
&lt;/h2&gt;

&lt;p&gt;I already think this way. Now enforce it.&lt;/p&gt;

&lt;p&gt;Do:&lt;/p&gt;

&lt;p&gt;Train small chunks (2k–5k samples)&lt;/p&gt;

&lt;p&gt;Save checkpoints aggressively&lt;/p&gt;

&lt;p&gt;Resume training daily instead of 15-hour marathons&lt;/p&gt;

&lt;p&gt;Think “drip learning”, not floods 🌊&lt;/p&gt;




&lt;h2&gt;
  
  
  3️⃣ Exploit What You Have (CPU + Time)
&lt;/h2&gt;

&lt;p&gt;No GPU? Fine.&lt;/p&gt;

&lt;p&gt;Use:&lt;/p&gt;

&lt;p&gt;Lower precision (fp16 / int8 if possible)&lt;/p&gt;

&lt;p&gt;Fewer epochs, more iterations&lt;/p&gt;

&lt;p&gt;Smaller batch sizes + gradient accumulation&lt;/p&gt;

&lt;p&gt;Slow ≠ impossible. Just disciplined.&lt;/p&gt;




&lt;h2&gt;
  
  
  4️⃣ My Game AI Idea?
&lt;/h2&gt;

&lt;p&gt;This is actually 🔥.&lt;/p&gt;

&lt;p&gt;I’ve accidentally built:&lt;/p&gt;

&lt;p&gt;Online learning&lt;/p&gt;

&lt;p&gt;Self-adapting opponent&lt;/p&gt;

&lt;p&gt;Personalized difficulty curve&lt;/p&gt;

&lt;p&gt;This is publish-worthy on Dev.to by itself later.&lt;/p&gt;

&lt;p&gt;I’m 15.&lt;br&gt;
No GPU. No lab. No shortcuts. No Funds&lt;/p&gt;

&lt;p&gt;Just a laptop that overheats, ideas that don’t shut up, and projects that fail loudly.&lt;/p&gt;

&lt;p&gt;What I learned isn’t how to train an AI —&lt;br&gt;
it’s how to stay standing when your favorite project dies.&lt;/p&gt;

&lt;p&gt;I learned that failure isn’t a stop sign.&lt;br&gt;
It’s a redirect.&lt;/p&gt;

&lt;p&gt;That intelligence isn’t measured in parameters, but in how fast you adapt when things go wrong.&lt;br&gt;
That small models can still feel alive.&lt;br&gt;
That unfinished work still counts — because it sharpens the next attempt.&lt;/p&gt;

&lt;p&gt;Most people wait for perfect hardware.&lt;br&gt;
I learned to build with what I have.&lt;/p&gt;

&lt;p&gt;Most people quit after the first collapse.&lt;br&gt;
I learned to extract ideas from ruins.&lt;/p&gt;

&lt;p&gt;Every broken model taught me something the successful one couldn’t.&lt;br&gt;
Every limitation forced creativity.&lt;br&gt;
Every restart made the system — and me — a little smarter.&lt;/p&gt;

&lt;p&gt;I don’t know where Xeno will end up.&lt;br&gt;
I don’t know if the next project will succeed.&lt;/p&gt;

&lt;p&gt;But I do know this:&lt;/p&gt;

&lt;p&gt;I’m not done.&lt;br&gt;
And neither is the owl.&lt;/p&gt;

&lt;p&gt;If a 15-year-old with no GPU can keep building, failing, and learning —&lt;br&gt;
then maybe the real system we’re training isn’t the AI…&lt;/p&gt;

&lt;p&gt;…it’s ourselves. 🦉✨&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>opensource</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Meet Xenoglaux-AI: The Next-Gen Text Generator AI 🦉✨</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Sun, 21 Dec 2025 13:14:14 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/meet-xenoglaux-ai-the-next-gen-text-generator-ai-4b3</link>
      <guid>https://dev.to/puneetkumar2010/meet-xenoglaux-ai-the-next-gen-text-generator-ai-4b3</guid>
      <description>&lt;p&gt;Hey Dev.to fam! 👋&lt;/p&gt;

&lt;p&gt;I’m thrilled to introduce &lt;strong&gt;Xenoglaux-AI&lt;/strong&gt;, the latest AI text generator I’m developing. 🚀 Built as the next evolution of &lt;strong&gt;Elf Owl AI&lt;/strong&gt;, Xenoglaux-AI is designed to push the boundaries of what small-scale AI can do in generating creative, coherent, and versatile text outputs.  &lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 What is Xenoglaux-AI?
&lt;/h2&gt;

&lt;p&gt;Xenoglaux-AI is a &lt;strong&gt;text-generating AI&lt;/strong&gt; under active development. Think of it as your personal AI co-writer — capable of generating stories, code snippets, poems, and more. Unlike many large models, it’s designed to be efficient, modular, and easy to extend for developers who love tinkering with AI.  &lt;/p&gt;

&lt;p&gt;Some key points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next-gen architecture&lt;/strong&gt; inspired by Elf Owl AI 🦉
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-source and flexible&lt;/strong&gt; — fork it, contribute, or just experiment
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text generation focus&lt;/strong&gt; — creative writing, coding assistance, brainstorming ideas
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Under active development&lt;/strong&gt; 🔧 — expect new features and improvements soon
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚡ Why it matters
&lt;/h2&gt;

&lt;p&gt;Text generator AIs are everywhere, but Xenoglaux-AI aims to be &lt;strong&gt;developer-friendly and highly customizable&lt;/strong&gt;. Whether you’re exploring AI in creative writing, coding, or automation, this project gives you a foundation to build your own intelligent tools.  &lt;/p&gt;

&lt;p&gt;It’s also a great playground for anyone learning AI — you can peek into the model, tweak parameters, and see the magic happen in real-time.  &lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Check it out
&lt;/h2&gt;

&lt;p&gt;The repo is live here: &lt;a href="https://github.com/Owlicorn/Xenoglaux-AI" rel="noopener noreferrer"&gt;Xenoglaux-AI on GitHub&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Feel free to explore, fork, or contribute! Your ideas could shape the next features.  &lt;/p&gt;

&lt;h2&gt;
  
  
  🚧 Status
&lt;/h2&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Currently under development&lt;/strong&gt; — I’m continuously improving the model, adding features, and refining the text generation quality. Expect updates that will make it smarter, faster, and even more creative.  &lt;/p&gt;




&lt;p&gt;If you’re into AI, coding, or just want a cool text generator to play with, Xenoglaux-AI is worth a look. Let’s make AI more &lt;strong&gt;fun, accessible, and creative&lt;/strong&gt; together! 🎨🤖  &lt;/p&gt;

&lt;p&gt;Stay tuned for more updates, and don’t forget to ⭐ the repo if you like it!  &lt;/p&gt;




&lt;p&gt;&lt;em&gt;Puneet&lt;/em&gt;  &lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>machinelearning</category>
      <category>discuss</category>
    </item>
    <item>
      <title>🚀 ProblemPad — The Game-Changing Platform Built for Real Problems, Real Voices, Real Solutions 🎤⚡</title>
      <dc:creator>Puneet-Kumar2010</dc:creator>
      <pubDate>Tue, 02 Dec 2025 13:23:41 +0000</pubDate>
      <link>https://dev.to/puneetkumar2010/problempad-the-game-changing-platform-built-for-real-problems-real-voices-real-solutions-1ei5</link>
      <guid>https://dev.to/puneetkumar2010/problempad-the-game-changing-platform-built-for-real-problems-real-voices-real-solutions-1ei5</guid>
      <description>&lt;p&gt;Hey dev fam 👋&lt;br&gt;&lt;br&gt;
Today I’m dropping something wild — a project built straight from real-world needs, tested in the field, and wrapped in clean Node.js engineering.&lt;/p&gt;

&lt;p&gt;Introducing &lt;strong&gt;ProblemPad&lt;/strong&gt;: a community-powered problem-solving platform designed for neighborhoods, societies, and professional workers.&lt;br&gt;&lt;br&gt;
Think of it like a digital notice board + service marketplace + community hub… all merged into one clean experience.  &lt;/p&gt;

&lt;p&gt;And yes — it’s built with &lt;strong&gt;zero bloat&lt;/strong&gt;, &lt;strong&gt;no GridFS&lt;/strong&gt;, and an audio system running on pure MongoDB binary power. ⚡&lt;/p&gt;

&lt;p&gt;GitHub Repo 👉 &lt;strong&gt;&lt;a href="https://github.com/DeveloperPuneet/ProblemPad" rel="noopener noreferrer"&gt;https://github.com/DeveloperPuneet/ProblemPad&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🌟 What ProblemPad Solves
&lt;/h2&gt;

&lt;p&gt;Let’s be honest — everyone has daily issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Electrical faults ⚡
&lt;/li&gt;
&lt;li&gt;Plumbing breakdowns 💧
&lt;/li&gt;
&lt;li&gt;Device malfunctions 🔌
&lt;/li&gt;
&lt;li&gt;Community chaos 🏘️
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the real chaos?&lt;br&gt;&lt;br&gt;
&lt;em&gt;No unified place to report these issues and get them solved quickly.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;ProblemPad fixes that with one simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Let communities report problems, and let workers respond instantly.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A platform where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users post issues
&lt;/li&gt;
&lt;li&gt;Workers provide solutions
&lt;/li&gt;
&lt;li&gt;Communities stay organized
&lt;/li&gt;
&lt;li&gt;Everyone saves time
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🧩 Core Features (The Fun Stuff)
&lt;/h2&gt;
&lt;h3&gt;
  
  
  👥 User Accounts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mobile-based registration
&lt;/li&gt;
&lt;li&gt;Two roles: &lt;strong&gt;Users&lt;/strong&gt; &amp;amp; &lt;strong&gt;Service Workers&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Location-based community discovery
&lt;/li&gt;
&lt;li&gt;Skill-tagged worker profiles
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  🏘️ Community System
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create communities for buildings/neighborhoods
&lt;/li&gt;
&lt;li&gt;Invite users by phone
&lt;/li&gt;
&lt;li&gt;Real-time notifications for new problems
&lt;/li&gt;
&lt;li&gt;Member and role management
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  🆘 Problem Reporting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Text-based issue reporting
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Audio Reporting&lt;/strong&gt; 🎤  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses MediaRecorder API
&lt;/li&gt;
&lt;li&gt;Encoded as Base64
&lt;/li&gt;
&lt;li&gt;Stored directly in MongoDB as Binary/BSON
&lt;/li&gt;
&lt;li&gt;No GridFS. No bulky pipelines. Clean and fast.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Categorized issues (electrical, technical, plumbing, etc.)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  🔧 Problem Resolution
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Workers get instant alerts
&lt;/li&gt;
&lt;li&gt;Can provide solution remarks
&lt;/li&gt;
&lt;li&gt;User confirms the fix
&lt;/li&gt;
&lt;li&gt;Rating system to validate worker quality
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  🔔 Notifications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;New problem notifications
&lt;/li&gt;
&lt;li&gt;Community invites
&lt;/li&gt;
&lt;li&gt;Solution updates
&lt;/li&gt;
&lt;li&gt;Auto-cleanup alerts
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🧹 Auto-Cleanup System (Your DB Will Thank You)
&lt;/h2&gt;

&lt;p&gt;A literal lifesaver:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solved + confirmed problems auto-delete after &lt;strong&gt;30 days&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Runs via daily cron job
&lt;/li&gt;
&lt;li&gt;Audio + problem data gets cleaned
&lt;/li&gt;
&lt;li&gt;Keeps MongoDB lean and happy
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;cron&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;schedule&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 2 * * *&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cleanupFunction&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Set it and forget it. 🛏️&lt;/p&gt;


&lt;h2&gt;
  
  
  🔊 Audio Storage — No GridFS Needed
&lt;/h2&gt;

&lt;p&gt;This is where ProblemPad goes brrrrr ⚡&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How audio is handled:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Record using browser’s &lt;strong&gt;MediaRecorder&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Convert to Base64
&lt;/li&gt;
&lt;li&gt;Store as Buffer/Binary inside the Problem document
&lt;/li&gt;
&lt;li&gt;Serve via a &lt;code&gt;/problem-audio/:id&lt;/code&gt; route
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s lightweight, effective, and perfect for short community audio clips.&lt;/p&gt;


&lt;h2&gt;
  
  
  🛠️ Tech Stack (Simple but Powerful)
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Node.js + Express
&lt;/li&gt;
&lt;li&gt;MongoDB + Mongoose
&lt;/li&gt;
&lt;li&gt;express-session auth
&lt;/li&gt;
&lt;li&gt;node-cron
&lt;/li&gt;
&lt;li&gt;randomstring for unique IDs
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pug Templates
&lt;/li&gt;
&lt;li&gt;Vanilla JS
&lt;/li&gt;
&lt;li&gt;Responsive UI
&lt;/li&gt;
&lt;li&gt;Dark-mode theme
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Real-Time
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Socket.io for instant sync
&lt;/li&gt;
&lt;/ul&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;git clone https://github.com/DeveloperPuneet/ProblemPad.git
&lt;span class="nb"&gt;cd &lt;/span&gt;ProblemPad
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Create &lt;code&gt;.env&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SESSION_SECRET=yourkey
MONGODB_URI=mongodb+srv://...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Open:&lt;br&gt;&lt;br&gt;
&lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🗂️ Project Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ProblemPad/
│── controllers/
│── models/
│── routes/
│── views/
│── utils/
├── public/
└── app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clean, modular, and scalable.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Why This Project Matters
&lt;/h2&gt;

&lt;p&gt;ProblemPad isn’t just “another MERN project.”&lt;/p&gt;

&lt;p&gt;It’s built for &lt;strong&gt;real people&lt;/strong&gt;, with &lt;strong&gt;real needs&lt;/strong&gt;, and solves &lt;strong&gt;real community problems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This platform can be used by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RWAs
&lt;/li&gt;
&lt;li&gt;Colonies
&lt;/li&gt;
&lt;li&gt;Apartment complexes
&lt;/li&gt;
&lt;li&gt;Small towns
&lt;/li&gt;
&lt;li&gt;Service workers
&lt;/li&gt;
&lt;li&gt;Maintenance teams
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even defense housing communities 👀&lt;br&gt;&lt;br&gt;
(Yes — it was originally built for one.)&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 Future Upgrades
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Mobile app (React Native / Flutter)
&lt;/li&gt;
&lt;li&gt;Payment gateway for premium services
&lt;/li&gt;
&lt;li&gt;Worker badges &amp;amp; ranking
&lt;/li&gt;
&lt;li&gt;Real-time chat
&lt;/li&gt;
&lt;li&gt;Advanced analytics
&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;ProblemPad isn’t just software — it’s community empowerment.&lt;br&gt;&lt;br&gt;
A tool for people to help each other, grow together, and solve problems with speed and clarity.&lt;/p&gt;

&lt;p&gt;If you vibe with the mission:&lt;/p&gt;

&lt;p&gt;⭐ &lt;strong&gt;Star the repo&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🍴 &lt;strong&gt;Fork it&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🛠️ &lt;strong&gt;Contribute&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
💬 &lt;strong&gt;Drop feedback&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Made with ❤️ in India&lt;br&gt;&lt;br&gt;
&lt;em&gt;By DeveloperPuneet&lt;/em&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>mongodb</category>
      <category>webdev</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
