<?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: Parnita Singh</title>
    <description>The latest articles on DEV Community by Parnita Singh (@parnita_singh_73778510977).</description>
    <link>https://dev.to/parnita_singh_73778510977</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%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png</url>
      <title>DEV Community: Parnita Singh</title>
      <link>https://dev.to/parnita_singh_73778510977</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parnita_singh_73778510977"/>
    <language>en</language>
    <item>
      <title>Lunar Hollow: The Vanished Webmaster</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Sat, 31 Oct 2026 19:08:32 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/lunar-hollow-the-vanished-webmaster-33e9</link>
      <guid>https://dev.to/parnita_singh_73778510977/lunar-hollow-the-vanished-webmaster-33e9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lunar Hollow is a small offline mystery. Nightowl_Ren, the webmaster of a 2000s fan site, stopped posting on March 14, 2004. Four guestbook fans each left a clue, and the archive password comes from putting those clues together.&lt;/p&gt;

&lt;p&gt;I read the theme as a ghost story told through an old website. The case board is the haunted part: pinned notes, red string, and a photo of the missing webmaster. The clues are written to reward players who check the source code, since the password pattern is hidden in an HTML comment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo&lt;/strong&gt; -&lt;br&gt;
&lt;a href="https://drive.google.com/file/d/1Th7n308Oixq_3CXmGPOLSX-d1MUWWOC3/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1Th7n308Oixq_3CXmGPOLSX-d1MUWWOC3/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt; -&lt;br&gt;
&lt;a href="https://github.com/parnita-Singh/LUNAR-Week4/tree/main" rel="noopener noreferrer"&gt;https://github.com/parnita-Singh/LUNAR-Week4/tree/main&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repo has three files: index.html (the page and case board), app.js (the clues and password check), and README.md. Open index.html in a browser to play. No install is needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Built It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The game is plain HTML, CSS, and JavaScript, with no framework and no build step. The clues and the password are fixed in app.js.&lt;/p&gt;

&lt;p&gt;The open-source AI is not yet in the game. The current version runs without any model. The planned next step is a local open-weight model, run through Ollama, that rewrites each suspect’s answers in their own voice. The answers would stay fixed in code, so the model couldn’t invent clues or reveal the solution. I haven’t built or tested that step, and I don’t want to claim it works yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Does Open Innovation Matter?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open tools make this kind of project possible without a service:&lt;/p&gt;

&lt;p&gt;It runs offline, with no server and no API key.&lt;br&gt;
Anyone can read the source, fork the case, or write a new mystery in app.js.&lt;br&gt;
It costs nothing to run, and nothing is billed per play.&lt;/p&gt;

