<?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: Sanja Malovic</title>
    <description>The latest articles on DEV Community by Sanja Malovic (@unjica).</description>
    <link>https://dev.to/unjica</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%2F515078%2F30bc373a-c0c3-4964-916d-9593ef78f921.jpg</url>
      <title>DEV Community: Sanja Malovic</title>
      <link>https://dev.to/unjica</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/unjica"/>
    <language>en</language>
    <item>
      <title>Building Telemetry Tracker: An Open-Source Alternative to Sentry and PostHog</title>
      <dc:creator>Sanja Malovic</dc:creator>
      <pubDate>Sat, 18 Jul 2026 17:44:35 +0000</pubDate>
      <link>https://dev.to/unjica/building-telemetry-tracker-an-open-source-alternative-to-sentry-and-posthog-4jm2</link>
      <guid>https://dev.to/unjica/building-telemetry-tracker-an-open-source-alternative-to-sentry-and-posthog-4jm2</guid>
      <description>&lt;p&gt;For the past few months, I've been spending most of my free time building Telemetry Tracker.&lt;/p&gt;

&lt;p&gt;It started with a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every project I worked on ended up using multiple tools. One for errors. One for analytics. One for releases. One for alerts. Another one for monitoring.&lt;/p&gt;

&lt;p&gt;After a while, I realized I was spending more time jumping between dashboards than actually understanding what was happening inside my applications.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I started building Telemetry Tracker.&lt;/p&gt;

&lt;p&gt;I wanted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;error tracking,&lt;/li&gt;
&lt;li&gt;event analytics,&lt;/li&gt;
&lt;li&gt;session monitoring,&lt;/li&gt;
&lt;li&gt;release tracking,&lt;/li&gt;
&lt;li&gt;alerting,&lt;/li&gt;
&lt;li&gt;and organizations and projects management,
all in one place.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  What is Telemetry Tracker?
&lt;/h2&gt;

&lt;p&gt;Telemetry Tracker is an open-source observability platform for modern applications.&lt;/p&gt;

&lt;p&gt;It currently supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web applications&lt;/li&gt;
&lt;li&gt;React Native applications&lt;/li&gt;
&lt;li&gt;Backend services&lt;/li&gt;
&lt;li&gt;Self-hosted deployments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Current features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error tracking&lt;/li&gt;
&lt;li&gt;Event analytics&lt;/li&gt;
&lt;li&gt;Session monitoring&lt;/li&gt;
&lt;li&gt;Release tracking&lt;/li&gt;
&lt;li&gt;Alert rules&lt;/li&gt;
&lt;li&gt;Organization &amp;amp; project management&lt;/li&gt;
&lt;li&gt;Usage analytics&lt;/li&gt;
&lt;li&gt;REST APIs&lt;/li&gt;
&lt;li&gt;SDKs for multiple platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Open Source?
&lt;/h2&gt;

&lt;p&gt;Open source wasn't an afterthought. It was one of the goals from day one.&lt;/p&gt;

&lt;p&gt;I wanted developers to be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;self-host everything,&lt;/li&gt;
&lt;li&gt;inspect the source code,&lt;/li&gt;
&lt;li&gt;contribute new features,&lt;/li&gt;
&lt;li&gt;and have an alternative that doesn't require stitching together multiple services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;Telemetry Tracker is still in its early days. There is a lot left to build, but that's also what makes building it exciting.&lt;/p&gt;

&lt;p&gt;Some of the upcoming features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notifications&lt;/li&gt;
&lt;li&gt;Release Health dashboards&lt;/li&gt;
&lt;li&gt;Search capabilities&lt;/li&gt;
&lt;li&gt;Performance monitoring&lt;/li&gt;
&lt;li&gt;Compare periods&lt;/li&gt;
&lt;li&gt;AI-powered release intelligence&lt;/li&gt;
&lt;li&gt;Custom PII scrubbing rules&lt;/li&gt;
&lt;li&gt;Export capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Building in Public
&lt;/h2&gt;

&lt;p&gt;Building an open-source project has been both exciting and frustrating. Some days are spent shipping features, while others are spent writing documentation, reviewing pull requests, or figuring out where to share the project with the community.&lt;/p&gt;

&lt;p&gt;I didn't start this project because I wanted to build another startup.&lt;/p&gt;

