<?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: Mr M</title>
    <description>The latest articles on DEV Community by Mr M (@mr_m_262f9c3501e842103601).</description>
    <link>https://dev.to/mr_m_262f9c3501e842103601</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2141993%2Fb404c0f9-ed62-47b3-8e65-9a41e8b643c2.jpg</url>
      <title>DEV Community: Mr M</title>
      <link>https://dev.to/mr_m_262f9c3501e842103601</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mr_m_262f9c3501e842103601"/>
    <language>en</language>
    <item>
      <title>Introducing metadata.party: your free and open source metadata API</title>
      <dc:creator>Mr M</dc:creator>
      <pubDate>Mon, 03 Nov 2025 05:00:37 +0000</pubDate>
      <link>https://dev.to/mr_m_262f9c3501e842103601/introducing-metadataparty-your-free-and-open-source-metadata-api-lp2</link>
      <guid>https://dev.to/mr_m_262f9c3501e842103601/introducing-metadataparty-your-free-and-open-source-metadata-api-lp2</guid>
      <description>&lt;p&gt;Easily grab page titles, descriptions, images, Open Graph, and Twitter Card data from any website.&lt;/p&gt;

&lt;p&gt;Why metadata matters&lt;br&gt;
Every time a link gets shared, a tiny piece of metadata decides what shows up: the title, image, and description that people see before they even click. It’s a small detail that shapes how your content looks across social feeds, chat apps, and search results.&lt;/p&gt;

&lt;p&gt;But actually extracting that metadata at scale is… annoying. Some sites use og:title, others rely on twitter:description, and plenty forget both. You end up juggling custom scrapers, inconsistent markup, and endless exceptions.&lt;/p&gt;

&lt;p&gt;So instead of building yet another brittle parser, what if there was one simple, reliable service that just worked?&lt;/p&gt;

&lt;p&gt;Meet metadata.party&lt;br&gt;
metadata.party is a free and open source API for extracting metadata from URLs. It’s built in Go for speed, designed to be easy to deploy, and ready to use out of the box.&lt;/p&gt;

&lt;p&gt;You can run it locally, host it yourself, or use the hosted free of charge API (rate limited).&lt;/p&gt;

&lt;p&gt;Key features&lt;br&gt;
Extracts title, description, images, and favicon automatically.&lt;br&gt;
Reads Open Graph and Twitter Card tags by default.&lt;br&gt;
Processes multiple URLs in one go, handling up to five concurrently.&lt;br&gt;
Includes rate limiting, timeout protection, and SSRF safeguards.&lt;br&gt;
Free, open source, and production-ready.&lt;br&gt;
Basically, metadata.party does all the hard work so you can focus on building cool things instead of wrestling with HTML tags.&lt;/p&gt;

&lt;p&gt;Why this project exists&lt;br&gt;
Every dev team I’ve worked with has run into the same problem: needing link previews for their app, and then realizing there’s no simple, reliable way to get them. You start with a quick script, then realize half your URLs break, and suddenly you’re debugging weird meta tags for days.&lt;/p&gt;

&lt;p&gt;metadata.party was created to solve that once and for all. It’s a small, focused service that just extracts metadata consistently. Nothing fancy, no external dependencies, no paywalls.&lt;/p&gt;

&lt;p&gt;Getting started&lt;br&gt;
You can get up and running in a few minutes.&lt;/p&gt;

&lt;p&gt;Free hosted API: &lt;a href="https://api.metadata.party/extract" rel="noopener noreferrer"&gt;https://api.metadata.party/extract&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Local install (Go 1.21+)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/BradPerbs/metadata.party
cd metadata.party
go mod download
go run main.go
By default, it runs at http://localhost:8759.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Try it out&lt;br&gt;
Send a simple POST request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X POST http://localhost:8759/extract \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll get a response like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "title": "Example Domain",
  "description": "",
  "images": [],
  "favicon": "https://example.com/favicon.ico",
  "domain": "example.com",
  "url": "https://example.com"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to extract multiple links at once?\&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X POST http://localhost:8759/extract \
  -H "Content-Type: application/json" \
  -d '{
         "urls": [
            "https://site1.com",
            "https://site2.com/article"
         ]
      }'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;t’ll return all results in one batch, processed concurrently for speed.&lt;/p&gt;

&lt;p&gt;Docker support&lt;br&gt;
If you’d rather use Docker, there’s a ready-to-go setup. You can configure environment variables like PORT, ALLOWED_ORIGIN, and API_KEY to fit your deployment. Everything’s documented in the GitHub repo.&lt;/p&gt;

&lt;p&gt;Use cases&lt;br&gt;
metadata.party fits perfectly when you need:&lt;/p&gt;

&lt;p&gt;Link previews for chat apps, dashboards, newsletters, or embeds.&lt;br&gt;
SEO tools that bulk-extract metadata from pages.&lt;br&gt;
Browser clients that fetch data directly (with proper CORS).&lt;br&gt;
Self-hosted setups where privacy and control matter.&lt;br&gt;
Basically, if your app ever shows a URL preview, metadata.party saves you hours of scraping headaches.&lt;/p&gt;