&lt;p&gt;Once a local open-weight model is added, the same argument extends to the AI: the model runs on the player’s machine, so the dialogue never leaves it, and the model can be swapped without rewriting the game.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Spirit of It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The ghost in this story is the missing webmaster. The old-web look, with its dead links and unanswered guestbook, is meant to feel like a site someone left behind. If it lands for players, it’s because the page feels abandoned, and the clues are how you bring Ren back.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>webdev</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>I made this over the weekend, it will only take a min. check it out</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Mon, 26 Oct 2026 17:31:06 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/i-made-this-over-the-weekend-it-will-only-take-a-min-check-it-out-27np</link>
      <guid>https://dev.to/parnita_singh_73778510977/i-made-this-over-the-weekend-it-will-only-take-a-min-check-it-out-27np</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__hidden-navigation-link"&gt;PDFme, the offline PDF toolkit I built after my college fest nearly broke me&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/parnita_singh_73778510977" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" alt="parnita_singh_73778510977 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/parnita_singh_73778510977" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Parnita Singh
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Parnita Singh
                
                
              
              &lt;div id="story-author-preview-content-4917025" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/parnita_singh_73778510977" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Parnita Singh&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" id="article-link-4917025"&gt;
          PDFme, the offline PDF toolkit I built after my college fest nearly broke me
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hf26challenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hf26challenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;9&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              7&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
          
          &lt;div class="only-sidebar-menu-item trusted-visible-block print-hidden align-center"&gt;
                
                    
                
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>opensource</category>
      <category>showdev</category>
      <category>tools</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Sun, 25 Oct 2026 18:40:31 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/-5flp</link>
      <guid>https://dev.to/parnita_singh_73778510977/-5flp</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__hidden-navigation-link"&gt;PDFme, the offline PDF toolkit I built after my college fest nearly broke me&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/parnita_singh_73778510977" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" alt="parnita_singh_73778510977 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/parnita_singh_73778510977" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Parnita Singh
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Parnita Singh
                
                
              
              &lt;div id="story-author-preview-content-4917025" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/parnita_singh_73778510977" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Parnita Singh&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" id="article-link-4917025"&gt;
          PDFme, the offline PDF toolkit I built after my college fest nearly broke me
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hf26challenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hf26challenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;9&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              7&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
          
          &lt;div class="only-sidebar-menu-item trusted-visible-block print-hidden align-center"&gt;
                
                    
                
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Sun, 25 Oct 2026 18:32:57 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/-48be</link>
      <guid>https://dev.to/parnita_singh_73778510977/-48be</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/parnita_singh_73778510977/ever-struggled-with-pdfs-which-out-pdfme-13m9" class="crayons-story__hidden-navigation-link"&gt;Ever Struggled with PDFs, which out PDFme&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-status"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/parnita_singh_73778510977" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" alt="parnita_singh_73778510977 profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/parnita_singh_73778510977" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Parnita Singh
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Parnita Singh
                
                
              
              &lt;div id="story-author-preview-content-4917046" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/parnita_singh_73778510977" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Parnita Singh&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/ever-struggled-with-pdfs-which-out-pdfme-13m9" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-status"&gt;
        &lt;a href="https://dev.to/parnita_singh_73778510977/ever-struggled-with-pdfs-which-out-pdfme-13m9" id="article-link-4917046"&gt;
          Ever Struggled with PDFs, which out PDFme
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__contentpreview text-styles"&gt;
          &lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__hidden-navigation-link"&gt;PDFme, the offline PDF toolkit I built after my college fest nearly broke me&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/parnita_singh_73778510977" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" alt="parnita_singh_73778510977 profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/parnita_singh_73778510977" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Parnita Singh
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Parnita Singh
                
                
              
              &lt;div id="story-author-preview-content-4917025" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/parnita_singh_73778510977" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Parnita Singh&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" id="article-link-4917025"&gt;
          PDFme, the offline PDF toolkit I built after my college fest nearly broke me
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hf26challenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hf26challenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/ever-struggled-with-pdfs-which-out-pdfme-13m9" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/parnita_singh_73778510977/ever-struggled-with-pdfs-which-out-pdfme-13m9#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>javascript</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Ever Struggled with PDFs, which out PDFme</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Sun, 25 Oct 2026 18:32:44 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/ever-struggled-with-pdfs-which-out-pdfme-13m9</link>
      <guid>https://dev.to/parnita_singh_73778510977/ever-struggled-with-pdfs-which-out-pdfme-13m9</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__hidden-navigation-link"&gt;PDFme, the offline PDF toolkit I built after my college fest nearly broke me&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/parnita_singh_73778510977" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" alt="parnita_singh_73778510977 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/parnita_singh_73778510977" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Parnita Singh
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Parnita Singh
                
                
              
              &lt;div id="story-author-preview-content-4917025" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/parnita_singh_73778510977" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3971091%2F3ab5ba8b-89b8-4527-afd7-b3d3cb994a42.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Parnita Singh&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" id="article-link-4917025"&gt;
          PDFme, the offline PDF toolkit I built after my college fest nearly broke me
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hf26challenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hf26challenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;9&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              7&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
          
          &lt;div class="only-sidebar-menu-item trusted-visible-block print-hidden align-center"&gt;
                
                    
                
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>programming</category>
      <category>sideprojects</category>
      <category>tools</category>
    </item>
    <item>
      <title>PDFme, the offline PDF toolkit I built after my college fest nearly broke me</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Sun, 25 Oct 2026 18:28:53 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2</link>
      <guid>https://dev.to/parnita_singh_73778510977/pdfme-the-offline-pdf-toolkit-i-built-after-my-college-fest-nearly-broke-me-46n2</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;PDFme is a local, offline PDF toolkit for large print designs. It can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compress a huge PDF down to a size you can actually share&lt;/li&gt;
&lt;li&gt;remove image backgrounds with an open-source AI model (ISNet, through rembg, with other models to pick from)&lt;/li&gt;
&lt;li&gt;label pages with Gemma, a local open-weight model run through Ollama&lt;/li&gt;
&lt;li&gt;merge and split PDFs by size or by page range
Everything runs on your own computer. Your files are never uploaded, and there is no account, no cloud service and no internet needed after the one-time downloads (details in the serious part at the bottom).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, it sounds cool. When I needed it, it was nowhere near cool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backstory
&lt;/h3&gt;

