<?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: PARTH BIDARI</title>
    <description>The latest articles on DEV Community by PARTH BIDARI (@parth_bidari).</description>
    <link>https://dev.to/parth_bidari</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%2F2113698%2Ff9fc55f2-1527-4a98-986c-01b5651af713.png</url>
      <title>DEV Community: PARTH BIDARI</title>
      <link>https://dev.to/parth_bidari</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parth_bidari"/>
    <language>en</language>
    <item>
      <title>Pawelle: a private pet companion for my friend's cat, powered by a local open model</title>
      <dc:creator>PARTH BIDARI</dc:creator>
      <pubDate>Mon, 05 Oct 2026 00:03:35 +0000</pubDate>
      <link>https://dev.to/parth_bidari/pawelle-a-private-pet-companion-for-my-friends-cat-powered-by-a-local-open-model-4ni6</link>
      <guid>https://dev.to/parth_bidari/pawelle-a-private-pet-companion-for-my-friends-cat-powered-by-a-local-open-model-4ni6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Pawelle is a small app that helps my friend Shontu look after her cat, Pinky. Each day Shontu taps through a quick check-in (mood, appetite, energy, play, litter box), and Pawelle writes a short, friendly plan for food and play. It also keeps a diary-style history, so she can see how Pinky has been lately.&lt;/p&gt;

&lt;p&gt;The plan is written by a small open-weight AI running on her own computer. There's no account and no cloud, and Pinky's details and photos stay on the machine.&lt;/p&gt;

&lt;p&gt;I wanted something simple she would actually use every day. After trying it, this is what Shontu told me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;She loved the app and how easy it is to use. She can now keep track of Pinky in a diary-like way, and the AI meal plan is giving her much better ideas on how to look after Pinky. She's going to use it every day.&lt;/p&gt;
&lt;/blockquote&gt;

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

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

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Parth-G27" rel="noopener noreferrer"&gt;
        Parth-G27
      &lt;/a&gt; / &lt;a href="https://github.com/Parth-G27/pawelle" rel="noopener noreferrer"&gt;
        pawelle
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Local-first pet wellbeing app: daily plans from an on-device open model
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Pawelle 🐾&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A gentle, private pet-wellbeing companion that runs entirely on your own computer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tell Pawelle about your cat, check in once a day, and get a short, kind plan for food and play, written by a small open-weight AI model running locally. No account, no cloud, no data leaving your laptop.&lt;/p&gt;
&lt;p&gt;Pawelle was built for a friend, &lt;strong&gt;Shontu&lt;/strong&gt;, and her cat &lt;strong&gt;Pinky&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pawelle gives general wellbeing suggestions. &lt;strong&gt;It is not a vet&lt;/strong&gt; and never diagnoses or recommends medicine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cat profile&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A three-step onboarding (only the name is required), up to two photos, allergies and conditions, and a "Pawelle knows Pinky 65%" nudge to add more.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Daily check-in&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mood, appetite, energy, play and litter box in a few taps, or one tap for "just like usual".&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Today's plan&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One button asks a local AI model for a short plan: meals, play ideas and things to&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Parth-G27/pawelle" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;It's MIT licensed. To run it, install Ollama, run &lt;code&gt;ollama pull gemma3:1b&lt;/code&gt;, then &lt;code&gt;npm install&lt;/code&gt; and &lt;code&gt;npm run dev&lt;/code&gt;. The README has the details.&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%2F1fq01nfi9z004gkfvfpc.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%2F1fq01nfi9z004gkfvfpc.png" alt=" " width="800" height="574"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The front end is React with Vite and Tailwind. The back end is Express with SQLite. The AI is &lt;strong&gt;Gemma 3 1B&lt;/strong&gt;, an open-weight model that runs locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I started with the model's weak spot. When I asked it for an unusual pasta recipe, it invented a dish and fake links, with total confidence. A pet app can't do that, so I kept the model on a short leash:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Safety rules run first, in plain code.&lt;/strong&gt; Two days of "not eating", or a danger word like chocolate or lilies in a note, skips the model entirely and shows a calm "please contact your vet" banner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The model has a tiny job.&lt;/strong&gt; It writes one friendly sentence and picks meal times and play ideas from fixed lists. The app writes the rest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Everything it returns is checked.&lt;/strong&gt; Allergens, medicine words, made-up numbers and links are rejected. After one retry, you get a clearly labelled basic plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free-text notes never reach the model&lt;/strong&gt;, so they can't be used to steer it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a 24-run test with the real model, all 24 plans were valid, with a median time of about 2.6 seconds.&lt;/p&gt;

&lt;p&gt;I built it spec-first (a short spec, plan and task list for each feature, all in the repo), with an AI coding assistant doing much of the typing.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy.&lt;/strong&gt; A pet's health details and photos never leave the laptop. There's no server to trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No keys, no bills.&lt;/strong&gt; Everything talks to localhost, with no API keys and no cost per request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swap the model with one setting.&lt;/strong&gt; &lt;code&gt;OLLAMA_MODEL&lt;/code&gt; changes it. I picked a tiny model so it runs on any laptop, and a bigger one is a one-line change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I could see and fix what went wrong.&lt;/strong&gt; The prompt, safety rules and allowed options are plain files in the repo, so when the model misbehaved, I tightened them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A closed API would have been quicker to set up, but it would have sent a friend's data away and charged per call. Using a small model also made me build the guardrails, and I think the app is better for it.&lt;/p&gt;

&lt;p&gt;One honest note: Gemma is open-weight under Google's own terms rather than a standard open-source licence. The app itself is MIT.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pawelle runs &lt;strong&gt;Gemma 3 1B&lt;/strong&gt;, Google's open-weight model, locally through Ollama. It's the only AI in the app. Gemma writes the friendly summary of each plan and picks meal times and play ideas, inside a safety harness: red-flag checks run before it, its choices come from fixed lists, and everything it writes is checked afterwards.&lt;/p&gt;

&lt;p&gt;Gemma 3 1B is small enough to run on any laptop, and a bigger Gemma (like 4B) is a one-setting change (&lt;code&gt;OLLAMA_MODEL&lt;/code&gt;). The Ollama client and the prompt are in &lt;a href="https://github.com/Parth-G27/pawelle/blob/main/pawelle-app/server/src/services/ollama.js" rel="noopener noreferrer"&gt;&lt;code&gt;ollama.js&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://github.com/Parth-G27/pawelle/blob/main/pawelle-app/server/src/services/prompts.js" rel="noopener noreferrer"&gt;&lt;code&gt;prompts.js&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