&lt;p&gt;I started it because I genuinely enjoy building developer tools.&lt;/p&gt;

&lt;p&gt;Telemetry Tracker began as a side project that solved my own problems and slowly became something much bigger than I originally planned.&lt;/p&gt;

&lt;p&gt;It's also the telemetry platform I use in my own projects, which means I get to experience both sides of building it: as its maintainer and as one of its users.&lt;/p&gt;

&lt;p&gt;Seeing other people open pull requests, submit issues and use it in their own projects has probably been the most rewarding part of building it so far.&lt;/p&gt;

&lt;p&gt;It's still early, but I'm excited to keep building.&lt;/p&gt;

&lt;p&gt;If you're interested in open-source developer tools, observability or self-hosting projects, I'd love to hear your thoughts.&lt;/p&gt;

&lt;p&gt;Whether it's feature ideas, feedback or contributions, every comment helps shape where Telemetry Tracker goes next.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/Telemetry-Tracker/telemetry-tracker" rel="noopener noreferrer"&gt;https://github.com/Telemetry-Tracker/telemetry-tracker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Website:&lt;br&gt;
&lt;a href="https://telemetry-tracker.com" rel="noopener noreferrer"&gt;https://telemetry-tracker.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>monitoring</category>
      <category>webdev</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Building Telemetry Tracker</title>
      <dc:creator>Sanja Malovic</dc:creator>
      <pubDate>Sun, 12 Jul 2026 01:20:32 +0000</pubDate>
      <link>https://dev.to/unjica/building-telemetry-tracker-3h2m</link>
      <guid>https://dev.to/unjica/building-telemetry-tracker-3h2m</guid>
      <description>&lt;p&gt;&lt;strong&gt;A few months ago, I started building something I thought only I would use.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;A few months ago, I started building Telemetry Tracker.&lt;/p&gt;

&lt;p&gt;Honestly, it wasn't supposed to become a product.&lt;/p&gt;

&lt;p&gt;I wanted a place where I could experiment with telemetry, SDKs, dashboards, and backend architecture. I was also getting tired of setting up different analytics and monitoring tools for every side project.&lt;/p&gt;

&lt;p&gt;So I thought... why not build my own?&lt;/p&gt;

&lt;p&gt;At first, it was just for me.&lt;/p&gt;

&lt;p&gt;Then I started using it in more and more projects.&lt;/p&gt;

&lt;p&gt;Eventually, I realized it had become something worth open-sourcing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why another telemetry platform?
&lt;/h2&gt;

&lt;p&gt;I get this question quite a bit.&lt;/p&gt;

&lt;p&gt;There are already great products like Sentry, PostHog, Datadog, and plenty of others.&lt;/p&gt;

&lt;p&gt;I'm not trying to replace them.&lt;/p&gt;

&lt;p&gt;Telemetry Tracker exists because I wanted something that fits the way I like building software.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open source&lt;/li&gt;
&lt;li&gt;Self-hostable&lt;/li&gt;
&lt;li&gt;Easy to integrate&lt;/li&gt;
&lt;li&gt;Built with TypeScript from top to bottom&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, I wanted something I'd actually enjoy maintaining.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does today
&lt;/h2&gt;

&lt;p&gt;Today, Telemetry Tracker supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error tracking&lt;/li&gt;
&lt;li&gt;Product analytics&lt;/li&gt;
&lt;li&gt;Custom events&lt;/li&gt;
&lt;li&gt;Sessions&lt;/li&gt;
&lt;li&gt;Source maps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are official SDKs for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Vue&lt;/li&gt;
&lt;li&gt;Nuxt&lt;/li&gt;
&lt;li&gt;React Native&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;NestJS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's still a long roadmap ahead, but it's already running in several of my own projects every day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The biggest surprise
&lt;/h2&gt;

&lt;p&gt;I thought building the software would take most of my time.&lt;/p&gt;

&lt;p&gt;It didn't.&lt;/p&gt;

&lt;p&gt;Writing the code is actually the fun part.&lt;/p&gt;

&lt;p&gt;The part I underestimated was everything around it.&lt;/p&gt;

&lt;p&gt;Writing documentation.&lt;/p&gt;

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

&lt;p&gt;Keeping GitHub organized.&lt;/p&gt;