&lt;p&gt;I was half dead, one step away from zombie. That is what a university cultural fest does to you: endless banners, posters and artifacts, each one due to a vendor at a specific time, in a specific size, in a specific file type, with background or without background.&lt;/p&gt;

&lt;p&gt;Send a Drive link? Not enough. Email? 25 MB limit. WhatsApp? 2 GB limit, so my merged PDF could not go in one piece. I had to sort through everything, pick the right files, and send each one carefully, one by one.&lt;/p&gt;

&lt;p&gt;All of that went blaaaaaaaast in my head at once. I did not give up, because I knew what I had to fix. The fest ended on the 23rd, I started PDFme on the 24th, and as I write this on the 25th, I feel better. Now whenever I see someone struggling with a PDF, I get my cool moment: "check out PDFme." It works, and I will tell you exactly where it doesn't, in the serious part below.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1llPMxIo_e7WeAXF99xMnBpahq783xIrf/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1llPMxIo_e7WeAXF99xMnBpahq783xIrf/view?usp=sharing&lt;/a&gt; &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;th&gt;What it did&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fest standee, BIBB 3x6&lt;/td&gt;
&lt;td&gt;515.9 MB&lt;/td&gt;
&lt;td&gt;39.0 MB&lt;/td&gt;
&lt;td&gt;Print copy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fest standee, BIBB 3x6&lt;/td&gt;
&lt;td&gt;515.9 MB&lt;/td&gt;
&lt;td&gt;284.9 MB&lt;/td&gt;
&lt;td&gt;Fit to size at 300 dpi&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;&lt;a href="https://github.com/parnita-Singh/PDFme-week3" rel="noopener noreferrer"&gt;https://github.com/parnita-Singh/PDFme-week3&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I used Cursor. I started with Grok 4.6 (medium), and when it hit its monthly limit, I took a pause, screamed and switched to Claude Haiku 5.5.&lt;/p&gt;

&lt;p&gt;The open pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gemma through Ollama, for page labels&lt;/li&gt;
&lt;li&gt;Background removal with rembg, using the ISNet model by default&lt;/li&gt;
&lt;li&gt;PDF libraries: pikepdf and pypdf for reading and writing PDFs, Pillow for images, pypdfium2 for rendering pages, and Gradio for the web page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Along the way I learned things I did not know before: how an image has layers, what an SMask is, and how DPI affects image quality.&lt;/p&gt;

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

&lt;p&gt;You can always argue, "just give it to GPT." My counter question: would you trust your Aadhaar card, passbook and cheque book details to a cloud chatbot?&lt;/p&gt;

&lt;p&gt;That is where PDFme enters, ladies and gentlemen. yeahhhhaaa!&lt;/p&gt;

&lt;p&gt;Because the models run on your own machine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;your private files never leave your computer&lt;/li&gt;
&lt;li&gt;it works without internet once the models are downloaded&lt;/li&gt;
&lt;li&gt;it costs nothing to run&lt;/li&gt;
&lt;li&gt;you can pick a different background model from a list, and set a different Gemma model name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know I'm writing like a crazy person, but this post is 100% human written.&lt;/p&gt;

&lt;p&gt;This was also the first time I built something outside the rat race of having a project on my resume or GitHub. I built it for a problem I actually hit, and I would bet other people hit it too. It is 2026, we have AI that writes code, and people still lose hours to PDFs. I solved it, and I love it.&lt;/p&gt;

&lt;p&gt;It is cool. I will give you a minute. Admit it 😎&lt;/p&gt;

