{
 "version": "https://jsonfeed.org/version/1.1",
 "title": "goalmrr blog",
 "home_page_url": "https://goalmrr.geenius.io/blog/",
 "feed_url": "https://goalmrr.geenius.io/blog/feed.json",
 "description": "Practical posts about revenue goals, verified numbers and building in public, from the team behind goalmrr.",
 "language": "en",
 "items": [
  {
   "id": "https://goalmrr.geenius.io/blog/six-providers-one-rule/",
   "url": "https://goalmrr.geenius.io/blog/six-providers-one-rule/",
   "title": "Six providers, one rule",
   "summary": "Stripe, Lemon Squeezy, Paddle, Polar, Dodo Payments and Razorpay connect to goalmrr. The rule is the same: revenue is read, never typed.",
   "date_published": "2026-10-28T09:00:00Z",
   "authors": [
    {
     "name": "The goalmrr team"
    }
   ],
   "tags": [
    "revenue",
    "providers"
   ],
   "content_text": "The first version of this story was easy to tell: connect Stripe, and the goal follows that number. It was also incomplete. Six providers connect today, and the rule did not get looser when the list got longer.\nWhat &quot;connect&quot; means\nYou paste a key. goalmrr reads totals. It does not charge a customer, refund a payment or edit the account.\nStripe is the strict case. A secret key, the kind that starts with sk_, is refused. A restricted key, rk_live_ or rk_test_, is accepted only after three reads succeed: Balance, balance transactions and subscriptions. Stripe does not let us list every permission on that key, so the key you create has to be read-only. We do not probe with a write to find out.\nLemon Squeezy, Dodo Payments and Razorpay cannot issue a key that is only allowed to read. For those, the limit is on our side: goalmrr only sends read requests, and you can delete the key at the provider when you disconnect. Paddle and Polar do offer a read-only key, and that is the one to paste. The shapes are in the payment providers page.\nWhat is not on the list\nRevenueCat, Creem, Whop, Superwall, Shopify and the App Store are not available yet. We add each one when its API details are checked. Until then there is no key to paste, and no number from those sources on your page.\nOne number, named\nWhichever of the six you connect, the page says who verified the figure and when it was last read. After 48 hours it stops calling the number fresh. A goal that follows real revenue should also say when it has lost sight of it.\nIf you want the Stripe steps on their own, they are in connect Stripe."
  },
  {
   "id": "https://goalmrr.geenius.io/blog/one-sentence-a-set-of-steps/",
   "url": "https://goalmrr.geenius.io/blog/one-sentence-a-set-of-steps/",
   "title": "One sentence, a set of steps",
   "summary": "How goalmrr turns a sentence such as \"10k MRR by 31 December\" into a goal, milestones and a first update you can edit.",
   "date_published": "2026-10-27T09:00:00Z",
   "authors": [
    {
     "name": "The goalmrr team"
    }
   ],
   "tags": [
    "goals",
    "milestones"
   ],
   "content_text": "People do not start with a schema. They start with a sentence. &quot;10k MRR by 31 December&quot; already has the pieces a goal needs: a kind of revenue, an amount and a date. goalmrr reads those with plain rules and leaves your words as the title. You pick the currency. There is no default, because a guessed currency would be a guessed number.\nWhat the sentence does not do\nIt does not fill in where you are today. That figure comes from a payment provider, or it is not shown as revenue. The sentence is the target. The connection is the measurement. Mixing the two is how a public page becomes a claim nobody can check.\nThe kinds the reader understands are monthly and annual recurring revenue, monthly and yearly revenue, a lifetime total, and revenue combined across products. A yearly subscription counts as one twelfth of a month when the progress is worked out. That conversion is stated on the page, not hidden in a footnote you have to ask for.\nMilestones are steps, not promises\nOnce the sentence is read, goalmrr suggests steps between here and the target, and a first update you can edit. A milestone is a date and an amount on the way. It is not a forecast and not advice. Hitting it is your work, not a feature of the tool.\nUpdates stay short, 500 characters, and private until you leave them visible. An assistant you connect can draft one. It cannot type the revenue, and it cannot publish without you saying so.\nThe field guide is goals and milestones."
  },
  {
   "id": "https://goalmrr.geenius.io/blog/forty-eight-hours/",
   "url": "https://goalmrr.geenius.io/blog/forty-eight-hours/",
   "title": "Forty-eight hours",
   "summary": "Why a goalmrr number stops being called fresh 48 hours after the last successful read, and what the page shows instead.",
   "date_published": "2026-10-26T09:00:00Z",
   "authors": [
    {
     "name": "The goalmrr team"
    }
   ],
   "tags": [
    "revenue",
    "trust"
   ],
   "content_text": "A verified label is only useful if it can expire. goalmrr reads each connection about once an hour. A number stays fresh for 48 hours after the last successful read. After that, the page names the day it was last verified. It does not keep the badge and hope you will not notice.\nWhy not longer\nTwo days is long enough for a provider to have a bad afternoon, and short enough that a broken key cannot sit on a public page looking current for a week. If the connection errors, is disconnected or never finished a read, the same rule applies: the page says so, instead of presenting the last figure as today's revenue.\nThe history does not vanish at hour 49. Disconnecting destroys the key. The numbers already read stay until you remove the connection, which deletes them. Stale is a label, not a deletion.\nWhat you can do\nOpen the connection and read the message. A missing permission, a key the provider rejected, or a provider that is not answering are different problems, and the troubleshooting page separates them. Pasting a new key does not invent the hours the old one missed. The next successful read is what makes the number fresh again.\nThat is the whole mechanism. No one at goalmrr marks a number fresh by hand, and neither can an assistant you connect."
  },
  {
   "id": "https://goalmrr.geenius.io/blog/revenue-you-can-check/",
   "url": "https://goalmrr.geenius.io/blog/revenue-you-can-check/",
   "title": "Revenue numbers you can check",
   "summary": "Why a revenue goal should follow the payment provider, and what a verified-by label tells a reader.",
   "date_published": "2026-10-25T09:00:00Z",
   "authors": [
    {
     "name": "The goalmrr team"
    }
   ],
   "tags": [
    "revenue",
    "trust"
   ],
   "content_text": "A revenue number typed into a page is a claim. A number read from the payment provider is a measurement.\nRead only, labelled\ngoalmrr reads Stripe with a key that can only read. Every number says who verified it and when it was refreshed, and a number older than 48 hours says so.\nWhat stays private\nThe page shows progress. Amounts show only when you switch them on."
  },
  {
   "id": "https://goalmrr.geenius.io/blog/building-in-public-without-oversharing/",
   "url": "https://goalmrr.geenius.io/blog/building-in-public-without-oversharing/",
   "title": "Building in public without oversharing",
   "summary": "A goal page can show progress without showing every number. How goalmrr separates the two.",
   "date_published": "2026-10-25T09:00:00Z",
   "authors": [
    {
     "name": "The goalmrr team"
    }
   ],
   "tags": [
    "public",
    "privacy"
   ],
   "content_text": "Building in public does not mean sharing everything.\nProgress first\nA goalmrr page always shows the title, the progress and the milestones. Amounts are off until you turn them on, and each number can be kept private.\nUnpublish at once\nNothing is public until you publish, and unpublishing takes effect immediately."
  },
  {
   "id": "https://goalmrr.geenius.io/blog/a-key-that-can-only-read/",
   "url": "https://goalmrr.geenius.io/blog/a-key-that-can-only-read/",
   "title": "A key that can only read",
   "summary": "How goalmrr connects to Stripe with a restricted read-only key, what it refuses, how often your revenue refreshes and what happens when you disconnect.",
   "date_published": "2026-10-24T09:00:00Z",
   "authors": [
    {
     "name": "The goalmrr team"
    }
   ],
   "tags": [
    "stripe",
    "security"
   ],
   "content_text": "A revenue goal is only as good as the number behind it. To follow your real revenue, goalmrr connects to your payment provider. This post explains how that connection is kept small and safe.\nCreate a restricted key\nIn the Stripe dashboard, you create a restricted key and give it read access only to balance, balance transactions and subscriptions. You paste it on the Revenue page of goalmrr. That is the whole setup.\nSecret keys are refused\nIf you paste a secret key, one that can write, goalmrr refuses it. The point is that the key you hand over can look but never change anything. A connection that cannot move money is a connection you can keep without worrying.\nStored encrypted, shown once\nThe key is stored encrypted and is never shown again. One Stripe account connects to one workspace, so it is always clear which revenue belongs to which goal.\nFresh numbers, honest labels\nYour revenue refreshes every hour. If a number is older than 48 hours, goalmrr labels it stale instead of presenting it as current. A goal that follows real revenue should also tell you when it has lost sight of it.\nLeaving is simple\nDisconnecting deletes the key. There is nothing to clean up afterwards.\nYour own AI, with limits\ngoalmrr is Bring your own AI on every plan. If you use an AI assistant, you connect it over MCP through the agent door of your workspace, and it acts with your permissions. It can read your goals and write updates. It cannot enter revenue, change a key or delete your data, and a change that makes something public needs your explicit confirmation.\nFrom one sentence to a goal\nYou start by writing your goal in one sentence, for example &quot;10k MRR by 31 December&quot;. goalmrr reads the kind, the amount and the date, you choose the currency, and you get milestone steps and a prefilled first update. Connecting Stripe is the step after that, so the goal follows your real revenue.\nReady to try it? Start with your domain."
  }
 ]
}