&lt;p&gt;Why it stands out&lt;br&gt;
Fast thanks to Go’s concurrency model.&lt;br&gt;
Simple with a single, clear API endpoint.&lt;br&gt;
Secure with rate limits and SSRF protection built in.&lt;br&gt;
Extensible because it’s open source and MIT licensed.&lt;br&gt;
Free forever.&lt;br&gt;
What’s next&lt;br&gt;
The current version already covers the essentials, but there’s more on the roadmap:&lt;/p&gt;

&lt;p&gt;Optional caching for repeated requests.&lt;br&gt;
Support for structured metadata like JSON-LD or Microdata.&lt;br&gt;
Monitoring endpoints for metrics.&lt;br&gt;
A lightweight web interface to test URLs visually.&lt;br&gt;
How to contribute&lt;br&gt;
If you like the project, jump in:&lt;/p&gt;

&lt;p&gt;⭐ Star it on GitHub to spread the word.&lt;br&gt;
Report bugs or suggest new features.&lt;br&gt;
Open pull requests for parsing improvements or docs.&lt;br&gt;
Share feedback about your use case.&lt;br&gt;
Every contribution helps shape where metadata.party goes next.&lt;/p&gt;

&lt;p&gt;Ready to try it?&lt;br&gt;
Head to the repo: github.com/BradPerbs/metadata.party&lt;/p&gt;

&lt;p&gt;Spin it up, point it at a few URLs, and see how much metadata.party can simplify your next project.&lt;/p&gt;

&lt;p&gt;Because honestly, extracting metadata shouldn’t be this hard. 🎉&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>programming</category>
      <category>discuss</category>
      <category>api</category>
    </item>
    <item>
      <title>Introducing Xiro.Chat: The AI-Powered Crisp Chatbot for Smarter Customer Support</title>
      <dc:creator>Mr M</dc:creator>
      <pubDate>Thu, 27 Mar 2025 02:31:55 +0000</pubDate>
      <link>https://dev.to/mr_m_262f9c3501e842103601/introducing-xirochat-the-ai-powered-crisp-chatbot-for-smarter-customer-support-5e57</link>
      <guid>https://dev.to/mr_m_262f9c3501e842103601/introducing-xirochat-the-ai-powered-crisp-chatbot-for-smarter-customer-support-5e57</guid>
      <description>&lt;p&gt;Customer support is evolving, and businesses need smart solutions to keep up with growing demands. If you’re using Crisp LiveChat, you know how essential real-time communication is. But what if you could automate conversations, reduce response times, and improve customer satisfaction effortlessly? Meet Xiro.Chat, an AI-driven Crisp chatbot designed to handle customer queries like a pro.&lt;/p&gt;

&lt;p&gt;🚀 What is Xiro.Chat?&lt;/p&gt;

&lt;p&gt;Xiro.Chat is an AI chatbot built specifically for Crisp LiveChat, helping businesses automate customer support while maintaining a human-like experience. Whether you run an online store, a SaaS business, or a service-based company, Xiro.Chat ensures your customers receive instant, accurate responses 24/7.&lt;/p&gt;

&lt;p&gt;🔥 Why Choose Xiro.Chat as Your Crisp AI Bot?&lt;/p&gt;

&lt;p&gt;🤖 AI-Powered Automation – Xiro.Chat intelligently responds to customer inquiries, reducing the need for human intervention.&lt;/p&gt;

&lt;p&gt;⚡ Seamless Crisp LiveChat Integration – No complex setup. Just connect and start automating.&lt;/p&gt;

&lt;p&gt;⏳ 24/7 Availability – Never miss a customer query, even after hours.&lt;/p&gt;

&lt;p&gt;🎯 Customizable Responses – Tailor the chatbot’s responses to fit your business needs.&lt;/p&gt;

&lt;p&gt;💰 Free Plan Available – Start with up to 60 messages per month at no cost.&lt;/p&gt;

&lt;p&gt;📌 How to Get Started&lt;/p&gt;

&lt;p&gt;Sign up at Xiro.Chat&lt;/p&gt;

&lt;p&gt;Connect to your Crisp LiveChat account&lt;/p&gt;

&lt;p&gt;Customize responses to fit your business&lt;/p&gt;

&lt;p&gt;Launch and automate your customer interactions&lt;/p&gt;

&lt;p&gt;🔗 Try Xiro.Chat Today&lt;/p&gt;

&lt;p&gt;AI chatbots are revolutionizing the way businesses interact with customers. With Xiro.Chat, you get a powerful Crisp AI bot that boosts efficiency, enhances support, and keeps customers engaged round the clock.&lt;/p&gt;

&lt;p&gt;Ready to supercharge your customer support? Sign up for free at Xiro.Chat and experience the future of AI-driven live chat!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>livechat</category>
      <category>machinelearning</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