&lt;h2&gt;
  
  
  Now the serious part
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What I tested:&lt;/strong&gt; 15 real fest PDFs, each 510 to 700 MB. I verified background removal, splitting, merging and compressing on all of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tested on files of 510 to 700 MB.&lt;/li&gt;
&lt;li&gt;"Fit to size" uses a 2000 MB default, the same as WhatsApp's 2 GB document limit. It steps the resolution down from 300 dpi to 100 dpi, and writes no file if nothing reaches the limit.&lt;/li&gt;
&lt;li&gt;Background removal changes only the images you choose. A photo covering 90% or more of the page is skipped by default. You can raise that limit, or tick the image you want to process.&lt;/li&gt;
&lt;li&gt;Images that already have transparency, and vector art, are left alone.&lt;/li&gt;
&lt;li&gt;Gemma page labels need Ollama and a one-time model download. I haven't checked them on the banner yet.&lt;/li&gt;
&lt;li&gt;I switched off Wi-Fi and ran the print copy and page-range split with no internet connection. The background model needs a one-time download first, so it must be on the computer before you go offline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not forget to star the repo ⭐, because you are gonna love PDFme. &lt;br&gt;
heeehheee &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>programming</category>
      <category>ai</category>
    </item>
    <item>
      <title>Clover - The LEAF Hunt</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Sun, 11 Oct 2026 18:17:26 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/clover-the-leaf-hunt-49p4</link>
      <guid>https://dev.to/parnita_singh_73778510977/clover-the-leaf-hunt-49p4</guid>
      <description>&lt;p&gt;&lt;strong&gt;What I Built✨&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Leaf Hunt&lt;/em&gt; is an offline, audio-first plant scavenger hunt. Each week it generates five seasonal clues based on your local last spring frost date, like “find a leaf with five leaflets” or “find something still flowering.” You walk, point your phone at a plant, a local open-weight vision model identifies it, and you describe what you found by voice. Finds go into a local journal that you can export as a styled HTML page. The screen is only needed at the start and end.&lt;/p&gt;

&lt;p&gt;It’s for anyone who wants a reason to go outside: families, hikers, students, and people who enjoy birding or nature walks without needing a signal.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
Drive link🍀 -&lt;/p&gt;

&lt;p&gt;GitHub link🍀 - &lt;a href="https://github.com/parnita-Singh/leaf-hunt" rel="noopener noreferrer"&gt;https://github.com/parnita-Singh/leaf-hunt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Built It&lt;/strong&gt;&lt;br&gt;
Vision: a small quantized open-weight vision-language model, served by Ollama or llama.cpp&lt;br&gt;
Speech-to-text: whisper.cpp&lt;br&gt;
Text-to-speech: Piper&lt;br&gt;
Storage: SQLite&lt;br&gt;
Interface: Typer CLI, running on a laptop or Raspberry Pi&lt;/p&gt;

&lt;p&gt;Clue selection is rule-based, using a bundled seasonal plant dataset and the frost date. The LLM only phrases the clues. Every model sits behind one adapter interface, so you can swap backends in config.toml without touching app code.&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
It &lt;em&gt;works offline&lt;/em&gt;. Trails often have no signal, and nothing calls a remote API.&lt;br&gt;
Your data stays with you. Photos of places and voice notes never leave the device.&lt;br&gt;
It costs nothing to run. There are no per-request fees, so you can play all season.&lt;br&gt;
The models are swappable. I can try different vision models without rewriting the app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Agent Session&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built Leaf Hunt in Cursor’s Agent mode, one step at a time, reviewing each stage before moving on. The session is saved with DevRelay and embedded below.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>hacktoberfest</category>
      <category>powerapps</category>
    </item>
    <item>
      <title>The Database Model That Changed My Mental Model</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Mon, 14 Sep 2026 15:32:06 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/the-database-model-that-changed-my-mental-model-3d14</link>
      <guid>https://dev.to/parnita_singh_73778510977/the-database-model-that-changed-my-mental-model-3d14</guid>
      <description>&lt;p&gt;Coming from Web2, I initially pictured a blockchain as something closer to a database with tables, rows, and a backend controlling everything.&lt;/p&gt;

&lt;p&gt;Solana made my simple one thought perspective to somehing totally different a new feild, upcoming future, igniting new ideas.&lt;/p&gt;

&lt;p&gt;On Solana, everything is an account. Wallets, programs, and data storage all use the same account model. Every account has five fields:&lt;/p&gt;

&lt;p&gt;lamports - its SOL balance mainly used in backend by the computer, where 1 SOL = 1 billion lamports&lt;br&gt;
data -  a byte array containing its state&lt;br&gt;
owner - the program that controls the account&lt;br&gt;
executable -  whether the account contains a program&lt;br&gt;
rent_epoch -  a deprecated field&lt;/p&gt;

&lt;p&gt;The owner field is especially important for security. Only the owning program can modify an account's data or debit its lamports. Other users can still credit lamports to a writable account.&lt;/p&gt;

&lt;p&gt;The concept that surprised me most was that programs don't store their own state.&lt;/p&gt;

&lt;p&gt;Coming from Web2, I tend to think of application code and its database as one connected system. On Solana, programs are stateless code accounts, while their state lives in separate data accounts.&lt;/p&gt;

&lt;p&gt;A useful analogy for me is:&lt;/p&gt;