&lt;p&gt;Writing release notes.&lt;/p&gt;

&lt;p&gt;Building the website.&lt;/p&gt;

&lt;p&gt;Answering questions.&lt;/p&gt;

&lt;p&gt;I probably spend almost as much time outside my editor as I do inside it now.&lt;/p&gt;

&lt;p&gt;Maintaining an open-source project is a completely different skill from building one.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Open source has been the best part
&lt;/h2&gt;

&lt;p&gt;One of my favorite moments was getting the first pull request from someone I'd never spoken to before.&lt;/p&gt;

&lt;p&gt;Then another.&lt;/p&gt;

&lt;p&gt;Someone translated the README into German.&lt;/p&gt;

&lt;p&gt;Someone else improved the GitHub Action for source map uploads.&lt;/p&gt;

&lt;p&gt;Those are small contributions, but they make the project feel alive.&lt;/p&gt;

&lt;p&gt;That's something I never really experienced with private side projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;There's still plenty I want to build.&lt;/p&gt;

&lt;p&gt;Performance Monitoring is the next big milestone.&lt;/p&gt;

&lt;p&gt;After that, I want to add alerts, session replay, and continue improving the developer experience.&lt;/p&gt;

&lt;p&gt;I'm sure a lot will change along the way.&lt;/p&gt;

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




&lt;p&gt;If you'd like to check it out, I'd genuinely love to hear what you think.&lt;/p&gt;

&lt;p&gt;Whether it's feedback, criticism, or feature ideas—I'm all ears.&lt;/p&gt;

&lt;p&gt;⭐ &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Telemetry-Tracker/telemetry-tracker" rel="noopener noreferrer"&gt;https://github.com/Telemetry-Tracker/telemetry-tracker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://telemetry-tracker.com" rel="noopener noreferrer"&gt;https://telemetry-tracker.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! 👋&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>I Built an AI-Powered Art Digest That Writes and Illustrates Itself</title>
      <dc:creator>Sanja Malovic</dc:creator>
      <pubDate>Tue, 06 May 2025 11:26:36 +0000</pubDate>
      <link>https://dev.to/unjica/i-built-an-ai-powered-art-digest-that-writes-and-illustrates-itself-494i</link>
      <guid>https://dev.to/unjica/i-built-an-ai-powered-art-digest-that-writes-and-illustrates-itself-494i</guid>
      <description>&lt;h2&gt;
  
  
  I Built an AI-Powered Art Digest That Writes and Illustrates Itself
&lt;/h2&gt;

&lt;p&gt;What happens when you combine real-time news, generative AI, and modern art?&lt;/p&gt;

&lt;p&gt;You get &lt;a href="https://unjica.com" rel="noopener noreferrer"&gt;Unjica&lt;/a&gt; — a living, breathing editorial that curates and reimagines contemporary art stories using OpenAI and custom code.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why I Built It
&lt;/h2&gt;

&lt;p&gt;As a developer and art enthusiast, I wanted to create something that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keeps up with the fast-moving world of art and exhibitions,&lt;/li&gt;
&lt;li&gt;Feels editorial (not robotic),&lt;/li&gt;
&lt;li&gt;Looks beautiful, like a curated magazine,&lt;/li&gt;
&lt;li&gt;And updates itself — daily.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ How It Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js + App Router&lt;/strong&gt;: for structure and speed
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prisma + PostgreSQL&lt;/strong&gt;: to store and filter news
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI (GPT-4o &amp;amp; DALL·E 3)&lt;/strong&gt;: to generate articles and header images
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;R2 Storage&lt;/strong&gt;: to persist DALL·E outputs
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled CRON jobs on Vercel&lt;/strong&gt;: for daily automation
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Markdown content&lt;/strong&gt;: clean, simple, structured
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✨ What Makes It Interesting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Articles sound like real human writers — critical, witty, even poetic.
&lt;/li&gt;
&lt;li&gt;Visuals are generated with painterly prompts (no generic AI mush).
&lt;/li&gt;
&lt;li&gt;It's self-sustaining — I just keep refining it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's a &lt;a href="https://www.unjica.com/art-news/digest/modern-masterpieces-the-muscarelle-museum-of-art-reimagined" rel="noopener noreferrer"&gt;recent post&lt;/a&gt; to give you a taste.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 Challenges
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tuning prompts to avoid generic AI tone
&lt;/li&gt;
&lt;li&gt;Balancing automation with taste
&lt;/li&gt;
&lt;li&gt;Making SEO work with dynamic Open Graph images
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 What’s Next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Integrating artist interviews
&lt;/li&gt;
&lt;li&gt;Letting users vote on which stories should be featured
&lt;/li&gt;
&lt;li&gt;Adding human + AI collaboration tools
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Would love your thoughts — or any feedback on how to make it more useful for creators or art lovers.&lt;/p&gt;

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

