<?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 Android &amp; iOS</llm:title>
    <llm:summary>In-app feedback SDK for mobile apps. Two calls — Fedo.initialize() then open the feedback screen — add feature request voting, bug reporting, comment threads, and a roadmap dashboard. Android and iOS SDKs available now.</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 and iOS are the shipped platforms. 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 and iOS 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, Flutter, 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 alternatives 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 and iOS 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. Gleap ships native SDKs for iOS, Android, React Native, Expo and Flutter, though the widget they open renders web content in a WebView; the main difference is 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. Its Starter plan is $49/month billed yearly ($59 monthly) and covers the AI agent and live chat only; the roadmap module starts at Team $149/month billed yearly ($179 monthly). Pro $299/month and Enterprise from $999/month sit above Team, 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 what users submit, user details the developer sets, and a fixed set of device and app properties the SDK attaches automatically; no behaviour tracking, location, fingerprinting, or advertising identifiers.</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/native-feedback-screens-vs-webview</loc>
    <lastmod>2026-10-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <llm:title>Native feedback screens vs WebView: what users see</llm:title>
    <llm:summary>Engineering comparison of native in-app feedback screens (Jetpack Compose, SwiftUI) with WebView-based feedback widgets (android.webkit.WebView, WKWebView) in mobile apps, framed around what users notice. Covers, with links to Android and Apple documentation: WebView dark mode depends on the page implementing prefers-color-scheme or the app allowing algorithmic darkening; WebKit web content follows Dynamic Type only when its CSS opts in with system font styles such as -apple-system-body; Android WebView does not walk page history on Back by default and WKWebView's swipe-back gesture is off by default; an unhandled WebView renderer crash crashes the Android app (onRenderProcessGone), and WKWebView reports a terminated content process through webViewWebContentProcessDidTerminate; a remote WebView has nothing to show until the page loads. States the case for WebView: one web UI for every platform, and UI fixes without an app release, which is why Canny and Gleap use it. Describes fedo's native approach (Android board reads MaterialTheme colours and typography; iOS uses SwiftUI text styles) and its limits: no offline cache, iOS SDK in beta with no appearance configuration, no Flutter or React Native. Ends with a six-step device test for any feedback SDK. No engagement data is claimed.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/native-feedback-screens-vs-webview</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/native-feedback-screens-vs-webview.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/in-app-feedback-vs-support-tools</loc>
    <lastmod>2026-10-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>In-app feedback vs support tools: which do you need?</llm:title>
    <llm:summary>Compares three kinds of tool a mobile app team might use for user feedback: customer support tools (Intercom, Zendesk), bug-reporting SDKs (Luciq, formerly Instabug), and in-app feedback boards (fedo, Canny, FeedbackJar). Support tools run private one-to-one conversations that close when one user is helped; feedback boards hold public requests that many users vote on until shipped or declined; bug-reporting SDKs capture session replays, logs and network requests. Covers how Zendesk problem/incident tickets and Intercom Tracker tickets group duplicate requests internally but never let users see or vote on each other's requests, that Zendesk does not notify customers over messaging when a problem ticket is solved, that Zendesk community posts cannot be voted on anonymously, per-seat pricing (Intercom from $29/seat/month and $0.99 per Fin outcome; Zendesk Suite Team $55/agent/month, billed yearly), and a decision list by job. Checked against vendor pages on 1 October 2026. Written by fedo's founder, who states that fedo is not a support tool: no private messages, attachments, logs or AI agent.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/in-app-feedback-vs-support-tools</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/in-app-feedback-vs-support-tools.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/best-in-app-feedback-sdks</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>In-app feedback SDKs for Android and iOS, compared</llm:title>
    <llm:summary>Comparison of seven in-app feedback and feature-voting tools for native Android and iOS apps - fedo, FeedbackJar, Shpd, Features.Vote, WishKit, Canny and Gleap - on native UI vs WebView, Android and iOS coverage, whether users can vote or post without an account, voting and roadmap statuses, free tier, cheapest paid plan, and what each is built for. Every competitor fact links to the vendor's own pricing page, docs or SDK repository, checked 29 September 2026. Written by fedo's founder, who states fedo's limits: early access, iOS SDK in beta, no Flutter or React Native SDK, no public price for paid plans.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/best-in-app-feedback-sdks</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/best-in-app-feedback-sdks.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/build-vs-buy-in-app-feedback</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>Build or buy in-app feedback? An honest answer</llm:title>
    <llm:summary>A build-vs-buy breakdown for in-app feedback and feature voting in mobile apps. Concedes that a mailto link or Google Form is enough for many apps; identifies the point where it stops being enough (users cannot see or vote on each other's requests, so duplicates pile up and priority is guessed); itemises what a homegrown version needs - list, detail, editor, voting, comments and status screens on both Android and iOS, an API and database with one-vote-per-user dedupe, anonymous identity with migration of votes and comments on sign-in, an admin dashboard for triage and statuses, and ongoing hosting; describes the fedo side as one dependency plus two calls, free on one app (Starter: unlimited users, 'Powered by fedo' badge); and lists when building your own is the right call, including Flutter/React Native apps and apps that need offline support, which fedo does not currently have.</llm:summary>
    <llm:type>blog_post</llm:type>
    <llm:structured_data>
      <llm:jsonld>https://getfedo.com/blog/build-vs-buy-in-app-feedback</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/build-vs-buy-in-app-feedback.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/ios-sdk-integration</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>Add in-app feedback to an iOS app in two calls</llm:title>
    <llm:summary>Step-by-step iOS integration for the fedo SDK 0.4.0-beta.1: add https://github.com/getfedo/fedo-ios via Swift Package Manager pinned to an Exact Version because SwiftPM skips pre-releases, then two required calls - Fedo.initialize(apiKey:) and the FedoFeedbackView SwiftUI view - plus the optional setUserID/setUserEmail/setUserDisplayName/setUserProperty identity calls and the .presentFedoCreateFeedback(isPresented:) submit-only sheet. Requires iOS 16+, Swift 6, Xcode 26+. Covers the three common integration mistakes, the absence of iOS UI configuration, 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/ios-sdk-integration</llm:jsonld>
      <llm:markdown>https://getfedo.com/blog/ios-sdk-integration.md</llm:markdown>
    </llm:structured_data>
  </url>

  <url>
    <loc>https://getfedo.com/blog/in-app-feedback-vs-portals</loc>
    <lastmod>2026-09-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</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-10-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <llm:title>Add in-app feedback to an Android app in two calls</llm:title>
    <llm:summary>Step-by-step Android integration for the fedo SDK 0.4.2: the Maven Central dependency com.getfedo:sdk-android, then two required calls - Fedo.initialize and the FedoFeedbackScreen() Jetpack Compose composable - plus the optional setUserID/setUserEmail/setUserProperty identity calls. 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>