&lt;p&gt;Program = web server and Data accounts = database&lt;/p&gt;

&lt;p&gt;Another concept I learned is rent exemption: accounts need a minimum lamport balance based on their data size to remain on-chain.&lt;/p&gt;

&lt;p&gt;The more I learn, the more Solana's account model starts to feel less mysterious and more like a completely different way of designing applications.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>beginners</category>
    </item>
    <item>
      <title>From HTTP Requests to Atomic On-Chain Transactions</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Mon, 17 Aug 2026 17:12:15 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/from-http-requests-to-atomic-on-chain-transactions-3517</link>
      <guid>https://dev.to/parnita_singh_73778510977/from-http-requests-to-atomic-on-chain-transactions-3517</guid>
      <description>&lt;p&gt;Coming from Web2, I initially thought of a Solana transaction like an API request:&lt;/p&gt;

&lt;p&gt;send request -&amp;gt; server processes it -&amp;gt;  get response&lt;/p&gt;

&lt;p&gt;But after working with Solana transactions, I realized the mental model is quite different.&lt;/p&gt;

&lt;p&gt;A Solana transaction is a package containing things like signatures, instructions, accounts, and a recent blockhash. The transaction is signed before it can be accepted, and the instructions describe exactly what the network should execute.&lt;/p&gt;

&lt;p&gt;One thing that really clicked for me was the idea of atomicity.&lt;/p&gt;

&lt;p&gt;With an ordinary API, I might send a request to my backend and then update a database. There can be multiple steps involved.&lt;/p&gt;

&lt;p&gt;With a Solana transaction, multiple instructions can be included together, and they are executed atomically. The transaction either succeeds as a whole or fails.&lt;/p&gt;

&lt;p&gt;I also learned that transactions aren't valid forever. They use a recent blockhash, which gives them a limited validity window. That was very different from the API requests I'm used to working with.&lt;/p&gt;

&lt;p&gt;During my experiments, I also ran into a 429 Too Many Requests error while polling transaction status. That was a useful reminder that even when the blockchain is decentralized, my application still depends on RPC infrastructure to communicate with it.&lt;/p&gt;

&lt;p&gt;The biggest takeaway from Day 20:&lt;/p&gt;

&lt;p&gt;A Solana transaction isn't simply a request to a server. It's a signed set of instructions that asks the network to make an atomic state change.&lt;/p&gt;

&lt;p&gt;That shift in thinking is making Solana development start to feel much clearer.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>2 weeks in Solana, here what I learned !</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Tue, 11 Aug 2026 13:22:10 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/2-weeks-in-solana-here-what-i-learned--56m7</link>
      <guid>https://dev.to/parnita_singh_73778510977/2-weeks-in-solana-here-what-i-learned--56m7</guid>
      <description>&lt;p&gt;Two Weeks of Solana, here a look into my week !&lt;/p&gt;

&lt;p&gt;I’m now 14 days into #100DaysOfSolana, and looking back at the first two weeks, I realize how much my understanding of Solana has changed.&lt;/p&gt;

&lt;p&gt;When I started, I mostly thought of a wallet as a place where you keep cryptocurrency. Now I understand that a wallet is built around a cryptographic keypair—the public key represents your on-chain identity, while the private key proves ownership and the part of what to share and what I can do with my keys and info. &lt;/p&gt;

&lt;p&gt;One of the biggest surprises for me was how much blockchain data is publicly accessible. Working with Solana's RPC calls made the idea of a “public database” feel real. you know at first I was like what the hell if everyone can know about me from my keypair something is wrongh here, but soom realised But then I realized that my public key isn't my secret. It's more like my public identity on the blockchain. The thing that actually proves ownership is my private key, and that's the part that must never be shared.&lt;/p&gt;

&lt;p&gt;That was probably one of the biggest mindset shifts for me during these first two weeks. &lt;br&gt;
soon I could query balances, accounts, and transaction history directly instead of going through a private backend like I normally would in Web2.&lt;/p&gt;

&lt;p&gt;The comparison between traditional databases and Solana accounts also helped things click. Tables and rows became accounts, SQL queries became RPC calls, and writes happen through signed transactions.&lt;/p&gt;

&lt;p&gt;But I'm definitely not at the point where everything makes sense yet. 😅 I’m still trying to understand the deeper relationship between accounts, programs, transactions, and instructions.&lt;/p&gt;