</description>
      <category>nextjs</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🚀 Live Chat Support Starter Kit — Open Source!</title>
      <dc:creator>Sanja Malovic</dc:creator>
      <pubDate>Mon, 28 Apr 2025 08:38:28 +0000</pubDate>
      <link>https://dev.to/unjica/live-chat-support-starter-kit-open-source-79h</link>
      <guid>https://dev.to/unjica/live-chat-support-starter-kit-open-source-79h</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Live Chat Support Starter Kit — Open Source!
&lt;/h2&gt;

&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;I’m excited to share something I’ve been building:&lt;br&gt;&lt;br&gt;
a full &lt;strong&gt;live chat support starter kit&lt;/strong&gt; — built with &lt;strong&gt;Next.js App Router&lt;/strong&gt;, &lt;strong&gt;Socket.IO&lt;/strong&gt;, &lt;strong&gt;Zustand&lt;/strong&gt;, and &lt;strong&gt;TailwindCSS&lt;/strong&gt;!&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ What It Does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔴 Real-time messaging between visitor and admin&lt;/li&gt;
&lt;li&gt;👩‍💻 Separate admin and visitor UIs&lt;/li&gt;
&lt;li&gt;💾 Persistence with sessionStorage/localStorage&lt;/li&gt;
&lt;li&gt;🔚 Admin can end conversations, visitor can resume later&lt;/li&gt;
&lt;li&gt;⚡ Deploy-ready: Vercel (frontend) + Railway (backend)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Lightweight, fast, customizable — and open-source!&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://live-chat-support-demo.vercel.app/visitor" rel="noopener noreferrer"&gt;Visitor View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://live-chat-support-demo.vercel.app/admin" rel="noopener noreferrer"&gt;Admin View&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Next.js (App Router), Zustand, TailwindCSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Express.js + Socket.IO&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistence&lt;/strong&gt;: LocalStorage + SessionStorage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Vercel + Railway&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📁 Project Repo
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/unjica/live-chat-support-demo" rel="noopener noreferrer"&gt;GitHub – unjica/live-chat-support-demo&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Why I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted to create a clean starter kit for developers that shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time Socket.IO communication&lt;/li&gt;
&lt;li&gt;Simple yet structured backend architecture&lt;/li&gt;
&lt;li&gt;Lightweight state management with Zustand&lt;/li&gt;
&lt;li&gt;Developer-first deployability (no database needed to start)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 Future Plans
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Database persistence (MongoDB or PostgreSQL)&lt;/li&gt;
&lt;li&gt;Authentication for Admin panel (NextAuth.js)&lt;/li&gt;
&lt;li&gt;Multi-agent support (for multiple admins)&lt;/li&gt;
&lt;li&gt;Typing indicators with avatars&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 How AI Helped
&lt;/h2&gt;

&lt;p&gt;I used AI tools like Cursor and ChatGPT to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Structure the modular backend faster&lt;/li&gt;
&lt;li&gt;Improve Socket.IO error handling&lt;/li&gt;
&lt;li&gt;Draft early versions of the README and documentation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🙌 Feedback Welcome
&lt;/h2&gt;

&lt;p&gt;If you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have ideas 💡&lt;/li&gt;
&lt;li&gt;Want to contribute 🔥&lt;/li&gt;
&lt;li&gt;Find it useful 🌟&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to open an issue, PR, or leave a comment!&lt;br&gt;&lt;br&gt;
Would love to hear your thoughts.&lt;/p&gt;

&lt;p&gt;Thanks for reading! 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  📋 Tags
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
plaintext
#opensource #nextjs #socketio #webdev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>opensource</category>
      <category>nextjs</category>
      <category>socketio</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
