<?xml version="1.0" encoding="UTF-8"?>
<!--
  AI-friendly sitemap. Extends the standard sitemap.xml (loc/changefreq/priority)
  with per-URL title, summary, and type so LLM crawlers and agents can decide
  relevance without fetching every page, plus direct pointers to the
  machine-readable resources (llms.txt, /ai/*.json, JSON-LD).

  Generated by src/blog.js. Non-blog entries live in src/site-content.js.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:llm="https://getfedo.com/schemas/sitemap-llm/1.0">

  <url>
    <loc>https://getfedo.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
    <llm:title>fedo - In-app feedback SDK for iOS, Android &amp; Flutter</llm:title>
    <llm:summary>In-app feedback SDK for mobile apps. One line of code adds a feedback screen with feature request voting, bug reporting, comment threads, and a roadmap dashboard. Android SDK available now; iOS, Flutter, and React Native coming soon.</llm:summary>
    <llm:type>product_landing</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/</llm:jsonld>
      <llm:json>https://getfedo.com/ai/product.json</llm:json>
      <llm:json>https://getfedo.com/ai/pricing.json</llm:json>
      <llm:json>https://getfedo.com/ai/faq.json</llm:json>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/alternatives</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <llm:title>fedo compared to other feedback tools — Canny, UserVoice, Gleap</llm:title>
    <llm:summary>Hub page for fedo's competitor comparisons. Links the Canny, UserVoice and Gleap write-ups, carries a four-way at-a-glance table (product shape, native mobile SDK, anonymous voting, free plan, paid entry price, billing basis, maturity), states plainly what fedo is not (no web portal, support desk, live chat, survey tool or enterprise VoC platform) and that Android is the only shipped platform. Also names the tools without a full write-up: Featurebase, Frill, Nolt, Features.Vote, User Orient, Luciq (formerly Instabug), Shake, and app store reviews.</llm:summary>
    <llm:type>comparison_hub</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/alternatives/canny</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <llm:title>Canny alternative for mobile apps — fedo</llm:title>
    <llm:summary>Comparison of fedo against Canny for mobile feedback. Canny is a web feedback portal whose mobile path is a WKWebView loading webview.canny.io and requires SSO; every user must be identified before posting, voting, or commenting, and billing is per tracked user (25 free, from $79/month billed yearly at 100+). fedo is a native Android SDK where an anonymous user is created automatically and billing is per app. Also states where Canny is the better choice: public web boards, web products, iOS today, integrations, changelog, SSO, and vendor track record.</llm:summary>
    <llm:type>comparison</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/alternatives/uservoice</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <llm:title>UserVoice alternative for mobile apps — fedo</llm:title>
    <llm:summary>Comparison of fedo against UserVoice for mobile feedback. UserVoice archived both its iOS and Android SDKs on 25 July 2019 with the notice "no longer actively maintained", leaving a hosted web portal as the mobile path. UserVoice publishes no prices: plans scale with feedback volume, tools, and integrations, never by seat, and the 30-day trial starts with a demo booking. fedo is a maintained Android SDK with a free self-serve tier. Also states where UserVoice wins: revenue-weighted prioritisation, CRM and helpdesk ingestion, SSO, compliance, web coverage, and track record.</llm:summary>
    <llm:type>comparison</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/alternatives/gleap</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <llm:title>Gleap alternative for in-app feedback and voting — fedo</llm:title>
    <llm:summary>Comparison of fedo against Gleap. Unlike Canny and UserVoice, Gleap ships real native SDKs for iOS, Android, React Native, Expo and Flutter, so this is a comparison of scope rather than delivery. Gleap is a customer-support suite (AI agent, live chat, knowledge base, bug reports carrying annotated screenshots, console logs, network logs and session replay) with a roadmap module; fedo is only the feedback, voting and roadmap part. Gleap has no free plan and starts at $49/month billed yearly ($59 monthly) for 1 seat and 1 project, Team $149/month, Pro $299/month, Enterprise from $999/month, with AI billed separately by tokens. fedo Starter is free on one app. The page states plainly that Gleap is the more capable product.</llm:summary>
    <llm:type>comparison</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/privacy</loc>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
    <llm:title>Privacy Policy — fedo</llm:title>
    <llm:summary>fedo privacy policy. Collects only what users explicitly submit as feedback; no passive tracking, fingerprinting, or ad-related data collection.</llm:summary>
    <llm:type>legal</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/terms</loc>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
    <llm:title>Terms of Service — fedo</llm:title>
    <llm:summary>fedo terms of service - plain-language terms for using fedo.</llm:summary>
    <llm:type>legal</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/refund-policy</loc>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
    <llm:title>Refund &amp; Cancellation Policy — fedo</llm:title>
    <llm:summary>fedo refund and cancellation policy. Paddle.com is the Merchant of Record and issues refunds; subscriptions can be cancelled anytime from the billing portal and run to the end of the paid period. Upgrades are prorated immediately, downgrades apply at renewal, and early access pricing is locked at the rate you signed up at.</llm:summary>
    <llm:type>legal</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/llms.txt</loc>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
    <llm:title>llms.txt</llm:title>
    <llm:summary>Plaintext overview of fedo for LLMs: what it does, integration steps, supported platforms, pricing, and links.</llm:summary>
    <llm:type>ai_context</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/blog/feed.xml</loc>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
    <llm:title>fedo blog RSS feed</llm:title>
    <llm:summary>Full-text RSS 2.0 feed for the fedo engineering blog. Every item carries the complete post body inline in content:encoded, plus author, categories, and publication date, so the whole blog can be ingested in a single request without fetching each page.</llm:summary>
    <llm:type>feed</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/ai/index.json</loc>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
    <llm:title>fedo AI data manifest</llm:title>
    <llm:summary>Manifest listing fedo's structured JSON resources (product, pricing, FAQ) for AI agents.</llm:summary>
    <llm:type>ai_data</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/blog</loc>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
    <llm:title>fedo blog — engineering the feedback SDK</llm:title>
    <llm:summary>Engineering blog for fedo, the in-app feedback SDK: architecture deep dives, SDK release notes, and lessons learned building feature request voting, bug reporting, and roadmaps for mobile apps.</llm:summary>
    <llm:type>blog_index</llm:type>
  </url>

  <url>
    <loc>https://getfedo.com/blog/in-app-feedback-vs-portals</loc>
    <lastmod>2026-09-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <llm:title>In-app feedback beats a feedback portal</llm:title>
    <llm:summary>Why collecting mobile feedback inside the app outperforms an external portal such as Canny or UserVoice, and why app store reviews are the worst fallback: the four drop-off points (context switch, navigation, account creation, recall), what voting needs to work, and an explicit note that the argument is from mechanism rather than measured results.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/in-app-feedback-vs-portals</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/in-app-feedback-vs-portals.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/android-sdk-integration</loc>
    <lastmod>2026-08-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>Add in-app feedback to an Android app in four calls</llm:title>
    <llm:summary>Step-by-step Android integration for the fedo SDK 0.3.0: the Maven Central dependency com.getfedo:sdk-android, Fedo.initialize, the setUserID/setUserEmail/setUserProperty identity calls, and the FeedbacksScreen() Jetpack Compose composable. Covers the three common integration mistakes and the SDK's current lack of retry/offline support.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/android-sdk-integration</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/android-sdk-integration.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/anonymous-feedback-identity</loc>
    <lastmod>2026-08-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>Migrating anonymous feedback to real accounts</llm:title>
    <llm:summary>How the fedo Android SDK gives every user an identity without requiring an account: lazily created anonymous users cached on device, one-way migration of feedback, comments, and votes to the authenticated user on setUserID, why logout creates a fresh anonymous user, and the serial queue's lack of retry.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/anonymous-feedback-identity</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/anonymous-feedback-identity.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/roadmap-statuses</loc>
    <lastmod>2026-08-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>Five statuses are enough for a public roadmap</llm:title>
    <llm:summary>In Review, Planned, In Progress, Shipped, Closed. What each one promises the person who asked, and why the fifth had to be a bucket rather than a verdict.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/roadmap-statuses</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/roadmap-statuses.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/board-icon</loc>
    <lastmod>2026-08-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>Image uploads on a Go backend: R2 and orphan cleanup</llm:title>
    <llm:summary>Building board icon uploads on a Go backend with Cloudflare R2: bucket layout keyed by icon id to sidestep cache invalidation, downscale-only resizing to 512/192/64 from a 1024 master, orphan cleanup, and rate limiting.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/board-icon</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/board-icon.md</llm:markdown>
    </llm:structured_data>
  </url>

</urlset>