&lt;p&gt;And honestly, that's what makes me excited for the next few weeks.&lt;br&gt;
I started this challenge trying to understand Solana.&lt;br&gt;
well I know I ahve slipped through few days first it was my healtha nd mood swings then I took some days off to blow off the steam and the part of how much I need that :) so no regrets there 😙&lt;br&gt;
Now I'm gonna complete this journey &amp;amp; understand how to think in Solana, web 3, blockchain.&lt;/p&gt;

&lt;p&gt;87 days to go! 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  100DaysOfSolana #Solana #Web3 #Blockchain #DEVCommunity #BuildInPublic #MLH
&lt;/h1&gt;

</description>
      <category>web3</category>
      <category>majorleaguehacking</category>
      <category>blockchain</category>
      <category>100daysofsolana</category>
    </item>
    <item>
      <title>My First Week with Solana Wallets</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Fri, 24 Jul 2026 18:47:52 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/my-first-week-with-solana-wallets-3l45</link>
      <guid>https://dev.to/parnita_singh_73778510977/my-first-week-with-solana-wallets-3l45</guid>
      <description>&lt;p&gt;Well I guess it is a week now,I really don't know how quickly it passed and it is my 7th day of #100DaysOfSolana. I had really no idea when I started at that time to me, I thought like, "I guess it seems intersting and it would come in use after completing SHE fi S'16 "and now one moment that stood out was connecting my Phantom wallet to a web application I built and The biggest mindset shift for me was realizing that a wallet isn't just a place to store SOL-it's my on-chain identity. Coming from Web2, where identity revolves around emails and passwords, learning that a cryptographic keypair can represent ownership across an entire blockchain ecosystem was fascinating.&lt;/p&gt;

&lt;p&gt;Along the way, I generated wallets programmatically, built a persistent wallet, explored SOL and lamports, connected browser wallets to a dApp, compared different wallet types, and learned how public and private keys work together to secure digital ownership.&lt;/p&gt;

&lt;p&gt;here are some stuff i clicked througout this week&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%2F7di4d8w99tt22dgb5zyu.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%2F7di4d8w99tt22dgb5zyu.png" alt=" " width="800" height="586"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7hicfgimwedfr4c8skbf.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%2F7hicfgimwedfr4c8skbf.png" alt=" " width="800" height="635"&gt;&lt;/a&gt;et interact with the Solana Devnet.&lt;/p&gt;

&lt;p&gt;I'm excited to keep building and dive deeper into transactions, programs, and smart contracts in the coming weeks.&lt;/p&gt;

&lt;p&gt;@solana_devs&lt;br&gt;
93 days to go! 🚀&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>solana</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>From Usernames to Keypairs: A Primer on Identity on Solana</title>
      <dc:creator>Parnita Singh</dc:creator>
      <pubDate>Thu, 23 Jul 2026 16:20:12 +0000</pubDate>
      <link>https://dev.to/parnita_singh_73778510977/from-usernames-to-keypairs-a-primer-on-identity-on-solana-13c6</link>
      <guid>https://dev.to/parnita_singh_73778510977/from-usernames-to-keypairs-a-primer-on-identity-on-solana-13c6</guid>
      <description>&lt;p&gt;As a Web2 developer, I always thought of identity as an email, username and password. Each app had its own login system and companies controlled my account access.&lt;/p&gt;

&lt;p&gt;Learning Solana totally changed that perspective.&lt;/p&gt;

&lt;p&gt;On Solana, your identity begins with a cryptographic keypair. Your public key is your wallet address, which is visible to everyone, and your private key is used to prove ownership when signing transactions. No usernames, no passwords, no central database controlling your account.&lt;/p&gt;

&lt;p&gt;The best analogy I could draw was SSH keys. You prove your identity to a server with a private key, and Solana does the same for your wallet to the blockchain. &lt;/p&gt;

&lt;p&gt;The difference is that you authenticate with the entire network instead of a single server.&lt;/p&gt;

&lt;p&gt;Another realisation was that a wallet is more than just a place to hold SOL. The same identity works across decentralised apps, so you can own tokens, interact with smart contracts, and participate in governance without creating a new account for every platform.&lt;/p&gt;

&lt;p&gt;There is no “Forgot Password” option here, unlike Web2. If you lose your private key or recovery phrase, there is no company that can restore access for you. That is all your responsibility and control&lt;/p&gt;

&lt;p&gt;This shift from company-controlled identity to cryptographic ownership has been one of the most interesting concepts I’ve learned so far in my #100DaysOfSolana journey. It totally changes my perspective on digital identity and ownership.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>solana</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
