Beeminder Changelog (latest↓)

Before we publicly launched Beeminder in 2011 we committed to deploying and tweeting one User-Visible Improvement to Beeminder per day. We diligently maintained our average — enforced by Beeminder — for over 2 years before we messed up and had to pay one of our users $1000. Despite the one derailment, we've continued uninterrupted for 5154 days (over 14 years!) and counting...    (PS: If you're us you can toggle the notes-to-selves or put ?shownotes=1 in the URL. Also many of the GitHub links only work if you're us but anyone can see additional info by hovering over them.)

A bee working on the Infinibee logo

2011 February (jump to 2025 April ↓)

  1. Created this twitter acct to log user-visible improvements (UVIs) to Beeminder. (Yes, this is a UVI. Everything counts no matter how small!)
  2. Added ridiculous dog-dressed-as-a-bee picture. Yes, "improvement" is allowed to be in big fat scare quotes.
  3. Now suppressing reminder emails if you already entered something. (If buggy the bug fixes also count as UVIs! Purposefully super generous.)
  4. As predicted: bug fix! Suppressed oversuppressing of reminder emails.
  5. Set up bmndr.com/meta/uvi to force ourselves to average at least 1 user-visible improvement (UVI) per day (certain exemptions apply).
  6. Rudimentary stats at bottom of graph pages.
  7. Add ".json" to your graph URL to get graph params & output as JSON. Eg bmndr.com/d/meta.json (will work after your next datapoint)
  8. JSON output has timestamps in unixtime. (Plus introduced and then fixed a bug; not sure if we should count that.)
  9. Check out the stats at the bottom of your graph page now; much nicer!
  10. Made all rates consistently use the specified units in the JSON output.

2011 March

  1. Negative rates are no longer confusingly listed in the wrong order in the stats at the bottom of graphs.
  2. RT @bmndr: New guest blog post by @kbmcgowan on Food Habits: blog.beeminder.com/foodhabits
  3. Bug fix in stats for flat roads.
  4. Cheapo bug fix for erroneous quoting of number of safety buffer days for weight loss graphs.
  5. Bugfix: Response emails were accidentally off the past couple days; fixed now. Thanks to user bmndr.com/laur for alerting us!
  6. More useful subject lines in the response emails, like "wrong lane!" or whatnot.
  7. Clearer/conciser stats at bottom of graph pages. (Will take effect when you enter your next datapoint.) Progress, rate, lane, delta.
  8. Better handling of significant digits when displaying numbers. Cf stackoverflow.com/q/5208663
  9. In stats, we now display initial datapoint instead of start of YBR (typically the same for weight loss graphs but was confusing otherwise).
  10. RT @dreev: TimePie is now TagTime and is on GitHub tagti.me @tagtm
  11. Beeminder graphs should now always update within 5 minutes of stepping on your Withings scale.
  12. RT @bmndr: Little Debbie Does Dog Food: blog.beeminder.com/lildeb
  13. Reformatted reeminder emails and fixed resultant bug with bot response parsing.
  14. Subtle bug fix: JSON output now properly escaping quotes. Eg, bmndr.com/jill/weight.json
  15. Graphs w/ ztoday ("zero today") true will autoupdate daily. So reported safety buffer never stale. Eg, bmndr.com/brainshell
  16. Now using Disqus for comments on the blog. blog.beeminder.com
  17. Embarrassing bug fix: email address no longer accessible from JSON output! Eg, bmndr.com/d/sugar.json
  18. Fixed a weird bug caused by some interaction of Disqus and WordPress where you couldn't click on any links in Firefox. blog.beeminder.com
  19. blog.beeminder.com now renders properly on ipad. CSS bug fix by @thatgirl.
  20. RT @bmndr: How to force yourself to not waste money on a long-term gym membership: blog.beeminder.com/gym (guest post by Jill Renaud)
  21. What you're risking now shows up in the header of your graph page. E.g., Jill's gym goal: bmndr.com/jill/gym
  22. Fixed wrapping weirdness in the headers. CSS tweaking by @thatgirl.
  23. The headers of graph pages now tell you where you are with respect to the yellow brick road.
  24. Html titles (the mouseover text for the tab or in the browser's title bar) now doesn't try to show html tags. Eg bmndr.com/d/tt
  25. For graphs that include a moving average, it's now exponentially smoothed with smoothing constant .1 a la dreev.es/hackdiet
  26. Mouseovers for the thumbnails in galleries now say where you are with respect to the yellow brick road.
  27. And lane number in parens. Lane -1 is bottom lane, +1 the top, +n is n lane-widths above the road, etc which is generally safety buffer days
  28. Distance from yellow brick road should now always display as 0 instead of like 0.0000000000000023.
  29. Fixed a tiny inconsistency in the layout of the navigation bar on personal gallery pages like bmndr.com/bd thanks to @thatgirl.
  30. RT @bmndr: Productivity hack: The sedimentary filing system. blog.beeminder.com/sediment "My sediments exactly!" -- @thatgirl

2011 April

  1. Unix timestamps always output as integers in API. Matters because they serve as identifiers for datapoints. Also better error handling.
  2. New API output parameter "runame" that gives the rate units name, one of "year", "month", "week", "day", "hour".
  3. Stats at the bottom of your graph now tell you exactly what number you have to have tomorrow as a bare min/max to stay on your road.
  4. Email from the bot on an "emergency day" will always be clear about that in the subject, that you're below/above the YBR and about to lose.
  5. Weight loss graphs show the mean of all readings by default (customizable with the aggday param for how to aggregate datapoints on same day)
  6. Glitchiness with frames around thumbnails fixed, or at least a big improvement.
  7. Color-coded thumbnails! Such a big improvement it should count as two! Maybe I'll tweet it from @bmndr and count that tweet as another UVI.
  8. RT @bmndr: Beeminder colors: Green = right side of the road, Blue = right lane, Orange = wrong lane, Red = emergency day. bmndr.com
  9. Frames around thumbnails now exactly right. That was irking @dreev for a long time.
  10. Mouseover text for thumbnails clearer (and names the color in case you're colorblind).
  11. Stopped trying to squeeze in exactly how far above/below the road you are in the subject line of the bot emails. This still needs work.
  12. RT @bmndr: Case Study: Martin's Renovating. blog.beeminder.com/martin (Not the most exciting post but we gotta hew to bmndr.com/meta/blog !)
  13. Bug fix: Unixtimes in the API were slightly wrong due to a stupid time zone issue.
  14. Tweeted about #akrasia via @bmndr et al. Cheap UVI, I know, but we're working our butts off on the back-end.
  15. Updates to the inaugural #akrasia post on blog.beeminder.com as well as a layout fix. Thx to @davidmcraney and @andrewchen for links.
  16. Thought of a simple way to take 2 seconds off graph image generation time. Broke everything. Fixed it again.
  17. RT @bmndr: What happens when you drive blind: blog.beeminder.com/blind #withings
  18. The BeeBrain API -- beeminder.com/beebrain -- now sanity checks all parameters and gives helpful errors if any are wrong.
  19. Compromise on thumbnail speed issue: colors kept up to date but actual thumb image can lag up to a week.
  20. Oops, that made it add ever more colored borders, matryoshka-style. Fixed now! (PS: We're sooo close on launching new beeminder!)
  21. Typo fix by @thatgirl: "Coasting on a currnetly flat yellow brick road". (Special prize for users who spot typos for us!)
  22. Image size for graphs can now be specified in the API. And default is a bit smaller (760 pixels). (Preparing for new layout!)
  23. Robustifying and somewhat OCD tweaking of thumbnail generation.
  24. Tiny bugfix for odometer graphs with multiple datapoints including a reset on the same day. Needed stable sort. Broke this ystrday actually.
  25. Shiny "BMNDR" logo. (Among many changes, to be tweeted shortly, that just happened as we finally switched to version 2 of Beeminder!)
  26. Edits to the about page: beeminder.com/about
  27. Better browsing of your data!
  28. Adorable bee as default avatar, thanks to @amzabel.
  29. Edited the FAQ page: beeminder.com/faq
  30. Recent datapoints and a few stats in the sidebar (in addition to the more comprehensive stats at the bottom of the page).
  31. Stats above the graph is text instead of part of the image.
  32. When the bot replies to you it shows your recent data in canonicalized form. [Need to build up a safety buffer of UVIs before vacation!]
  33. Rewrote this page: beeminder.com/register
  34. See the link that says "12 goals" under, for example, Jill's gallery? bmndr.com/jill
  35. In the Recent Datapoints list, comments get truncated appropriately. Most of this spate of UVIs are thanks to @thatgirl, btw.
  36. RT @bmndr: @dreev learned something w/ Beeminder he never could've possibly known otherwise. Swiss cake rolls can go stale. dreev.es/ld
  37. Fixed capitalization of nicknames in gallery view, eg, bmndr.com/grose
  38. Fixed an error in API/waitlist forms that redirected to contact page on submit. Try it now: bmndr.com/api
  39. Fixed links in recent datapoints, eg, bmndr.com/jamuraa/blog (and we think we're sanitizing them properly...)
  40. Thumbnails not lagged anymore (long story). Btw, despite the current deluge, this account averages one tweet (UVI) per day. For less: @bmndr
  41. Oh yeah, & check out that shiny favicon! (@thatgirl again; almost got enough safety buffer on bmndr.com/meta/uvi for our vacation!)
  42. Better error handling for unparsable datapoints entered via the web interface.
  43. RT @bmndr: We're listening and responding to your ideas at uservoice.beeminder.com . We ♥ our beta users!
  44. RT @bmndr: New blog post: Beeminder on Rails. blog.beeminder.com/rails
  45. Main gallery on beeminder.com now shows the 20 most recently updated graphs.
  46. Layout tweaks: better spacing in the galleries and truncating goal titles and descriptions in the galleries more reasonably.
  47. Stats now refresh when graph does. Also CSV export is back, and a rare layout bug fixed. Vacation tomorrow; coasting on this safety buffer!
  48. Oh, and added a tagline to the front page and fixed the domain blog.beeminder.com and various fixes to legacy URLs.

2011 May

  1. RT @bmndr: Post on @msymtrs blog about an experimental part of beeminder: (bee)minding how you spend your time. messymatters.com/tagtime
  2. Changes in yellow brick road steepness now always occur at midnight. Potentially confusing otherwise.
  3. New blog post: Is there a danger of unintended consequences of Beeminder contracts? blog.beeminder.com/unintended
  4. Yellow brick road width no longer becomes zero when the road becomes flat.
  5. When you enter data in the web form a notification box appears and then disappears nice and discreetly. Or just stays put if no javascript.
  6. Fixed a bug where html tags showed up in the graph's title when viewing data, for graphs with links in the titles like bmndr.com/d/tt
  7. Moved user info to right of graph in goals pages, for consistency. Huge thanks to @devinbaillie for suggesting it and all the beta testing.
  8. "Export to CSV" link now prominently shown in sidebar. #dataliberation
  9. Visual tweaks: made gray headers slightly darker and removed excess spacing at bottom of 'recent datapoints' sidebar.
  10. Stats tell you the bare minimum (or hard cap) for staying on your yellow brick road. See very bottom of, eg, bmndr.com/meta/uvi
  11. Tweaks to bare min / hard cap stats. Eg, see very bottom of bmndr.com/mc/smoking

2011 June

  1. RT @bmndr: Going all soup-nazi on our users: blog.beeminder.com/akratics #akrasia
  2. Consistent style for hyperlinks.
  3. Better submit buttons.
  4. Swapped the goal/risking/status lines with the graph summary line.
  5. Fixed a css bug with the header where blackspace next to logo/title was also a link.
  6. More prominent link to personal galleries in the sidebar. "Your Name (X goals)".
  7. Status and stats both update roughly, almost, maybe/sorta instantly(ish) now. Graph itself still ridiculous.
  8. Improvements to the display of the bare min / hard cap numbers. [Better rounding, non-noisy "fatso" graphs have negative hard caps.]
  9. Goal/Risking/Status lines on goal page look a little nicer now.
  10. Goal stats and progress in sidebars now.
  11. RT @bmndr: Blog post about some competition: @TimeCarrot = @stickK + @rescuetime. blog.beeminder.com/timecarrot
  12. You should never again see Beeminder say "1 more days".
  13. There's more detailed info about your road's rate (plus the time units) in the sidebar now.
  14. Bug fix: No longer shows max rate of like 4732894382% for bmndr.com/b/weight
  15. Tweaked font for stats in sidebar.
  16. Goal stats line up perfectly now.
  17. Fixed disappearing 'ago' in goal stats when you submit new data.
  18. Fixed an alignment error in the "Status:" line above goal.
  19. RT @bmndr: BMNDR vs StickK: blog.beeminder.com/stickk Guest post by Josh Jordan (@bumbledraven).
  20. New testimonials page: bmndr.com/testimonials [blush]
  21. Made stats box margins a bit wider so the lines shouldn't ever wrap anymore.
  22. The collapsing archives widget on the blog now shows counts for each month. Thanks to Rob Felty: robfelty.com/plugins/collapsing-archives
  23. Bug fix: spacing in the stats box was off after adding data to your graph (at least until you refreshed).
  24. It's now obvious when the submit button is tabbed to. Enter data, <tab>, <enter>, done.
  25. Fixed a Firefox-only bug in displaying gradients on buttons.
  26. Buttons at the top of the page (Graph, Data) are now bright when activated, which should be less confusing.
  27. Average YBR rate now included in stats sidebar. Ugly plaintext stats at bottom now obviated so we got rid of those.
  28. Graphs are framed with the color of the current dot: green = good side of road; blue = right lane; orange = wrong lane; red = off the road.
  29. Tweaked the green for indicating good side of the road. Easier to distinguish from the blue now.
  30. Link to the latest blog post in the navigation bar of all Beeminder pages. We're pretty proud of our blog!
  31. RT @bmndr: A friendly reminder about our friendly mass of incandescent gas. blog.beeminder.com/solstice

2011 July

  1. RT @bmndr: Commitment contracts with maximal flexibility: Beeminder's Force Majeure Clause. blog.beeminder.com/sos #akrasia
  2. Made the outline look nicer when you tab to submit button by softening the edges of the button and blending away the weird Chrome rendering
  3. Number of days of safety buffer included in the stats sidebar.
  4. Made it say 0 safety buffer days instead of "n/a" when you're on the wrong side of the centerline, and other tiny tweaks.
  5. Changes to the road width algorithm. Eg, road width never changes when you're in the wrong lane.
  6. Bug fixes: over-application of "can't lose tomorrow guarantee" and overwidening based on big deviations after not reporting.
  7. Prev datapts off the YBR shown in yellow instead of red. Road width can shrink so a past dot off the rd may not've been off-road at the time
  8. Bug fix: the amount of safety buffer quoted in the header of the graph (and emails) now consistent with what's shown in the stats sidebar
  9. Bug fix: some graphs have multiple datapoints per day and that could occasionally confuse the new road width algorithm
  10. Another bug fix w/ road width involving the rare/special case that all points are above the YBR (thought that couldn't happen!)
  11. Fixed ugly squished spacing in the list of recent datapoints that would happen when a comment was long enough to wrap
  12. Tweak to how multiple weights are averaged to get official weight of the day to close loophole where you dehydrate yourself, weigh 20 times
  13. RT @bmndr: The Magical Widening Yellow Brick Road. blog.beeminder.com/roadwidth
  14. Number of safety buffer days may now be negative to indicate how many days ago you went off the road. Also bug fixes with the computation.
  15. Another bug fix with the display of safety buffer, for cases where displaying a safety doesn't make sense.
  16. Bug fix: Proper determination of officially being off the road: Off the road and not back on by midnight.
  17. RT @bmndr: Akrasia is the tendency to say "I'll get serious tomorrow" every day forever. google.com/search?q=akrasia #akrasia
  18. More improvements to the computation of number of safety buffer days for weight loss graphs, plus added new minimum road width (daily rate).
  19. Bug fix of a bug fix re: officially off the road (off *yesterday* and today, not previous and current datapoint off).
  20. Reminder emails from the bot automatically decay in frequency if you ignore them.
  21. Galleries of goals now sorted by last modification time (modification of either settings or data).
  22. Those notification boxes that briefly pop up above your graph when you add new data and whatnot are a lot less ugly now
  23. RT @bmndr: Akratics Anonymous is now a google group: blog.beeminder.com/akratics groups.google.com/group/akratics
  24. Subtle bug fix where the graph could fail to indicate when it was regenerating and require a manual refresh
  25. The title text of the graph thumbnails was sometimes contradicting itself about the number of safety buffer days. Now it isn't.
  26. Datapoints that aren't added explicitly (Bmndr assumes no change from yesterday if you don't report) are distinguishable from entered points
  27. RT @bmndr: "Sometimes it seems like a hard workout makes me gain weight. My question is: WTF?" blog.beeminder.com/backfiring
  28. If you're at a kink in your yellow brick road the current rate shows the rate starting now, not the rate you just finished
  29. Fixed small/rare miscalc of road width for exponential graphs (eg weightloss). Was basing daily rate on current datapt, not road val.
  30. Rose-colored dotted line showing the akrasia horizon. Which is a harbinger of big things on the horizon, Beeminder-wise.
  31. Fixed glitches with the blue-green aura around the datapoints
  32. Thin yellow guide lines that indicate how many safety buffer days you have were sometimes not extending all the way to edges of the graph
  33. Miscellaneous tweaks to the graphs, like not letting points get too squished against the edge or showing more of the y-axis than necessary

2011 August

  1. Bug fix: couple people's bot reminders not going out (and should always be sent within an hour of specified time now)
  2. Lighter pink for the rose-colored dots -- bmndr.com/about -- among other tweaks. (And we're days away from the big stuff now!)
  3. Bug fix: negative safety buffers (how many days ago you went off the road) were sometimes off by one.
  4. Safety buffer now properly accounts for upcoming changes in the road width (that got a little hairy with exponential yellow brick roads)
  5. There's now a sign-in link for existing beta users, so we can now tweet a bunch of features that are only available if you're signed in
  6. Signed-in users can change their name and picture (avatar). Eg @dreev is bmndr.com/d and @thatgirl is bmndr.com/b
  7. Signed-in users can twiddle: whether to get bot reminders, what days, what time of day. (recall the bot buzzes off automatically if ignored)
  8. Signed-in users can delete datapoints (careful, this is permanent!)
  9. When you don't report, your graph shows you flatlined up through today, but stops if you go off the road or hit your goal.
  10. Signed in users have a Road Dial (not really a dial) to adjust the steepness of the Yellow Brick Road as they go
  11. Signed in users can create new goals. (And thanks for all the awesome feedback from our beta users; keep it coming!)
  12. Signed in users will see a reset button to try again when you go off your yellow brick road
  13. Goal settings tab lets you change your goal's title and description and set your goal amount, or end date.
  14. Commitment contracts are built in. See bmndr.com/money
  15. Changed the submit button in advanced graph settings form to actually say "submit". Did we mention there's an advanced graph settings form?
  16. Bug fix: Multiple carets (like ^^ to mean "yesterday") weren't getting translated right when you entered datapoints.
  17. Flatline rule messed up bmndr.com/example so now there's a setting in the api to show graphs how they looked at any point in the past.
  18. When first starting a weight loss graph, the road starts at the max of your 1st 3 weights.
  19. Much clearer version of bmndr.com/money with example graphs.
  20. Added more FAQs to the pricing page, including some nerdy math. bmndr.com/money
  21. Existing beta users who went off their roads before new pricing scheme can now reset with $0 at risk.
  22. Heading of your graph shows how much is at risk.
  23. Money money: Made the buttons and form look a little nicer on the reset/contracts page. Started adding some explanatory blurbs, etc.
  24. Money money: Don't have to re-enter credit card if you've already got one on file.
  25. Money money: Removed credit card security code from credit card form -- one less step between you and commitment.
  26. Bug fix in road dial [involving inserting road matrix rows] where if you tried to dial a graph that had been previously reset it would break
  27. Breadcrumb-style link to your gallery of goals as part of the title of your graph. (Thanks @dyng!)
  28. Firefox glitch: fixed the contract submit button (it was, ridiculously, displaying "submit query" as the button text in Firefox).
  29. Took out extra ">" in breadcrumb because it looked terrible in Firefox.
  30. Fixed idiotbug where resets failed on grandfathered goals *because* we were allowing free resets on goals predating new pricing. Thx @mwprog
  31. Less ugly alt text for thumbnails, which turned out to matter in Firefox on slow net connections. Also, consistent capitalization in titles.
  32. You can edit your datapoints (hurrah!). A little primitive but better than deleting & re-entering! Hat tip to Christopher Douglas.
  33. Titles were getting truncated more than necessary. When you're not logged in there's room to show more, eg: bmndr.com/meta/uvi
  34. Bug fix: extending your goal date if it was less than a week away would mess up the shape of the yellow brick road. Thx @robbieclarken
  35. Made bmndr.com/money a little less painful to read. Thx Rob Felty! Aside: BMNDR discussion on goog+: profiles.googles.com/dreeves
  36. Closed loophole: those who don't manually add data (eg, via @Withings or @tagtm) never got their graphs frozen. It's tough love, bitches.

2011 September

  1. RT @bmndr: New blog post: The Road Dial and the Akrasia Horizon. blog.beeminder.com/dial (commitment devices with maximal flexibility)
  2. Better info in the money FAQ -- bmndr.com/money -- about why it's safe to give us your credit card number, thanks to @stripe.
  3. Bug fix: we were prematurely saying "you made it!" on your actual goal date even if you were actually off the road on that day.
  4. Bug fix: time left shown in sidebar was based on noon on the goal date instead of midnight. Thx @robbieclarken. PS, timezones coming soon.
  5. Better mouseover explanations about fee schedule and fine print when you start a new commitment contract.
  6. When you create a new goal you can make it secret. Some of us (@dreev & @thatgirl) think this is a terrible idea and may disable it again!
  7. Improved the stats in the sidebar, added DELTA (how far you are from being in the right lane), and added mouseover explanations.
  8. Bugfix: Usernames and emails were case sensitive which occasionally caused confusion.
  9. Green: outperforming the road, Blue: right lane, Orange: wrong lane, Red: off the road. And now, Black = error generating graph, eg, no data
  10. Mouseover on the Goal Progress sidebar tells you what percent done you are (either going by time or by value). UVIs ~20% of the way to 1000!
  11. @jmccoh Mouseover area for Goal Progress should now be easier to hit. Thanks! (Yes, this too is a UVI...)
  12. If you leave the date off when entering data on Beeminder it will helpfully explain that you have to give the date explicitly #cuzofreasons
  13. Changes to the bot emails to start nudging toward saner data format: Day of the month, amount, optional comment.
  14. Don't report number, we assume it stayed same as ystrday. for consistncy this now applies even when flatlining helps, eg a quit-smoking goal
  15. RT @bmndr: The naming of Beeminder: blog.beeminder.com/beenamer (and the story of its former name, Kibotzer)
  16. Bug fix: Leniency rule for weight loss graphs (UVI#181) could cause a discontinuity in the yellow brick road when you reset
  17. If you don't specify a goal date it defaults to a year after the start (or reset) of your yellow brick road. (Wasn't always true before.)
  18. Bugfix: if the title of your graph was a certain length it would wrap instead of truncate and mess up the alignment of the headers
  19. You can now talk to the Beeminder bot via text message: blog.beeminder.com/textbot
  20. The whole site uses SSL now. No longer can your enemies sniff your net traffic and modify your weight to make you go off your road.
  21. Timezones! See "My Account" settings. Shout out to our beta users in Europe, South Africa, and Australia.
  22. Tweaks to the textbot: how it replies, making it auto-decay like the emails do so you don't have to explicitly tell it to stop bugging you.
  23. By default your timezone is NYC -- change it at bmndr.com/settings/account -- and your graph will refresh at 3am in whatever timezone you specify
  24. We no longer impose an initial week of flat yellow brick road when you start a new goal. See bottom of goal creation form.
  25. Improvements to reminder settings page, such as a link to your account settings to change timezone. Also sms bugfix with long sms responses.
  26. Reeminders should now come at the exact time you specify. Thanks again to @gracenotesnyc!
  27. Bugfix: The switch to SSL had broken the password reset mechanism. Thanks to Uluc Saranli and @gracenotesnyc.
  28. Fixed a couple annoyances with the interface for setting initial value, goal, goal date, and rate on new goal creation page.
  29. Better data parsing: more intelligently disambiguates the date when given as just the day of the month, like: 25 228 "up to 228 on the 25th"
  30. Data format w/ month or year and month deprecated. You can use it but you'll never see any data displayed that way. See bmndr.com/faq
  31. Road reset page reassures you that all your data stays accessible when you reset with a new contract. (Also fixed an SSL issue.)
  32. Mouse over a datapoint to see details about it like when and how it was entered. Better explanation of "slug" in the new goal creation form.
  33. @jmccoh Yes, it no longer lets you enter hyphens or other disallowed characters in the slug. Thanks for reminding us of that UVI :)
  34. Simplified bmndr.com/contract & your official weight each day is the min of all weights recorded. PS follow @bmndr for the important stuff
  35. New taglines: "Beeminder: Reminders with a sting", "Beeminder: Automated accountability", and "Beeminder: The Me-binder"
  36. Warning on goal creation: "Leave these blank for now unless you're sure what a realistic rate for your YBR is...ready to commit immediately"

2011 October

  1. Number of safety buffer days (how long till you go off the YBR if you do nothing) now in the subject of bot reminder emails & sms reminders
  2. Robustifying of the date disambiguator, accounting for users' timezones. Related bugfix. Plus unrelated bugfix with reminder emails.
  3. We no longer confusingly ask for "goal statement" when creating a goal. Instead we have a link to set it in context on your goal page later.
  4. Fixed a small glitch in goal creation page, and friendlified some errors like "slug can only have letters & numbers" vs "slug is invalid"
  5. Streamlined the sms reminder messages and error responses. Made "iff" not look like a typo (on page for starting new commitment contract).
  6. Some useful mouseover info for the main graph image. Note quite this yet -- beeminder.uservoice.com/forums/3011-general/suggestions/2280706-you-ve-added-some-good-mouseovers-how-about-putti -- but we'll get there.
  7. Goal Archetypes! When you create a new goal you pick from 10 goal types, some general like Do More and some specific like Inbox Fewer.
  8. Removed some javascript diagnostics that was making @bmndr glacial. Let us know if you see continued slowness or other glitches!
  9. Big improvements to the new goal creation form. Much less confusing now, though too much prose, and lots more to do...
  10. Couple small bug fixes thanks to the @lesswrong folks: lesswrong.com/lw/7z1/antiakrasia_tool_like_stickkcom_for_data_nerds (plus various friendlifying of error messages & tweaks to prose)
  11. (Half-dozen UVIs packed into last tweet. Big safety buffer on bmndr.com/meta/uvi and we don't want to further overwhelm you.)
  12. Check out the Import/Export links on your graph page. Annoying to export dates as unixtime or do only supernerds care about export anyway?
  13. New Goal form only asks for starting value for types of goals that need one. Plus a bug fix in how text msgs are truncated thanks to @jmccoh
  14. RT @tagtm: TagTime can be integrated with Beeminder with far less fuss now. Let us know if you want to try it.
  15. Massive UVI: We're proud & excited to announce that @bmndr is now open to the public. Immense thanks to our beta users. bmndr.com
  16. @jmccoh Instead of teaching people about unixtime we (ie, @thatgirl) just fixed it so it exports as normal-person dates.
  17. Graphs that are auto-summed are visually distinct, w/ a link to explain auto-summing. bmndr.com/faq (also lots of new stuff in FAQ!)
  18. New blog post blog.beeminder.com/launch & RT @bmndr Beeminder in 3tweets: It's like @stickK -- cash commitment contracts to force yourself to...
  19. First attempt is free -- bmndr.com/money -- but now, by popular demand, you can start a commitment contract immediately if you want to
  20. Fixed glitch with road dial. Better blurbs for goal types when creating new goal. New bee logo on uservoice.beeminder.com (3-for-1 UVI special)
  21. 3 bugfixes: dealing w/ blank lines in data form, letters entered as phone number, bug pointed out by @pennockd at blog.beeminder.com/launch
  22. Fixed issue that made graph update when you first create a new goal extra slow. Multiple tweaks to goal creation form. Road dial glitch fix.
  23. Hover effect for links at the bottom of the page were screwy in Firefox (still investigating issues in Chromium/Linux). Thx for alerting us!
  24. Blogspam was showing up with javascript off. Thanks to @pjeby for pointing it out at blog.beeminder.com/dial
  25. All javascript libraries and everything now load via SSL so you should never see that scary crossed-out "https" in the address bar. (Right?)
  26. Bugfix: Data point editor didn't accept its own date format in some browsers. Sorry about our crappy cross-platform testing!
  27. RT @bmndr: New blog post: The Want-Can-Will Test for Akrasia blog.beeminder.com/wantcanwill
  28. New blurb on frozen goals: "You drove off the road! Was that legit? If so, please reset to try again, otherwise email support@beeminder.com"
  29. Bugfix for certain browsers where datapt editor didn't accept its own date format. (mini vacation => shocking backlog on customer support!)
  30. Tweaks & streamlining of the blurbs in goal creation page. Tweaks to navbar on the blog (see bee icon). Goals with no datapoints deletable.
  31. Changed "slug" to pick url: bmndr.com/alice/___ plus other tweaks. [Doh! doubletweeted last bugfix UVI; compensating w/ multi-UVI tweets]
  32. Bugfix: slug was leaked in html source for secret goals. Luckily no one really has secret goals yet! [PS: call us out on double tweets!]
  33. New Beeminder taglines in rotation: doc.beeminder.com/beeminder-taglines (latest: make a beeline for your goal)
  34. When you're signed in you see (under your avatar) the total amount you have pledged towards how many yellow brick roads. HT Rodrigo Belo

2011 November

  1. Bugfix in datepicker when setting goal date that made calendar show up 1st time you click date, but not 2nd time.
  2. Slight clarification to time format in remind time form (show AM if AM), other reminder form tweaks, full title in mouseovers in gallery.
  3. RT @bmndr: Chunky Time: how and why you can beemind things you only do in sporadic chunks of time. blog.beeminder.com/chunky
  4. If graph generation chokes for one person it now shouldn't affect anyone else. If a graph ever takes more than a few minutes, let us know!
  5. Fixed stupid bug in datapoint editor where it would complain if you had any spaces in the field that wants a number. PS plus.google.com/118275811754025086770
  6. Rough version of graph legend in the sidebar. Thanks @rodguze of @idonethis and other users who have suggested this!
  7. Bugfix: hitting MAKEITSO while graph was busy would sometimes cause an error. & lots of server-side growing pains but that's not user-visbl!
  8. Check out our much-improved About page: beeminder.com/about
  9. RT @bmndr: New Beeminder dog food contracts: blog.beeminder.com/blogdog
  10. Baby step toward nixing the miasma of confusion around cumulative graphs: y-axis for "Do More" graphs now "cumulative total"
  11. Recent data & new data below the graph line up all nicely now. Cf @dreev & @thatgirl laundering stackoverflow points: stackoverflow.com/questions/8130429/make-a-list-of-values-line-up-with-a-textarea-and-labels
  12. Bugfix: the email bot would screw up if the comment for a data point was too long
  13. PSA: T minus one week to Thanksgiving. blog.beeminder.com/tg (adjust your road dials while Thanksgiving is still beyond the akrasia horizon!)
  14. Thumbnails in galleries no longer take 2 refreshes to reflect newly added data. This matters a lot in conjunction with the next UVI...
  15. Graphs now have a watermark showing number of safety buffer days and how much you've pledged to stay on track
  16. Bugfix: alerts now stay put so you can copy/paste, eg, the support email address. Thx @jmillikin; for this too: plus.google.com/117999270348804266828/posts/8HEWtm88ctr
  17. Bugfix: timezone/DST error for users in Sydney (but users in Perth were unaffected, strangely). (@bmndr is big in Australia for some reason)
  18. Nicer rules: less than 7 datapoints means you can reset without pledging. We only want your $ after we've provided valuable pants-kicking!
  19. RT @bmndr: Announcing the Beeminder Mac Dashboard Widget: blog.beeminder.com/widget

2011 December

  1. RT @bmndr: Another post-hoc justification for the name "beeminder": You use @bmndr because you want to be minded. blog.beeminder.com/beenamer
  2. As a compromise between this camp beeminder.uservoice.com/forums/3011-general/suggestions/2353108-let-us-delete-goals and this camp beeminder.uservoice.com/forums/3011-general/suggestions/2365715-lack-of-ui-a-feature-proceed-carefully-and-implem we're trying this compromise: ephemeral goals!
  3. The watermark on ephemeral (ie, temporary test) goals now says "TEST". Try creating a new goal if you're not sure what we're talking about.
  4. Some smart (ie, too-clever-for-their-own-good) phones were sending us fancy curly quotes around comments. The bot now understand those.
  5. Updated hover text for export & import links, with explanation of how to import by just pasting historical data into the web form.
  6. We got interviewed for the #quantifiedself blog and made the @bmndr blog faster/robuster in anticipation. quantifiedself.com/2011/12/toolmaker-talk-bethany-soule-daniel-reeves-beeminder/
  7. You can now declutter your personal goal gallery by shoving graphs below the fold. HT @dggoldst
  8. Oops, previous UVI indirectly caused a bug where the graphs wouldn't un-opaque when they finished refreshing. Fixed now.
  9. Watermark on graphs will, from now on, show the amount that was pledged even after you reach the end of your yellow brick road.
  10. New version of TagTime on Android Market and, if that doesn't count as part of @bmndr, also fixed glitches w/ shoving graphs below the fold
  11. UVI#283 was overzealous. We now let the browser cache thumbnails unless they've actually changed.
  12. Bugfix: inconsistency between watermark and pledge amount after a pledge was paid. Also tightened security for entering datapoints.
  13. Bugfix: You could sometimes create a new goal with no initial datapoint, which caused Beeminder all manner of confusion
  14. Two new versions of the default avatar (bitty bee larva and bee in profile). Which is better? (Click around in the main gallery to see them)
  15. Thanks to @pruneau for prompting us to finally stop using "safe days" on Set-a-Limit graphs where that doesn't make sense
  16. Bugfix: Since road width depends on steepness, crossing a kink in the road could make it shrink out from under you
  17. Related bugfix: Bare min / hard cap now account properly for upcoming changes in road steepness
  18. We deployed a completely new design!
  19. This redesign should count as dozens of UVIs. But we'll just add this: just did a bunch of tweaking to the web copy. beeminder.com
  20. Tweaks to menus, layouts, etc. And new tagline: Safety rope for slippery slopes. (Too obtuse? We mean slippery slopes of sloth...)
  21. Added some padding so the Feedback button doesn't overlap the text if you make your browser too skinny. HT Judy Soule.
  22. The mouseovers (like for the graph itself & for goal progress/stats) now refresh properly when you add a new datapoint. HT @jsnikeris et al
  23. On new goal & new contract forms: clarify that goal date is extendable, glitch in display of credit card expiration month. HT @jakehofman
  24. Avatar upload says the max size (.5MB). HT @johnleftwich. Also, gallery of featured beeminders: bmndr.com/featured Also, bug/glitch fixes.
  25. This is pretty nice: if you create a goal as a temporary/ephemeral goal and start using it, you can change your mind and make it permanent
  26. Bugfix: Chrome & firefox would let you double-submit data by double-clicking submit button. news.ycombinator.com/item?id=3389403
  27. Bugfix: Reminders now tell you the correct number of safe days even if you set your remind time to be right before the graph refresh time
  28. Removed limit of 60 for safe days; now shows true number of days till you go off the road or reach your goal, whichever comes first
  29. Y'know what bugs are the worst? Ones where people try to give you money and you give them an error instead of taking it. Fixed one of those.
  30. The "My Account" menu/dropdown should now work on the ipad, and possibly other tablets as well.
  31. Beeminder got prettier, plus a placeholder for historical graphs which are coming soon... (we'll tweet again when they're ready)
  32. Most people's historical graphs are now available. Let us know of glitches!
  33. Over Hooliday we learned that the less nerdy in our family find bmndr graphs intimidating so we added graph type "Weight Loss for Non-Nerds"
  34. RT @bmndr: New blog post: Trackers vs Lifehackers blog.beeminder.com/trackhack - list of data-tracking tools #quantifiedself

2012 January

  1. Spent new year's eve on a @bmndr mass email (did you get it? it's the first we've sent) & made a new email settings tab in account settings
  2. 2for1: Made the link to your goal gallery more obvious. Also fixed an issue w/ long titles wrapping and mouseover showing for full version.
  3. Forgot to say: Gallery link UVI was thanks to @stevencorona (which we're allowed to use another tweet to say since previous 1 was 2 UVIs!)
  4. (also fixes to legacy links for oldschool hist graphs) RT @bmndr @pjf Are you reading the blog from cover to cover? We love you. Typo fixed
  5. Bugfix: Hover texts for stats sidebar and graph image all update properly when you add data or use the road dial, without having to refresh
  6. Send bot reminder even though you entered data today if it's still an "emergency" day. HT @jmillikin
  7. Resize avatars on upload (@pjf: hey thanks for that. I resized for a thumb version but forgot to resize the master version)
  8. RT @bmndr: A list of @bmndr's competitors and @dreev "blackmailing" himself: blog.beeminder.com/competitors
  9. Road dial now 3 times more useful: you can change goal date, goal value, and road steepness directly on the graph page
  10. Advanced Settings now has two actual advanced settings: y-axis label (HT @pjf) and custom notes (HT @mimercha)
  11. slightly friendlier error if you specify impossible road dial settings, eg "starting @ 200, gain 1 lb/week till I hit 150" (meant -1 not +1)
  12. Fixed our UI faux pas where hitting enter didn't submit the form in the road dial. HT @LeaVerou
  13. @pjf That nit's done picked. Thanks Paul!
  14. @pruneau See the hovertext in the graph legend for "turquoise swath". We need to be terminologically consistent! PS: green aura thing = UVI!
  15. @pruneau Done. Kind of a cheap UVI so we threw in the screwy "please sign in" thing you emailed us about as well. Thanks so much, Robin!
  16. Bot emails now have a consistent From line (bot@beeminder.com) for easier filtering. Thanks to @mailgun -- holy crap do we love those guys!
  17. When you reset you now have the option to not start with a week of flat spot (except for weight loss, for which that's always imposed).
  18. RT @bmndr: New on the Beeminder blog: guest post by Jake Jenkins about how @bmndr is making his dream to learn guitar come true: blog.beeminder.com/j2j
  19. Better warnings about trying to add data to your graph after it's frozen.
  20. If you create a custom goal, pick which is the good side of the road (and whether the road generally slopes up or down) in Advanced Settings
  21. Fixed a 2038 bug. Still maxes out at the year 2038 but at least doesn't barf; should be plenty of time to fix this for real #famouslastwords
  22. RT @bmndr: We've got a premium subscription option: rough around the edges but reply if you want to guinea pig it.

2012 February

  1. Bugfix: hovertext for goal titles that contain quotes got truncated.
  2. Bot now tells you when it's buzzing off (that it's automatically bugging you less frequently because you've ignored it). We hate spam a lot.
  3. If a comment on a datapoint is truncated, the ellipsis is now a link to the History tab where you can see the full version.
  4. Bugfix/confusionfix involving choosing a bot reminder remind time after midnight but before the graph automatically refreshes at ~3am.
  5. Another one we should've tweeted a while ago: Don't disable road dial when there's an error (so that you can actually fix it yourself)
  6. Bugfix: The "cancel" button when deleting a data point was, um, kind of, not canceling. Oy! Huge thanks to Marty H for alerting us.
  7. RT @bmndr: New blog post singing the praises of Mark Forster's singing of our praises. blog.beeminder.com/ged @AutofocusTM #gushfest
  8. Bugfix: The layout in the sidebar of the blog got all messed up somehow -- upgrading the Collapsing Categories widget fixed it.
  9. Taglines: Be a slave to your second-order desires; Solving the self-control problem; Light a fire under your own butt; reminds you & binds u
  10. Fixed a bug in the road dial where the calendar picker popped up even when the goal date was disabled. (The thing w/ X's still sucks, yes.)
  11. Got rid of pesky ".0"s in the road dial fields. Also re-fixed an alignment issue with the web form / recent data. Someone jostled it I guess
  12. Collapsible sidebar boxes, which lets us have the graph legend more prominent but easy to get out of the way for seasoned beeminders
  13. Old UVI we forgot to tweet: If you reply to the bot when your graph is frozen it will reply back to tell you so.
  14. Bot email now warns you when a temporary test goal is about to be auto-deleted. HT @TeigeWeidner
  15. RT @bmndr: New blog post: Layaways and Lamentations blog.beeminder.com/layaways (sort of a teaser for upcoming success stories)
  16. Oldies: "goal"->"goal statemt" (avoids confusion w/ putting a number there); hovertext on "Σ" & other tweaks to data entry form below graph
  17. (luckily we had those UVI oldies in reserve so the current github downtime didn't thwart our last minute deploying and cost us $1000!)
  18. The countdown in Settings for auto-deleting temp goals should now match what the warning email says
  19. Nasty bugfix: Ever since UVI#358 the Forgot Password link required you to sign in. #catch22
  20. New FAQ items: beeminder.com/faq Speaking of which, keep asking us questions! Here, to support@beeminder.com, or at uservoice.beeminder.com
  21. Instant unsubscribe in all bot emails (in additional to automatically buzzing off when you don't reply). PS: This is the 365th daily UVI!
  22. RT @bmndr: New blog post: Study Wizardry by Gandalf Saxe. How to spread out your studying over the semester with Beeminder. blog.beeminder.com/gandalf
  23. Bugfix: Instant unsubscribe link in the replies that the bot sends when you email in data were messed up. Also edits to status messages.
  24. Bugfix: Link to fine print when creating new contract broke when we added a redirect. Also ditched popup. beeminder.com/contract Thx @henryaj
  25. A dubious improvemnt but we're counting it: beeminder.com/aboutus (still working out issues w/the new&improved graphs; not counting that yet)
  26. @mailgun was overzealously stripping "signatures" so we now concatenate stripped-text and stripped-signature. Solves bot email parsing bugs.
  27. Fixed bug in UVI from last night + fixed how bot replies, showing better what it couldn't parse. Waiting on real fix from @Mail_Gun ←♥
  28. Added a new parameter to advanced settings: set the line type for the graph (rosy, steppy, or none).
  29. Fixed a bug w/ reminder bot that gave superfluous reminders if scheduled for after NY midnight but before your midnight. Thx @cyberroland
  30. Yet another timezone bug w/ hitting reset before midnight local but > midnight NYC: reset date wd be a day off. Thx melza & michael b scott
  31. Thanks to @pruneau for noticing that the graph image wasn't updating when you changed the line type (aka step type) from "none". Fixed now.
  32. People wd uncheck 'test goal' & forget or not realize they need to hit submit. Now it warns if you uncheck 'test goal' box & leave the page.

2012 March

  1. Fixed the tooltips on the road dial below the graph so that they don't interfere with each other. Thanks again @pruneau!
  2. Beeminder emergency response time drastically improved today: fully automated the response when you drive off the road.
  3. TagTime graphs now show recent data points, like other graphs do. Still no way to add data manually to TagTime goals. Cc @tagtm
  4. We now fail nicely (instead of 500ing) if there's a problem with avatar URL. Straw poll re avatars: What's up with that bee larva's face?
  5. RT @bmndr: New blog post about our move to Portland and joining @pdxseedfund. blog.beeminder.com/beehive
  6. Changed "reset" to "unfreeze" everywhere, to avoid impression that you'd lose data by "reseting". Also changes to FAQ, front page copy, etc.
  7. Worked around a @Mail_Gun bug where \r's get inserted in the subject if too long. You listening, @Mail_Gun? (We love you as much as ever!)
  8. Fixed a rare bug with the SMS bot that made it mis-parse multi-line text messages (fyi: you can update multiple graphs at once via sms)
  9. "Archiving" now less confusing. Like not calling it "archiving" and the X's change to +'s for restoring graphs to above the fold. HT @hugocf
  10. Hoping to avoid various confusion now that username and timezone is shown in the header. Might be nice to have a live countdown to derailing
  11. Goals in other galleries than ur own (eg beeminder.com/featured) indicate user they belong to. So you can title like "Weight" vs "Al's Weight"
  12. Can now sign in or sign up using your Google or Twitter account. (Mainly a prelude to smoother Withings integration, but useful in itself!)
  13. Bot emails now tell you your distance from the centerline of the yellow brick road, if you're in the wrong lane. (See also stats sidebar.)
  14. Added Facebook Connect. (Can now sign in with your Twitter, Google, or Facebook account. What else wd you like to use? Github? Let us know!)
  15. Who'd make a commitment contract with a stolen credit card? No one. Nonetheless, not asking for CVC code was causing declines. Now fixed.
  16. RT @bmndr: New blog post: Why Weigh (Daily)? Why scale weight is better than beeminding body fat & why daily weighing beats weekly blog.beeminder.com/weighly
  17. Twitter/facebook oauth now show username. Still no yahoo: doesnt make itself easy to be used as strictly an identity provider CC @johnjoseph
  18. Bugfix: bot emails were sometimes contradicting themselves about "wrong lane" vs "emergency day". And typo: "update" for "delta" for sm reas
  19. "delete" buttons were appearing in the edit column for frozen graphs. and removed those links for tagtime goals. HT @lady_alys
  20. Stopped saying "you reached your goal date, or ran off the road for your xyz goal". We employed "if/else" technology.
  21. For all our British beeminders (thx @AutofocusTM!) you can now enter your weight as like 11st4 instead of 158. Note picky syntax. HT Harry W
  22. We've been using server time to put the date in the subject of reminder emails this whole time. Here's an idea: use the user's timezone.
  23. Welcome to Jill: your new favorite beeminder! beeminder.com/aboutus
  24. RT @bmndr: New blog post: Flexible Self-Control blog.beeminder.com/flexbind (crossposted from @msymtrs; summary in 3 tweets to follow!)
  25. Progress on simplifying all the crazy redundant stats all over the page. Namely, some are now replaced with progress bars under the graph.
  26. New at doc.beeminder.com/beeminder-taglines : Up in ur beeswax, mkng u bettr; The bee is a hrsh mstrss; Flexbl self-ctrl; Corrective lenses 4 psychic myopia
  27. Progress bar goes 2.0, and now there's no such thing as too much progress (HT @stuhlmueller for pointing out the bug)
  28. RT @bmndr: @subelsky @yegg Your wish is our command! All the crazy "dots and lines" should be turn-off-able in advanced settings now.
  29. I know we've fixed bugs related to this before but @joshuacarpoff found another example where layout was fubar due to goal title truncating.
  30. More improvements to progress bars, like simplifying the hover text (it even works for tablets, if there's enough room to display w/o popup)
  31. Made the graph legend much better, including working on tablets. And it appears in the sidebar for advanced settings for reference.

2012 April

  1. Withings! 0) already a beeminder? sign-in first 1) go to beeminder.com/auth/withings 2) "update from withings" on the goal settings tab.
  2. Services page (oauth identity providers like facebk connect) improvements (icons on top row if you've connected with them, else bottom row).
  3. Withings authorization now shows your actual name in the icon. (For now only when u first connect so disconnect & reconnect for now to see.)
  4. Finally, Goldilocks truncation of goal titles & other blurbs throughout the site. Also bugfix w/ escaping quotes in full hovertext version
  5. Bugfix with bot trying to be clever about "possible duplicate data points"; it still "calls in the humans" but it obeys anti-magic principle
  6. (Thx once again to @Mail_Gun that we can just parse email sanely instead of having to be overly clever. PS: 2 UVIs in 1 before, 0 in 1 now.)
  7. Minor bugfix: unchecking all days of the week for reminders is equivalent to turning off reminders altogether. HT @ccmclane
  8. Initial @Withings import sends historical data to historical graph, doesn't change main graph. HT @monsieurmarmot
  9. RT @bmndr: New blog post (transcript of our #quantifiedself talk): blog.beeminder.com/pdxqs
  10. Triple delta: You now see your distance not just from the centerline but from both edges of the yellow brick road.
  11. And then we decided to stop calling it "delta" and make it part of the "bare min / hard cap" stat. And we flipped the signs to match that.
  12. Historical version of graph now generated right away the 1st time u connect @Withings scale. Is it bad to presume u want old data imported?
  13. Fixed the hovertexts on the new numbers formerly known as Delta. HT @miro23
  14. Added the new triple colored delta thing to the dashboard widget: blog.beeminder.com/widget (& android app getting awesome; alpha testrs welcome)
  15. Slightly better Contact Us form, link to uservoice.beeminder.com, new FAQ item, tweaks to beeminder.com/overview
  16. RT @bmndr: You can now use paypal (via @Chirpify) instead of a credit card to pay up on your Beeminder pledges. Thx @dukeleto and @ChrisTeso
  17. Updated beeminder.com/money in light of @Chirpify integration; got URLs out of subjects in all bot emails (avoiding spamboxing) HT @kongjie
  18. Added payment type (credit card or chirpify) to list of contracts (and got rid of redundant link to that list).
  19. Another tweak to the Contact Us form to emphasize that we need *your* email address. (Someone filled in support@beeminder.com there. Argh.)
  20. Historical graph now one click away, thanks to rearranged tabs on graph view. (Still fussing with how to arrange them.)
  21. RT @bmndr: New guest blog post by Lee Nathan: Monkey Brains and Multiple Selves. blog.beeminder.com/monkey #akrasia
  22. New copy on the front page. And finished cleaning up the tabs and breadcrumbs on the goal pages.
  23. Bugfix: ugly CSS error where the username and timezone jumped below the My Account menu when you hovered on it.
  24. And various other cleanup, tweaks, and simplifications on the front page, like getting rid of the buttons to read "more gushing" etc.
  25. Decrufted beeminder.com/overview and added a list of example goals.
  26. Added our brilliant advisors to beeminder.com/aboutus -- @dyng, @patrick_jordan, @kubla. Still need to add our investors, namely @pdxseedfund
  27. The Road Dial now fails less egregiously if you have javascript turned off. Thx @dukeleto

2012 May

  1. @beemuvi @AutofocusTM Bugfix/robustifying of the syntax for entering weight in stone. Can now say "16st" instead of "16st0".
  2. And while we're at it: beeminder.uservoice.com/forums/3011-general/suggestions/257618-allow-entry-of-data-points-as-times-in-hours-minut (X:YY is syntactic sugar for X+YY/60 and similar for X:YY:ZZ but no decimals with colons)
  3. 5 months ago @jmillikin emailed us about 2 bugs. We fixed one in ~8 minutes and the other one just now. plus.google.com/117999270348804266828/posts/8HEWtm88ctr
  4. RT @bmndr: New blog post is a reprint of @dreev's $1000 @InnoCentive essay on solving the medical adherence problem. blog.beeminder.com/innocentive
  5. Separated Gmail from Google as services you can log in with. Sorry if @bmndr was needlessly asking for permission to read your email!
  6. In the table of your contracts, it used to confusingly say Paid was False if you'd derailed but payment was still pending. Now says Pending.
  7. Improvements to our @Withings FAQ page: beeminder.com/withings/faq And thanks again to @Withings for this awesome blog post: blog.withings.com/en/2012/05/04/withings-partner-spotlight-beeminder/
  8. Fixed some stupidities with the hover texts on the goal statements, like only having them if they don't fit in the goal/gallery view.
  9. Bugfix: A few days ago we broke the bot email error responses. Like saying "unknown graph" when it meant "bad data format". Dumb!
  10. Fields where you type an email address give the appropriate hint for smartphones to use email-optimized keyboards. HT @carlcoryell
  11. Bugfix 2-for-1: Last night's UVI made it impossible to log in with just username. And fixed bot warnings when almost at target. HT @nwinter
  12. Rearranged the @Withings settings so people would stop forgetting to change kg to lbs.
  13. UI nicety that gives a bigger clickable area for checks/radios in a form — clicking the label selects the item too. HT @patrickc
  14. Zebra stripes on the data tab. beeminder.uservoice.com/forums/3011-general/suggestions/2805680-add-alternating-background-stripe-to-data-table
  15. Bugfix: Goal statements were missing for some Featured Beeminders. Also added signup button to bottom of beeminder.com/overview HT @jennlynch
  16. More glitches and CSS problems fixed in the Data tab. Looks much nicer now.
  17. Moved explanation for importing data from the hovertext where no one ever could find it to an expandable section in sidebar of the Data tab
  18. RT @bmndr: New blog post. Beeminder: Round Tuit Dispenser. blog.beeminder.com/tuit
  19. failing nicer: "failed to find a tip of the day! cc'ing the humans so they can rectify this & maybe throw in a personalized tip as penance"
  20. Migrated both @bmndr blog and @msymtrs to @wpengine. How's that a user-visible improvement? Server response time: blog.beeminder.com/wp-content/uploads/2012/05/pingdom.png
  21. Made the @Chirpify option more prominent (blog post coming soon!). Also tweaked the pledge/goal/status header at the top of goal pages.
  22. You can now sign in to @bmndr with @Runkeeper. More RunKeeper / HealthGraph awesomeness coming soon. cc @andrewpbrett
  23. Bugfix: We broke google oauth last night. HT @brownstudy (and breaking news: problem with some graph refreshes last night)
  24. Bugfix: graphs are auto-refreshing again & caught up from last night; If that threw you off, email support and we'll give you a flat YBR day
  25. Bugfix: Account dropdown on some browsers'd disappear before you could click. HT @tenzil. Also fixed @patrickc's wibble-quibble w/ Acct menu
  26. Fixed some alignment issues and glitches in the header. Thanks again to @tenzil.
  27. RT @bmndr: New guest blog post by @PhilipHellyer: Getting Back on the Wagon. blog.beeminder.com/weasels (also: weasels!)
  28. Fixed alignment issues in the new goal page and miscellaneous tweaks like Beeminder LLC -> Beeminder Inc (aren't we fancy, all incorporated)
  29. You are no longer forced to climb the exponential pledge schedule when you unfreeze. You can keep pledging $5 again and again if you want.
  30. beeminder.com/money gives the details. New FAQ items on that page too. Huge thanks to @KatjaGrace for convincing us on that. More coming!
  31. Minor bugfix: The bot update email (the ones with the tip of the day) could in rare cases say "you're in the red" when you had just derailed
  32. Related bugfix for weight goals: update email wasn't always giving your delta when you were in the wrong lane with lots of safety buffer
  33. SMS bot now smarter, thanks to @yegg. You can specify any unique prefix of the goalname. (SMS bot still only works in the US unfortunately)
  34. Per beeminder.com/money the default choice for pledge level is the next step up in the exponential schedule. Soon: pre-commit to re-commit

2012 June

  1. fixed egregious bug: voluntarily starting a contract (when not frozen) wd sometimes flatten your road. pls msg support if you've seen this!
  2. Some updates to blog.beeminder.com/beenamer/ #onomastics
  3. RT @bmndr: Beeminder presents: GmailZero gmailzero.com #inboxzero #gtd #akrasia #psfdd
  4. GmailZero bug fix: It was letting you hit Shazam before you'd linked your gmail account, causing all manner of confusion.
  5. Tried to get too clever with shape of GmailZero road. Now it just takes you to your goal value in a year (adjustable after A.H. of course)
  6. Redesign of front page thanks to @upstartlabs and @andrewpbrett!
  7. Fixed a bunch of layout glitches with the new design. Thanks so much for bug reports on those, everyone! Really appreciated.
  8. GmailZero reminder emails no longer say "respond with beeminder data" in the subject. With GmailZero.com your graph auto-updates!
  9. Robusted up gmailzero.com including extra checks Zeno-style in the last hour before midnight if you're coming in under the wire
  10. Check out our awesome infinibee logo, designed by @darickdang of @upstartlabs. (Made it the favicon just now as well.) HT @cantastic
  11. RT @bmndr: New blog post about graduating from @pdxseedfund including transcript from demo day: blog.beeminder.com/psfdd #psfdd
  12. Bugfix: status text above graph refreshes properly when u add data (Bonus UVI: prettier header & color-coded status text!) HT @PhilipHellyer
  13. Suppressing the data entry box for GmailZero goals. And check us out on hacker news! news.ycombinator.com
  14. Various tweaks and updates like adding our new logo to the gmailzero.com page. PS: direct Hacker News link: news.ycombinator.com/item?id=4107004
  15. More lenient rule for restarting w/out pledging: <7 days OR <7 datapoints means don't need to pledge to re-rail. #GmailZero users take note.
  16. Bugfix in email bot: now can deal with hyphens in goal names. Bonus UVI: Hyphens allowed in goal slugs (URLs).
  17. Nicer alert boxes when you derail or reach the end of your yellow brick road (and elsewhere). And moved reset/re-rail links to those boxes.
  18. Bugfix for @Withings users who skate the edge and weigh in multiple times (wasn't always getting every weigh-in before noon)
  19. RT @bmndr: New blog post, arguing principles of behavior change with our new competitor, @liftworldwide: Hammers and Chisels blog.beeminder.com/lift
  20. Traffic spike — yay lifehacker! lifehacker.com/5919627/beeminder-tracks-your-goals-motivates-you-by-charging-you-money-when-your-fall-behind — got us to finally cache recent datapoints = faster page loads if u have lots of data
  21. Fixed annoying inconsistency in the order in which recent datapoints were displayed in the reminder emails, update emails, and the web form
  22. If you create a temporary test goal and then actually pledge money on it, we now automatically un-ephemeralize it. HT @patrickoriley
  23. Failsafes (praise godrb.com) for pesky hanging gmailzero or other queue-clogging jobs; & friendlier page for unscheduled downtime
  24. Data points (& comments thereon) are no longer publicly visible (even for public graphs). HT @andrewpbrett
  25. Revamped the footer with links to the twitters and whatnot. beeminder.com (We even added a phone number!)
  26. Compromise: You don't have to climb the exponential pledge sched, but if you don't you get to read a paragraph on why you should! #guilt++
  27. Simplified beeminder.com/money slightly; initial pledge (after the free try) is $5, no choice to pick anything higher.
  28. Fixed alignment problems with the new goal creation form, plus some other miscellaneous tweaks on the front page and money page.
  29. RT @bmndr: What's the buzz? Press roundup for the first half of 2012: blog.beeminder.com/buzz

2012 July

  1. Bugfix: Since June 14 we've accidentally been too lenient in allowing unfreezes w/o pledging. Bug involved extending grace period too long.
  2. RT @bmndr: Demoed today @ #indieweb camp: New Beeminder feature: streaming export. Set a callback URL in settings & get a copy of your data in realtime
  3. Instead of dumping newly signed-up users on a blank gallery page w/ obscure New Goal button, make the button obvious. HT @ezragorman
  4. Better errors for the road dial for things like typing "15 pushups" instead of "15" in the rate field
  5. Adorably embarrassed bee for the 404 page. HT @andrewpbrett and @thatgirl for making the bee blush. beeminder.com/somepagethatdoesntexist
  6. @pjf per your request, the embarrassed bee is now much more embarrassed about 404ing. (upped the contrast; also tweaked the copy)
  7. Bugfix: If you signed up from the overview page you'd get dumped back there after signup instead of new goal gallery.
  8. New blog post about @dreev and @thatgirl's triathlon yesterday, and beeminding thereof: blog.beeminder.com/tri #nyctri
  9. Added some sample goals to the list on beeminder.com/overview and fixed up the formatting
  10. Visual bugfixes: popup notices & warnings sometimes showed up gray instead of red or green, & sometimes misaligned; also image squarifying
  11. Bugfix: If you failed at first to specify a goal type when creating a goal it then would insist on a starting value even for Do More goals
  12. doh, cutesy embarrassed bee was set to megalomaniac; overriding some other custom error handling, like for insufficient permissions & stuff
  13. Only showing graph legend where it makes sense to; got the missing expand/collapse buttons back (and improved slightly). HT @ezragorman
  14. Changed the URLs for shoving graphs below the fold (and unshoving them) since the word "archive" wrongly implied that the goal wd be paused
  15. Bmndr-integrated version of our TallyBee Android app we made for #indieweb camp: dreev.es/tb (apk). in action: bmndr.com/d/push
  16. We cleaned up the pixelly we-were-only-meant-to-be-placeholder images on the frontpage, PLUS we added some praise from high places to ...
  17. (cont'd)... the front page (toot toot!) AND we put a subset of the rotating taglines back into action, for you nerds who like that stuff.
  18. Added a placeholder for @andrewpbrett on beeminder.com/aboutus and fixed a broken link thanks to @mrjavaguy
  19. Countdown timer! Still have to sort out confusion between counting down to derailment vs to goal completion. UVI for another day.
  20. RT @bmndr: New blog post: Synonyms for Self-Binding. blog.beeminder.com/synonyms
  21. .@Runkeeper/@HealthGraphAPI integration done at the @c2q5k hackathon: beeminder.com/runkeeper Thx to @fredtrotter of @runorelse for hosting!
  22. A bunch of improvements to the countdown timer. Thanks @pruneau and @PhilipHellyer!
  23. Tweaks: Clickable area around the logo in the navigation bar was annoyingly too big. Formatting of error messages for new goal creation.
  24. RT @bmndr: RunKeeper link on front page of beeminder.com is live. /cc @Runkeeper @HealthGraphAPI @billday #quantifiedself
  25. Hovertext for countdown timer, and it now auto-refreshes when you add data or dial your road. Thanks yet again to @PhilipHellyer. ♥++
  26. Our @Runkeeper integration now counts just running instead of confusingly combining all fitness activities. HT @claudinec
  27. @pruneau Good point! We just made it a clickable question mark, like in the graph legend. Should also be more tablet-friendly that way.
  28. Updates to blog.beeminder.com/synonyms/ and blog.beeminder.com/akrasia/ and to the About box on the blog.
  29. Bitty buzzing infinibee when your graph is updating. (Also: less janky highlighting of New Goal button when you first sign up)
  30. Users in far away timezones may have noticed an off-by-one error on the countdown timer. We fixed that and an occasional visual glitch.

2012 August

  1. RT @bmndr: New blog post: @Gympact vs @bmndr (including discussion of adverse selection) blog.beeminder.com/gympact
  2. Fixed a visual glitch in the progress bars where the remainder portion of the progress bar would sometimes overflow
  3. Slightly better mouseovers for the road dial (how you change the road steepness below the graph). Still a UI abomination unfortunately.
  4. Goal gallery now sorted by urgency, using a tweakable Panic Threshold in advanced settings. By default: most imminent derailment shown first
  5. Bugfix: two different styles of tooltips overlapping each other on the road dial. Thanks @KatjaGrace
  6. Tweaked the reminder emails for automatic data sources (gmailzero, @Runkeeper, beta testers for @greengoose) so that they make more sense.
  7. Added beeminder.com/donate & Pricing button at bottom of beeminder.com/overview & new money-FAQ item at beeminder.com/money HT @sholdensmith
  8. RT @bmndr: New blog post is a crosspost of our interview on @weusethat, popular on hacker news today: blog.beeminder.com/weusethat
  9. Now redirecting https://beeminder.com to https://www.beeminder.com to not break google oauth for those trying the former URL. HT @kaderbelbina
  10. RT @bmndr: Introducing @greengoose integration: beeminder.com/greengoose
  11. Bugfix: legit check emails no longer pull amt from a prev attempt if no $ on this attempt (happened if voluntary contract + derail in <7d)
  12. Proper footer on our quantified-self landing pages: beeminder.com/gmailzero beeminder.com/runkeeper beeminder.com/greengoose
  13. No more insecure content on front page (images from blog.beeminder), proper thumbnails, hover text, ...
  14. Also suppressed cache-busting for images (that we do for goal galleries) that was somehow being done on front page. (barely user-visible...)
  15. Cleaned up the FAQ -- beeminder.com/faq -- and added new questions, about "buzzing off" and derailing due to random fluctuation.
  16. Bugfix: if you revoked bmndr's permission <sniff> to access your Gmail or RunKeeper then we weren't showing that in My Account -> Services
  17. Fixed misaligned delete buttons in the Data tab (Bootstrap css was interfering with our homespun css)
  18. RT @bmndr: New blog post: Perverse Incentives and the Paradox of Beeminder's Sting. blog.beeminder.com/perverse
  19. Glitchfix: don't let long goal titles wrap behind the goal nav tabs. Also: RunKeeper goals were not staying frozen after derailments.
  20. Comments now truncated properly in Recent Data; Also: mouseovers now consistent between road dial under the graph and in new goal form
  21. Closed an information leak where we 404'd if you asked for a nonexistent goal, but redirected/scolded you if you asked for a secret goal
  22. RT @bmndr: New blog post: Beeminder is S.M.A.R.T., Overcomes Bias. blog.beeminder.com/smart HT @KatjaGrace again
  23. New "weasel-proof me" box in advanced settings: check it if you think we're too soft on you when you reply to legit-check emails w/ excuses
  24. New advanced setting makes your data public (off by default). OSX dashboard widget works better this way too! blog.beeminder.com/widget HT @kubla
  25. TagTime now uses the new soon-to-be-announced @bmndr api, and only sends Beeminder data that's actually changed. cc @tagtm
  26. Glitchfix w/ pagination buttons in data tab, and got rid of superfluous headers on Edit and Delete columns. Soo close on announcing new api!
  27. Inspired by how facebook does submit/save buttons, we now disable them until there's something to actually submit/save
  28. Improved last night's half-assed implementation of facebook-style Save buttons, including a warning if you navigate away w/o saving changes
  29. Redirect to your goal page on re-rail instead of, confusingly, your goal gallery. Also: got rid of RunKeeper options for weightloss goals.
  30. Various style tweaks, consistent buttons, little cog icon on Settings tab. Also: several improvements to beeminder.com/faq HT @jmmason
  31. It's finally possible to fully customize a goal created as "custom", though we recommend most people stick with Do More goals. Next up: API!
  32. Cleaned up New Goal form a bit. Got rid of goal types no one used (available now via Custom anyway) and improved descriptions.
  33. Two improvements in particular: bull's eye only shows up if your goal date is within 2 weeks, and graphs generate slightly faster.
  34. In honor of John Hunter, who died this week, we finally fully flipped the switch to all matplotlib graphs. news.ycombinator.com/item?id=4452731

2012 September

  1. Patched a security hole in the API, thanks to @jmillikin. Thanks to him and others for hammering on it this weekend before we announce it!
  2. It's official! API open to the public: beeminder.com/api and blog post announcing it at blog.beeminder.com/api
  3. The API and blog post about it count as 2 UVIs. As a bonus, there's bsoule's pushup video in the hacker news comments: news.ycombinator.com/item?id=4480056
  4. Got rid of username endpoint in API. Thx to @klochner and @jmillikin for pointing out better ways to get username, both of which we now do.
  5. Terms of Service written by actual lawyers. Try to contain your excitement. beeminder.com/legalschmegal (Huge thanks to @WordPress/@automattic)
  6. You can now change your rate units in advanced settings for custom goals (only for newly created goals with flat roads though!); HT @muflax
  7. Bugfixes: bad things happened if you tried to name a goal "new"; some api auth errors didn't give nice json responses (HT Tom Jack of @Loku)
  8. Bugfix: the Save Changes button wouldn't become enabled if you just made changes in your fine print (text area). HT @pruneau & @WBoerger
  9. For weight loss graphs starting on or after today (sep 10): yellow brick road starts at the max of the first 7 datapoints (instead of 3)
  10. Couple cornercase bugfixes in the API, plus various updates to old blog posts, like new road dial image at blog.beeminder.com/dial
  11. We implemented this for real now -- you can change your rate units (daily, weekly, monthly, etc) for any kind of graph any time. HT @muflax
  12. RT @bmndr: New blog post: Failing your Goals with Beeminder (guest post on Anki and Habitualization by Paul Fenwick (@pjf)): blog.beeminder.com/habits/
  13. API bugfix: broke something a few days ago with the "specify exactly 2 of goal date, goal value, rate" requirement. HT @mrjavaguy
  14. Made the road dial less opaque/confusing: clicking on a grayed out field ungrays it. Hooray @andrewpbrett
  15. New reminder setting to turn off the emails the bot sends back saying your graph is updated (the ones w/ the random fitness tips) HT @gwern
  16. Watermark on graph now just "eep!" on emergency days instead of like "-1" + tweaks to error message wording + rounding fix (HT @cyberroland)
  17. RT @bmndr: We're moving to @trello to track our To-Dos and all our boards are wide open to the public: trello.com/beeminder
  18. Nicer, wizard-like goal creation process. Hooray @upstartlabs, @jennlynch, @andrewpbrett!
  19. New goal creation wizard entails myriad improvements, not least of which is that you can start creating a goal before signing up.
  20. Also thx to @darickdang (the wizard doesn't currently showcase much of his design work so he may be embarrassed to be associated w/ this :))
  21. Also: typeahead slug suggestions; "start flat?" checkbox like for unfreezing; pledging as optional part of goal creation; ... #compoundUVI
  22. One more: weight loss roads are now explicit, not sneaky, in imposing an initial week of flat spot. Big thx to A, who wishes to remain anon.
  23. Removed settings for "good side of the road" and "direction of road" except for custom goals. Was too easy to bork your graph with those.
  24. RT @bmndr: New blog post about Gmail Zero: Beeminding Your Inbox -- blog.beeminder.com/gmailzero/ (with source code and everything) cc @dyang
  25. Added Uluc to our About page -- beeminder.com/aboutus -- and fixed that rounding thing for real (HT @pruneau).
  26. Squashed an insidious little bug where some datapoints' dates wd increment when you edited them. HT @lady_alys @muflax twitter.com/thatgirl/status/250349284602544128
  27. Bugfix (part of improving Submit buttons, which we may or may not tweet separately): form wdn't let u update credit card info! HT @thylacine
  28. Placeholder text in data entry box now has today's day-of-month; + better initial text for autogenerated initial datapt beeminder.uservoice.com/forums/3011-general/suggestions/2749419-put-the-curent-date-in-the-placeholder-text-for-ne
  29. Creditcard forms just got clingier: have to explicitly reject them if you want to abandon your changes (should be consistent everywhere now)
  30. Uncheck all days of week in reminder settings bt lv sms or email reminders on; u'll get warned when u're orange or red beeminder.uservoice.com/forums/3011-general/suggestions/2293507-turn-off-bot-reminders-but-still-get-warnings-for-
  31. Prettier road dial! And, sorry Picard fans, replaced MAKEITSO with DIAL-IT-IN. Thanks again to JX Bell.
  32. RT @bmndr: New blog post, sort of piling on the @MongoDB hatefest: Destroy All! blog.beeminder.com/mongo/

2012 October

  1. Updates to blog.beeminder.com/synonyms & blog.beeminder.com/dial (image of road dial) & blog.beeminder.com/gym & beeminder.com/faq (how do i delete)
  2. RT @bmndr: New on @bmndr blog: The One Must-Do Task Each Day. Ingeniously simple productivity scheme IMHO! blog.beeminder.com/mustdo/ & markforster.squarespace.com/blog/2012/10/3/the-one-must-do-task-each-day.html
  3. Fixed longstanding bug with how the thin yellow guidelines on the good side of the yellow brick road are drawn
  4. Bugfix: When creating a Set-a-Limit goal just ask for generous estimate of your current rate instead of a messed up version of the road dial
  5. New goal fields in the API -- beeminder.com/api -- plus documentation of the 4 fundamental goal types: PHAT, MOAR, WEEN, and RASH
  6. CSS error made it impossible to select chirpify option on new contract! (cd still click the label, but I guess most ppl don't think of that)
  7. UVI2for1: recent-data box on unfreeze used to keep saying 'derailed' till refresh; fixed serious ugliness w/ user gallery & goals in firefox
  8. Fixed big problem with resets if 1) the old goal date was in the past & 2) you reset with a flat road. Should be fewer hiccups on reset now!
  9. Since folks *still* were misinterpreting the "shove below the fold" feature we tweaked the icons. Now they're little minuses and pluses.
  10. Now you can extend your goal when it is about to end (goal date < akrasia horizon); if goal date is past you've gotta do the reset dance tho
  11. For your 1st goal we now skip the pledging part of the wizard by default; wasn't jibing w/ how we describe things at beeminder.com/money
  12. RT @bmndr: Happy First Birthday to Beeminder! blog.beeminder.com/one/
  13. Goals returned by API sorted by urgency, like website but ignore front/backburner status unless explicitly use "filter" to fetch 1 or other
  14. Typos/bugfixes/updates, eg "dial up" -> "down" for weight gain goals, subtle bug w/ sending 1-of-3 of date/goal/rate in API, blog updates
  15. After you re-rail, your graph keeps your previous yellow brick road history on the main graph (option to show *less* again coming soon!)
  16. Hovering over your current profile picture shows link to upload a new one (formerly known as avatars which wasn't so normal-person friendly)
  17. Bugfix with avatar uploads. Still may have problems so please let us know if you spot any! HT @jzh77
  18. RT @bmndr: Just fixed a serious bug with Set-A-Limit goals (they always started flat, obviously way too harsh!) thanks to @manooh
  19. Nfor1: Simplified goal creation form, informs you immediately of any naming conflicts, smart defaults based on goal type, and much prettier!
  20. Various other tweaks to the new goal wizard like picking "pledge now" just goes ahead and moves you into the contract form on the goal
  21. Bugfix: emails for pending deletion of temporary test goals were going out even if the goal was already 86'd. HT plus.google.com/102213224580869682674/posts
  22. Bugfix with new goal form where changing from Set A Limit to another goal type would hide road dial fields
  23. This tweet is officially the last time we're counting a blog post as a UVI. blog.beeminder.com/tv (too many uvis; nice problem to have!)
  24. Bugfix: road dial on the reset page was not updating when you adjusted the values (nice catch by @andrewpbrett)
  25. Fixed some mainly cosmetic glitches with the new goal form: trello.com/c/vDRlKe0m & trello.com/c/p3jLkc66 (more awesomeness frm @andrewpbrett)
  26. Single biggest UVI tweet ever: Android app and iPhone app officially launched!
  27. Fixed a bug where changing your goal date when inside the akrasia horizon made it flatten the road back to last dialing. HT @jmillikin
  28. Made years show up on x-axis for graphs w/ more than a year of data; bare min to get back on the road added to emergency day reminder emails
  29. RT @bmndr: Beeminder ♥ @trello: blog.beeminder.com/trello/ (announcing Trello integration)
  30. Bug fix in breadcrumb navigation if you were on a goal page that wasn't your own (on beeminder/alice/foo would link to beeminder/you/foo)
  31. Random taglines back on top of beeminder.com with a few new additions like "Odyssean goal tracking", "Be mindful of your goals", etc
  32. Fixed and improved @Chirpify integration! Delighted that so many people noticed right away. Was actually 2 separate bugs by us and Chirpify!
  33. API auth token accessible in account settings (My Account -> Profile). HT @scottkrager

2012 November

  1. RT @bmndr: Beemind Your NaNoWriMo Progress: blog.beeminder.com/nanowrimo/ #nanowrimo
  2. Bugfix with email bot parsing: Combination of colon shortcuts -- beeminder.com/faq#qcut -- and long comments caused line-wrapping problem
  3. RT @bmndr: Big improvements to the @bmndr Android app: play.google.com/store/apps/details?id=com.beeminder.beeminder . And big improvements & key bugfix for ios5 coming in ~1wk for iPhone.
  4. Big improvements to iPhone app in the app store now. (Sorry for the briefly published version that crashed for people with nonweekly rates!)
  5. Bugfixes with #nanowrimo integration and workaround for google docs integration flaking out (see goal settings)
  6. You can now create goals that automatically update with your Fitbit data, including steps, weight, and activity: beeminder.com/fitbit
  7. Under My Account -> Profile -> Email, you can now change your bot reminder settings for all goals all on one page
  8. Better unsubscribe links (after screwing them up briefly -- sorry about that!)
  9. Prettier front page -- beeminder.com -- including links to the iphone and android apps and new data sources
  10. Fitbit weight and body fat percentage now start flat for one week for acclimation, and use the same units as what you use on Fitbit
  11. Can now set a passwd even if u don't currently have one (like if u've only signed in w/ Google/Facebook/etc before) [needed for android/ios]
  12. RT @bmndr: Experimental @rescuetime integration: beeminder.com/rescuetime -- HT @tlbtlbtlb
  13. You can now set up a Fitbit goal before signing up/in to Beeminder
  14. Dismissible notification boxes (the little message boxes that pop up above your graph now have X's on them to explicitly dismiss them)
  15. Short-circuiting! You can jump ahead to the next pledge level by paying the current pledge (not sure if that's too harsh but it's a start)
  16. And pledge-decaying! You can drop back to the previous pledge amount at any time, subject to the akrasia horizon
  17. Feature request we couldn't refuse: API endpoint for just directly coughing up money. beeminder.com/api#charge Thanks @pjf! #antiakrasiatools
  18. Added a "dryrun" flag so you can test the new "charge" API call without accidentally making charges. Thanks again to @pjf #antiakrasiatools
  19. Bugfix: Gracefully handle invalid characters in datapoint comments (and other API parameters)
  20. Smarter buttons that get disabled after you click them, so you know something is happening!
  21. Bugfix: the text on your profile page, e.g. "Risking $X on Y roads", now shows the correct amount and road count. HT @stuhlmueller
  22. If you have less than a month of data on RescueTime, we now take that into account when calculating your suggested rate (initial YBR slope)
  23. The RescueTime setup page now uses better Categories from your RescueTime data, and calculates your target in hours instead of minutes
  24. Other @rescuetime integration improvements, like suppressing data entry box and customizing the reminder emails. HT @robby1066

2012 December

  1. Bugfix: Imports from Fitbit no longer import days with no data before you started using Fitbit
  2. Bugfix: Some imports, particularly RescueTime, would sometimes show the buzzing "infinibee" on the graph even after it had been updated.
  3. Updated Twitter and Facebook login icons
  4. Bugfix: setting a goal date to something invalid would silently fail and result in a broken graph. No longer!
  5. Import wizards (including RescueTime, Fitbit, and Withings) now allow you to immediately set a pledge amount after they are done wizarding
  6. Improved process for creating a goal with Withings. No more FAQ page with complicated instructions!
  7. RT @beemstat: Oy, apparently some people on Firefox got the downtime page cached & thought we were down all day. We weren't! Fixing: stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers
  8. We now infer your initial datapoint from your Withings data when possible, and adjust your goals units based on the Withings goal type.
  9. ZOMG the new goal page is so pretty! @andrewpbrett now knows how Michaelangelo felt after finishing David
  10. Oops! We had lost the Data tab (where you can edit past datapoints) when switching to new shiny goal page layout. Back now. (By "Add Data".)
  11. Previous tweet is a dubious UVI, putting back something we accidentally removed, but all this hotness/rearranging is easily >3 UVIs anyway
  12. To be clear: 1. countdown front&center, 2. no ugly sky-blue, 3. prominent bare-min/hard-cap w/ hover text, 4. shiny Settings icon, etc
  13. Restored progress bars to the sidebar (HT @strickvl) and added javascript tooltips instead of delayed mouseover text
  14. Bugfix: Fetch RescueTime data before letting you create a goal, preventing a bug where Unproductive time was "good". HT @gwillen
  15. Got the derailment notification out of the huge red banner that no one noticed because it looked like an ad (now replaces countdown instead)
  16. New "Quick Add" widget on your goal gallery page for adding data points without clicking through to your goal page. beeminder.uservoice.com/forums/3011-general/suggestions/2692362-a-single-page-for-entering-all-your-day-s-data
  17. RT @bmndr: Good news and bad news. Good: Version 1.5 of the iOS app, with push notifications, Facebook/Twitter login and more. itunes.apple.com/us/app/beeminder/id551869729
  18. RT @bmndr: And the bad news: There may be a problem in this update that requires you to reinstall the app. Please try that if you're seeing issues.
  19. Added GitHub as an option for signing up and in, setting the stage for beeminding commits, etc. HT @dukeleto and @tenXer and @mattswe
  20. Fixed bug where bare-min/hard-cap checkmarks were showing up when you were actually in the red (for some graph types). Yikes!
  21. UI tweak: don't show the sprocket icon on the Settings page; show breadcrumb instead. HT @PhilipHellyer
  22. Bugfix: We had accidentally started suppressing the link to all data even if you had checked Public Data in goal settings. HT @lady_alys
  23. RT @bmndr: New version of the iPhone app (1.5.1) fixes the crashing problem in 1.5.0; fix for the decimal point bug awaits 1.5.2. #ios
  24. Streamlined the creation of Do More goals: just an initial rate and a checkbox for starting with a week of safety buffer before ramping up
  25. All toggleable (collapsible) headers now use 'cursor: pointer' to indicate clickability; Quick Add now toggleable.
  26. Bugfix: Set-a-limit goals were starting w/ a week of flat spot (irony: working on feature to deter starting flat). HT @djwilsonmh
  27. Changes to beeminder.com/overview ("What is Beeminder?" and "How is it different?") and typo fixes in blog posts thanks to @gregibrown
  28. Time bug w/ Quick Add box: if you were ahead of the prime meridian it showed you a day ahead; getUTCDate() vs getDate(). HT @djwilsonmh
  29. Fixed a bug that made it impossible to restart after successfully reaching your goal. HT @cyberroland & @dehintze
  30. For goals with autogenerated data, autopopulate most recent value when unfreezing and don't prompt for retro data. HT @KatjaGrace
  31. Don't show legend entries that arent on the graph, dismiss baremin tooltip by clicking anywhere, New Goal button on goal page HT @gregibrown
  32. The Quick Add data form now updates the graph thumbnail with the new datapoint #TooSexyForTheInfinibee
  33. RescueTime goals now start with a week of flat spot, per blog.beeminder.com/chunky HT @gregibrown
  34. Fixed glitch with the bare-min/hard-cap box where it would keep saying "Need More Data" after initial goal creation
  35. Set-A-Limit goals would show 3 checks when you were about to derail. Now they show bangs. (And other related fixes for hard-cap/bare-min.)
  36. No infinitely flat roads: DoMore/Odom now require a rate that takes effect in at most 1wk; Weightloss is flat for 1wk, then slowly goes down
  37. If your credit card on file has expired you're prompted to enter a new one before pledging on a goal, and notified if a charge fails
  38. Got rid of 5 or 10 minute delay on legitimacy check emails which also means you'll now get them even if you immediately re-rail
  39. Overview vs category @rescuetime bugfix: For some activities it'd return total amount of time, not amount of time spent on that activity
  40. IOS v1.5.2: Zooming on graphs, data entry shorcuts, better "Updating..." messages, safety buffers on goals, bug fix for reporting decimals
  41. Pingdom says our server upgrade took us from over .7s response time to about .5s so that counts as a UVI!

2013 January

  1. Bethany's (@thatgirl) how-to video is on the front page now. We really need to redo it but we a/b tested and it's much better than nothing!
  2. API improvements: datapoints_count filter when fetching user, requestid parameter whn creating datapts, roadmatrix info beeminder.com/api
  3. Does preventing our server being pwned by a rails vulnerability count as a UVI? We'll say no but the previous tweet was multiple UVIs in 1.
  4. RT @bmndr: @johnmarkos You can set your timezone under My Account -> Profile. And as of yesterday it defaults to whatever your browser has set.
  5. Default goal slug is now just the first word of whatever title you give. There were a few reasons the unwieldy slugs were a bad idea.
  6. Bugfix: we were giving ugly errors when we didn't recognize certain timezones, like "Asia/Dubai" (& note previous RT about timezone feature)
  7. Bugfix: deleting a datapoint on Fitbit would cause Fitbit to tell Beeminder there was a new datapoint of zero; now we ignore 0's HT @justynB
  8. Mini UVIs: settings breadcrumbs on all settings tabs, gray Start Contract btn upon click, sharper gallery thumbs, hide default goal statemt
  9. Bugfix: Rare error where updating credit card info along with re-railing would just ignore the new credit card info. #moneyburningbug
  10. Twas confusing how we showed Beeminder website itself as 1 of the auth'd clients in bmndr.com/apps, esp. if you revoked its access!
  11. Fixed the timezone bug where the graph would update for the following day if you updated between 11pm and midnight (some hackery involved)
  12. Bugfix w/ goal creation: we were creating initial datapoints according to servertime, not usertime (mostly benign til aforementiond hackery)
  13. Tweaks to the "Your Account" menu in the upper right, and put your timezone next to your avatar with a direct link to change it
  14. Countdown timers weren't live-updating in Chrome; now they are (Upgraded a jquery plugin). Also did this: trello.com/card/remove-underline-and-maybe-number-phases-of-goal-creation/4f079dbc30a67d1864012d6b/398
  15. Bugfix: Temporary test goals are once again actually temporary. Blogging the details of this and other screw-ups shortly...
  16. API bugfix: diff_since operator precedence error caused us to return extra datapoints [fixed a while ago and forgot to tweet]
  17. Bugfix: derail bug that made some goals do this weird limbo thing where the graph had skull&crossbones, but the countdown gave an extra day
  18. Bugfix: when creating new goal, the slug gave spurious/unfixable conflict error if the first word of title conflicted trello.com/card/bug-new-goal-slug-spurious-conflict-warning/4f079dbc30a67d1864012d6b/400
  19. Couple new taglines in rotation: "Damoclean goal tracking", "Engineer yourself" doc.beeminder.com/beeminder-taglines HT @shawnwillden (plus changelog link)
  20. 3 UVIs in 1 to make up for previous cheapy: trello.com/card/possible-bug-with-associations-false/505b86f00c9dafca5be321cf/88 (HT @pjf) trello.com/card/uncheck-start-flat-default-road-dial/4f079dbc30a67d1864012d6b/356 (HT @LeahLibresco) trello.com/card/500-on-gldt-2013-20-02/4f079dbc30a67d1864012d6b/379
  21. Fixed a database index problem and made Beeminder (and apps!) noticeably faster! Video illustratn: youtube.com/watch?v=PmTZ0mSuIIA youtube.com/watch?v=lh5vYTPJXuE

2013 February

  1. RT @bmndr: Another revenue-destroying bug: for the last week, until today, we accidentally had the unfreeze/re-rail button disabled for everyone. Oy.
  2. Much nicer looking buttons for stepping down a pledge level and shortcircuiting to higher levels. blog.beeminder.com/shortcircuit
  3. Fixed the weird characters (eg &#x27; for apostrophe) that had been appearing in some bot emails since upgrading to ruby 1.9.3 last week
  4. Bugfix: countdown timer wasnt updating along w/ graph; we updated the countdown library & missed a deprecation of the fn we called to update
  5. Small but important UX improvements: Don't default to zero on weight goals; ask for 'weight' not 'value' trello.com/card/weight-loss-default-zero/4f079dbc30a67d1864012d6b/402
  6. Bugfix: The DIAL-IT-IN button wasn't working in older versions of Safari. HT Conny Kühne
  7. Bugfix: Error in email settings form, where some goals were getting ignored when you updated settings. HT @jbxf
  8. Bugfix: The road dial was failing (in a new way!) in older versions of Safari due to us failing to include the right date parsing library
  9. Bugfix: Resetting sometimes caused "road matrix out of order" error due to timezones. BITE ME TIME! I DON'T LIKE YOU EITHER. HT @carlcoryell
  10. Bugfix: If you accidentally said u wanted a rate of +0.0001 till u'd lost 10kg it gave a nasty overflow; now it gives the usual obtuse error
  11. RT @bmndr: Precommit to Recommit: The Third Great Beeminder Epiphany. blog.beeminder.com/recommit/ (blog post about a new feature + nudge psychology)
  12. Made the legit-check email give both the pledge you're paying and the new pledge, if you have precommit-to-recommit on
  13. Fixed various instances of white-on-yellow & yellow-on-gray (usually just as hover effects, but still). For our ref: juicystudio.com/services/luminositycontrastratio.php
  14. Bugfix: On Withings-linked goals checking the Precommit box didn't save the setting. HT @PhilipHellyer & @ternus
  15. Solved Mystery of the Disappearing Checkbox (glitchiness & confusion w/ precommit-to-recommit if you'd started a countdown to lower pledge)
  16. Precommit-to-recommit improvement: Auto-rerail at same pledge amount if there's a stepdown in progress; don't cancel stepdown on auto-rerail
  17. RT @schwern: Tracking Github commits & issues closed w/Beeminder may be the greatest productivity boost of the 21st century. doc.beeminder.com/gitminder
  18. Fixed an email bot error where it was barfing & silently failing (instead of the usual "cc'ing the humans" reply) when it got a blank email
  19. RT @bmndr: We had a bug last night and this morning that made bot reply emails have blank bodies. Fixed now. Sorry about that! HT @ternus
  20. We were a little trigger happy with regenerating the graph; no longer doing so for things like clicking the button to reduce the pledge amt
  21. We now send you an email when you successfully reach the end of your yellow brick road. In other news, until now we stupidly didn't do that.
  22. GitHub logo on front page. Discuss Gitminder on Hacker News here: news.ycombinator.com/item?id=5265687
  23. Nicer navigation in goal settings. And datapoints list is now there too, hopefully easier to find than the All Data link...
  24. Also the datapoints list is more readable, and the pagination links don't look all glitchy (and that purges the last of the kibotzer blue)
  25. We force you to update your cc info now if a charge fails. We also *allow* you to update your cc info if a charge fails. HT @cyberroland
  26. We rewrote beeminder.com/money in anticipation of changes to how deleting goals work; eg "you can create several freebee goals like that"
  27. Bot emails describe the buzzing off state more succinctly, consolidated reminders page indicates which goals are buzzing off. HT Justin Kwok
  28. Cleaned up various alignment problems on the fwomp page (where you can adjust reminder settings for all goals in 1 place) HT Thomas Berkhout
  29. [2 tweets > 2 UVIs] Justin: plus.google.com/100319877423072491516/posts Thomas: plus.google.com/116189040554404129900/about Trello: trello.com/card/buzzing-off-on-fwomp-page/4f079dbc30a67d1864012d6b/458 trello.com/card/lay-out-of-e-mail-settings-is-a-bit-off/4f079dbc30a67d1864012d6b/451
  30. Checkbox on individual goal reminder settings to only get wrong-lane & eep reminders (macro that unchecks all days of the week) HT @tblakers
  31. Bugfix: If your credit card had problems we weren't letting you switch to Chirpify/Paypal betw UVI#737 & now. HT @pankajmore

2013 March

  1. Bugfix: Gitminder reminder emails have been confusingly prompting you to reply with data even though the whole point is it's automated now!
  2. Now more obvious who you're unsubscribing, to prevent someone unsubscribing you if you forward them beeminder email and they hit unsubscribe
  3. Bot reminder emails for all goals with automatic data sources don't prompt for manual data entry, and include direct link to remind settings
  4. Bugfix: if you authorized @fitbit before you signed up for @bmndr, we weren't saving your authorization (and couldn't pull your data!)
  5. Beemind floors climbed, if you got a fancy enuf @fitbit. HT David MacFarlane who beeminded bugging us till we did it: beeminder.com/davidhm21/remindfitbit
  6. Bugfix in SMS bot: certain invalid slug chars could cause silent failure if they broke the regex looking for the goal to attach the data to
  7. Bugfix: CSS error in datapoints view where long lines in the datapoint comments wrapped wrong and made the edit & delete links inaccessible
  8. Bugfix update to Android app: "Protocol errors" on sign-in and occasional crashes should be largely fixed. Let us know if they still happen!
  9. Inspired by the love from @trello & @FogCreek -- blog.fogcreek.com/dogfooding-until-it-hurts/ (see last paragraph) -- we're polishing our Trello integration...
  10. Trello goals show (& let you change) the lists being minded in Settings; superfluous data entry box replaced w/ link to the actual board
  11. Custom goals default to auto-summing. Avoids much confusion, plus the consequences of accidental kyoom=true are less severe & more obvious.
  12. Recent datapoints now show up even when the goal is frozen; also a few tiny changes to make some borders more visually consistent
  13. Gitminder bugfix: missed some commits around the edges of days cuz of specifying timezones when they wanted UTC (y u no unixtime, @github?)
  14. Restored sanity to aggday param: agg'ing happens first, then auto-summing (so be careful that you really mean, eg, kyoom=true & aggday=last)
  15. Fixed glitch in navigation bar on the blog, improved it a bit while we were at it (eg facebook.com/beeminder button) blog.beeminder.com
  16. Made the data box look much less ugly when the goal is derailed & fixed the hideous mess of the short circuit modal window
  17. Our CSV export wasn't RFC-compliant, now it is, thanks to Clayton Hughes [claytonhughes.com]. We threw in TSV while we were at it.
  18. Bugfix / workaround for IFTTT bug: You can now use @IFTTT recipes that send data (with comments) to the Beeminder bot. This will be huge...
  19. Typofix in help text for hard cap [HT davidreiley.com]; Blog tweaks, eg blog.beeminder.com/tag/integrations now shows all posts about integrations
  20. RT @bmndr: You can jump straight to any pledge amount you want with our premium plan for the low, low price of $40/month (includes other perqs too)
  21. Fixed @Chirpify integration (as self-punishment, not retrying charges frm when 'twas broken, 'cept from yesterday to make sure we fixed it!)
  22. Embarrassingly, had a bug for some time in Chrome that didn't allow spaces in credit card numbers (I hate sites that do that!)
  23. Bugfix: (error-checking fail) on goal reset we'd sometimes merrily update the pledge despite errors and send you back to a frozen goal
  24. Bugfix: Odometer goals could get very confused on reset due to the tare feature [beeminder.com/faq#qodo] HT David Baggett
  25. Added a My Goals link on the front page for logged-in users; halfway to beeminder.uservoice.com/forums/3011-general/suggestions/2920540-landing-page-for-logged-in-users HT Justin Kwok
  26. You can now choose to hide your data or keep it when you reset a goal, ie, "fresh start" option, as alluded to in UVI#608
  27. You can now archive (effectively delete) goals, subject to the akrasia horizon (if the goal's derailed, rerail it first, with a flat road)

2013 April

  1. No more "temporary test goals", aka ephemeral goals, since anyone can now use the akrasia-proof archive button on goals they don't want
  2. Bugfix: "start flat" was correctly suppressed when resetting set-a-limit goals, but not for set-a-limit-esque custom goals (dir*yaw<0)
  3. New premium plans (Bee Lite, Plan Bee, and Beemium)! We're about ready to announce it for real: beeminder.com/premium
  4. OMG RetroRatchet! beeminder.uservoice.com/forums/3011-general/suggestions/2289727-retroratchet- (initial version is fully hardcore: road jumps to your current datapoint)
  5. Bugfix: Auto-rerailing (precommit-to-recommit) and the nascent retroratcheting made the road too wide while you were on the discontinuity
  6. Bugfix: "start flat" was correctly suppressed when resetting set-a-limit goals, but not for set-a-limit-esque custom goals (dir*yaw<0)
  7. RT @bmndr: @pruneau Your wish is our command! Archiving of completed goals is live now (just for completed, not derailed goals).
  8. You can now change your premium plan (or cancel it) from your settings: bmndr.com/premium
  9. Bugfix with premium plans that let people on lower plans jump to any pledge level on unfreezing -- supposed to be Beemium-only
  10. Alignment problem with buttons in confirmation dialog for premium plan. HT @thenatealator github.com/nsp
  11. Small UI bugfixes: trello.com/card/your-account-is-no-longer-a-link-and-can-t-be-accessed-on-touchscreens/4f079dbc30a67d1864012d6b/546 and trello.com/card/new-contract-submit-button/4f079dbc30a67d1864012d6b/548 HT @PhilipHellyer and Thomas Berkhout
  12. We were allowing spaces in the github repository name for Gitminder goals and then failing due to them ("invalid url"); now we strip them
  13. Myriad tweaks and changes to premium plans (not least: adding the Beekeeper plan). Read all about them at blog.beeminder.com/premium
  14. We bowed to pressure to have custom road widths for custom goals (ie, available on the Bee Lite premium plan) tho we're not sure it's wise!
  15. Bugfix with auto-capping of safety buffer; it was treating leaving it blank as setting it to 0, among other problems (regex forcing 1 digit)
  16. Bugfix: Premium subscribers were stuck at the $10/$5 pledge level on rerailing a goal for a while
  17. Bugfixes with Exquisitely Fair Slider, like it would say paid till 2096 if you got a lifetime plan. We're in this for the long haul, people.
  18. Bugfix: internal API changes for Archiving broke backburnering in the Android app (it was archiving instead of backburnering), fixed today
  19. Archived goals no longer 404 when you visit the url; can unarchive them if you want to restart; goal count in your gallery now excludes them
  20. That was like 3 UVIs in 1 so let us also mention a bugfix last week that we forgot to tweet where the Retroratchet button was barfing
  21. Parametrized retroratchet: specify exactly how much safety buffer you want to remove (available for now on the Bee Lite (and up) plan)
  22. Bugfix: Graphs generated since last night had the 1st datapoint cropped out; add new data or wait till tonight's refresh for fixed version
  23. We had a rare bug where a user could sign up and we'd fail to infer their timezone, which confused everything; now we default to NYC time
  24. Timed perfectly w/ being on *the front page of the Wall St Journal*, we broke signups for people not signing up via goal creation. Now fixed
  25. Bugfix: Weird interactions with the aggday and plotall parameters. Related to but distinct from UVI#757
  26. Bugfix: rose-colored dots bug is fixed (or will be after graph refreshes). HT C Hughes (claytonhughes.com) & @TijlK & Arthur Breitman
  27. Similar to auto-canceling subscriptions we now automatically uncheck all your precommit-to-recommit checkboxes if you stop using Beeminder
  28. We now retry charging your credit card if it fails. How's that an improvement from your perspective? We're now a more credible threat!
  29. If you ham-finger your login, we now tell you if it was the username or the password that you mistyped. trello.com/card/wrong-username-or-password/4f079dbc30a67d1864012d6b/130
  30. Android app version 1.5.2! Google sign-in, crash fixes, other bug fixes and optimizations. play.google.com/store/apps/details?id=com.beeminder.beeminder
  31. And one anti-UVI (but the previous was worth at least 3!): No more creating goals within the app. Need to focus on data entry and reminders.

2013 May

  1. Blog improvements: grouped FAQ posts blog.beeminder.com/tag/faq & new pie charts blog.beeminder.com/exponential (& beeminder.com/faq improvements)
  2. New version of iphone app! Lots of bug fixes, more prettiness, backburnered goals show up below the fold. itunes.apple.com/us/app/beeminder/id551869729
  3. We were letting you create new goals reusing the URL of an archived goal, but then showing you the archived version when you went to the URL
  4. Now we don't let you reuse archived slugs, and we changed the names of the few problem goals so that people who already did this are good
  5. Bug with parsing Accept header "text/text" caused Google to yank us. Oy. Sanity now restored -- googling "beeminder" returns our front page.
  6. A subtle change to the signup form fixed the problem of people accidentally putting their passwd as their username: trello.com/card/people-accidentally-type-passwd-in-username-field/4f079dbc30a67d1864012d6b/121
  7. API now accepts caret syntax for the timestamp field when creating datapoints; convenient for @zapier integration. HT @nslater
  8. Goal info box showing your goal statement and fine print on your graph page
  9. Changes to the front page: hovertext for autodata sources, our physical address in the footer, Beeminder Buzz section, ...
  10. Also changed the blurb for Odometer goals to make clearer that Odom is just like Do More except you report the cumulative total yourself
  11. Bugfix in API: we were handling skinny=true correctly, and handling it correctly if you omitted it, but explicit skinny=false we got wrong
  12. More crazy options for aggday (like median, mode, trimmed mean, uniquified mean) for custom goals, plus a special one just for @Jolly...
  13. Since there've been a few improvements w/ aggday, another tweet to explain aggday=jolly: lambda points: 0 if len(points)==0 else 1
  14. The callback URL [twitter.com/bmndr/status/219623248273481730] was susceptible to an infinite data post loop. Patched. Try specifying "bmndr.com".
  15. Bugfix: Safety net for unchecking precommit-to-recommit if u stop beeminding was too "safe", prevented auto-rerails if no other active goals
  16. There's now an extremely tedious way to pan and zoom your graph in advanced settings! Better than nothing, right? (See tmin/tmax/vmin/vmax)
  17. Error messages for form validations were all over the board; we made the grammar consistent and brought them more in line w/ rails defaults
  18. 2-for-1: Confirmation emails when signing up! trello.com/card/security-confirmation-emails/4f079dbc30a67d1864012d6b/605 and RescueTime minutes-vs-hours bugfix: trello.com/card/rescuetime-bug-switched-from-minutes-to-hours/4f079dbc30a67d1864012d6b/622
  19. A bunch of tweaking and alignment fixes in the goal settings forms (and then fixed a bug that that caused in the Quick Add box)
  20. RT @bmndr: New version of the Beeminder Android app: Simplified goal screen, faster sync, and bug fixes: play.google.com/store/apps/details?id=com.beeminder.beeminder
  21. Small bugfix with the purple steppy line: Odometer graphs could sometimes show a gap on the first day, and it wasn't showing purple halos
  22. Made zooming slightly more sane: specify just tmin or tmax to have vmin/vmax inferred based on what part of the YBR/datapoints are visible
  23. Chirpify example tweet bugfix; made auto URL suggestions consistent (had hyphenated monstrosities for fitbit goals) HT @pruneau @nslater
  24. RT @bmndr: RT @duolingo: Cool! Now you can use Beeminder to keep up your streak on Duolingo: blog.beeminder.com/duolingo/
  25. Bugfix: Archived goals weren't getting cleanly/properly ended; was a problem when unarchiving/restarting trello.com/card/ending-archived-goals/4f079dbc30a67d1864012d6b/618
  26. You can now immediately and completely delete goals with less a week of data. beeminder.uservoice.com/forums/3011-general/suggestions/3952632-allow-the-deletion-of-new-goals HT @nslater
  27. Bugfix: Failed to send eep-day reminders for inbox/weightloss goals if you were far above the road and had already entered data for the day
  28. Refresh button on goal pages! Should make skating the edge of a road with an autodata source much less anxiety-inducing...
  29. Small fixes/UVIs: trello.com/card/confusing-could-not-save-goal-error/4f079dbc30a67d1864012d6b/644, link to boilerplate fine print in goal page sidebar, new links in footer, faster 3am refreshes
  30. @lady_alys Yes while refreshing, but it also was *staying* disabled, which was a bug, now fixed. Thanks for asking this! (this reply = UVI!)
  31. New version of Android app (1.5.4): Simplified menus, sync warning in goal gallery, bugfixes, more robust datapoint submission, changelog

2013 June

  1. Bugfix: if Fitbit goals run into an auth error, we show you a nice error message instead of silent failure
  2. Bugfix: the legit check emails sometimes quoted the old/new pledge amount wrong when precommit-to-recommit was on
  3. Bugfix: recent datapoint above Quick Add box would sometimes be a day ahead; we also now update the recent datapoint after you add a new one
  4. Re: UVI#833: Now for RunKeeper as well, ie, we tell you if Beeminder lost authorization to access your RunKeeper data
  5. No-mercy option for precommit-to-recommit! Check it (in advanced settings) and auto-rerailing will happen without the week of flat spot.
  6. Bugfix: Android app was crashing on datapoint submission for pre-Gingerbread (<2.3) devices; update should be on Google Play shortly
  7. Other improvements in new Android version: speedup in loading goal gallery and goal details, consistent display format for last datapoint
  8. Widget generator! beeminder.com/widgets
  9. Made Gitminder [gitminder.com] stop reporting superfluous zeros: beeminder.uservoice.com/forums/3011-general/suggestions/4044551-stop-gitminder-posting-0-datapoints HT Ben Eills github.com/beneills
  10. Mini-UVI medley: fix superfluous cc'ing of support on false alarms about tip-of-the-day errors; change some colors; trello.com/card/set-a-limit-safe-days/4f079dbc30a67d1864012d6b/681
  11. Cont'd: smart submit button on user prefs (button disables when clicked so you can't double-submit); close iframe tag for widget generator
  12. Hovertext on bare min / hard cap numbers shows negative distances when the number is just a checkmark. HT @nslater @tblakers
  13. In advanced settings: "enable precommit-to-recommit on your goal page first and then you can enable no-mercy precommit-to-recommit"
  14. API bugfix: we now catch JSON parse errors (and send you the error message) in datapoints#create_all instead of just 500ing
  15. Bugfix: sometimes after hitting refresh the bee would stop buzzing before the new graph image was generated; no more premature debuzzing!
  16. Guiding line demarcating 7 days' safety buffer is a bit more prominent (important since that's where the akrasia horizon is nonbinding)
  17. Cosmetics on goal creation wizard and better hovertext to explain "weekly rate"
  18. Less confusing wording in the bot reminder emails for auto-data goals like @rescuetime. HT @dehintze
  19. Related: bot reminder emails for auto-data goals now say the bare min or hard cap if it's an emergency day. Coming next: important bug fix!
  20. Bugfix: bot emergency day emails weren't being sent if you jumped way into the wrong side (red) of the road, as is common with gmailzero
  21. We now check for new autodata right before sending bot reminders, so the reminders actually reflect up-to-the-minute reality
  22. Fixes and improvements to our webhook feature for mirroring your data. Real-time PESOS! indiewebcamp.com/PESOS #indiewebcamp HT @pjf
  23. Until now we skipped bot reminders for autodata goals for all but emergency days. Adjust your settings if you only want emergency reminders!
  24. RT @bmndr: Zeno polling! blog.beeminder.com/zeno (New blog post about a new Beeminder feature, plus another crash of ineptitude mea culpa)
  25. Reminders were skipped if there were any errors which caused your graph not to render (tmin/tmax, no datapoints). Now we send them anyway.
  26. Android app version 1.6 (UVI 1 of 7): You can now edit and delete datapoints in the Android app!
  27. Android app version 1.6 (UVI 2 of 7): Slideout info with additional goal details (touch the little "i" on the right of the graph)
  28. Android app version 1.6 (UVI 3 of 7): Feedback form with diagnostics (also the reason for the new app permission to read logs)
  29. Android app version 1.6 (UVI 4 of 7): Lots of improvements to the data entry form, plus hh:mm shortcut supported (even -hh:mm)
  30. Android app version 1.6 (UVI 5 of 7): Tally input method which @dreev says is BRILLIANT for beeminding pushups (touch screen w/ your nose)
  31. Android app version 1.6 (UVI 6 of 7): Fixed sync problems when not on wifi due to proxy caching
  32. Android app version 1.6 (UVI 7 of 7): Various other fixes and improvements with syncing and better display of recent datapoints

2013 July

  1. Small bugfix update to the Android app (version 1.6-r1)
  2. And we forgot to tweet an Android UVI before: Beeminder-centric keyboard layout (PS: another bugfix coming; workaround: sign out & back in)
  3. Fixed a bug that gave you an extra freebee when you were prompted to add a pledge to a new goal because you were at your freebee limit
  4. Autodata goals (like @duolingo, @fitbit, etc, where beeminder automatically enters your data) now show how long ago data was last fetched
  5. Dollar amounts on eep day bot reminder emails. Baby step towards trello.com/card/better-bot-subject-lines/4f079dbc30a67d1864012d6b/642 HT @cyberroland @Smoken_Flames
  6. The goal gallery now shows a check mark next to goals that have had data added today, so you know what still needs attention. HT W Gerritsen
  7. We had people misunderstand "unlimited freebees" so we made it more generous; see "UPDATE" on blog.beeminder.com/premium
  8. Android bugfix release (ver 1.6-r2) that fixes a crash and a spurious "Waiting for website" as the last update time status message
  9. New feature for Gitminder [gitminder.com]: you can now beemind all commits across all your github repositories. HT @wycats
  10. Bugfix: don't send spurious password changed email immediately after signup (happening since about UVI#819 embarrassingly)
  11. Checkmarks next to goals 1) are based on whether the goal has a datapoint for today 2) don't get hidden for long goal names 3) have tooltips
  12. Scheduling your bot reminder before 3am could cause confusion or delay (due to overnight refreshes at 3am) so now it doesn't let you do that
  13. Gmailzero updates your datapoint IFF it's a new min, circumventing bug w/ reporting bare-min values. HT @carlcoryell trello.com/card/gmailzero-bug-with-low-vs-current/4f079dbc30a67d1864012d6b/719
  14. Unsure how extensive but we found one case where Zeno polling continued after the goal derailed. *Blush*! Bugfix: added a check to stop that
  15. Zeno polling was a little too literal; now it won't email less than 5 minutes apart. This should also help w/ slowdown in overnight refresh.
  16. Bugfix with custom goals: it would fail if you unchecked "flat start" and adjusted the road dial when creating the goal. HT @strickvl
  17. Bugfix with creating new @trello goals: we were only accepting the old-style board URLs! HT John Bourassa
  18. More useful reminders for autodata goals: they include recent data points as well as YBR deltas for orange and red days. HT @btmspox et al
  19. Bugfix: how about an error message if you typo your goal date in the road dial form, rather than an embarrassed bee (internal server error)?
  20. If you've stepped down to a $0 contract, don't show the button to step down further (and have Beeminder pay you if you derail?)
  21. Notwithstanding the additional downtime this morning (sorry!) graph generation is noticeably faster after the server migration, so: UVI!
  22. Bugfix: sign-in with twitter has been broken for a while but as of today it is working again!
  23. Bugfix: Were letting you try to retroratchet other users' goals; & now show dial-it-in button disabled if not your own goal, for consistency
  24. Refactored the FAQs on beeminder.com/money & beeminder.com/faq - now just one FAQ page & the money page points to money-related FAQs
  25. Courtesy of @Malcolm_McC: datapoints show in red as you type until they're formatted correctly. See daily beemail for more on this.
  26. Can now retroratchet whenever you're green, to make yourself blue again (was overly conservative before, capping at 2 safe days) HT @wycats
  27. Baby step towards getting rid of auto-widening roads: the width of the turquoise swath (aka blue-green aura) is now based on your variance
  28. Applied @Malcolm_McC's datapoint validator to the Quick Add box as well. HT Brent Yorgey of mathlesstraveled.com

2013 August

  1. Bugfix: @rescuetime import (like when you first start a goal) was double counting past time! Fixed now & fixed up everyone's past graphs.
  2. Beeminder was pretty broken in IE<9. Instead of fixing it we did this: beeminder.com/images/IEwok.png
  3. Bugfix: iOS push notifications were occasionally getting skipped because of a bug with infinitely flat goals. Dudes, dial those roads up!
  4. Goals with autodata sources (withings, fitbit, etc.) no longer appear in the Quick Add box since you can't add data for them anyway.
  5. Zeno polling only happens if you have email reminders on, so disable the checkbox when reminders are turned off. HT @wycats
  6. Mini UVI medley: less garish red for datapoint validator, fix legend & beeminder.com/overview copy, glossary updates [HT @dehintze, J Kwok]
  7. Sign in with Fitbit! This is also a step towards making the integration more robust. Also: cleaned up beeminder.com/services
  8. Bugfix/tweak: the Retroratchet button is now updated (clickable vs not clickable) upon graph refresh (needed a manual page reload before)
  9. Big bugfix: Retroratcheting now preserves future changes to the YBR (previously it would just remove anything past the current date)
  10. If you clicked "never email me about anything ever" we were ignoring that next time you created a new goal; & added pop-up reminder about it
  11. URLs in the fine print and goal statement are now clickable on the goal page. (Previous UVI thanks to @beneills: beeminder.uservoice.com/forums/3011-general/suggestions/4134091-bug-email-settings-change-upon-goal-add )
  12. Pessimistic presumptive reports for Set-A-Limit goals is now an option in advanced settings (still need accurate countdown to derail!)
  13. Only keep the highest datapoint of the day for @duolingo goals HT @wycats
  14. Now @Withings and @Runkeeper goals won't bug you if you've already weighed in / gone running today. HT @rjbs
  15. Archived goals view! (see the link under your picture in the upper right of the screen)
  16. Option in goal settings to automatically increase your pledge if you derail, and moved the no-mercy recommit option to non-advanced settings
  17. Countdown timer is now meaningful for Set-A-Limit goals! Says how long till you derail if you let the pessimistic presumptive reports stand.
  18. If you're currently on a flat spot, retroratchet trims it for you. Handy if you forgot to check no-mercy precommit-to-recommit!
  19. When automatically rerailing after a derailment, the new rate is the rate starting at the akrasia horizon. You get your intended rate NOW.
  20. The subject line of legit check emails now includes the new pledge amount if you're automatically recommitting, which everyone soon will be!
  21. Updated beeminder.com/overview & beeminder.com/money & beeminder.com/faq & blog.beeminder.com/glossary to reflect the "new world order"
  22. Small fix to datapoint validator: no longer accept things like "12.1 1" or "99999 1" as valid datapoints. HT @slothbear
  23. Banner telling you that you can permanently delete a goal after hitting archive if it was recently created. Experimentation is good!
  24. Don't automatically recommit goals if you still have freebees and you haven't entered a payment method. (Needed for newbees.)
  25. Bugfix (again) with Retroratchet which was making road segments out of order and throwing graph errors (sorry!)
  26. Bugfix: legit check emails misreported the pledge amounts if auto-rerailing but not upping pledge (HT @dreeves not to be confused w/ @dreev)
  27. Bugfix with @duolingo goal creation: recheck URL availability on language choice change
  28. We now plot the aggregated datapoint for each day even when it's not one of the actual datapoints (comes up with some custom goals)
  29. Another bugfix similar to UVI#918 where the amount in the legit check was wrong if there was a pending pledge stepdown
  30. Bugfix: When activating email reminders a page reload was necessary to also activate Zeno polling. trello.com/c/CLeXoyvk/829-embarrassing-little-zeno-ui-bug HT @Jonar90
  31. Bugfix: Graphs no longer break when you derail (and auto-rerail) within a week of the akrasia horizon. HT @nslater
  32. Bugfix: Don't let you retroratchet to a negative amt of safety buffer & fail gracefully if you try. (Next tweet is a UVI medley! 3-for-1!)
  33. Datepickers on tmin&tmax fields for zooming, submit credit card form w/ enter key, let you sign out even when account frozen for nonpayment
  34. Set-A-Limit goals now start with a high-up flat spot (so it doesn't matter when in the first week you use your weekly quota) HT @wycats
  35. All bot reminders (not just autodata) now include direct link to change goal's reminder settings. trello.com/c/mYmRDzUr/826-bot-reminders-link-to-reminder-settings HT @KatjaGrace
  36. Set-A-Limit goals now email you a warning when you cross the centerline. trello.com/c/G8rlIsek/800-eep-reminder-when-you-hit-set-a-limit-limit
  37. Added the ability to beemind frequency and duration with @Runkeeper in addition to just mileage (kilometrage?). beeminder.com/runkeeper
  38. And you can beemind any subset of {Running, Walking, Cycling, All} where "All" is any @Runkeeper activity, even skiing and whatnot
  39. We have so many UVIs lately that the next several will be in batches...
  40. 1. "Embed this goal" link to add a widget to embed your goal thumbnail on another web page; 2. Include distance to YBR in goal update emails
  41. 3. Option to include countdown in widget; 4. New headlines & taglines in rotation on the front page. doc.beeminder.com/beeminder-taglines
  42. 5. Tweaks to bot emails, like always including the URL of the goal; 6. Make goals with upcoming flat spots retroratchetable
  43. In the bot emails when we say the pledge we also say if it's scheduled to change, like "pledge: $10 (stepping down to $5 in 3 days)"
  44. Small but important bugfix: Always report a conservatively rounded number for bare min and hard cap numbers

2013 September

  1. We now let you know in the reminder emails if you need to add a payment method #dundundun (get it? like macmillandictionary.com/us/dictionary/american/dun)
  2. Allow zero rate (and don't allow negative rates) when creating Set-A-Limit (Do Less) goals. HT Brent Yorgey of mathlesstraveled.com
  3. Another big improvement w/ our @Runkeeper integration: you can create more than one RunKeeper goal. (&, oops, previous UVI not yet deployed)
  4. RT @bmndr: Breaking news: You can schedule breaks! Insert flat (or shallow, or even steeper) spots in your yellow brick road between arbitrary dates.
  5. Bugfix: If a goal derailed before your eyes youd briefly see (& be able to click!) the old "Unfreeze & try again" button. HT @richarmstrong
  6. Mini-UVI medley: "monthly rate" CSS bugfix, various bugfixes with scheduled breaks, overeager "need payment" banner after admin rerail
  7. One of the "tiny UVIs" broke something kinda big, namely the ability to unfreeze a goal that was frozen from before the New World Order
  8. Another bugfix with scheduled breaks that'd break the graph if you did the scheduling on different days
  9. More lenient set-a-limit (Do Less) goals: don't start w/ a high-up flat spot, just start higher and slope up immediately. HT @richarmstrong
  10. Include the distance to get back on the road in bot update emails on beemergency days. HT Dave Morris (other tiny bot email tweaks too)
  11. Bugfix with Fitbit setup that would show a 404 if you didn't have any remaining freebees (though it would actually create the goal)
  12. Convert existing goals to custom in advanced settings (if on the Bee Lite plan or higher and can create custom goals) beeminder.com/premium
  13. Fixed ancient bug with the "+X within Y days" blurbs not taking into account upcoming changes in the yellow brick road
  14. Bugfix: the DIAL-IT-IN button would sometimes be grayed out and bare-min/hard-cap numbers out of date until you refreshed the page
  15. Beeminder iPhone app v2.1: updates for iOS7, swipe to go back to gallery, bugfix with commas. Dropped user/goal creation & road dial.
  16. Set-A-Limit renamed to Do Less, new Do Less goals have Pessimistic Presumptive Reports on by default, checkbox now in basic settings
  17. Android app version 1.6.1 (UVI 1 of 4): Better syncing w/ configurable period, continuous update of "last updated", autocomments config'able
  18. Android app version 1.6.1 (UVI 2 of 4): Bugfixes with tally reset on orientation change, gallery layout with no goals
  19. Android app version 1.6.1 (UVI 3 of 4): Bugfixes with data going to wrong goal, 00 on date button, erasing of comments, occasional crashes
  20. Android app version 1.6.1 (UVI 4 of 4): Widget redesign for consistency, fixed skull on completed goals, fixed coloring/countdown issues
  21. We caved and added an option in advanced goal settings to opt out of universal precommit-to-recommit. See update to blog.beeminder.com/nwo
  22. Loose ends with Do Less: default to an initial rate of 7/week (not 0!) in goal creation; refer to "steep (easy) section", not "flat spot"

2013 October

  1. Android app version 1.6.2: Facebook & Twitter login, scrollbar on goal list, hard cap shown for Do Less goals, bugfixes, speedups
  2. Bugfix in the web copy for goal creation to clarify that by default you're not committing to just that initial $5 anymore. HT @benjiwheeler
  3. New video on the front page! We haven't added the screencast yet but it already beats the old version so we made it live already.
  4. Changed the misleading "New Contract" to be clear that you're not just committing on that goal; add paymt info => on the hook on all of them
  5. CSS fixes: infinibee in new goal form is on top of everything, is same size as on goal page; new data box+label now line up for frozen goals
  6. If a datapoint comment doesnt fit in Recent Data you can hover over the ellipsis to see the rest instead of having to click thru to All Data
  7. Cheapo UVI medley: canonical @rescuetime API URL, typo "but for long", quotes on goal name in Archive dialog, new still image for video
  8. With Withings/Fitbit-Aria goals we added a dummy datapoint to create the goal, but then failed to delete it after importing your weight data
  9. Respect newlines in the fine print section of the goal page, plus a direct link to edit it. For convenience!
  10. Bugfix w/ double recommits (yielding broken roads) if problems w/ your credit card (in some cases we ought to be catching that upfront!)
  11. Mini UVI: @Runkeeper no longer missing from the list of goal types if you follow the New Goal button. HT @ErikMHummel
  12. Mini UVI: Stopped adding duplicate weights for the same day from @fitbit. Once is enough if your weight didn't change! HT @TrinSF
  13. Bugfix(ish): notice if the buzzing infinibee is hopelessly stuck and give an actual error message rather than leave you hanging forever
  14. Bugfix: If we run into an auth error for autodata goals, we set a flag on the goal that wasn't getting unset when you update your auth info
  15. This is us quietly announcing our @Jawbone UP integration: beeminder.com/jawbone -- a few known issues before we announce it louder...
  16. Jawbone fixes, like refresh button now forces a check, and fixed an error with the push notification, so it's probably working for real now
  17. Behold our new URLminder for minding wordcounts of web-accessible documents, part of our preparation for @NaNoWriMo: urlminder.herokuapp.com/
  18. URLminder bugfixes, and ability to edit the list of URLs to mind. Fixed Jawbone reminders to not say "reply with data". #2for1
  19. Bugfix: Some browsers (or @FluidApp in some cases) presumptuously turn quotes to curly quotes. We're now robust to that. HT @theogonia31
  20. Bugfix w/ @Jawbone integration: if you didn't actually have any Jawbone data we handled it ungracefully (spurious "couldn't save goal")
  21. One last (ha) bugfix with our Jawbone integration - actually a misnamed parameter in the Jawbone docs - that meant autofetches were failing
  22. The How-To video on the front page now includes a screencast: youtube.com/watch?v=nvRcuFq6ItI -- enormous HT to @aaronpk
  23. Android App v2.0! play.google.com/store/apps/details?id=com.beeminder.beeminder&hl=en Vastly faster & includes a built in timer app for beeminding how much time you spend on things...
  24. ...Even more exciting, it exposes a submission API to other apps (and we've already got @tagtm and Tasker integration underway)
  25. Beeminder Android app 2.0 also has the usual assortment of fixes & tweaks & speedups. This totally could've been like 10 UVIs. Yay Uluc!
  26. Finishing touches (bugfixes) on our @Jawbone integration: track sleep in hours not seconds, timestamp bug that had us missing some step data
  27. RT @bmndr: Announcing @gooddraft integration and other @NaNoWriMo goodies: blog.beeminder.com/draft/

2013 November

  1. Let people add data manually to nanowrimo goals; bug fix with text in reminder email on jawbone goals.
  2. Bugfix: now robust to html-quotes instead of normal ascii quotes which was sometimes an issue with @IFTTT-generated emails HT @strickvl
  3. Another robustification/bugfix for @IFTTT-generated emails: comments can now be both arbitrarily long and have nested quotes
  4. Allow a bare number like "9" for "9:00am" in the remind time field, and don't give a hideous "is_invalid" if not parseable. HT Jon Widen
  5. You can now change the sort order in the All Data view!
  6. You can now see a table of all your current pledges and previously paid pledges (under "Your Account"; obvious cleanup still needed!)
  7. Consistent autodata comments (time of day, the right prepositions, etc); cleaned up the Retroratchet dialog box; tiny bug w/ "<" in comments
  8. (The 1st 2 items in the previous 3-for-1 (or 3-for-2 now) UVI were done a long time ago; were waiting to tweet it till we finished the 3rd!)
  9. When you tried to add a pledge to a goal even though you didn't have to because you had freebees left, it'd screw up. HT @osazuwa #bugfix
  10. Android app v2.1: Tasker integration! TagTime integration! (Also slight speedup in datapoint submissions and various bugfixes/tweaks.)
  11. We didn't force you to hit "authorize Withings" before submitting the form for a new goal, which led to mass confusion and hysteria #bugfix
  12. Javascript error in @duolingo goal setup caused us not to record a language to track & then subsequently could not update your goal #bugfix
  13. Foreshadowing for generalized road dial: pink-shaded verboten zone (region where road is un-dial-to-able)
  14. Zeno polling now on by default for new goals! blog.beeminder.com/zeno (Also fixed the Do Less "wrong lane" emails to be from the bot)
  15. Autoratchet wasn't triggering if you manually refreshed before nightly refresh; 1st update of new day now triggers it. HT @wycats #bugfix
  16. Fixed bug with deadman switch: it was counting auto-recommit datapoints! Oy! Refunding $$ now to retroactively honor the promised behavior.
  17. To commemorate 1000 UVIs, our 1001st [actually 1002nd] UVI is announcing @beeminfra, just like UVI#1 was announcing @beemuvi
  18. Weasels for life! No takebacks if you call yourself out as a weasel ("weasel-proof me" in graph settings).
  19. We were accidentally showing things like "this graph is frozen because you haven't entered payment info" to everyone. #bugfix HT @aaronpk
  20. @pjf @bmndr Fixed now! Thanks for the easy UVI!
  21. Warning emails from bot about Do Less goals in wrong lane no longer superfluously get sent when data was entered via the web or email
  22. Rearranged goal settings. "Advanced" is now just for stuff we recommend not messing with unless you know what you're doing.
  23. Softened our deadbeat dunning: persistent banner, redirect you to add a valid credit card every 10min, no graph images for you, no new goals
  24. (As opposed to previous crazy status quo where we totally locked you out of everything -- even the FAQ! -- if your credit card failed.)
  25. If you have links in your goal title we were showing it with raw html tags in the archive dialog box. #bugfix
  26. Setting Tmin=today -- ie, hide all previous data -- didn't work. The earliest we allowed was yesterday, due to a dumb little bug. #bugfix
  27. Failed to indicate in the pledge list - beeminder.com/pledges - if a charge was attempted but failed. Now show paid/failed/refunded.
  28. We were alerted that the deadbeat redirect was making the api unusable, so we removed that entirely. Was possibly too annoying/petty anyway.
  29. Rescuetime goals could insta-derail if the graph got updated elsewhere while the import was running in the background. Robusted it. #bugfix
  30. Accidentally installed bleeding edge version of matplotlib when switching to new server and it made weird ghost roads, fixed now. #bugfix

2013 December

  1. Added @Jawbone and @gooddraft logos to the front page of beeminder.com
  2. Small #bugfix w/ beeminder.com/widgets - would give a 500 error if parameters were incorrect and it could not find the goal in question
  3. In advanced settings you can now, very crudely, change your data units, like Minutes to Hours if you want to use the Android timer.
  4. Going to advanced settings for a @trello goal was throwing a 500 error ever since we rearranged basic/advanced settings. HT @danlucraft
  5. gitminder.com #bugfix: We were overcounting your commits if you chose to mind all commits across repos. Better date handling too.
  6. Preliminary version of our upcoming @codeschool integration for you hardcore @bmndr users who read our UVI tweets: beeminder.com/codeschool
  7. If not signed in to bmndr when hitting bmndr.com/codeschool the Sign Up/In link did nothing. Now gives you a form to sign up / in. #bugfix
  8. Fixed the "hard cap" help text to not say the wrong thing about exclamation points for Do Less goals. beeminder.uservoice.com/forums/3011-general/suggestions/5150692-fix-the-hard-cap-text- HT Alice M
  9. Update web-copy for weasel-proof box to warn that, for obvious reasons, it's not uncheckable. Later: just have an akrasia-proof timer on it.
  10. Snazzed up the @codeschool landing page: images, description of what Beeminder is about for the uninitiated, etc. beeminder.com/codeschool
  11. If you gave a nonexistent @duolingo username at beeminder.com/duolingo we just stared blankly instead of saying "not found". #bugfix
  12. More @duolingo setup #bugfix's (tweet 1/3): validate that you give a rate, remove the error message once you do, force picking of slug, ...
  13. Duolingo (2/3): Use a daily rate since we ask for a daily rate (rather turning around and multiplying by 7 for some reason)
  14. Duolingo (3/3): Offer choice of flat spot (but default to yes week of safety buffer, rather than defaulting to no safety buffer, no choice)
  15. 2-for-1: @fitbit removed 'active score' so we dropped it from Fitbit goal creation; Reminder settings clarify that Zeno polling's email only
  16. Strip zero-width-space characters, inserted by some mail clients, which would confuse the bot, and quite opaquely! HT @Malcolm_McC #bugfix
  17. Pessimistic reports for Do Less are surprising/confusing at first. Now we send you email with the 411 the first (next) time you create one.
  18. Take-a-break looked like a link but did nothing when looking at other people's goals. HT @aaronpk #bugfix
  19. Pledge box formatting (mostly don't show u someone else's stepdown countdown); don't show someone else's archive countdown either #bugfix
  20. Another Gitminder #bugfix: if tracking commits across all repos & ur really prolific we'd occasionally miss some commits (pagination fail)
  21. We were occasionally (pretty rarely, but still) losing the fitbit token somewhere between sign up and goal creation #bugfix
  22. Over-the-top "here be dragons" warning on advanced settings; removed broken chirpify stuff from pledge flow; tweaked jawbone sleep reminders
  23. TagTime entry in FAQ with link to @dreev's TagTime Minder which @thatgirl says doesn't count as a UVI in and of itself /cc @tagtm
  24. Nicer tabby things for road dial, retroratchet, and schedule a break (which also means no popups for those)
  25. Explanations in the tabs (road dial, retroratchet, take-a-break) for people who aren't signed in (or for looking at another person's goal)
  26. SMS reminders weren't checking they had current info for today (if scheduled for early morning they could go out w/ yesterday's goal status). #bugfix
  27. Added @PhilipHellyer to beeminder.com/aboutus (and fixed it up a bit; note real-time number of hours worked for each person!)
  28. Datepickers were missing on Take-a-Break, and a nice message letting you know you can't schedule breaks while the goal is frozen
  29. Was common to miss some data from @fitbit if you hadn't synced for a few days; now we periodically check a week back for updates to yr data
  30. Welcome Erica Edelman, our new Head Beekeeper! (She moved to Portland for this and everything.) The UVI is she's on beeminder.com/aboutus

2014 January

  1. If you came in thru @fitbit to our wizard, but then detoured to normal Beeminder sign up, cookie confusion ensued and we'd 500 you #bugfix
  2. New @Withings graphs with lots of historical data were insta-derailing if you'd gained weight since you first started recording #bugfix
  3. Cheapo medley: quotes on goal name in contracts popup, wrapping glitch in footer, point to new blog post on beeminder.com/premium
  4. Remember page number when editing past datapoints (when more than one page worth) #bugfix
  5. UP until now @Jawbone active-time goals were recording in seconds. Facepalm. Now reports in hours. HT @esullender #bugfix
  6. Instant archive for successfully finished goals (should this be any frozen goal?) & changed desc to not say "calling uncle" if you succeeded
  7. Third-party app authorization page makes clear that the app will be able to (make Beeminder) charge you; also: hide uservoice tab on mobile
  8. FAQ items about credit card nitty gritty (what happens if your card is declined, and why the $1 authorization thing). beeminder.com/faq
  9. Widgets would display a 500 error in the iframe if there was an error with the graph (or no data yet); now they just show "no data" #bugfix
  10. It's now allowed to have a downward-sloping auto-summing (kyoom) graph. Needed that for net calories, about which see next UVI!
  11. Lookit these new Fitbit metrics you can automatically beemind! Net calories, Total calories out, Active time. Yay @fitbit!
  12. Scalar transform (in "terrifyingly advanced") 500ed if you submitted blank (and now accepts fractions like "1/60" which is very handy)
  13. Curly quote #bugfix in Quick Add box (and for anything submitted via API). FAQ item about editing datapoints, since people miss that a lot.
  14. Be consistent w/ success/error alert headers after you hit submit in advanced settings. HT @strickvl and Mike Rosulek web.engr.oregonstate.edu/~rosulekm
  15. GTBee! A to-do list, with money, by @andrewpbrett. itunes.apple.com/us/app/gtbee/id779525180?ls=1&mt=8 (iOS app)
  16. We now include recent datapoints in the zeno poll emails. blog.beeminder.com/glossary/#z
  17. When sending datapoints via the API, omit the timestamp to default to Now. Should help with @zapier integrations & such. HT @LeeGreenwood
  18. We did a very literal "explain like I'm 5": youtu.be/jB62AyZ6gHk . Also in the FAQ: beeminder.com/faq
  19. For @fitbit sleep goals we listed it as "hours slept" but, dumbly, we were recording minutes of sleep. New goals use hours. #bugfix
  20. Archived goals would stick around on the Android app; now the API counts them as deleted for all intents and purposes. #bugfix HT @wycats
  21. Added calorie tracking to @Runkeeper integration. Especially nice as a common metric if you track multiple sports. HT Kenzi Amodei @CFARnews
  22. Hitting the manual refresh button on a @fitbit goal now causes it to immediately also check for missed data from previous days as well
  23. Timezone defaults to Chicago for @gooddraft, causing data to go missing for some timezones. We now check data for yesterday as well. #bugfix
  24. Made all the integration (autodata) landing pages have a link to the corresponding blog post
  25. Page title shows goal slug first so you can still differentiate when you have a zillion tabs. HT @Malcolm_McC & Niels beeminder.uservoice.com/forums/3011-general/suggestions/5383202-make-the-page-title-start-with-the-name-of-the-goa
  26. Do Less onboarding email customized for flat roads -- sent after an hour, warns that it will instantly derail if you don't submit data
  27. Legit checks said "NEW pledge: $5" when no payment method'd been added (graphs freeze instead of recommitting when that's the case) #bugfix
  28. If you tried to remove @fitbit auth and had more than one Beeminder goal with the same kind of fitbit data, we'd give a 500 error. #bugfix
  29. Contact form -- beeminder.com/contact -- cc's the sender so you can see we actually sent your email. HT Jonathan Polin
  30. Parallelized Beebrain means less waiting for your graphs to generate, and the time-outs after 10 minutes (!) should never happen anymore
  31. More tweaks and improvements to beeminder.com/codeschool (about to announce @codeschool partnership with joint blog posts! stay tuned!)

2014 February

  1. Setting the max plot date eventually caused an error; now we remove tmax if in the past, and enforce that it be in the future when first set
  2. Since that was kinda 2 UVIs, let us also mention this cheapie: Beebrain parallelizing solved the 3am refresh delay, now done w/in ~1 hour!
  3. Upgraded to a less ancient version of the Uservoice widget (thing that pops up when you click the red feedback button)
  4. Bot's reply re archived goal: "This goal is archived, and you can't add data to archived goals, so I'm cc'ing a human to step in and help.."
  5. Resuming after success is a bit less terrible: no option to change amount pledged, straightforward form for getting the road started again
  6. Yesterday's UVI also fixed the extant bug with continuing completed goals where sometimes we'd up the pledge but fail to unfreeze the goal
  7. Show what charges will be retried on the form where you update your credit card info, if a charge had previously failed
  8. If you immediately updated a failed credit card we didn't cancel next-day retry. #bugfix (and emailed everyone affected and did refunds; oy)
  9. Clarifications, more links, and hovertext on all the links in the FAQ: beeminder.com/faq
  10. In email settings (for all goals at once) u couldnt toggle reminders & zeno polling in the same step #bugfix HT DH of recursivelydiscursive.net
  11. In bot emails and in Android app where it says "bare min +x in n days" it now also says the actual value needed; handier, eg, for weightloss
  12. Code School on front page; changed the default number of points per week for @codeschool and added hovertext explaining why it's the default
  13. Had a bug (serverside) that made goals on the iPhone app not regenerate the graph the 2nd time if u added 2 datapoints w/in an hour. #bugfix
  14. Re: "+x in n days" (UVI#1087): Don't do it for autosumming do-more/less goals. It's confusing/ugly: "(limit: +3 today (12))"
  15. Added an alert for @duolingo users if we can't find your language data (usually because of changing duolingo username)
  16. And robust to you changing your UI language or learning language (still only track points for one language on the goal though) HT @K_LionSky
  17. Goals with the "deadbeat flag" set -- see beeminder.com/faq#qdcl -- don't auto-rerail if you go off track
  18. Added an explanation of the thicker "thin yellow guiding lines" to the legend to the right of the graph. beeminder.uservoice.com/forums/3011-general/suggestions/5533076-describe-what-is-the-thick-dark-yellow-line-on-our
  19. API now returns deltas with goal info (delta_text), for the bare-min/hard-cap numbers, which iOS app will have soon! beeminder.com/api
  20. Add supporters to your goals! Beeminder will email them if you derail.
  21. We open-sourced the iOS app! github.com/beeminder/beemiOS (that version will be in the app store next week)
  22. Zeno poll emails got slightly messed up briefly and went out with this: "Next checking on you at: 2014-02-18T23:15:10-08:00" #bugfix
  23. Beeminder Chrome app thing (just a shortcut to beeminder.com): chrome.google.com/webstore/detail/beeminder/oobkpjkkbbbnacfaepdlhdealbeogfcd HT @stilnuts
  24. RT @bmndr: Version 3.0 of the iPhone app! Several important bugfixes (let us know if any bugs remain!), tweaks, new features... itunes.apple.com/us/app/beeminder/id551869729
  25. Version 3.0 of the iPhone app shows the bare-min/hard-cap numbers for how much you need to do to get into each lane of the yellow brick road
  26. Version 3.0 of the iPhone app fetches goal updates in the background; should now be an always-faithful reflection of the state of all goals
  27. RT @compluvi: .@Mailbox-submitted emails are now parsed using a special algo to parse the html because the raw text has line break issues.
  28. Previous RT was cuz we implemented the same UVI, thx to @CompliceGoals. This one's cuz @thatgirl extended it to @boxer, which has same bug!

2014 March

  1. Javascript error w/ our signup/in modal (used in goal creation wizards) where u couldn't switch back to sign-up from the sign-in tab #bugfix
  2. Buttons in signup/in modal were ridiculously large. Downsized those.
  3. iPhone app sign-in briefly broken (passwords were uri-escaped before sending to the server, so needed to uri-unescape serverside) #bugfix
  4. Android app 2.1.1: #bugfix's for sync-related crashes & for fallback to delayed syncing w/out Google Play services. play.google.com/store/apps/details?id=com.beeminder.beeminder
  5. Insta-derail with @fitbit import (sometimes we ran the graph before all the data was imported, which caused a derail) #bugfix
  6. Derailing twice in 24h is considered nonlegit so we'd skip the 1st & only charge the 2nd. Switched it around: now ignore the 2nd derailment.
  7. Fixed zeno email from the bot that had the From address missing a human-readable name. #bugfix HT @Malcolm_Ocean
  8. Weight loss contest with @fatcyclist: beeminder.com/fatcyclist blog.beeminder.com/fatty
  9. The @fatcyclist contestants can now trash talk each other (see Comments tab under the graph) & there's a contest widget in the graph sidebar
  10. Blog post ≠ UVI but blog.beeminder.com/newbees ∈ the UVI spirit; added to beeminder.com/faq to make it official (also tweaked front page)
  11. Tweaks to the contest widget in the sidebar for people's @fatcyclist contest graphs (and note you can embed that on your own blog!)
  12. More things for @fatcyclist contest: comments, disabled retroratchet, comments disabled if goal is secret, bugfixes, leaderboard pagination
  13. #bugfix from @codeschool: technically a bug in their API they fixed & we were not robust to it, ie we were overcorrecting for the old bug
  14. API #bugfix in datapoints#create_all (HT @alice0meta et al): were using symbolized hash keys, but parsed json that's passed has string keys
  15. create_all also has slightly nicer error messages now -- it tells which datapoints were the problem, and which were successfully submitted
  16. The bot email that says "couldn't parse your data" explains the right format better and links to beeminder.com/faq#qcut
  17. If we emailed you (like a beemail or somesuch) before you ever got a bot reminder then the unsubscribe token would be missing. #bugfix
  18. Added a warning in reminder settings to not turn off bot reminders (just uncheck all days of the week) if you still do want eep reminders
  19. UVI medley for @fatcyclist: better links in widget, link to new fatty post on landing page, comment counts with cute bubbles on leaderboard
  20. Now handled gracefully if you mark your goal secret in the @fatcyclist contest (but it doesn't make sense to do that if ur in the contest!)
  21. New API endpoint: refresh_graph queues an autodata fetch -- same as the refresh button on the goal page. beeminder.com/api
  22. Android app v2.2! Now has zeno polling, w/ configurable start time (see subsequent tweets w/ additional goodies or see changelog in the app)
  23. Android app v2.2 (uvi #2)! Like on the website's goal gallery, there are checkmarks showing which goals you've entered data for today
  24. Android app v2.2 (uvi #3)! No one noticed that you could swipe the data entry area to get to the timer/etc so made that (sorta) more obvious
  25. Android app v2.2 (uvi #4)! External apps can call the goal detail screen (like the TagTime app now does with the "Visit Goal" button)
  26. Android app v2.2 (uvi #5+)! Several bugfixes: rare crash on reading datapoints, countdown past 3am, entry field issues, widget updates, etc
  27. Noticeably faster graph generation for people with a ton of data. Thanks to Uluc Saranli (of Beeminder Android app fame).
  28. If you had more than one @Jawbone sleep event on a given day we were dropping them #bugfix (maybe applied to other jawbone goals too...)
  29. Pessimistic datapoints for Do Less goals are now added at the beginning of the day, and are automagically removed if you update w/ your data
  30. Archive dialog clarifies that you're on the hook for a week still after pressing archive (and includes the date you're on the hook until)
  31. Mini UVIs: Blog section moved up on front page, link to Zeno blog post in Settings opens in new tab. HT @samgrossberg

2014 April

  1. Pessimistic datapoints now back to end-of-day (thx for the feedback, y'all! keeping autodestruct) & now zeno-poll if the PPR may derail you
  2. Rare bug had goals go missing from your gallery, despite sending out reminders & remaining active because of twitter.com/beeminfra/status/450883425495306240 #bugfix
  3. High-resolution logo and settings icon. HT @alice0meta who is helping us out in a bunch of ways, including support!
  4. Tweaked beeminder.com/premium Add Plan dialog to be clearer that you can explicitly cancel as well as autocancel blog.beeminder.com/autocancel
  5. Mini-UVIs: Collapsible sidebar icon & hover effect tweaks, smart-submit on settings & refresh icon, tweaked zeno poll emails for Do Less
  6. Tweaked various popup messages for clarity/succinctness. Super lame-o UVI but yesterday's was packed full of goodies so... we're even?
  7. 2for1: 1. New @duolingo logo on beeminder.com/duolingo & front page; 2. Show error if we can't fetch @Jawbone data due to bad authorization
  8. Rare but important: if you updated credit card info with charges pending and then the card failed, you'd get a 500 error. #bugfix
  9. Rewrote the API charge alert email that, eg, GTBee sends. (Another lame one while we clean up our mess from today. See @beemstat.)
  10. The Beeminder Account Confirmation email now points you to blog.beeminder.com/newbees & encourages replies in case of confusion/etc
  11. Moved the "forgot password?" links to a more obvious place (and made sure they were there at all) on all the sign up/in forms
  12. More info in the subject line of charge alert emails (via API, like with GTBee) & improved zeno poll emails per twitter.com/pjf/status/454633672528769024
  13. Show amounts in the list of pending charges to be retried when u update your credit card. Thx @andrewpbrett for deploying this pre-downtime!
  14. Lots of people reporting Beeminder email getting spamboxed. Had @Mail_Gun change our IP address and seems to be better. Let us know if not!
  15. Hovertext on recent datapoints shows metadata; hovertext on ellipsis for long comments shows full comment. These no longer collide. #bugfix
  16. New API field for goals tells you if a goal is autodata (if it pulls from an automatic data source, and which one). beeminder.com/api#goal
  17. Updated goal type section in new goal wizard to make the description text more obvious and brought the autodata types out of the dropdown
  18. Oops, previous UVI broke the link to beeminder.com/gitminder (very questionable UVI but the previous one was easily 2, so...)
  19. All unsubscribe links are now unique so gmail should never collapse that part of the email (last part of url just tallies bmndr emails sent)
  20. gitminder.com was broken-ish for 3 days due to change in @github's api we didn't pay attn to. Emailed those derailed by it. #bugfix
  21. GTBee 1.2! Lets you delete tasks so you don't have to fake-complete them to make them go away. Also more help text. blog.beeminder.com/gtbee
  22. More tweaks to banner (aka flash) messages & bot emails; API doc bug: refresh_graph is GET not POST; bmndr gem fix: github.com/beeminder/beeminder-gem
  23. SMS bot broke after server move; cleaned that all up (twitter.com/bmndr/status/458457408180731904) & added a fallback response so no more silent failures
  24. Codeschool #bugfix: if you had 0 points then we didn't display goal creation form! Also tooltip about @codeschool points. HT Alan Pearce
  25. Rare #bugfix (wait, that's rare-bug fix, not rare bug-fix) with adding pessimistic presumptive datapoint to goal w/ no datapoints at all
  26. .@fitbit goals were overwriting prev weight/bf entries w/ new ones (that's only correct behavior for goals like steps) #bugfix HT @nscardon
  27. In @rescuetime setup you can now pick any of last month's activities (previously only top 10). Now you can beemind obscure distractions too!
  28. Try hovering over all the links in the footer of beeminder.com; also changed them around & added appnet link (working on a Backer!)
  29. Finally relented on underscores in usernames (we're totally selling out). Also #bugfix w/ error message not showing up in the signup form.
  30. Speaking of selling out, we made an actual UI for entering data. Thx to Francelle (@AmericanSecret1) for finally convincing us to do this!

2014 May

  1. Fixes to newbee data entry: include the day of the month next to "today/yest" (HT @aaronpk), only allow single numbers for value.
  2. Also in newbee data entry: Default to last datapoint if not a kyoom goal (e.g. weightloss) instead of defaulting to 0.
  3. Android app v2.2.1 finally has the feature @wycats has been waiting for: force fetch of autodata (and no data entry form for autodata goals)
  4. Android app v2.2.1 (2 of 4): Combined configuration screen for emergency day notifications
  5. Android app v2.2.1 (3 of 4): Panic buffer (in days) replaces panic time. New: Eliminated wrong lane notifications (subsumed by panic buffer)
  6. Android app v2.2.1 (4 of 4): Per-goal setting of zeno start time, and 6 #bugfix/tweaks viewable in Settings -> About Beeminder -> ChangeLog
  7. Supporters now get confirmation emails. blog.beeminder.com/supporters
  8. Android app v2.2.2 fixes a rare bug where not changing the default date for a datapoint could make it treat it as 1970 (unixtime 0) #bugfix
  9. The recent data shown under the graph would sometimes end up stale and you'd have to go to All Data to see what it really was. #bugfix
  10. Moved @mashape js to bottom of beeminder.com/api so Mashape being unreachable (rare as that is) doesn't bork the api docs. #facepalm
  11. API #bugfix: internal server error if you forgot to include the datapoints parameter for create_all (now nice error). HT @DRMacIver
  12. Our @rescuetime integration now rechecks last 3 days of data at midnight or if you hit refresh button, like @fitbit: UVI#1067
  13. Refresh button didnt auto-ungray! Had 2 reload page each tm if u were, say, obsessively refreshing @duolingo to see if yr orange yet #bugfix
  14. Newbee data entry wasn't allowing shortcuts like "10st2" & "0:20". beeminder.com/faq#qcut (Validation looks slightly nicer now too.)
  15. #bugfix w/ device token management for android devices; we'd sometimes send push notifications twice thinking it was for 2 different devices
  16. #bugfix with radio button alignment for "line type" in advanced goal settings, and rewrote beeminder.com/faq#qfrz HT tiktuk.net
  17. #bugfix w/ newbee data entry: if u left the page open past midnight & then submitted, it'd not respect the date shown in the form. Now does!
  18. Tweaks to goal wizard: alignment and spacing in first pane, plus number the tabs and fix the check-mark alignment for unregistered users
  19. Simplification! No paying to short-circuit the pledge schedule, just get the Beemium plan if you want that. Old way made us seem like jerks!
  20. Can now add data from the datapoints page as well as below the graph & an icon at the top to get there instead of the obscure All Data link
  21. Goal dates now default to a year and half from creation so it doesn't confusingly seem like it's today if you don't notice the year
  22. Two small UVIs with TagTime for Android (plus bugfix w/ ping list): 1. Pings sent to @bmndr include the time in the datapoint comment, ...
  23. 2. Little infinibee that changes from red to yellow to tell you the @tagtm ping was sent to @bmndr successfully now updates w/out refreshing
  24. Allow short-circuiting from $0 to $5 for anyone (have to be Beemium to short-circuit beyond $5 per UVI#1184)
  25. Fixed broken navigation links in account settings. (We'd changed some css stuff that messed the alignment all up for a few days.) #bugfix
  26. We now remember sort order, page num when u edit/delete datapoints. (Bonus UVI: UVI#1179 works for editing datapoints too)
  27. Related #bugfix: you'd be redirected back to the main goal page instead of the datapoints page if you'd sorted or changed pages
  28. UVI by Nick Winter of @CodeCombat: Newbee data input value field auto-focuses so you can type over the 0 instead of having to delete it
  29. You can now delete directly if you're in the 1-week grace period, instead of archiving first and then getting the option to delete
  30. Fixed a bug that wouldn't let you hit Submit without editing the default "0" in New Data. #bugfix HT @peterhurford
  31. We now note it in the datapoint comment if the @Withings attribution field says this is an ambiguous datapoint

2014 June

  1. Check @Runkeeper for data since the last datapoint *excluding* resets (otherwise we'd sometimes miss events that synced to RunKeeper late)
  2. Moved the New Goal button front & center for ppl with no goals (& got rid of the ugly tooltip that tried to point you to it in the sidebar)
  3. Stopped saying the thing about "dropping back to $0 takes a week!" in the short circuit dialog because that is falseness and lies (usually)
  4. Javascript Date in older versions of Safari couldn't parse a string like "2014-05-28" & caused new goals to get goal date set to 0 #bugfix
  5. Updated the sidebar in the datapoints view that tells you about importing data (now clear about newbee data entry vs advanced data entry)
  6. Only show the new data form on the 1st page of datapoints (it's weird to add data from page 18 of datapoints & then not see the list update)
  7. Don't show the +0 (for backburnered goals) if there aren't any (in the sidebar under the user avatar). HT Spencer Greenberg
  8. Archived goals no longer let you try to retroratcet them. #bugfix
  9. Stopped showing the archive link when the goal is already archived. #bugfix
  10. Bot no longer buzzes off if you ignore it (that made sense in the primordial days before ignoring the bot meant you eventually derail!)
  11. More consistency w/ pledging on goals & adding credit card for the 1st time: 1) the button is always "Pledge $5" or "Restart", and 2) ...
  12. When you first add a credit card we make it explicit that you're pledging for all active goals (you can even insta-archive if you prefer)
  13. Added a tiny banner (hopefully not too annoying!) for people who've never entered a cc to remind you that there's no sting w/o $$ pledged
  14. Countdown timer wasn't live-updating in Safari #bugfix (and bonus bug (caused by the first bugfix) fixed with centering the text there)
  15. Confirm unsaved changes before leaving the page for all the forms (quick add, new data, user settings, goal settings, and road dial)
  16. The archive button in goal settings is now consistent with other archive stuff, plus includes info about "this will take effect in a week"
  17. Also: Archive is now a (red) button & the New Goal button is now blue
  18. Finally: Grace period for archive/delete is consistent: if goal was created less than a week ago, period. (No more "or < 7 datapoints".)
  19. Oops, the "confirm unsaved changes" thing for the road dial caused super annoying false positives; reverting that part for now. #bugfix
  20. Had a syntax error in our @Withings goal creation which let you create a withings-connected goal w/out connecting withings #facepalm #bugfix
  21. Improvements to the UI for adding credit card for the first time. No choice about how much money, simply checkboxes to archive or not.
  22. Webcopy is "When you add a credit card you'll be on the hook for all these active goals (check Archive for any you're not serious about..."
  23. And frozen goals aren't included in list of goals to review (they're innocuous yet in your face at the top of gallery, which is perfect)
  24. Finally, there was a bug where some people who already had a cc on file couldn't update their card if they had any freebees. #bugfix
  25. Copy tweaks in Terrifyingly Advanced Settings to make things a bit clearer; a few corresponding tweaks in beeminder.com/api too
  26. Various other copy changes (tooltip for Delete button, don't say "1 active goals", etc) & anchor link for fine print edit box from edit link
  27. Tweak or maybe #bugfix with graphs where they'd sometimes show a bit of graph below y=0 despite no part of the road or data being negative
  28. Messed up css for archive/stepdown countdowns (font too large & white-on-gray). Now you can read them. Contrast ftw. #bugfix
  29. Gitminder #bugfix: New "issues closed" goals (since Bethany's maniac week) counted commits made to the repo instead
  30. Had a bug for 10 days where you couldn't up from 0 → $5 if you'd added a credit card prior to UVI#1220. #bugfix #metabugfix HT @mhartl
  31. Another gitminder #bugfix: On goal creation, javascript validation on the "repo" field didn't trim, so let you submit blank repo. HT @pbkobold.
  32. Fixed Fat Cyclist comments which were briefly broken after we changed URLs to end in /weight instead of /fatty (latter still works too tho)
  33. Some improvements to the goal creation wizard, making it more clear what "weekly rate" means, by asking for the units and by adding tooltips
  34. Live from Indie Web Camp: global callback URL in account settings in addition to per-goal callback (handy, eg, for Exobrain)
  35. Also live from Indie Web Camp: Indieauth supports Beeminder! Add your personal URL and it's shown on your gallery page as a rel=me link

2014 July

  1. If you had a credit card on file we'd sometimes send you to the payment page instead of the restart page for goals that were frozen. #bugfix HT Lucia Merlo
  2. If you archived all your goals we'd show you the newbee splash page even when you tried to view your archived goals. #bugfix HT Lucille Petersen and Josh McFarland
  3. It was briefly impossible to create new weight & inbox goals (new goal units field was both hidden and required! #bugfix) HT @awarenesss
  4. Tappable tooltips! And goal units now used in y-axis label, and fixed countdown javascript for goal widgets HT Kyle Marek-Spartz
  5. RT @bmndr: The "Take A Break" feature now also shows you currently scheduled upcoming breaks! (Straw poll: should take-a-break be a premium feature?)
  6. If you have a Beeminder premium plan then Retroratchet lets you make it be an eep day Right Now
  7. We briefly broke goal widgets again when we did some refactoring. Fixed now. #bugfix
  8. Got over our carrot-dangliness paranoia & just say “premium only” for custom goals & configurable retroratchet. Updated beeminder.com/premium too.
  9. Sometimes (rarely) we'd fail to pick up data for newly created RunKeeper goals (eg, if you manually add activities for a prev day) #bugfix
  10. One more #bugfix w/ adding new pledges: we were still making it impossible to add a pledge after un-archiving a successful unpledged goal
  11. We accidentally were making you double-confirm goal deletion until recently (modal popped up & then the javascript “are you sure?” as well)
  12. Retroratchet made things better & less buggy for Do More but mostly made things worse for Do Less. Reverted to old way for Do Less. #bugfix
  13. If you have the Plan Bee or higher premium plan you can now change your goal URLs (careful about breaking links please!)
  14. Goal wizard form validation/errors much nicer: they're actually next to the field that's in error. Also units updates in real time, “__ per week”.
  15. Guilt-trip email if you stop beeminding and we auto-cancel your premium subscription, in case you didn't mean to let that happen
  16. Some time ago Bethany ditched our default avatars, citing ugliness. Today we added a new default avatar. Note the use of negative space.
  17. Added Alice Monday (Support Czar) and Chris Goodman (intern) to the About Us page
  18. “Feature me” feature in goal settings adds you to public gallery. Thanks awesome people on Akratics Anonymous.
  19. We were asking for a password on social sign-up (facebook, google, etc) since late April when we refactored sign-up code. Thanks Ryan Moore. #bugfix
  20. #bugfix where we'd sometimes/rarely give a 500 error if you deleted all your recent datapoints and then tried to resume a frozen goal.
  21. Webcopy tweaks, tooltips for things like explaining safety buffer for Do Less goals & auto-canceling subscriptions on beeminder.com/premium.
  22. We no longer add Duolingo datapoints if no change from previous day (important so we know if you go MIA so we can flip the deadman switch).
  23. When adding a pledge the first time we were getting the credit card info then failing to actually add the pledge (moneyburning #bugfix).
  24. Vastly slicker form for getting credit card details when you first add a pledge, thanks to Stripe Checkout.
  25. Big changes to freebees and deleting goals! First UVI: We now show number of freebees remaining in the sidebar.
  26. When you delete a goal, we ask you why and if it's for technical reasons, we give back the freebee.
  27. Scrapped “add a pledge” vs “commit later” (ie, no option to add a pledge when creating a goal — if you have a freebee left you're using it).
  28. Fancy dynamic text depending on which option you pick in the goal deletion dialog. (This stuff is all spec'd out at doc.beeminder.com/freebee.)
  29. Fixed link to glossary in deletion dialog (and tweaked “why are you deleting this?” webcopy). #bugfix
  30. The popup to confirm you're on the hook for all goals after adding credit card was too easily dismissable; now mimics [Stripe] Checkout.
  31. Truncated the goal titles and added tooltip about archiving in the "archive any of these active goals you're not serious about" popup
  32. Get credit card first (thanks again Stripe), then send the user to unfreeze a goal (improvement over the mixed messages on unfreeze page)…
  33. …which let us simplify the unfreeze page and remove a bunch of text from it (because nobody ever reads on the internet).
  34. We show the text about giving back freebees only if you do or might have freebees remaining; see “deletables” in doc.beeminder.com/freebees.

2014 August

  1. Fixed moneyburning lunacy where we used to increment freebees every time you added a pledge so lots of people wouldn't ever actually run out.
  2. Error handling for failure to save credit card info (not great error handling but it does indicate this to the user now).
  3. Answering the goal deletion dialog generates an email to us (part of doc.beeminder.com/freebee which we're now done tweeting about!).
  4. Removed the needless error checks preventing craziness like aggday=mean for autosumming goals since crazy people like Alex Schell wanted it!
  5. Deadman switch now never treats you as still active if you have an autodata source reporting flatlined data. Same for blog.beeminder.com/autocancel.
  6. Tiny UVI: we now always say, eg, “$5” instead of “$5.0”. We told @slothbear we'd pay him $5.0 if we didn't fix that by tomorrow. #bugfix
  7. Fixed formatting in the Guilt Trip email (for premium people who go MIA) and made human-friendly phrasing like “Bee Lite every month”.
  8. Letting you start creating a goal before signing up confused people for no real benefit. Now you have to sign up first.
  9. Chinese users can now use @Alipay instead of a credit card. (One of many UVIs thanks to Stripe Checkout; cf #1255.) UPDATE: Oops, we have to do something more before this is live!
  10. Quickly clicking the +/- buttons in the newbee data form triggered a double-click, highlighting the buttons. Ugly. Thanks True Software Testing. #bugfix
  11. The clickable tooltip thing for the Archive Goal button in settings (as opposed to main graph screen) works now. #bugfix
  12. Deadman #bugfix introduced a bug: Gmailzero needs a datapoint even if count's unchanged; inbox size more like weight than like eg CodeSchool.
  13. When graph's stuck generating we no longer throw up our hands like “the server is melting; email support?” & instead give a “try now” button.
  14. Better / less snarky categories for goal deletion reasons: technical reasons (beeminder messed up), confusion, abusing loophole, and other.
  15. The flatlined datapoint is now shown as a rightward-pointing triangle (zoom in to see!).
  16. Also if the official, aggregated datapoint for the day does not have a corresponding actual datapoint (eg, aggday=mean) it's shown hollow.
  17. Intern Chris's Twitter integration is live at beeminder.com/twitter (and date bug that it had when we first deployed it is now fixed).
  18. Dutch is now supported in Duolingo — Hoezee! — and now you can beemind it — Hoezee^2!
  19. Incorrectly hidden modal on goal page left its ghost “on top of” the settings cog making it unclickable! Thanks Aaron Parecki and Peter Hurford. #bugfix
  20. Time and day of derailment now shown under the countdown timer; another prereq for Generalized Midnight (most are behind the scenes).
  21. Better date picker that lets you select month and year with dropdowns so you neither have to type the date by hand nor click month by month.
  22. The datapoint that counts (like the min for weightloss goals; cf “aggday” setting) is shown bigger than the others; future ones ghostlike.
  23. Errors displayed on graphs no longer overflow on both sides; other tweaks like road starts flush w/ axes, tick marks not covered up by aura.
  24. Introduced a bug where the bull's eye showed up underneath the YBR, visible since the road was translucent, but ugly. Fixed now. #bugfix
  25. Fixed an (embarrassing, money burning) bug where we retried charges before saving your new credit card, thus trying them against the old one. #bugfix
  26. We were not handling malformed dates nicely in the road dial and other places. #bugfix (also broken x-min, etc briefly; now fixed as well)
  27. In newbee data form, we now always default to previous datapoint, not zero and especially not the broken thing we used to do for odom goals.
  28. (+) Various RescueTime integration improvements:
    • (1) OMG don't wait 45 seconds before redirecting to the newly created goal. #bugfix
    • (2) Still do the check for if it's a productive vs unproductive time goal even if no @rescuetime data yet to extrapolate a rate from. #bugfix
    • (3) Show the "we're importing your @rescuetime data, this could take a minute" as soon as the user submits, not after the wait and redirect.
    • (4) Force user to pledge if no freebees left; incidentally also fixes the 404 after creating the @rescuetime goal if no freebees left.
  29. We weren't removing the “hey this goal is frozen because you haven't added a credit card yet!” banner after you add your credit card. #bugfix
  30. Another #bugfix with email bot parsing, this time with non-ascii / non-standard whitespace from Airmail on OSX. Thanks @deadsunrise.
  31. Our batch of RescueTime improvements introduced a bug for people with unlimited freebees wherein goals were not saved. Thanks Kathy Reid. #bugfix
  32. Previous bugfix for people w/ unlimited freebees briefly borked the goal creation wizard for everyone w/out unlimited freebees. #bugfix
  33. The purple steppy line had a glitch where it would jump to the start of the yellow brick road even if that didn't make sense. #bugfix
  34. The y-axis now always starts at zero when there's an initial datapoint of zero. #bugfix & Bonus UVI: a “share your graph on Facebook” button.
  35. Added deadbeat flag to the API output for the user resource.
  36. If we do the “deadbeat” thing to your account because your credit card fails, we now automatically undo it when the automatic retry succeeds.
  37. If third party authentication (eg “sign in w/ Google!”) fails, give an error message when user is returned to Beeminder, instead of 404ing.
  38. When Google's notification server flakes out (for Android push notifications) we try again in a few seconds. #bugfix (or #robustnessfix)
  39. Android app version 2.3! Goal search interface and fixes/improvements to notifications and other fixes (see changelog in the app for more)
  40. Countdown to derailment defaulted to midnight if graph wasn't yet generated (or had errors) which was lies. Now just doesn't show countdown.

2014 September

  1. We now canonicalize phone numbers when you add them so we can find you again to confirm your number (SMS bot is still US-only unfortunately).
  2. #bugfix w/ editing Twitter goal settings: ignore '#' part of hashtag if user includes it; also consistency in pluralization of “hashtag”.
  3. Introduced a bug that made us fail to increment freebees when goals were deleted for technical reasons; #bugfix'd it, gave back the freebees.
  4. Recent Duolingo updates caused an error for us; #bugfix'd it but currently can't get your points count if you change your native language.
  5. Small improvements to Duolingo integration: default goal date is +18 months, updates for Irish & Danish, better error. Thanks Jan Bogaerts.
  6. #bugfix like #1291 but in the take-a-break tab; & tiny Twitterminder fix: "This data autogenerated from Twitter user ."
  7. Not sure when we broke this or if, G-d forbid, always was this way but when you pick username, trailing spaces weren't trim'd. Thanks Colin Marc #bugfix
  8. We updated Google oauth recently and it broke sign-in via Google on Android (now getting numeric ids instead of email address). #bugfix
  9. Better table of contents in API documentation.
  10. Slight improvement to weightloss countdown: be explicit about counting down “Time Left until [Wrong Lane] vs [Derailment]”.
  11. Tiny UVIs: Flatlined triangle datapoint always shows up on top of others, & plot width adjusts better for crazy huge numbers on the y-axis.
  12. We added a way to collect basic stats on (specifically weightloss) users. Please update — For Science! (Also #bugfix: you actually can update.)
  13. Was impossible to create a Jawbone goal if no freebees left. Kept sending you to auth jawbone in an infinite loop. Thanks Jana Beck. #bugfix
  14. #bugfix with case-sensitive email comparison in Gitminder (GitHub canonicalizes email addresses but your local git config does not).
  15. API's “roadall” in the Goal resource lets you make arbitrary changes to the yellow brick road (except not easier between now and + 1 week).
  16. Pledge caps! Instead of just being able to turn on or off auto-increasing pledges you can pre-specify a pledge cap in goal settings.
  17. Legit check email now warns you if you hit your pledge cap and points you to goal settings to change it (cleaned up the copy a bit too)
  18. If you got an error changing advanced settings for Trello or Twitter goal the Trello/Twitter info on the page wd cause a 500 error #bugfix
  19. Dubious improvement except in helping w/ waitlisting by scaring more people off: Beekeeper has additional $256 setup fee
  20. Tweaked webcopy in goal settings for pledge caps and made it point to the new blog post about it (& road dial tweak)

2014 October

  1. You can now buy 10 freebees (goals that start with $0 pledged) for $1, which we also blogged about
  2. The page that shows you an ewok if you're using an old version of Internet Explorer now points you to whatbrowser.org
  3. Fixed a bug w/ retrying failed charges too many times; fewer failed charges littering up your pledges. #bugfix
  4. Fixed Withings goal creation bug we caused. Now you can create Withings goals again! (yikes) HT @MaybiusStrip
  5. Fixed Runkeeper goal creation bug: we'd let you submit without selecting any type of activity to track, and then we'd crash. #bugfix
  6. Put the "Σ" back, showing/explaining about auto-summing. Unrelated, but too small for separate UVI: updated beeminder.com/money HT Geoff
  7. New Discourse forum: forum.beeminder.com — Announced here: blog.beeminder.com/discourse
  8. For user stats (on weight loss goals) we handle imperial units submitted like 5'6" or 5.5 feet. We drew the line there; no cubits, etc.
  9. User (weightloss) stats #bugfix: fixed a 500 error after submitting if you were updating on an archived goal. (But why would you do that?)
  10. One more (silly) stats #bugfix: if you use inches we were decrementing your waist/height every time you submitted the form. #bestdietever
  11. Another casualty of goal wizard refactoring ... Withings #bugfix w/ new goals: we were also failing to fetch new data for those goals
  12. #bugfix: remember datapoint sort order on delete (previously fixed for edits) and, when changing the sort order, remember page you were on
  13. We added a header to forum.beeminder.com that links to Beeminder. (It's less obtrusive when you scroll; could still use work tho.)
  14. Better images for the faux-contracts on our integrations pages: gmailzero.com, gitminder.com, beeminder.com/duolingo, etc
  15. Do-less goal creation buglets: "Commit to AT MOST" & the (i) after "Set your upper limit..." was wrapping to a new line #bugfix
  16. HabitRPG integration!
  17. HabitRPG integration #bugfix: Negative rates (like for beeminding remaining To-dos) broke the goal creation form.
  18. The API's now robust (moreso, at least) to newlines in comments of datapoints. Turns them into \n's instead of dying. Matters for Zapier...
  19. New Feature and Veritable Paradigm Shift: Arbitrary Deadlines!
  20. Missed a few hardcoded instances of the string "midnight" (our rushed launch of arbitrary deadlines promises to be a fertile UVI source!)
  21. Much nicer logos for autodata integrations. #alice
  22. In arbitrary deadline interface, we made it more clear that deadline is akrasia-proofed & your change is happening in a week, not right now
  23. Tweaks & #bugfix in HabitRPG integration: default to "More To-Dos completed" & don't let you select neither! (& introduced&fixed bug w/ tags)

2014 November

  1. Important new version of the Beeminder Android app (v2.3.1r2) with bugfixes for arbitrary deadlines.
  2. Android app also now handles different screen sizes, including tablets, better. Nicer visuals, longer list of recent datapoints.
  3. And Android app has better/faster updating of the widgets. And did we mention the arbitrary deadlines bugfixes? There were lots of those! oy
  4. Fixed the create_all call in the API #bugfix. Remaining bugs from the aftermath of arbitrary deadlines in the forum
  5. Fixed the checkmarks in the goal gallery showing if you've entered data that day (they were confused about what "that day" meant) #bugfix
  6. Deadlines are now shown in the goal gallery & on the watermarks of the graphs themselves. So much easier to keep on top of what's due when!
  7. The new watermarks show deadline time if eep day, day of the week of eep day if within 7 days, or number of days till derailment otherwise.
  8. RT @bmndr: Tweak to our HabitRPG integration: we don't count Challenge To-Dos — you may now join and leave Challenges with impunity!
  9. And HabitRPG integration #bugfix: were overwriting intermediate datapoints (not wrong but more data = better + needed for odometer feature)
  10. One more #bugfix with HabitRPG integration: goal creation was failing for people who had tasks predating a change to HabitRPG Challenges
  11. When Fitbit switched to ssl-only we updated for existing goals but not for users newly authorizing. Fixed now! #bugfix HT @annafung
  12. Fixed the "no data" error when creating new goals after midnight but before deadline. #bugfix (like the 8th one with arbitrary deadlines)
  13. Default deadline for new goals is now midnight. Tweaked the watermarks to make them more visible. Forum link in footer. Deadline copy tweaks.
  14. Oh and we totally dropped the akrasia-proofing so you can change deadlines willy-nilly. Not sure if improvement but last tweet was 4-in-1...
  15. Fixed autoratchet trigger condition (was maybe pretty much broken since deadlines feature for many people, due to 3am deadline...) #bugfix
  16. If you added a Supporter with a '+' in their email address, we didn't handle it right. #bugfix
  17. Fixed the last critical bug from arbitrary deadlines: dates no longer change when you edit datapoints. #bugfix (forum post)
  18. Just kidding, 1 more important #bugfix w/ arbitrary deadlines: zeno polling wasn't polling after midnight (then broke & fixed it 2 new ways)
  19. Mini UVIs: Higher contrast text in blog section on frontpage; HabitRPG API fields wide enough so the spinny thing won't overlap the text
  20. Hadn't had gzip turned on for "application/json" which means 60% reduction in data usage for the Android & iPhone apps & other API consumers (EDIT: when the apps support it)
  21. We just launched our official Zapier integration, which means 100s of new autodata sources you can beemind! So huge! blog.beeminder.com/zapier
  22. Version 3.1 of our iPhone app! Bug fixes with dates, added min to get to each lane of road, goal rate on gallery screen; last update up top
  23. And then BeemiOS version 3.1.1 also fixes a crashing bug for iOS 7 users (sorry!) and adds layout fixes and double-tap to zoom out graph.
  24. We're gradually transitioning from uservoice.beeminder.com to forum.beeminder.com (link to forum now in site header)
  25. In Gitminder: we now track Creates plus Pushes towards your count (GitHub gives them different event codes, & we'd been excluding Creates)
  26. Terrifyingly Advanced Settings now has a "Data source" field, automatically set to Zapier for Zapier-mediated autodata goals. Yay Zapier!
  27. Arbitrary deadlines #bugfix from a while ago: pessimistic presumptive datapoints sometimes failed to get replaced due to date confusion.
  28. In the stats we collect in the sidebar for weightloss, don't bug out if errors in the graph, and don't allow 0 for waist size. #bugfix
  29. We now always send you a reminder even for goals that have errors! #bugfix
  30. Subtle but important bug with reaching goaldate and not refreshing the graph, leading to bugginess trying to restart the goal later. #bugfix
  31. Custom color palette for graphs means they're like 1/2 the filesize or less (8-bit vs 24-bit, but look identical). Faster, less bandwidth!
  32. If you said like "2300" instead of "23:00" for your deadline, we gave a 500 error instead of politely complaining. #bugfix
  33. Beedroid v2.3.2: "What's new" dialog, faster & less bandwidth, do-less value defaults to prev day, zeno polling past midnight; + 6 bugfixes!
  34. Made the comments field in our Zapier integration more robust — special characters like accents or emdashes were causing failures. #bugfix
  35. And another critical #bugfix for Zapier goals: Zeno polling was not triggering. Starting now it will!

2014 December

  1. Mini-UVIs: Added @Malcolm_Ocean to beeminder.com/aboutus & "(bee)mind" instead of the apparently confusing "mind" on the frontpage
  2. Zeno poll emails were saying you could reply with data even for autodata goals #bugfix (or #emailcopyfix)
  3. Serious #bugfix w/ certain autodata goals since Oct 27: final midnight check for data was sometimes counting the datapoint for the next day (trello, codeschool, duolingo, github, gmailzero, habitrpg)
  4. Prev #bugfix caused a brief RescueTime bug that was adding duplicate datapoints, now also fixed and cleaned up (and refunds issued). Thx to Ben Trettel and Lawrence Evalyn.
  5. When registering Beeminder API clients we allowed '.' in the app name which caused errors editing the app so now we disallow periods #bugfix [HT: Ryan Kluzak]
  6. There's now a 6-hour akrasia horizon on snoozing your deadline: forum.beeminder.com/t/deadlines-cant-be-snoozed-anymore/310
  7. Brought beeminder.com/faq up to code: pointer to the forum, arbitrary deadlines, deleting goals in the 1st week, and auto-widening
  8. We were ignoring updates to the deauthorize callback URL for registered API clients; now we actually update the field! #bugfix
  9. Made the deadline time under the goal's countdown (above the graph) be a link to deadline setting (& don't do -1 minute thing)
  10. Oldie-but-goodie: Major RunKeeper #bugfix which we broke when we deployed Arbitrary Deadlines (and fixed all the duplicate datapoints)
  11. Rare bug w/ hitting goal date w/ an early deadline causing us to treat it briefly as derailed and trying to recommit. #bugfix HT @samstokes
  12. Another @Runkeeper #bugfix: their API gives times relative to user's local time. We were off-by-1 converting activity days for some people.
  13. Terrifyingly Advanced Settings are now less terrifying thanks to lots of new descriptions and mouseovers and links
  14. Mini-UVIs: Added hovertext to fields in Basic Settings; renamed "Inbox Fewer" goal type "Whittle Down"; more obvious that Do More is default
  15. Prettied up and simplified beeminder.com/services to just be about autodata integrations, not "sign up or sign in with..."
  16. Sleep as Android integration! See also blog announcement.
  17. Sign-in/up initial button selection now matches the view. Thanks Alan Pearce
  18. Fixed display of table of past payments so dates never wrap, since that was hideous, and link to that page from Settings → Payment tab
  19. Android app v2.3.3: better widget creation, somewhat rare but important bugfix w/ date display, other tweaks/fixes; see changelog in the app
  20. Two Sleep As Android bugfixes: don't prematurely show pledge form (on create); fetch since we last saw data, rather than since today #bugfix
  21. Mini-UVIs: Typo in pledge cap settings (HT Yonah Sienna), nice error if Code School user 404s, adapted to a minor change in HabitRPG's API [UPDATE: HabitRPG is now Habitica]
  22. Critical #bugfix w/ surprisingly few people affected: regex error counted PPRs as active datapoints and the deadman switch wasn't activating
  23. Moved and prettied up the All Data link again since people were still commonly unaware of its existence. PSA: you can edit/export past data!
  24. Mini-UVIs: better beekeeper blurb at beeminder.com/premium & fixed /start icon centering (and added Sleep as Android!)

2015 January

  1. If there was an error submitting credit card info we left the submit button disabled till you refreshed. #bugfix HT Faire Soule-Reeves
  2. We finally actually have a radio button for Do More vs Do Less when creating Rescuetime goals!
  3. Bugfix in Sleep as Android integration where we might've missed the first day's data after goal creation. #bugfix
  4. Added a warning to Take A Break about safety buffer caps, w/ link to settings (only applies to premium users who can set safety buffer caps)
  5. Beedroid 2.4! New summary widget (so handy!), Buzzing bee animation (so cute!), Better icons (so modern android!), & no less than 7 bugfixes
  6. For the full list of changes in version 2.4 of the Beeminder Android app: Settings → About Beeminder → ChangeLog. [~10 UVIs in 2 tweets!]
  7. Another improvement to mention in the Beeminder Android app: replaced webview w/ imageview for graphs, meaning it's faster on slower devices
  8. And a #bugfix that was driving at least one of us crazy: if you open the app via a desktop widget you can now task-switch away & back to it
  9. Gitminder bug (introduced by arbitrary deadlines) where we could skip a day if you had 2 days in a row w/ the same number of commits #bugfix
  10. Updated our google oauth2 lib but didn't migrate database, so some who used to sign in w/ google couldn't sign in to the Android app #bugfix
  11. Removed the deadline (due date) info from the goal gallery listing on goals that are finished. (They're no longer due!) #mini (ie, mini UVI)
  12. Fixed whitespace in bot reminder emails that made format instructions for replying with data needlessly confusing. HT @zooko #mini
  13. "Units" placeholder in goal wizard, refresh the graph after stepping down the pledge, linkify "advanced settings" in recent data. #mini ×3
  14. We were wrongly saying "you've reached your pledge cap" in legit check emails for anyone with a pledge stepdown scheduled. #bugfix
  15. We were accidentally including withings/fitbit bodyfat goals in our weight loss science experiment. #bugfix
  16. Not sure it should count since we had to do literally nothing (HT Stripe) but we auto-update most user's credit card expiration dates now
  17. Anti-slopeslipping: this = last UVI we'll count ∀ ongoing improvements to Stripe checkout, Discourse forum, etc where we don't lift a finger
  18. A self-rate-limiting catch on reminders that suppressed them if the last was <12h ago led to us (rarely) skipping reminders AND zeno #bugfix
  19. Fixed Quick Add whitespace bug (HT @PareidoliaX) which turned out to be idiocy in an undocumented part of our API. #bugfix
  20. Rare failure of legit checks in certain cases where we bcc us humans (eg, high pledge amounts); we caught all cases so far manually. #bugfix
  21. Beeminder Android app v2.4.1 fixes freezing after goal creation/deletion & sync progress indicator didn't work on some devices. #bugfix ×2
  22. Mini UVIs: Link and hovertext on duominder.com & added "e.g." to placeholders (people would not notice it was just a placeholder)
  23. We'd send a scary email about how some new/unknown email address added data to your goal when an admin fixed your emailed data. #bugfix
  24. Twitter autodata bug: last datapoint traveled forward in time if you hadn't tweeted anything new. HT @gdedkins #bugfix
  25. Reminder time & deadline time accept time of day like "2300" now, & error rather than die on bad input. Related to UVI#1383.
  26. There can be only one (gmailzero goal)! If you try to create 2nd: warning, redirect to existing one (even if archived) HT Malcolm Ocean
  27. Got rid of the crufty/confusing "reset road at X" datapoint comments in favor of "DERAILED"; tweaked the comment for PPRs too. #mini
  28. Oops, we were saying "DERAILED" for restarted goals. Now meta datapoints are one of {"PESSIMISTIC PRESUMPTION", "RECOMMITTED", "RESTARTED"}.
  29. You can now set pledge caps below your current pledge (which take effect when/if you actually drop your pledge to the cap) HT @Jolly #alice
  30. Mini UVIs: smart submit buttons for integrations, labels clickable for pledge cap radio buttons, wording of "reached pledge cap" #mini ×3
  31. Do some actual input validation on "roadall" in the API. HT @chipmanaged. Cf UVI#1323.

2015 February

  1. For ppl who'd created gitminder goals before or out of freebees, we were failing to redirect to the goal page after goal creation. #bugfix
  2. Also could fail to ensure you'd auth'd before creating gitminder goal #bugfix. Also always use fancy landing page layout for goal creation.
  3. 2 #mini UVIs: reworded confusing "extend it first before using retroratchet", added warning re start dates for scheduled breaks. HT @aaronpk
  4. Reminder email was missing link to the goal for goals manually marked as autodata; also beeminder.com/featured has more goals & sorts better
  5. Ongoing heroic JS refactoring continues to break things. Do More goals created after Odometer goals had spurious initial datapoints #bugfix
  6. RT @bmndr: Beeminder is very proud to be one of a handful of launch partners for the new @Epson #quantifiedself wearables: blog.beeminder.com/epson
  7. We were preemptively trying to create your Withings goal, causing a spurious "couldn't save goal" error immediately after sign-in. #bugfix
  8. 3 #mini UVIs: added hovertext for Buzz on front page, improved it for integrations, added username to subject of account confirmation emails
  9. Epson: Fixed date issues that could cause missed activities, time zone issue, & aggregating multiple datapoints for a single day. #bugfix ×3
  10. Eek! We let you change the road dial on frozen goals, which usually led to insta-derail. Now: force you to use the restart button! #bugfix
  11. Fixed a passel of glitches with Sleep as Android auth (via Google), confusion with previously issued keys and expiring tokens. #bugfix
  12. Added API documentation for rah, delta, callback_url, description, graphsum, lanewidth, deadline, plotall, etc. HT @instigate_it
  13. Two things in landing pages: consistently hide goal form when showing pledge info, and opaque overlay when showing infinibee. #bugfix ×2
  14. Mini UVIs: typo fixes in hovertext in settings, fix checkmark symbol in api docs, pruned testimonials, copyright year thing. #mini ×4
  15. We weren't alerting you if there were problems with your credit card on premium renewal; now we email an alert, and only retry a few times
  16. Much prettier auth page with simple green vs red buttons to confirm/reject. (When you authorize a 3rd-party app; cf beeminder.com/apps)
  17. If you weaselproof yourself you can no longer edit data or add it via the email bot for autodata goals. #closingloopholes HT @joeymac1981
  18. In graph hovertext, bot emails, etc, safety buffer now refers to approximate number of days till derailment, not confusingly that minus one
  19. Consistent grammar/orthography ("beeswax", "e.g., foo" not "e.g. foo", "~N days until" in retroratchet), iOS favicon. HT Nick Head #mini ×4
  20. Important #bugfix in API's roadall (1 of 3): We were ignoring rate units (runits) for roadall and treating it as if it was always days
  21. Roadall #bugfix (2 of 3): Discontinuities in the road weren't handled right, led to rejection of road changes that should've been allowed
  22. Roadall #bugfix (3 of 3): Floating point comparison bug: rejected resubmission of unchanged road matrices! HT @instigate_it @chipmanaged
  23. Moved list of 3rd party apps you've authorized to access your beeswax (Beeminder data) into user settings so it's actually discoverable now
  24. Also linked beeminder.com/apps and beeminder.com/apps/new and beeminder.com/settings/apps to each other. HT @Malcolm_Ocean
  25. Finally there's a button to regenerate your personal auth token in the advanced account settings page (where we show it to you)
  26. A new aggday type: triangle (sum*(sum+1)/2). Described in a forum thread. Huge HT @DRMacIver.
  27. From Jan 30 to Feb 26 HabitRPG goal creation gave cryptic errors in place of graph image at first (tho goal got created) #bugfix
  28. Explanatory text and visual improvements in beeminder.com/apps. HT @instigate_it who's been a huge help with API hacking lately.

2015 March

  1. Added hint "(Did you mix up auth_token and access_token?)" to an API error message and added two more aggday functions: square and clocky
  2. To catch infinite loops w/ our new (beta only still) IFTTT triggers (or other autodata schemes) there's now a cap of 144 datapoints per day
  3. Important #bugfix in drawing the graph after a derailment where it could fail to flatline past the derail day
  4. Now over-achievers can have every day be an eep day too! (on Do More goals, set 'Max Safety' to 0 just like manual ratchets) #planbeeperqs
  5. Datapoints + centerline of YBR now show on top of bull's eye. #mini (And so many improvements to Garmin & IFTTT; contact us to beta-test!)
  6. Subject lines of legit check emails are now like "paying $X, now pledging $Y on bob/foo: beeminder legitimacy check" (key info up front)
  7. Fixed the Epson "this data is autogenerated" link: now specifies whether you created goal with Pulsense vs Runsense #mini
  8. Discovered we were silently failing on Fitbit oauth errors: now puts up a banner letting you know what's up. #bugfix
  9. Made the API's create_all call (for adding datapoints) a bit more robust/accepting, as Bee explains
  10. Added Epson to bmndr.com/start (had it on front page but forgot it here) & auto-update the verb in the form, eg "i pledge to sleep" vs "to train"
  11. Tweaked legit check copy ("Any other technicalities or even just confusion about the rules?" and PS about pledge stepdown) #mini
  12. RT @bmndr: Beeminder launches official @GarminFitness integration! blog.beeminder.com/garmin
  13. Fixed bugs w/ watermarks on graph thumbnails, and maybe now they're bigger and so more readable from the thumbnails (forum post)
  14. Mini UVIs: Another aggday function: count; copy tweak for reminder settings; new robots.txt (not that human users should care) #mini ×3
  15. Use user's timezone in comment 'Auto-entered by Garmin at TIME' & fixed link by recent data "this data is autogenerated by ..." #mini ×2
  16. Updated a banner from "email settings updated" to just "reminder settings updated" cuz you can update sms reminders there too #mini
  17. Had a bug with sometimes missing data from Garmin's pushed data. Now periodically check for missed data #bugfix HT Jana Beck
  18. Bugfix in the SMS bot: in multi-line SMS, if there's a blank line in the middle we'd 500. Now politely skip them instead. #bugfix
  19. Our timezone info was out of date (eg, Moscow stopped summertime sometime recentlyish); updated the tzinfo gem for latest timezones. #mini
  20. Brief bug w/ the email template for "your credit card failed" emails when we retried a charge that caused us to not send the emails #bugfix [for ~1 week]
  21. Our Jawbone goal wizard said "pounds" when in fact weight data from Jawbone seems to be only KGs #bugfix (forum thread about Jawbone weight goal being confused about units) HT claudine
  22. Half (or more) of scroll-to-locations in autodata landing pages weren't scroll-to-ing (draftin, codeschool, trello). #bugfix
  23. Broke and then fixed the confirmation emails for new users signing up. #mini #bugfix (a net-zero UVI but it counts! (related to Science!))
  24. New advanced setting to hide y-axis numbers, like if you want to share your weight loss progress but not your weight (forum thread about sharing graphs without the numbers)
  25. Beeminder.com/featured was breaking if someone with no datapoints added themselves #bugfix #mini
  26. Gitminder.com form was not redirecting back to the landing page after authenticating #bugfix
  27. Email bot reminders for goals w/ data fed from our Epson integration now are specific to the kind of goal (running/steps/sleep) #mini
  28. Added Garmin to the front page and added links to the beeminder.com/garmin landing page. #mini
  29. We were showing the "you really should add a credit card" banner thing when not logged in. HT @DRMacIver & @chipmanaged #mini #bugfix
  30. There was an error in Epson sleep goals causing us to double-count time (in Epson's API, end dates are inclusive) #bugfix
  31. Beebrain #mini #bugfix: tmin defaults to min(tini,asof), in case you want your YBR to start in the future for some reason. HT @chipmanaged

2015 April

  1. The API now supports upsert. Set upsert=true (and include a requestid) for create datapoint, and it creates or updates. HT Malcolm Ocean
  2. Now upsert works without needing an "upsert" parameter. Way better. POST a datapoint w/ requestid, it returns CREATED, UPDATED, or DUPLICATE
  3. Gmailzero goals no longer do the hideous hack of adding a dummy datapoint for yesterday to make the start of the road stay put
  4. More prettying/concising of the "allow this app to access your beeswax" page (UVI#1457), and blog post authors back on front page
  5. API #bugfix: when using "me" param in place of username, and getting a 404, we'd give a weird error ("you're logged in as...") HT @DRMacIver
  6. When a goal that's counting down to being archived derails, we were incorrectly saying "paying/repledging" in the legit check. #bugfix
  7. iOS app 3.2! You can add a Beeminder widget to the Today view; shows up to 3 goals in urgency order, plus bare min needed if beemergency
  8. Also in Beeminder iOS app 3.2: Robuster push notifications (robust to device token expiration or connection flakeout) + other bug fixes
  9. Documented upsert in beeminder.com/api and made a best-of collection of Beeminder blog posts: blog.beeminder.com/tag/best-of
  10. Blurb below Allow/Cancel buttons: "We call this 'accessing your beeswax'. You can revoke access any time in Settings → Apps [link/tooltip]."
  11. Now allow new GmailZero goal if old is archived. Fixed unique slug error. Missing error messages on GmailZero landing page. HT @carlcoryell
  12. Rare bug w/ autoratchet=0 & goal end date: we ratcheted w/out checking end date, yielding enddate++ every day. #bugfix HT @chipmanaged
  13. Related #bugfix: rare infinite loop trying to recommit you when ending a goal in the red (added explicit check for "goal recommitable?")
  14. API #bugfix: requestids should only be checked for uniqueness within the goal, not all the user's goals. HT Malcolm Ocean
  15. Mini UVIs: typo fix in API docs ("reqeustid") + upsert works for create_all now as well. #mini ×2 HT Malcolm Ocean
  16. Timestamp for datapoint POST now defaults to Now, OR whatever the existing timestamp is, if it's being updated. HT Malcolm Ocean yet again
  17. Transition to OAuth2 for GmailZero! (Alert in bot emails to re-auth, new goals now use oauth2 (not sketchy "this is unsupported" oauth1))
  18. Large inboxes work, no more "you have more than 1000 messages"; you can query "in:inbox AND is:read" in Gmail to see what Beeminder'll count
  19. Show the actual email address that you're authed with again at GmailZero.com #bugfix related to the GmailZero OAuth1→2 transition
  20. GmailZero OAuth1 is now dead! Added error banner if no OAuth2; include "reauthorize us" alert in GmailZero zenos (in addition to reminders)
  21. The "Are you sure you want to remove this service option?" in beeminder.com/services didn't let you actually cancel! #bugfix HT Sean Fellows
  22. Fixed dates in datapoint export: off-by-1 in some instances because we weren't using new daystamp from Arbitrary Deadlines refactor #bugfix
  23. One more GmailZero OAuth #bugfix: handful of people got a 500 error trying to reauthorize (stuff with expiring/revoking/refreshing tokens)
  24. Dumb #mini #bugfix: typo in link to fix your auth if we got permission errors trying to fetch your Sleep as Android data (was 404ing)
  25. Garmin (& IFTTT) autodata pushes were failing if their JSON had non-ascii characters. #bugfix Also an infrahancement [infra]
  26. More GmailZero #bugfix's: failed to add a datapoint if 0 messages, failed to handle pagination & count more than 100 threads
  27. Now simpler to beemind multiple languages on Duolingo: we retry and wait 3 days before giving up if no points found for your language
  28. Copyediting pass through the API docs: mention idempotency, better/clearer links, tighter prose, cuteness, etc. beeminder.com/api
  29. GmailZero counts the min of the day but we now show, in the comment of the last datapoint, the actual last count fetched. Demystifying!
  30. A GmailZero improvement so momentous we blogged about it: beemind arbitrary queries! blog.beeminder.com/gmailzeroer
  31. If there's an error w/ a client application's "post deauthorize callback", email the actual app owner so they can do something about it.

2015 May

  1. Seeming bug in Gmail's API returning spurious empty messages that we're working around now by disregarding. So less overcounting. #bugfix
  2. On the outstanding charges page, when you update your credit card, don't keep saying "...when you update your credit card..." HT Robin Ryder (@Pruneau)
  3. FEATURE: Added "Total Calories Eaten" to the things you can beemind with Fitbit
  4. BUGFIX: Safety buffer off-by-one in bot reminder copy that says "in the red!" vs "in the wrong lane!" [and prefixes over hashtags? yay/nay?] #bugfix
  5. OLDIE: Zapier button + regular refresh button for Zapier goals to run your Zap manually when working down to the wire (also better tooltip)
  6. FEATURE: You can now create multiple GmailZero goals (for the same Gmail account). Just name each goal you create at gmailzero.com
  7. RT @bmndr: Announcement! Beeminder is an official @IFTTT Channel! So many things to automatically beemind... blog.beeminder.com/ifttt
  8. Fancy landing page for our IFTTT Channel at ifthisMINDthat.com (and did we mention we published 57 Recipes that use Beeminder?)
  9. So many other IFTTT-related UVIs we haven't been able to tweet til now: specifying IFTTT as autodata source, button for manual refresh, etc
  10. IF you delete/archive a goal that an IFTTT recipe is trying to send data to THEN we send a nice email explaining why the recipe's failing
  11. Rearranged autodata integration icons on the front page, added IFTTT (still catching breath from the launch, which was like 57 UVIs in 1!) #mini
  12. In Trello integration, use latest datapoint, not a 0 when we can't reach Trello's API, otherwise you get unwanted odometer reset. #bugfix
  13. Fixed 500 error in API when no goal provided. #bugfix (first verify parameters, *then* find the goal!) See previous infrahancement
  14. FEATURE: Under the thumbnails in the gallery we now show how much is due, not just when
  15. Relatedly, the Quick Add box now actually causes the amounts under the thumbnail to update immediately. (forum discussion) #bugfix
  16. Fixed the blurb under the thumbnails for Do Less goals so they don't give a deadline (which was confusing anyway) and just say today's limit
  17. Do Less roads had wrong initial width implying you cd go hog wild on day 1 only to say "jk ur in the red" on day 2 #bugfix HT @noackstefan
  18. Safe days IFTTT Trigger had a bug that made it trigger twice if deadline after midnight and still in the red down to the wire. #bugfix HT @rhitsqueaky
  19. Macros you can use in IFTTT recipes to turn not-strictly-numeric Ingredients to beemindable numbers (forum discussion) (eg time-of-day)
  20. Mini UVI: Now truncate instead of wrap long usernames in beeminder.com/services (keeps them all nice and neat and uniform size)
  21. We added swimming as an activity to beemind in our RunKeeper integration. HT Emilie Lostis
  22. We did this a long time ago (buzzing infinibee, UVI#971) then partially broke it. Should now consistently time out. #bugfix
  23. Now always email you if an IFTTT Recipe's trying to find a missing goal; were only doing so for Add Datapoint Action, not Triggers. #bugfix
  24. We missed cases of notifying you on missing goals, namely @IFTTT Recipe triggering on beemergency or safe days on a specific goal. #bugfix
  25. Our IFTTT macros can now be nested! (forum discussion)
  26. Mini UVIs: don't try to pluralize the goal units in the default y-axis string, fixed broken link in beeminder.com/legalschmegal #mini ×2
  27. Similar to the gallery blurbs for Do Less goals, non-autosumming (and w/o odom reset feature) goals now show the absolute bare min, not delta
  28. Official @Misfit integration! Our blog post here: blog.beeminder.com/misfit -- and look at us in their partner gallery: build.misfit.com/partners
  29. Misfit integration features: beemind amount of sleep or steps. Option to import last month's worth of data when you create the goal.
  30. Finally, we use Misfit's push API so Beeminder updates your graph (roughly) as soon you sync your Shine/Flash

2015 June

  1. Have lots of goals/datapoints? Should see up to 50% faster syncs in the Android app (was partly responsible for server issues last week too)
  2. Goals with deadline after midnight would wind up with datapoints off-by-one-day if you re-scaled them (bottom of advanced settings) #bugfix
  3. The API's roadall was giving a 0 timestamp in the final row instead of null when value and rate (but not goaldate) were specified. #bugfix
  4. Now the hard cap / bare min numbers show *both* deltas and absolutes; this is kind of terrible but better than the previous mess we made
  5. Small improvement to iOS EEP alerts: "+X due by DEADLINE" (was "by end of day" but that's changeable)
  6. Added a helpful table of upcoming week's worth of Bare Mins (or Hard Caps) to the sidebar of your goal!
  7. When you choose "hide y-axis" (for people who want to show off their graph but not the numbers) we now suppress the bare min etc numbers too
  8. Got rid of most of the confusing baremin/hardcap numbers above graph, since we have the Helpful Table; now just 2 confusing numbers up there
  9. Official Skritter integration! blog.beeminder.com/skritter
  10. Made hard cap / bare min numbers and the table in the sidebar update live when you add new data
  11. Fixed a confusing bug with the baremin/hardcap table that could cause the values to be nonmonotone if there were upcoming kinks in the road
  12. New stats in sidebar: both daily and weekly rate (as of today, as opposed to road dial which gives it as of akrasia horizon) plus average rate
  13. We forgot to respect the user's deadline in the Due By table. Now the listed days are defined to end at whatever your deadline is. #bugfix
  14. Added nice tooltips explaining the new traffic light fanciness (in short: how much you need to do to get one more day of safety buffer)
  15. Medley of other UVIs with traffic light and table: better heading, say "hard cap" when apropos, deltas on mouseover, other bugfixes, tweaks
  16. Last one for now: We color-coded the amounts-due-by (or hard-cap-by) table. Now the new UI should unambiguously dominate the old one!
  17. Fixed bug in previous "confusing" bugfix that monotonized the table values the wrong way so all upcoming Due Less hard caps were identical
  18. New API parameter safebump tells you what value you need to reach to get one more day of safety buffer, in the case of Do More goals
  19. Tooltips on Bare Min / Hard Cap section and in the Due By table show up on click and on hover; tooltip explains Due By table
  20. Bugfix with Due By table and stats: now they always update on new data (before there were some cases where you had to reload the page)
  21. Copy tweak on graph errors (don't ask you to email support, we automatically do that and come to the rescue) + dumb bugfix w/ Do Less hardcaps
  22. Broke @duolingo integration last night working on custom deadlines. Fixed it this morn (& fixed spurious derails; thx for the forbearance!)
  23. Don't include secret goals (which show up only as masked bee, because secret) in beeminder.com/featured and warn if you try to set secr. and feat.
  24. Our Skritter form -- beeminder.com/skritter -- is now consistent that the metric is *time* studied, not points. #mini
  25. #bugfix in our @IFTTT error emails. Now provides hint as to what went wrong if a recipe sends @bmndr bad data. HT @robby1066 of @rescuetime
  26. Helpful onboarding widget for newbees! (So you veterans won't see it & only half of newbees will, because bucket-testing) Thx @UserOnboard!
  27. Fixed contrast of tabs/navpills on the sign-up/in modal (when prompted to sign up/in from landing pages). Now you can see there're two tabs.
  28. Fixed @duolingo redirect (was sending you from Duolingo signup to yr goals after sign-in/up). Also nicely jumps down to the "Ready?" anchor.
  29. Placeholders use "e.g.," everywhere, or in some cases are just sufficiently bossy as to not be confused with actual data
  30. No longer allow 'remind' as a goal slug. That's a special route for reminder settings so things broke if you tried to use that name. #bugfix
  31. Minor #bugfix w/ default y-axis label: lost units when we fixed a pluralization thing (UVI#1557). HT @instigate_it
  32. Can now opt out of weight loss mannequin study. Some people don't like them because of flashing, or because they say they're creepy.
  33. Our Skritter integration now checks previous 4 days of data so we don't miss any time due to lag betw end of day and all time reflected API

2015 July

  1. Beeminder iPhone app 4.0! (We may've accidentally made it require iOS 8.3 instead of the intended 8.0) Faster, robuster syncing and submitting
  2. Beeminder iPhone app now shows the amount needed to get an extra day of safety buffer if you're already in the green
  3. Beeminder iPhone app has multi-column landscape view on iPhone 6 and iPad, and lets you sign in w/ your Google account
  4. Beeminder iPhone app (4.0) now updates the goal in the gallery immediately after updating the graph
  5. Beeminder iPhone app has redesigned data entry fields to help ensure correct formatting and are generally easier to use
  6. Beeminder iPhone app now correctly handles renamed goal slugs; and handles entering data on keyboards w/ radix "," instead of "." #bugfix ×2
  7. We weren't allowing for more than 1 sleep on a given day in our @Misfit integration; now we make them unique by start-time, not date. #bugfix
  8. Imported data on new RescueTime goals now viewable if you adjust x-min to be before the import date (previously was imported but invisible)
  9. Added a link to IFTTT integration on beeminder.com/start and made the links to integrations not open in new tabs (no target=blank)
  10. Our @rescuetime integration was giving the safety buffer option, but ignoring your pick in the case of do-less goals. #bugfix
  11. Rare bug in odometer goals was triggered when day before derail had multiple datapoints; were picking wrong value for resetting road #bugfix
  12. New ratelimit-specific error email for @IFTTT goals adding too much data. Were sending a generic "bad datapoint" email, which was confusing.
  13. Beeminder iPhone app v4.1 fixes, we believe, the disappearing goals bug but may have to delete & reinstall (another bugfix version coming!)
  14. We were double-counting certain closed issues in Gitminder #bugfix (ie, issues closed betw midnight & autodata fetch shortly after midnight)
  15. If there was an auth error with your GmailZero token, we were only adding a 0 datapoint, not telling you it's broken. #bugfix
  16. Rare bug w/ blank pledge caps (involved a double-save on goal setup) caused us not to send legit check #mini #bugfix & emailed ppl affected
  17. New stat in the Stats box in sidebar of goal page: "90% Variance" which is actually a 90% quantile on... well, see beeminder.com/faq#qvar
  18. Night Owls, you can now customize deadlines for @duolingo goals. Thanks @wycats for keeping on us this whole time! (We clearly need that.)
  19. Oops, inverted which deadlines can be set, which can't #bugfix + We're now consistent in referring to "derailing" rather than "losing" #mini
  20. Got rid of sadreset in @Jawbone, meaning that when you create a new goal and we import your data, you can actually adjust xmin and view it.
  21. 2 RescueTime UVIs today: we had a bug where we didn't let you correct the key if there was a problem. Now we show an error message. #bugfix
  22. Second @rescuetime improvement: Sub-category minding! Some middle ground btwn minding a specific app &, eg, the entire "Business" category.
  23. Our @Jawbone goal creation wasn't giving you the option for an initial week of safety buffer. #bugfix
  24. In "sign up/in" dialog for some of the autodata integrations, the header was giving text specific to Sleep as Android integration. #bugfix
  25. Long overdue cleanup of our beeminder.com/aboutus page; mainly adding Support Czar, Chelsea Miller.
  26. The email bot now gives proper threaded replies when you email data to it! (Churning through prereqs for our big reminders revamp...)
  27. Dropped the option in reminder settings for getting a reply, figuring now that it's a proper threaded reply who wouldn't want it. Simplify!
  28. If a charge was created via the API w/ no note describing it then the alert email wouldn't get sent to the user. #bugfix

2015 August

  1. When forcing you to pledge (cuz no freebees) on a new @fitbit goal we were failing to redirect to your goal page after creating it. #bugfix
  2. A bug in some "proper replies" was causing mailgun to retry messages it thought had failed, causing us to add duplicate datapoints. #bugfix
  3. Our @tagtm integration now understands Beeminder deadlines! (Our TagTime integration is, however, still kludgetastic, involving perl+xterms)
  4. Now give an error instead of letting you shoot yourself in the foot w/ a custom goal that has both odometer and auto-summing set true. #mini
  5. Added the goal attribute "fullroad" to the API (Plus documentation fixes like list of "skinny" attributes) beeminder.com/api
  6. Workaround ("try refreshing page") for retroratchet not noticing new data added; base "90% variance" only on data since YBR start. #mini ×2
  7. We now retry GmailZero, RunKeeper autodata fetches if they time out; Prepended [initday,initval,0] row to "fullroad" (API) HT @instigate_it
  8. We put user-initiated autodata fetches on a higher priority queue, and less infinibee buzzing for background autodata fetches
  9. Now for Fitbit and Withings you can use x-min to adjust the plot range and see imported data (new goals only; fixing existing ones soon)
  10. Added "yaxis" and "nomercy" to the API. Also fixed asterisks accidentally getting interpreted as markdown on beeminder.com/api
  11. No longer requiring the datapoint value when doing an update to the datapoint via the API (ie, you can let it default to its existing value)
  12. New warning when scheduling a break: "You have Pessimistic Presumptive Reports turned on for this Do Less goal. Careful they don't..."
  13. Configurable Retroratchet is now free! (Existing Bee Lite subscribers, we'll email you tomorrow about this and another change to Bee Lite.)
  14. Oldie: IFTTT error emails were missing the name of the goal in error (not applicable to 'any goal' type triggers) #mini #bugfix
  15. The goal progress box in the sidebar is now collapsible, with the Archive button above it instead of inside it. #mini HT Justin Kwok
  16. Fixed the bug in the API that made the Goal's "datapoints" parameter expect the string "true" instead of the JSON boolean true. #bugfix
  17. Our Garmin integration was failing on manual activities w/ no distance specified (for goals tracking distance) #bugfix
  18. If you signed up for Beeminder & didn't fill out a required field or gave a bad email address, etc, we'd barf a 500 error at you. #bugfix
  19. Our @IFTTT datapoint-added trigger sometimes triggered multiple times for same datapoint. #bugfix w/ updating flag for when we last checked
  20. "Multisport" activities from Garmin were causing duplicate distances to be logged so now we ignore those. HT @notspelledright #bugfix
  21. We messed up grandfathering certain SMS users such that they couldn't update their user info at all (eg, changing a password) #bugfix
  22. Too many people not understanding the week delay in archiving goals so we made the pop-up pop up when you first press Archive, to explain
  23. If you forget to hit submit on the quick-add form (right side of goal gallery) it now actually warns you. #bugfix Cf UVI#1211
  24. Oops, just selecting goal in quick-add box shouldn't trigger the "are you sure you want to navigate away w/out submitting" warning #bugfix
  25. Another #bugfix: if you tried to submit bad data in quick-add and *then* tried to navigate away, the warning would fail to happen
  26. We no longer give a 500 error when you specify roadall in the API on a goal currently in an error state (Beebrain). #bugfix HT @chipmanaged
  27. And on the website, goals in an error state (eg no data) gave an embarrassed bee error (500) if you tried to dial/restart them #mini #bugfix
  28. Clarified error message and outlined the errored field in red in reset form when you don't give the reset value for the graph #bugfix
  29. Were accidentally requesting non-https version of useronboard widget which caused warnings, plus conditionally include it cuz faster #bugfix
  30. Beeminder now uses @habitica's new name and logo! (Previously HabitRPG) Special thanks to @lady_alys

2015 September

  1. API now gives permissions error if you try to change the slug (premium only) instead of silent failure #bugfix HT Chris of blog.openendings.net
  2. Changed the subject lines for zeno polling emails to give the deadline instead of "in 0 days"
  3. Added a warning and disabled rescaling of graphs with automatic data sources (can't rescale the graph without rescaling incoming data!)
  4. Fixed broken images after HabitRPG→Habitica transition. Also updated API docs to mention the daystamp attribute of the Datapoint resource.
  5. Weaselproofed goals now also don't let you change their data source back to manual. People complained about us letting them weasel that way.
  6. Yesterday's UVI broke the workaround for changing deadlines on IFTTT/Zapier goals so we fixed that. You can change IFTTT/Zap deadlines now.
  7. Scootched the gryffin closer in Habitica logo to make collage work. Added daystamps to all Datapoint examples in beeminder.com/api #mini ×2
  8. Fixes to the "Due By" / "Hard Cap By" table to always use the right heading and "total" vs "value" (for auto-summing or not) as column label
  9. Deadlines can now be as early as 7am! And added explanation to hopefully mitigate confusion regarding earlybird vs nightowl deadlines.
  10. RunKeeper goals can now have arbitrary deadlines!
  11. Added new FAQ item about Rarely Asked Questions, with lots of links to "Beeminder around the internet". beeminder.com/faq #mini
  12. The "bare min / hard cap" header above the graph now says the right thing for Rationing goals (metrics you want to go down but not too fast)
  13. Background job (that checks for Garmin data that failed to push) wasn't checking for valid auth. Caused a few cases of missing data. #bugfix
  14. Fixed help text tooltip for "Due By / Hard Cap By" table to tailor it for the case of Do Less goals. HT David Storrs
  15. We were sometimes getting the date wrong for Duolingo data with non-midnight deadlines when fetched via Beeminder's refresh button. #bugfix
  16. Improvements to beeminder.com/overview like better links, hovertext, explanation of derailment in "How Beeminder works". HT Bill Adams
  17. Hitting Beeminder's refresh button right after midnight no longer derails you if a fetch from the previous day is still queued up. #bugfix
  18. Expose the integery parameter for custom goals (even though it doesn't do much but change how some bare min etc numbers are displayed) #mini
  19. We now support arbitrary deadlines for @codeschool goals!
  20. Added more tooltips in Terrifyingly Advanced Settings. Unclear whether the terror level went up or down. #mini
  21. Added new Q's to beeminder.com/faq (blog stuff, integrations) & link to blog.beeminder.com/perverse & fixed syntax errors w/ other links
  22. New IFTTT macro for recipes that send data to Beeminder: PROD[] (as in product, as in multiplying) (more on the forum
  23. We now support arbitrary deadlines for Trello goals!
  24. We now support arbitrary deadlines for @Withings goals!
  25. On front page, updated "guaranteed fresh" link, hovertext for that & main navigation links, don't open blog in new tab, & IFTTT macro bugfix
  26. For goals where we're pretty sure it's measuring time (goal units = "hours") show the recent datapoints as HH:MM:SS not fractional hours
  27. Moved rate units to basic settings and exposed goal units there (now that we actually use goal units for something)
  28. Fixed caching of the recent datapoints so if you set your goal units to/from "hours" the time-based display will happen right away #bugfix
  29. Archiving now happens at the min of {Akrasia horizon, Goal date}. Which also means insta-archive for completed (but not frozen) goals.
  30. If you derail on the day that your goal is scheduled to archive, the archiving now always happens first (actually just midnight prev night)
  31. Reminders Revamp! Huge simplification of reminder settings. Each goal has 3 relevant settings: zeno start time, days lead time, deadline
  32. Reminders Revamp 2 of N: Now possible to have *only* emergency day alerts (set days lead time to 0, the default), w/o wrong lane alerts too
  33. Reminders Revamp 3 of N: You now have more control over alerts for Do Less goals (though some confusion remains re: what "safe days" means)
  34. Reminders Revamp 4 of N: Global defaults for reminder settings! And for each goal you can choose to inherit from defaults or not
  35. Sort of part of the reminders revamp: we also now have global defaults for pledge cap and for whether to do no-mercy derailments
  36. Lock icons on pledge cap and no-mercy if they inherit from global defaults (cumbersome but at least no confusion about where to set them)
  37. Reminders Revamp 5 of N: To turn reminders off altogether: either set alert start time a minute before deadline or set days lead time to -1

2015 October

  1. Now using html emails for the alerts (though we're barely taking advantage: links instead of raw URLs, bullets) Also: bugfixes w/ email body
  2. Reminders Revamp 6 of N: Decoupled beemail from reminders a bit more in that you can say "never" to beemails w/out stopping all reminders
  3. Reminders Revamp 7 of N: Single setting for SMS vs email (premium only) means less confusion w/ enabling SMS for each goal
  4. Reminders Revamp 8 of N: The SMS bot now does zeno polling (premium only; grandfathered original SMS users from before we announced this)
  5. Reminders Revamp 9 of N: Zeno polling start time no longer restricted to 3am-11:59pm. Now anything in the 24 hours pre deadline (sorta).
  6. Important #bugfix for weightloss/inbox goals where zeno polling would fail to happen if you moved into the red after zeno start time
  7. Changing your deadline now won't let you insta-derail yourself on an eep day, in addition to not letting you snooze w/in 6 hours #bugfix
  8. Reminders Revamp 10 of N: Zeno SMS messages now tell you the number of hours left to your deadline
  9. Autodata vs manual goal reminders had "reply w/ new data" in the subject backwards #bugfix (and briefly broke the "N hours" in subject lines)
  10. Doh, the defaults weren't getting applied to new goals (was using default defaults instead of adjusted defaults) #bugfix in reminders revamp
  11. Bug introduced w/ Withings arbitrary deadlines prevented goals from automatically refreshing after getting new data pushed. #bugfix
  12. Introduced a bug with reminders revamp that made us send you to settings after hitting Retroratchet. Now fixed. #bugfix
  13. Mini UVIs: made Unsubscribe All button red, better description of SMS perq on premium page, days lead time now enforces range [-1,30]
  14. One more mini UVI: changed name of tab from "Email" to "Default Settings" since it's not just email anymore (still poorly organized tho!)
  15. If we fetched new autodata, making you safe, we'd send the Eep! email anyway. And a similar fix for preventing stale eep alerts. #bugfix ×2
  16. Added lifecycle email for newly created goals since reminders revamp means no alerts by default till it's a beemergency
  17. We had a small bug where we'd sometimes send queued up zeno reminders after the deadline was past and the goal already derailed. #bugfix
  18. Zeno subject line included 'respond w/ data' for autodata goals instead of manual, and vice versa. #bugfix Also added time to derail to body
  19. The range for default deadline was (for a while) still enforcing noon-6am after individual deadlines allowed 7am-6am. #bugfix
  20. Autodata polling could get behind & for non-monotonic ones (eg GmailZero) could fail to start zenoing & thus cause surprise derails #bugfix [and spurious derails addressed]
  21. In Runkeeper goal creation: 1) actually show error messages to user, 2) for a day or so we gave 500 error trying to create goals #bugfix ×2
  22. Were failing to respect user-set data source. We try to guess if it should be @IFTTT or @zapier, but if you change it back we leave it be.
  23. If you deauthorized Beeminder from Jawbone or something else went wrong we were failing silently instead of throwing up the alert. #bugfix
  24. Rare bug (manifested if autodata push failed and had to poll Withings) with not fetching data prior to a "RECOMMITTED" datapoint. #bugfix
  25. We're now robust to adding stupidly large values like 999999999999999999999999999999999999999999 that used to make everything break. #bugfix
  26. Broke Skritter goal creation: Skritterland requires 4am end-of-day which didn't play nice w/ new default deadlines. #bugfix
  27. Fixed a rare problem with adding duplicate datapoints submitted by email (related to email retries). Now check message ID to de-dup. #bugfix
  28. Patch for @IFTTT add datapoint TOD (time-of-day) macro to turn 12-hour time of day strings to 24-hour (like add 12 if it's PM... and <12)

2015 November

  1. Renamed defaults tab to 'Reminders/Defaults', rearranged/edited "new goal" email copy, tooltip for "-1" in indiv. alert settings #mini ×3
  2. Added leadtime and alertstart to the API -- beeminder.com/api (Thx Andy Brett; & this portends big reminders improvement on iOS!)
  3. Site no longer falls on its face if you give a non-integer (or nil) for 'days lead time' in goal alert settings. #bugfix (from a while ago)
  4. We were sometimes/rarely double counting Sleep as Android time; now disallowing records on same day with same start time. #bugfix
  5. Fixed a sort of off-by-one problem w/ "days lead time" for do-less goals. Zero days lead time means zeno alerts start when you're orange.
  6. Changing goal units made Runkeeper goals stop updating. That was super dumb. But we fixed it! Update gunits to heart's delight. #bugfix
  7. Were silently failing to do anything for GmailZero if you made the query blank; now default to the standard "in:inbox AND is:read" #bugfix
  8. Were failing to regenerate graphs and tell the Android app about changes to deadlines immediately which got goals into weird states. #bugfix
  9. After upgrading from literally the oldest documented version of the Stripe API (from 2011) we broke & then fixed our payment UI. #bugfix
  10. If you had multiple IFTTT recipes triggering for the same Add Datapoint event, only one would actually trigger. #bugfix See forum discussion
  11. New IFTTT macro for counting words in Trigger Ingredients: WORDCOUNT[] See forum discussion
  12. Tweaks to bot emails (pre-vs-ul, link, next check), CSS in blog header (HT Malcolm Ocean), alignment w/ Misfit on beeminder.com/services
  13. By popular demand, a similar IFTTT macro, CHARCOUNT[], for Japanese and Chinese language learners
  14. Another improvement to the API that was needed for the iOS app: can now query and set use_defaults (grep for it at beeminder.com/api)
  15. We were originally regenerating all your graphs that use defaults when you changed anything; now doing that smarter / more conservatively
  16. New aggday method "nonzero" for plotting a 1 only if there exist any non-zero datapoints. documentation of aggday methods
  17. Creating a goal via API w/ coordinates of road start specified (1st row of roadall) works as expected now. HT Malcolm Ocean and Complice
  18. Beeminder Android app version 2.5! Checkmarks on widgets showing data already entered for the day, visual indicator for unsync'd data, ...
  19. Beedroid 2/9: Now locally buffers datapoint deletions and updates in case you have a flaky connection. And fixes related to stale data.
  20. Beedroid 3/9: The Beeminder icon on the urgent goals widget launches the app. (This is from version 2.4.3)
  21. Beedroid 4/9: If you have tons of data we now only load some of it (performance/reliability reasons), link you to website for the rest
  22. Beedroid 5/9: Fixes with eep day notifications, Tasker, and TagTime notifications, decreased unnecessary server hits on syncing
  23. Beedroid 6/9: Bugfix with stale goals hanging around, and fixed various rare(ish?) crashes
  24. Beedroid 7/9: Bugfixes with notifications near goal date, proper updates of existing notifications. (This is from version 2.4.2)
  25. Beedroid 8/9: Fixed a race condition with summary widget, weaselproofing of autodata goal (no more loophole of manual editing in app)
  26. Beedroid 9/9: Eliminated road dial (kind of a negative UVI but we crammed a gazillion real ones in these 9 tweets so...)
  27. Clarifying text on tabs for dialing/ratcheting road; also a warning about ratcheting to an eep day if you derailed yesterday. #mini ×2
  28. Ratcheting for do-less goals (including autoratcheting for premium folks) now work in terms of goal units, not days. HT @chipmanaged
  29. Beeminder iOS app version 4.2! Graphs now appear in Today widget along with bare min, and several other things in the next 6 tweets... (1/7)
  30. BeemiOS does zeno polling! Adjust individual and default notification settings in-app (known bug: can't change deadline on an eep day) (2/7)
  31. BeemiOS: When changing reminder settings in the app you're changing them for website too; was broken at first but now works. #bugfix (3/7)
  32. BeemiOS: The reload button on the goal screen triggers a refresh of autodata. (4/7)
  33. BeemiOS: Fixed the dreaded spinner bug. And Arabic numerals (the real ones, not the western-derived ones) were broken. #bugfix ×2 (5/7)
  34. BeemiOS: Added a ":" button to allow for data input in HH:MM format (6/7)
  35. BeemiOS: Data entry now defaults to the previous day if it's after midnight but before the deadline. (7/7)

2015 December

  1. We made a new kind of coupon code for Cyber Monday where you get the 2nd period free. blog.beeminder.com/cybermonday
  2. Made it way more obvious when you're using a coupon for a premium plan, by highlighting the coupon description in an green alert box
  3. Now give nice explanatory error msg instead of a blank stare if you give a RescueTime "key code" instead of full key when creating a goal
  4. Fixed the "next check is at" in zeno emails -- since putting it back recently we were giving it in server time, not user time (facepalm) #bugfix
  5. Fixed the "hey you just snoozed your deadline" email that we send out if you move your deadline further away on an eep day (facepalm again) #bugfix
  6. Fixed a bug affecting do-less goals with goal total & rate specified that made us throw an ugly 500 error if you tried to ratchet #bugfix
  7. Introduced a bug where, for rare email clients, we'd re-add your "Recent datapoints" as new data when you replied to the email bot. #bugfix
  8. 3rd party app devs can send users to specific URLs on beeminder.com w/out the user being intercepted by a login screen: beeminder.com/api#redirectuser
  9. Other updates to our API docs: not calling IFTTT "about to be launched" and purging the unused "sendmail" param
  10. No longer give permissions error (for users w/out premium plan) when slug is included but unchanged in API goal update. #bugfix HT @diwajd
  11. We were accidentally still sending iOS people 9am notifications regardless of (and in addition to) their zeno settings. #bugfix
  12. Ratcheting do-less goals would no-op on the 1st day of the goal. #bugfix
  13. Error message for "username too long" now tells you what the limit is (it's 20). #mini HT Alex Guzey
  14. Changed the text the archive countdown shows after it hits zero. Now gives an indication that it might (annoyingly) take a bit to kick in.
  15. We broke (2 months ago as part of javascript graphs) and then fixed the Quick Add feature that updates "+N Due by Y" text in gallery #bugfix
  16. Uncheck "start flat" when restarting ⇒ road dial appears like it's supposed to (broke this months ago :/ "start flat" was no-op) #bugfix
  17. Remember when we fixed a trailing whitespace bug in sign-up (UVI#1315)? Well the other day @faireness noticed we still weren't stripping whitespace when you actually log in :/ #bugfix
  18. We now remember who IFTTT recipes run for so if there's an auth problem later we can email you to tell you the recipe stopped working
  19. Embarrassing #bugfix in deadman switch (stops charging you if go inactive): don't count activity on archived goals from autodata like Zapier
  20. Fixed a mangled error message (and made it spell things out better) about trying to move your deadline earlier on a beemergency day. #mini
  21. If you de-authed Android/iOS apps we weren't cleaning up after ourselves and failed horribly/invisibly if you later tried to re-add. #bugfix
  22. Can now always move your deadline earlier on an eep day as long as still before the deadline (timezone issue; only failed sometimes) #bugfix
  23. Similar bug with snoozing your deadline; now always respects the 6-hour window on an eep day. #bugfix

2016 January

  1. In goal default settings if you tried to submit the form with no leadtime or no alertstart or no deadline it would give a 500 error #bugfix
  2. Typo fix in hovertext in footer (thx Caitlin Patton!) & beeminder.com/api documentation updates re: roadall not road_dial, & daystamp
  3. Guess what we (@andrewpbrett to be specific) made? A Beeminder Slackbot! dreev.es/slackbot Has rough edges (feedback pls!) but works!
  4. Bug in beeminder.com/featured — would sometimes give 500 error & other times not show actual 24 most recently updated graphs #bugfix
  5. Both recent data and fine print now say "public" or "private" w/ link to change it (forum post)
  6. Got rid of superfluous subheading for "Recent Data". Added hovertext for New Data and Advanced Entry tabs. HT Edith Beerdsen #mini ×2
  7. Informative error if goalslug taken etc (forum post) (another thing we broke in the great javascript refactor a year ago) #bugfix
  8. API #bugfix thanks to Malcolm Ocean & Complice: Now the deauth callback actually works so 3rd-party apps know when user revokes auth
  9. (+) IFTTT Improvements!
    • (1) New Zeno Trigger lets Beeminder hound you via any medium connectable to @IFTTT (flash your lights, @SlackHQ, you name it)
    • (2) "N safe days" @IFTTT Trigger now lets you say "less than"/"equal to"/"greater than". Handy for, eg, rewarding yourself for more buffer.
    • (3) Don't laugh but we now have an @IFTTT "Charge me" Action in case you want to instantly sting yourself for going to a bar or something.
  10. In @Withings goal creation: if out of freebees we were both not requiring a pledge and not redirecting to your goal after creation. #bugfix
  11. Some small improvements, #bugfix's, robustifications of the Beeminder Slackbot, like actually refreshing the graph when you add a datapoint
  12. And a big improvement to the Beeminder Slackbot: it now does zeno reminders! slackminder.com (Still pretty beta though)
  13. Removed deadline from terrifyingly advanced settings since it's now in reminders and fixed the link to deadline under the countdown. #mini
  14. We now send all reminders as push notifications on iOS (not just eep-day zenos). Fixed brief bug where it would wrongly say "eep" on those.
  15. Made the deauth buttons on beeminder.com/settings/apps not squished together. Email/SMS bot no longer says "Emergency" in scarequotes. #mini ×2
  16. Fixed a case of ugly line wrapping in reminder settings; doc #bugfix with platonic goal types in hovertext in custom goal settings #mini ×2
  17. Didn't affect many people but fixed a bug that would leave the "goal is frozen" banner on goals even after updating payment info. #bugfix
  18. We now ask you for your current/recent weight (with option to auto-fetch it!) when creating @Withings goals. So much nicer!
  19. Getting explicit starting weight also fixes bad bug that often caused insta-derails when importing @Withings data on goal creation. #bugfix
  20. Beeminder Slackbot: it was showing the least recent instead of most recent datapoints, and all instances would fail if one did. #bugfix ×2
  21. New box in the blog sidebar for newbees and overhauled the User's Guide for New Bees post, linked to therefrom. blog.beeminder.com
  22. The calendar date pickers for take-a-break let you pick the same end-date as start-date, then complained at you. Now it's less dumb. #mini
  23. If you had to re-auth Skritter (maybe some others) we were failing to remove error flag & wouldn't automatically resume fetching #bugfix
  24. Fixed a bug on scribeminder.com that prevented connecting to Beeminder if you weren't using HTTPS. Also, forced HTTPS. #bugfix
  25. (+) Improvements to our @habitica integration for completed To-Dos!
    • (1) Every To-Do is its own datapoint with task text as the comment...
    • (2) @habitica "More Completed To-Dos" goals are now auto-summing instead of odometer-style
    • (3) No longer any hoops to jump through when deleting completed To-Dos in @habitica; Beeminder remembers everything!
    • (4) The @habitica integration has a 7-day window where changing To-Dos (ie uncompleting them) is reflected in Beeminder #statuteoflimitations

2016 February

  1. Trivial yet maybe a big deal: Lots of confusion about initial flat spot (eg, bot doesn't bug you for ~9 days) so default now is no flat week
  2. Now two sections of statistics in the sidebar: for datapoints & for the yellow brick road. Added 2 new data stats so far: mean & mean delta.
  3. Mean and Mean Delta in data stats box now interpolate gaps in data, making Mean Delta comparable to daily rate of the yellow brick road
  4. Changed #statuteoflimitations for RescueTime integration from 2 and from Skritter from 4 to 7 days. Hooray for (a bit more) consistency!
  5. Moving deadline out of adv. settings caused bug that prevented graph from refreshing (eg updating watermark) when changing deadline. #bugfix
  6. Were unwittingly removing & re-adding Garmin sleep datapoints every time; made IFTTT "Added Data" Trigger go batshit. #bugfix HT Markos Giannopoulos
  7. If you edited your sleep start time in the Misfit app we'd treat it as a new datapoint & overcount your sleep! #bugfix HT Caitlin Patton
  8. Introduced a bug w/ zeno alerts: after sending the 1st one of the day were accidentally sending them every 5 minutes for some of you #bugfix
  9. We moved the settings for how often you get beemails from "Reminders/Defaults" to "Personal Info" (tweetstorm re: reminders settings soon!)
  10. Better composition of zeno alert. Gives number of days till deadline instead of day of week if >7days away, like in graph watermark. #mini
  11. Multiple improvements to the Beeminder Slack bot: choose for each goal whether the bot DMs you or posts to a channel or both.
  12. And a #bugfix with the Slack bot that made it (sometimes? briefly?) ignore those settings and DM you anyway.
  13. Big change to reminder settings: no more inheriting from defaults; instead there's a button (in advanced settings) to reset to defaults
  14. Equally big change: choose any subset of ways to get reminded for each goal {email, sms, ios, android, slack DM, slack channel, webhook}
  15. Did we mention you can get reminded via webhook now! Also documented as part of the API.
  16. Nice compact table of all reminder settings for all goals. Handy for setting up waterfalls.
  17. Various #bugfix's & tweaks along the way with all that, like breaking & fixing updating of defaults from iOS, making the table pretty, ...
  18. ... changes to the CSS in settings, button copy ("Save Goal Specific Settings"), tooltips, better error-checking w/ webhooks. #mini ×6+
  19. And one more cheap one: We now ellipsify long goal slugs so they don't mess up the nice compact table of reminder settings. #mini
  20. One last small one that we just deployed: a horizontal line in the compact table of reminder settings demarcating the backburner goals
  21. Our RescueTime integration is markedly slicker: no need to paste your API key to authorize Beeminder to access your RescueTime data
  22. Other improvements to RescueTime integration: check do-more by default (which fixed a related bug) & no week of safety buffer by default
  23. One more RescueTime #bugfix: the new hotness broke data fetching for newly created goals for a few days (emailed everyone affected)
  24. How long should something be broke before fixing counts as UVI? Staggering amount broken+fixed in last 24hours: IFTTT triggers, SMS bot, ...
  25. ... html emails, many autodata integrations, clobbered settings, UI icons, google oauth, passwd resets. Upgrades are hard. Cc @beemstat
  26. Changing rate units works again. And fixed last bug w/ IFTTT triggers. We think that's everything from the hairy server upgrade! #bugfix ×2
  27. Finally fixed pagination on the All Data page. Embarrassing how long that was all glitchy! #bugfix & finally a net UVI from the big upgrade
  28. Another thing we broke with the upgrade: Android app stopped automatically staying in sync with the website. Now fixed. #bugfix
  29. Hopefully last UVI for #bugfix's from the upgrade: dial-it-in position, checkmarks for data entered today, saving changes in reminders table

2016 March

  1. We rearranged goal settings a bit, moving things betw Basic & Advanced (was a while ago; we're improving @bmndr faster thn we cn twt abt it)
  2. Mini-UVIs: Typo fix ("was as least one error"), stick to "reminders" vs "alerts", "team" copy for Slack, tooltip misplaced HT @chriswaterguy
  3. New dashboard! It's still in flux and not the default view yet but it's available at beeminder.com/dashboard (tweetstorm to follow!)
  4. Many improvements to the dashboard since it went live, like checkmarks for added data, which we'll pack into 8 UVI tweets tho really over 20
  5. Dashboard has itty-bitty thumbnail of graph, countdown format remembers your pref, integers like 1 not 1.0, safe days for do-less, …
  6. … widen the dashboard so it fits comments, myriad tweaks like right-aligning $-amounts & fixing padding, tab index #bugfix (twice), …
  7. … remove comment after submission, bugfix w/ no goals in gallery, last datapoint timestamp on hover over checkmark or lack thereof, …
  8. … submit button as tab index, put link to dashboard above Quick Add, last comment as placeholder text, #bugfix w/ "fetch data" button, …
  9. … #bugfix w/ showing the previous datapoint comment as placeholder text: now shows previous comment unless it's the "initial datapoint" one.
  10. And that's just the UVIs since we linked to it in the UI, not everything discussed in the forum like sorting, ellipses, etc
  11. Android app was taking too long to notice when graph was done refreshing. (Long story with long queues.) Now much snappier! HT @faireness
  12. #bugfix w/ RescueTime for about 4 days around Feb 25: new goals were created fine but weren't importing your RescueTime history like usual
  13. The graph now shows odometer resets as black vertical dotted lines
  14. SMS choice in reminder settings failing to stick; we broke beeminder.com/featured & /home/featured legacy alias. #bugfix ×2 HT @chipmanaged
  15. We also added "Featured" to the navbar (links at the top of every Beeminder page) & put "feature me" back in Basic Settings. HT @SayHiNeil
  16. Criteria for inclusion in beeminder.com/featured now: 28 most recently updated active undeadbeated goals (that opted in to being featured)
  17. Way faster load time for /featured. Ok that's kinda part of prev UVI so we'll add: fixed wrapping on beemail settings for non-premium people
  18. Yet another thing we broke in the big Mongoid upgrade: auto-detection of timezone for new users signing up. #bugfix
  19. Some people had so many odometer resets that all the dotted lines looked hideous. Now they're more subtle. #mini
  20. Bug with DB queries/indices/caching was making beeminder.com/dashboard unusably slow (yes, related to Mongoid upgrade again). #bugfix
  21. Stopped timing out when Garmin pushes a big chunk of data to us, which was causing big delays in Garmin graphs getting updated. #bugfix
  22. Rearranged navbar, changed "sign in" to "log in" everywhere (too easy to confuse "sign in"/"sign up"), updated/added hovertexts on links
  23. Months ago we introduced a subtle bug in Take-A-Break that made it silently fail if you manually typed dates that weren't allowed. #bugfix
  24. Beeminder used to hang for many seconds whenever we deployed code. Ponied up for Passenger Enterprise w/ rolling restarts so now it doesn't!
  25. New goal creation wizard! So many improvements!
    • (1) Starting at the beginning: the initial page is more compact, eg, Zapier on own page
    • (2) Better UI for picking goalname aka goal slug (deemphasizing goal title etc now since that's in flux)
    • (3) The UI for picking the rate to commit to now lets you choose daily/weekly/monthly without going to settings after the fact
    • (4) You can now choose both the initial pledge and the pledge cap as part of goal creation
    • (5) Instead of just choosing whether to have a week of initial flat spot, you can choose any number of days of safety buffer
    • (6) After the goal's created you land on a goal configuration screen w/ all the settings we think you should review for new goals
    • (7) Most exciting part: No longer any limit on how many goals can start at the $0 pledge level. Concept of "freebees" is obsolete!
    • (8) Instead, we now impose limit on how many goals you can create before required to add credit card (commitment-wall, not paywall)
    • (9) Edited beeminder.com/money and the glossary and old blog post about freebees and various places in the UI referring to freebees

2016 April

  1. Fixed the blue-on-black text in the "credible threat" banner, removed horrendous text shadow for popups #mini ×2
  2. #bugfix w/ auto-adjusted copy in goal deletion dialog depending on if you already added credit card (used to be freebee-related)
  3. A bunch of tweaks, copyedits, and more detail on beeminder.com/zapier (our Zapier landing page, aka zapminder.com)
  4. Added "private goal" & "public data" settings to goal creation wizard. Minimizing surprises about what's public by default!
  5. When you enable iOS notifications in the app we now (actually as of a few weeks ago) turn it on in the web interface too #savedyouaclick
  6. We made a much prettier landing page for our Fitbit integration, more like other more recent autodata integrations: beeminder.com/fitbit
  7. Not just aesthetic improvements to our Fitbit landing page: the goal creation UI is better, pre-fills sensible choices for goalname & rate
  8. Mongoid upgrade broke the "re-scale your graph" feature in kinda insidious way (now #bugfix'd & manually cleaned up data of those affected)
  9. From Feb 23 - Mar 30 we silently failed to save all attempts to weaselproof oneself! Serious #bugfix (so sorry; please check the box again!)
  10. We finally got the stupid "/goals/" out of everyone's URLs which was making one of the cofounders twitch for the last 5 years
  11. We now show an actual helpful error if you (accidentally?) revoke Beeminder's access to your RescueTime data. #bugfix
  12. Pretty delete button w/ feedback/confirmation popup works in Settings same as graph page now. Bonus UVI(s): fixing autodata goal creation.
  13. Several dashboard tweaks/fixes like bigger thumbnail of graph (on left now) and added link to dashboard in top navbar
  14. Nicer interaction w/ the "Beeminder can't be a credible threat till you add a credit card" banner, & only show it once email is confirmed
  15. We now include a list of Things You Should Know about beeminding on the empty dashboard/gallery page, similar to the commitwall webcopy
  16. Lots of changes to the popup that warns you that by adding a credit card you're on the hook for everything eg links to adjust existing goals
  17. Updates to beeminder.com/faq (where to find example goals, point to Life category in forum, broken link to TagTime Minder)
  18. Changed legit check email copy to point out you can drop the pledge, dial the road, or archive from the goal page (w/ another link to it)
  19. Myriad tweaks/fixes/improvements to new goal creation
    • (1) Not allowing zero rates (or negative for do-less), css tweaks, better hovertexts,
    • (2) disallow initial pledge > pledge cap & inconsistent private/public combinations, #bugfix w/ updating the button text based on pledge,
    • (3) actually saving your choice of rate units & some other fields (#bugfix), prompt for credit card when shortcircuiting from $0,
    • (4) #bugfix w/ showing "commit to" vs "limit" label (HT Brent Yorgey), redirect to goal page after setup, nicer errors for bad goalnames,
    • (5) replaced "start now" checkbox w/ just a field to fill in for how much initial safety buffer & #bugfix w/ specifying it for weightloss,
    • (6) added link to go back & change goal type from 2nd screen of goal wizard, #bugfix w/ reusing goalnames of deleted goals
    • (7) That was at least 16 UVIs which we're counting as 6 (now 7). You're welcome. It's our penance for getting so far behind!
  20. Slightly obscure #bugfix with Supporters: ugly error if the supporter tried to follow confirmation link for a goal that no longer existed
  21. Slack's icon was missing if you added it on beeminder.com/services #bugfix
  22. Fixed spurious warning on 1st press of "fetch data" in dashboard #bugfix But another dashboard bug still at large
  23. Added a delete button for apps you create at beeminder.com/apps (HT Uluc Saranli) But still haven't gotten to doc.beeminder.com/byebyebee
  24. Additional #bugfix's related to cleaning up the /goals/ in old URLs, like thumbnail of graphs pointing to wrong version of the image
  25. There was an obscure Gmail error ("delgation denied") that we silently failed on with GmailZero. Now we actually tell you about it. #bugfix
  26. Embarrassing: We learned that signing up with Twitter had been broken since like February. Finally fixed as of a week or so ago! #bugfix
  27. Curly (non-ascii) quotes no longer break the SMS bot! #bugfix HT @chipmanaged
  28. Initial safety buffer setting now more... true (and we say "days until derailing" not "days of safety buffer" to reduce the ambiguity)
  29. New feature! If you weaselproof a goal you can no longer delete it in the first week! HT @chipmanaged (again)
  30. Fixed 2 grievous bugs w/ our IFTTT triggers
    • (1) "datapoint added" Triggers now always trigger exactly once per recipe, ... #bugfix
    • (2) Trigger for "datapoint added" could cause false derails if you were down to the wire. #bugfix
  31. From apr 4 to apr 14 you couldn't authorize 3rd parties to access your data on Beeminder (broke IFTTT/Zapier/beemind.me/etc). Big #bugfix
  32. Mini #bugfix ×3: UVIs since you last beeminded & other things using lastactive date broke, datapoints temporarily sorting wrong in Beedroid
  33. If you retroratcheted the same day you derailed on a do-more goal we were frequently giving an ugly error. #bugfix
  34. Newly created Withings goals were failing to fetch data for about 10 days after our big Mongoid upgrade. #bugfix (& fixed up those affected)
  35. And an unrelated Withings #bugfix: deadline-related bug meant autofetch could occasionally miss datapoints if you had nightowl deadline
  36. Small improvement to RescueTime goals (fixed coordinates of start of road) so you can't insta-derail yourself when you edit past data, etc
  37. Beedroid (Beeminder Android app) Ver 2.6!
    • (1) Sign up in the app! Sort of create goals (via website but don't need to sign in separately)!
    • (2) Edit goal settings (same deal)! Swipe down to refresh! Actually get notifications for backburner goals. And a bunch of other #bugfix's:
    • (3) Fixing bad error messages on login/signup failure, proper handling of deleted goals or changed goalnames, handle +'s in email addresses
  38. Minis: RescueTime icon didn't have "RescueTime" next to it, broke & then fixed unsubscribe links (!), made unsub links not expire.
  39. What we used to call "slug" is now universally called "goalname" (no space, like "username")
  40. If you clicked an unsubscribe link when logged in as another user then we gave an opaque error instead of telling you what was what. #bugfix

2016 May

  1. (+) iOS app version 4.3!
    • (1) No longer crashes when you log in w/ Facebook or hangs when you log in with Google #bugfix
    • (2) And we no longer crash if adding a datapoint times out or otherwise returns an error #bugfix
    • (3) Finally, you can now pull to refresh your goal gallery even if you have a small number of goals #mini
  2. Mini UVIs: Added Duolingo Russian phrase, better URLs for some settings like /reminders/username, alphabetized autodata icons in goal wizard
  3. Moved deadline setting (needs to always be near zeno start time), fixed Fitbit push notifications (should be faster again) #mini ×2
  4. CSV/TSV export now has iso8601 dates (both humans & machines rejoice!) and additional columns: daystamp, createdat, deadline
  5. And added a header row to the CSV/TSV to name the columns, and now we name the file with the user/goalname instead of just "datapoints.csv"
  6. When you add a datapoint with a comment to the dashboard, we immediately replace the placeholder text in the comment box. #mini #oldie
  7. In goal creation, require & actually use given current value for odometer goals (we were initially ignoring it altogether! #bugfix) #mini
  8. Fixed an ugly error on the dashboard that you'd see if one of your goals had no datapoints #mini #bugfix

2016 June

  1. Better URLs for goal settings tabs: /settings, /reminders, /supporters, /terrifying, /datapoints
  2. Added a notice to beeminder.com/sleep about how you need the SleepCloud Backup add-on for Sleep As Android for like $1/year
  3. If your data's public then the public should see All Data link but not settings etc tabs (even though they, correctly, didn't work) #bugfix
  4. Standardized across all integrations the error message for when we can't fetch autodata, with link to go reauthorize us. #mini
  5. We made our Complice integration official, with fancy landing page and everything! beeminder.com/complice
  6. Goals would go missing from the dashboard as soon as they hit the deadline and until the derailment was processed. #bugfix
  7. Beedroid #bugfix: sign-up in app acted like it failed despite succeeding (& then you had no way to log in to it, it was a mess, albeit rare)
  8. We were giving a spurious error when you first signed up or logged in (related to authenticity tokens). #bugfix #oldie
  9. RescueTime goal creation is now consistent with normal goal creation in making you enter a credit card after N goals created. #bugfix
  10. RunKeeper #bugfix: we were rejecting activities w/out a distance even for time/calories/etc where it doesn't make sense to enforce that.
  11. Barely user-visible but giving bad query params for pagination on All Data could cause 500 errors and now just nicely 404s. #mini #bugfix
  12. Fixed (at least improved a lot?) the problem that was making people have to keep logging in again #bugfix (let us know if you see it still!)
  13. New premium feature: Weekends Off! blog.beeminder.com/weekends
  14. Weekends-off is now maximally lenient: you can decide at the last second to take the weekend off. (We'll monitor for abuse of this!)
  15. Beebot (our Slack bot) no longer crashes when you add an emoji reaction to a message. #bugfix
  16. More on our Slack bot: Can now send messages to beebot (eg "list" or a goalname) and it lists your most urgent goals or adds datapoints
  17. Fancy Slack bot landing page with documentation now at beeminder.com/addtoslack aka slackminder.com
  18. Fixed things like our Slack bot not being able to auth to multiple teams. forum post #bugfix
  19. Slackminder now includes a /charge command. You can say "charge me $X in N minutes unless I ___". See also blog.beeminder.com/mustdo
  20. Slackminder has goodies built in like dice rolls and sealed bid auctions cuz @dreev & @thatgirl & @andrewpbrett are huge nerds
  21. Slackminder has a built-in pomodoro timer that can automatically send data to Beeminder via a /tock command! See blog.beeminder.com/tocks
  22. Slackminder open source! With that we'll stop counting UVIs to Slack bot even tho there're lots more we could list! github.com/beeminder/beebot
  23. Minis: placeholder text for slack channel zenos, #bugfix w/ RescueTime redirect after goal creation, always show hovertext for services
  24. We now always consistently use the units chosen in RunKeeper goal creation no matter what units you say in RunKeeper #bugfix HT @chipmanaged
  25. Redirected an ancient Withings FAQ page to our Withings integration landing page. beeminder.com/withings #mini
  26. Importing of existing data for new RescueTime/Draft/Withings/GmailZero/GitHub/Jawbone/Epson/Misfit goals was broken for 2 months (!) #bugfix
  27. Tweaked weaselproof-me wording, and bugfixes w/ weekends-off (like so it actually works; fixed manually for everyone affected)
  28. More Rails modernization: asset pipeline theoretically speeds things up. Not sure it has but also involved breaking & fixing many URLs.
  29. Made Misfit integration use standard statute of limitations on syncing data (1 week). Fixed bug for people who didn't sync for >30 days.
  30. Another rare RescueTime bug left over from the switch to auth'ing w/out pasting API key, led to failing to fetch data on new goals. #bugfix

2016 July

  1. The countdown timers for archiving & pledge stepdowns would sometimes fail to start if the page wasn't fully loaded. #bugfix
  2. One of the many bugs fixed as part of asset pipeline but we'll count it as one more UVI since it has a forum thread
  3. Improved/fixed algorithm that decides when the bee buzzes while importing, preparing your graph (was super busted for new goals for awhile)
  4. Made legacy redirects for images so we don't break hotlinks out there, unbroke the images of our pretty faces in beeminder.com/aboutus
  5. Road Editor! Enabled for Plan Bee and above as of June 17. blog.beeminder.com/road
  6. We no longer ignore the last row (the one equivalent to the traditional road dial) in the road editor. #bugfix
  7. Related/similar #bugfix: The last row of the road editor now lets you specify any 2-of-3 of goal-value-rate (other rows ought to but don't)
  8. If you break your road with the road editor we add a button above it to restore it to its last unbroken state.
  9. Last UVI related to asset pipeline: tooltips were broken for a while #bugfix -- And improved the error messages in the road editor #mini
  10. Race condition (either related to multiple Fitbit goals or push notifications + polling) made us lose your Fitbit auth sometimes. #bugfix
  11. It's embarrassing how many things like this we've missed: we caught another previously uncaught RescueTime error (401) & alert the user now
  12. We now include the "Things You Must Know" copy from blog.beeminder.com/creditcard in the email we send out for each new goal you create
  13. In the "Charge me" action in our IFTTT channel, we failed to strip whitespace from the charge amount & would wrongly complain "NaN". #bugfix
  14. Another #bugfix: when emailing you about errors like that we now show you the actual values from IFTTT, not failed attempts to parse them
  15. If you downgrade from premium and no longer have the SMS perk we fall back to email (and we fixed related copy in the UI)
  16. Got rid of an old banner wrongly telling weaselproofed people who were archiving a goal in the first week that they could instead delete it
  17. Improved our Fitbit integration landing page: cute contract image, and got "fitbitminder.com" domain
  18. Error-checking fail w/ goal creation wizard: trying to use a previously used goalname led to mysterious failures. #bugfix
  19. We now honor the units specified in Fitbit instead of always creating new weight loss goals in kilograms. #bugfix HT @dyang
  20. Due to recent refactoring we started ignoring the 'start with a week of safety buffer' option for RescueTime goals. #bugfix
  21. Copy tweak in ThingsYouMustKnow (change/charge/adjustment was easy to misread). Added weekends-off, road editor to beeminder.com/premium #mini ×2
  22. A thing we broke with the last Rails upgrade: we weren't automatically getting the user's timezone on signup. #bugfix
  23. The weekends-off feature was giving you fridays off as well for do-less goals. #bugfix
  24. When improving our URL scheme in May we broke unsubscribe links for mass mails, noticed when sending next monthly beemail last week. #bugfix
  25. Road editor up-sprucing: added link to gory details, nixed redundant "add row" button, aligned the various inputs better.
  26. If whittling down Habitica To-Dos we now use your low-water mark of the day ⇒ no surprise derails from adding new To-dos before deadline
  27. The road editor was rejecting roads if the final row had just goal value (or goal total) and rate specified (ie, no date). #bugfix
  28. Slackminder has a built-in karmabot (do "/karma help")! And additional mini Habitica fix: no more delays in 1st fetch of day.
  29. New road editor bug from when we spruced it up: it was duplicating the initial road row if you submitted multiple times in a row. #bugfix
  30. TagTime ping notifier in Slack bot ("/tagtime on") & turns out when we thought we fixed the deauth callback thing (UVI#1783) we broke it instead
  31. If the author of an app you authorized to access your beeswax deletes it we now remove it from beeminder.com/settings/apps (& no erroring out)

2016 August

  1. SMS bot reminders more concise after initial reminder on an eep day. Eg, "Eep! +3 in <30m for pushups ($5)"
  2. The SMS bot now has a better welcome message, has START as an alias for ACTIVATE, and responds to HELP with helpfulness.
  3. More tweaks to the SMS bot: Say "added" datapoint, not "updated". And we now give the time remaining in minutes at the end, not just "<1h".
  4. Previous Habitica #bugfix in fact broke it worse. :facepalm: Fixed the fix now. Bonus UVI: Fixed the redundant headers in forum.beeminder.com
  5. #bugfix in API: give a nice error instead of a 500 if you submit a malformed daystamp for a datapoint. HT Malcolm Ocean of Complice.
  6. We'd missed a bunch of cases of "sign in" → "log in". Also fixed a typo in the beemail descriptions. #mini
  7. Added tooltip for Complice on the front page, moved the copy around in the "getting reminder about your..." email & added link to goal
  8. Links to goals in reminder emails now use "beeminder.com/user/goal" as the anchor text instead of goal title (which is now the title text)
  9. Premium plans revamp! Hopefully you don't view this as a negative UVI but it's part of ensuring Beeminder thrives for many more years, so...
  10. Beeminder now has a charity option! It's a premium perk to opt in to donating half your pledges to @watsi, @EFF, or @Give_Directly
  11. beeminder.com/premium is now viewable even if you're not logged in (the "Add Plan" buttons become "Sign Up")
  12. Similarly, if you're logged in but haven't added a credit card then the buttons say "Add Payment Method"
  13. New premium FAQ at the bottom of beeminder.com/premium and moved the Exquisitely Fair Slider below the plan blurbs
  14. We now treat Core Beeminder (ie, the $0/month plan) as one of the plans. And btw, we're retiring the Beekeeper lifecoaching program. RIP.
  15. Now clearer how to switch between plans: plan you're on highlighted, says "currently subscribed", can click "downgrade" to downgrade, etc.
  16. Lifetime subscriptions are clearer. Rather than just disabling the plan button it says "lifetime subscribed".
  17. We tested when to make you add a credit card (commit-wall, not paywall), found earlier is better so now we do that after 1 or 2 goals
  18. Made a button on the new paywall to request additional free goals if you need more time to experiment or already pay lots in pledges
  19. Added a link to beeminder.com/premium in the top navigation bar, and edits in the FAQ etc to get in line with premium changes
  20. Made the "discount please" button on beeminder.com/premium do something more sensible if you're not logged in (like telling you to do so)
  21. Changed the features listed for Core Beeminder in beeminder.com/premium based on a forum poll
  22. Speaking of dangling carrots, the charities weren't clickable for Beemium people when we first deployed this. HT Kenn Hamm
  23. Plugged leak in the commit-wall: creating various autodata goals circumvented the prompt to add your credit card before creating additional goals
  24. Replaced another instance of our janky credit card form with Stripe's elegant one, on the /premium page when you click Add Payment
  25. Forgot html_safe in zeno emails so were sending literal "<a href='...." etc. #bugfix HT Markos Giannopoulos
  26. Added link to datapoints on archived goals. No need to hide data, though still can't edit/delete it. HT Kenn Hamm again
  27. Minis on beeminder.com/premium: Link to new blog post, clicking Sign Up button pops up a popup to sign up (but redirects you away after)
  28. Another tiny one: Lifetime subscribers to legacy plans now see the plan description even if they've upgraded to another plan
  29. Closed couple loopholes that let you apply discount coupons to legacy plans; also updates & additions ("Loophole idea!") to the premium FAQ
  30. In the premium revamp, introduced a bug that prevented creation of weight gain goals. This is America so it took a while to notice. #bugfix
  31. The first time you push the "more free goals" button we just give you one automatically. Not sure how we feel about that, but, experiments!
  32. And added a comment box with the "more free goals" & "discount please" buttons, for stating your case (and giving us much-needed feedback!)

2016 September

  1. If you came to /premium w/ a coupon code we'd forget it after page reload after clicking a button to add a plan. Coupon worked but.. #bugfix
  2. Another bug in /premium with how pricing was displayed (when on a legacy plan, it looked like Infinibee cost more than Bee Plus) #bugfix
  3. Y'know how weasel-proofed goals aren't deletable in the first week like normal? Buggily, the archive button wasn't working either. #bugfix
  4. In some thankfully rare cases, if you chose Slack DM for zeno alerts, they'd not show up (forgot to make sure DM channel was open) #bugfix
  5. #bugfix in Habitica more-Todos goal creation: would start road at 0 but credit you w/ all to-dos ever completed => unreasonably big buffer
  6. Bugfix of the #bugfix (HT Alys for both): accidentally truncated Habitica goals to start from today (manually fixed everyone affected)
  7. We updated/clarified the list of weasel restrictions in goal settings: no editing or manually adding data to autodata goals, no deleting
  8. Bug w/ downgrading premium plans if you had a coupon discount: we failed to apply it! Gulp! #bugfix HT @my9goofie (And manually did refunds)
  9. Fixed our dumb Facebook share button (on the goal pages) that's been broken for we-don't-know-how-long. HT @florismk
  10. Another embarrassing one: 1st attempt (Jul 4) to fix broken image links (rails asset pipeline) left several broken that we just now #bugfix'd
  11. We improved the Facebook share button: shows both goalname & title if different, & to round out this tiny UVI: fixed a typo in goal settings
  12. Facebook sharing #bugfix: it was picking the wrong image because we tried to specify the thumbnail which isn't on the page being shared
  13. Moved the discount slider back to the top and added an FAQ item to beeminder.com/premium
  14. If you're not premium we strip html tags from your "about me" blurb & add a nofollow to the "personal url" when linked under your avatar
  15. #bugfix w/ creating Skritter goals: worked around changes on Skritter side. Now at least works smoothly if already logged in to Skritter.
  16. Rounding bug w/ applying coupons for premium plans could make displayed price a whole dollar off :/ #bugfix HT Markos Giannopoulos
  17. When you create a goal w/ the API you can now specify the data source (manual, api, ifttt, zapier). HT Malcolm Ocean & Complice
  18. Instead of just strongly suggesting it (via banner) we now force you to confirm your email before letting you give us your credit card
  19. (1 of 3) More helpful unsubscribe link! Sends you to a page with a big red button, is clear about what happens if you press it, ...
  20. (2 of 3) ... still tells you what's up if you visit the link multiple times, doesn't try to redirect to goal gallery, tells you your beemail ...
  21. (3 of 3) ... subscription level and number of active goals, and the button helpfully goes away on that page once it's done its job.
  22. Forcing email confirmation before adding credit card spawned a couple bugs for grandfathered users, not allowing changing cc, etc #bugfix
  23. On the email unsubscribe page, "you have N active goals" now links to your gallery in case you forgot what you were once beeminding. #mini
  24. New premium FAQs about upgrading and downgrading and exquisite fairness, with new links and hovertext. beeminder.com/premium
  25. Crazy mongoid bug made rescale feature break, rarely. Probable #bugfix deployed plus instrumentation so we'll know for sure if happens again
  26. Failed/frozen goals (with the skull & crossbones) can now be instantly archived. Sorry we were so uptight about that for so long!
  27. Added our new Minister of the Exterior, @anomalily, to our About Us page. beeminder.com/aboutus Welcome Lillian! blog.beeminder.com/anomalily
  28. More cleanup of beeminder.com/aboutus & finally added @lady_alys who's been helping us w/ support & @habitica integration for a long time
  29. Slightly more sophisticated error checking in our Twitter goal setup: give an error if the user doesn't exist or their tweets are protected.

2016 October

  1. If you downgraded and lost the SMS bot perk, we'd get horribly confused and not let you save user settings anymore. #bugfix
  2. SMS bot improvement: until you activate your phone number we give a link to resend the activation text message
  3. Can now add a phone number even if you don't use the SMS bot (and we'll actually text/call if you derail at $810+ & don't respond to email)
  4. In case you have too many past pledges to show, we made a button that emails you the whole enchilada, in json format.
  5. Got rid of superfluous fields in past pledges export and added a CSV version as well as JSON
  6. Email bot no longer silently (well, it was calling in us humans to intervene) fails on data-like datapoints that're not actually parsable
  7. Several fixes to decrease chances of bot emails getting spamboxed. More user-visible part: truncate quoting of probable spam in bot replies.
  8. Fixed, de-duped, and rearranged footer links. #mini
  9. Fixed a bug in how prices of lower premium plans were displayed to people already on a higher lifetime plan (now just says "$N/A"). #bugfix
  10. Also on beeminder.com/premium: stopped confusingly saying "$0" for the lifetime plan you already have. Plus handy new FAQ item & hovertexts
  11. Moved all the graph images to S3: makes a noticeable difference in how fast goal galleries load & expected to even improve server stability
  12. Better security: nonce URLs for graph images and thumbnails actually expire (totally new ones each time the graph is generated)
  13. Seemingly #mini UVI that's part of something huge: we now disallow the goalname "gallery" (part of getting best of all worlds w/ redesign)
  14. Bee-yootiful new redesign! Massive number of UVIs in this. Here begins a tweetstorm of the most noteworthy! (1/26)
  15. The Data tab is much nicer, lets you load all datapoints on one page, sort by any column, and it all happens right below the graph
  16. Editing data in the data table is also much nicer: you can just edit in place without first clicking a button
  17. And import/export and rescaling of data is now all below the data
  18. There's a button to delete your whole account if less than a week old or no active goals. The rest of doc.beeminder.com/byebyebee coming later.
  19. Table of reminder settings for all goals can sort by goal, deadline, zenostart, etc. Nice for setting up waterfalls: blog.beeminder.com/waterfalls
  20. Togglable buttons telling you the bare min or hard cap you need in terms of either the delta or the absolute number.
  21. The buttons for delta vs absolute (and for absolute vs "t minus" deadline time) remember which way you like them per goal
  22. Handy asterisk on the pledge telling you when you've hit your pledge cap, plus clearer indicator of pending pledge step-down
  23. New dashboard lets you expand/collapse individual goals (pro-tip: use it like a to-do list, collapsing when done with a goal for the day)
  24. You can now choose today vs yesterday when entering data from the dashboard.
  25. For autodata goals on the dashboard we have the icon for the data source and a nice hexagonal "force a fetch of more data" button
  26. Data entry now shows the goal units (not to mention all the increased prettiness, but that applies everywhere)
  27. The banner messages that appear at the top are much nicer, disappearing when it makes sense to and persisting otherwise
  28. Arguably a negative UVI but since we're drastically undercounting anyway: we killed the auto-quit feature. It was deeply unbeemindery!
  29. The Data tab is updated immediately when you add data and there's a "stats out of date" warning as a stopgap instead of just being stale
  30. You can now instantly delete goals from your gallery of archived goals
  31. So much confusing stuff now out of newbees' line of sight but all still conveniently acceessible in the tabs below the graph
  32. Tagging! Manage tags at beeminder.com/tags & then filter your dashboard via url-hacking, eg bmndr.com/user#tag or #!tag to exclude
  33. Tagging is multiple UVIs' worth so we'll use this tweet to say that, yes, a real UI is coming. Current version subsumes backburnering.
  34. Negative UVI but it was really a confusing, dangerous feature: backburnering is dead. Tag things "backburner" & filter them out instead!
  35. We now use the live time-bomb countdown for goals within a week of derailing and say "months" & "years" for goals with far deadlines
  36. Final row of the road editor is insta-updated when using the normal road dial (was moot in old design but nice having these on same page)
  37. New, helpful placeholder text in fields in the goal creation wizard
  38. We separated reminder defaults from other goal defaults. Two submit buttons on one page separated by lots of scrolling was a mess.
  39. Huge amount of aesthetic improvements & UI tweaks, hexagonal buttons, etc etc. This concludes the main tweetstorm for the redesign! (26/26)
  40. Redesign broke @habitica goal creation briefly! Newly created goals were failing to pick up new To-dos. #bugfix
  41. We now actually make sure the repo you want to mind exists and that you have access to it when you create a Gitminder goal
  42. When we launched the redesign we showed your full name in the public version of your gallery; that was a bad choice and we undid it that day
  43. In Withings goal creation we now validate that you give us an initial weight (though this seems to not work in Safari, frustratingly) #mini
  44. We now remember which goals on the dashboard you expanded/collapsed (& #bugfix today: it used to not work if you started from all-expanded)
  45. Smarter use of "Sun night", "tomorrow", etc in deadline blurbs. Eg, saying "tomorrow" instead of "Sun" if within 24 hours of the deadline.
  46. Fixed several cases (eg, the help text for the Due By table) of saying Value instead of Total or vice versa. #mini
  47. When you check or uncheck the Pessimistic Presumptive checkbox it instantly saves the setting and tells you so. Other settings to follow.
  48. More things we forgot to include in the redesign tweetstorm: stepper buttons for datapoint values etc, displaying far future dates in years.
  49. If you loaded the goal page and there was no previous datapoint then we were giving a 500 error. #bugfix
  50. Similarly when there was an error preventing the graph from generating. We'll say this UVI covers all similar bugs introduced by redesign.
  51. Small API improvement: Goal object now includes last_datapoint [TODO: document it]
  52. We did several things with goalnames and descriptions: 1) descriptions viewable as tooltips on the dashboard;
  53. 2) We now ask for both goalname (previously known as "slug") and description (previously "title") when creating goals;
  54. 3) You can edit the description at any time at the top of the goal page;
  55. 4) Finally, to get as close as we're going to for now to the best of all worlds: click to toggle between goalname/description on dashboard
  56. Almost forgot the biggest sluggy UVI: Anyone can edit their goalname any time (w/ big warning about breaking URLs and IFTTT recipes etc)

2016 November

  1. Tweetstorm about the flurry of bugfixes since deploying the redesign: We broke an embarrassing number of things! 1/5
  2. We're fixing them as fast as we can and normally each individual #bugfix would be totally fair game as a separate UVI. 2/5
  3. But we were insufficiently careful when deploying the redesign, so, as self-punishment (& due to overwhelm at the sheer number of UVIs) 3/5
  4. ...we're not going to count anything else up to today that the redesign broke, other than this tweetstorm's worth: 4/5
  5. ...which includes broken links, broken features like changing passwords, missing settings, backburner-goal brokenness in iOS, etc etc. 5/5
  6. There's no longer any limit on the number of days of initial safety buffer when creating a goal
  7. Collection of #mini UVIs: Ellipses for long goalnames, header for data entry box, more readable data table when it's not editable
  8. If you accidentally try to submit a datapoint without filling in the value it now turns the field red so it's nice and obvious what happened
  9. Fixed some cases in alerts where we used the old "title" (what's now the goal description) to identify goals instead of the goalname #bugfix
  10. Changing the rate units in the road dial now does the arithmetic for you, like turning 7/week into 1/day, immediately, before hitting submit
  11. Minis: Query tags case-insensitively, road editor from Commitment to Settings tab, #bugfix's w/ submit button & enforcing ratchet bounds
  12. A kludge but a very noticeable improvement: we no longer let you insta-derail yourself by ratcheting the day after derailing
  13. Minis: 1. when showing the goalname, show goal description as hovertext; 2. jump straight to 1 when clicking the plus for datapoint value
  14. The hashtag-minding part of our Twitter integration was broken since forever (workaround was via IFTTT) but is now fixed. #bugfix
  15. URLminder is an official integration! Automatically mind wordcounts of documents at any publicly accessible URLs. blog.beeminder.com/urlminder
  16. We magically turn links to google docs into the plaintext version for URLminder so we get the real wordcount without extraneous html
  17. New NaNoWriMo landing page with buttons for automatic and manual tracking: beeminder.com/nanowrimo
  18. If you have a pledge stepdown scheduled you can set the pledge cap to what it's stepping down to; removed most of the confusing interactions
  19. If you create a goal with only post-dated data we now give a more elucidating error about why we can't show you a graph. #mini
  20. Fixed old instance of calling Habitica HabitRPG in bot email, fixed bug that made us miss points on Duolingo for Norwegian. #bugfix
  21. Mostly fixed the problem with missing graph images on the dashboard (but it still happens occasionally...). #bugfix #mostly #staytuned
  22. When we email you about an error in an IFTTT recipe we now include a link to the errant recipe. Handy!
  23. Fixed a 500 error when restarting an old GmailZero goal from before Google oauth params changed. Now backwards compatible. #bugfix #mini
  24. Made the thumbnails collapse nicely even when the infinibee is buzzing on top of them (and keep buzzing in collapsed form)
  25. Thumbnails also clickable even when infinibee buzzing (especially nice now that goalnames/goalblurbs toggle instead of linking to goal page)
  26. If goalname & blurb are same except case, don't toggle betw them on dashboard (looked like we'd implemented idiotic case-toggling feature!)
  27. If a goal is coasting (will hit goal value by goal date even if you do/report nothing) we now show it green w/ the correct wording. #bugfix
  28. Fixed longstanding bug that would sometimes insta-derail you when importing old RescueTime & Withings data when creating goals. #bugfix

2016 December

  1. Dumb #bugfix w/ Fitbit goal creation: gave error if you didn't change the default settings. (ps: bugs intro'd by redesign count again now)
  2. If a goalname's disallowed (eg "gallery" or existing goalnames) also disallow uppercase variants like "Gallery" or things break. #bugfix
  3. Embarrassingly there was a full month after the redesign when we set everyone's default timezone to US Eastern time. #bugfix
  4. We rewrote the copy at beeminder.com/money which was a little broken since the Infinibee premium revamp. #mini
  5. GmailZero #bugfix in which we were fetching your initial inbox count but then starting your road at 0 anyway for a while.
  6. Our Garmin stepcounts were sometimes too low. Garmin's granular API didn't agree with its summary data. We now use summary. #bugfix
  7. Fixed small bug with plus/minus buttons for data entry on odometer goals, and fixed a link to reminder settings in bot emails. #bugfix
  8. By popular demand: our blog has a (@duckduckgo) searchbox. Seek & ye shall find. Dark days of adding "beeminder blog" to a web search: over!
  9. Yet another bug from redesign: If you signed up via Google oauth and then created a Do More goal we'd create it as a GmailZero goal. #bugfix
  10. Fixed an intermittent bug where you'd hit archive & the goal would mysteriously not archive if a previous goal w/ that name existed. #bugfix
  11. Nasty bug with our @habitica integration: all the Fewer To-Dos goals were being created as Do Mores (redesign bug). #bugfix
  12. And a separate bug w/ our @habitica integration: for Do More goals we were starting the yellow brick road too high by 1 To-Do. #bugfix
  13. Version 4.4 of the Beeminder iOS app is live! Most important for brand new users: you can now create a Beeminder account from it.
  14. Also in the new version of the iOS app: a Reset Data button to reload all goals, no more backburner dividing line, ...
  15. Version 4.4 of iOS app cont'd: Bug fixes in push notifications, & you can tap Create Goal to go to the website pre-logged-in to create goals.
  16. Marginally better "doom text" for weight loss; bigger body font; made 3rd-party font library local cuz it was killing response time. #mini
  17. Fixed broken CSS on various autodata landing pages and the unsubscribe page.
  18. Fixed bunch of cases where we used goal description instead of goalname, which to some people's chagrin is now the universal goal identifier.
  19. Fixed a bug involving the pledge amount being in two places. Now it's still in commitment settings too but pops up the same modal. #bugfix
  20. Moved password to separate section in settings which fixed bug w/ some browsers that wouldn't let you change settings w/o changing password
  21. For over a month after the redesign we had a bug that let you sometimes create pledgeless goals w/out a premium plan. Gasp! #bugfix
  22. If you sent auth token but didn't specify the user we 500'd even tho w/ auth token it had to be you that you're requesting for. API #bugfix
  23. Critical #bugfix w/ iOS app that made us fail to push reminders under some mysterious circumstances involving frozen/archived goals.
  24. Fixed a couple small bugs with trying to get a premium plan without being initially logged in. #bugfix HT @pennockd

2017 January

  1. Fixed a case of showing the wrong new pledge amount in the legit check email if you had auto-increasing pledges turned off. #bugfix
  2. Fixed checkbox that was acting like expand/collapse instead of a checkbox for whether to auto-increase pledges when you derail. mini #bugfix
  3. Mini #bugfix w/ pointlessly clickable things when viewing other people's graphs. Also cleaned up CSS bugs on some landing pages.
  4. If you set a default deadline we were accidentally applying that to autodata goals that don't support arbitrary deadlines. #bugfix
  5. Avoided a bunch of confusion by nixing the instant-archive buttons in the dashboard for frozen/completed goals; all done from goal pages now
  6. Don't mention "safe days" in bot email subject when it exceeds days till goal end date. Also iOS notifications now make the default sound.
  7. Removed now-meaningless backburner line in reminder settings, and brought back all autodata settings that got lost in the redesign
  8. Mini UVIs: We now refresh graph after updating weekends-off, higher-res Duolingo logo, more obvious link to change goal date / goal total
  9. Added button on goal page to archive frozen goals. Bonus #mini UVI: datapoint value is cleared when you submit it on dashboard.
  10. Pledge stepper now indicates when it hits its limit (eg, you can't pledge more than $2430). #mini
  11. One more thing we broke in the redesign: we weren't allowing a negative rate for Fitbit net calories goals. #bugfix
  12. We now use your chosen timezone in your Beeminder settings for showing "today"/"yesterday", not whatever your browser thinks. #bugfix
  13. Fixed a 500 error for the case of opening the pledge popup for a goal (maybe just on archived goals?) with no credit card on file. #bugfix
  14. UI improvement: x-max can't be in the past and x-min can't be in the future. #mini
  15. You can now change the default GmailZero query when creating GmailZero goals, instead of having to go digging in settings afterwards.
  16. On /archived it says "No archived goals!" if you have none. And on the front page, link to autodata landing pages, not goal creation. #mini
  17. This counts as a UVI but we're not yet happy with the interaction between goal units & things like y-axis label: forum.beeminder.com/t/y-axis-label-didnt-update-in-graph-after-changed-in-settings/2652
  18. We're now consistent for all autodata goal creation in giving you the option to start with an arbitrary amount of safety buffer

2017 February

  1. We're obviously very behind on UVI tweets because we're just getting to our official Todoist integration! blog.beeminder.com/todoist/
  2. All Fitbit goals were getting created as Do More (or failing altogether?) for 2 months after we launched the redesign. #bugfix
  3. Fixed a couple UI bugs with changing goalnames (& #bugfix w/ using numbers as goalnames). forum.beeminder.com/t/how-to-change-goal-url/2818
  4. Another embarrassing thing we broke w/ redesign: If you said "hide y-axis" for a while we weren't also hiding stats that leaked that info.
  5. We now show the expanded road dial (w/ end date & end value as well as rate) if the goal is ending within 30 days (too magical?)
  6. Gitminder goal creation now handles the case revoked Beeminder's authorization on GitHub (& maybe other cases of bad GitHub credentials)
  7. More tweaks to error banners so that important ones don't get obscured. #mini
  8. UI tweak in Gitminder goal creation: automatically switch the radio button to specific repository if you start to type one. #mini
  9. More #mini UVIs: nixed superfluous logged in/out banners, fixed links to create goals on ifthismindthat.com and zapminder.com
  10. We used to magically re-sort the dashboard when you entered data but that turned out to be a bad idea; now you can click "DEADLINE" to do so
  11. Mini #bugfix / UI-polish with expanding/collapsing the goals: if you do it to all of them one by one you can still undo w/ 1 click in header
  12. Previous UVI also fixed a nasty focus bug when entering data in succession in dashboard. Also related: we killed reverse sorting.
  13. Custom fine print for goals is publicly visible again and we allow hyperlinks. forum.beeminder.com/t/link-in-fine-print/2976/1
  14. We can now link directly to specific tabs in account settings, eg, beeminder.com/settings/account#account-details
  15. Used to be that every time we autoratched (automatically capping safety buffer) the graph would get stuck w/ buzzy bee for 5-10min. #bugfix
  16. Thing we broke like a year ago: when fetching your initial GmailZero count, if it's too big to fetch, we once again tell you that. #bugfix
  17. API #bugfix: the requestid param only worked as advertised for creating single datapoints, not create_all. HT John Swanson
  18. Fixed a bug in the URLminder magic that lets us fetch the plaintext version of a Google doc. beeminder.com/nanowrimo #bugfix
  19. Fixed a bug that meant we wouldn't show you even landing pages of some autodata integrations if you hadn't entered a credit card. #bugfix
  20. We added "make private" to "new goal settings" in account settings if you want all new goals to default to private. forum.beeminder.com/t/please-let-me-default-new-goals-to-private/2880
  21. For goals denominated in hours we now display amounts in HH:MM in most places on the website.
  22. Fixed a nasty bug w/ road dial where we'd mess up the last segment of your road when you changed the rate units (daily/weekly/etc). #bugfix
  23. Fixed a 500-error involving displaying bare-mins as HH:MM for ended goals. Also stopped showing HH:MM:SS in recent data. #bugfix
  24. Somewhat smarter rounding and don't show integers as X.00. And another #mini #bugfix with sometimes showing "++HH:MM" instead of "+HH:MM"
  25. A bunch of small improvements to our datapoint format checker. You can see all the crazy example parsings at d.glitch.me
  26. Made the navigation header not annoyingly large. Also: tweaks to beeminder.com/aboutus: Capitalize "Hours", make our titles fit on 1 line.
  27. More #mini UVIs: shrunk annoyingly large navigation header, made archived gallery show 4 across, link to archive in gallery view.
  28. And a super #mini one: made the pledge box not have an "i'm a button" shadow if you're looking at someone else's goal so it's not clickable
  29. In goal settings for Trello goals we now link to the actual board that we're pulling data from.
  30. We now show both the goalname and the description (the latter in a tiny font) on the dashboard. No more confusing toggling (for goalnames)!
  31. Fixed missing newline in text under graph thumbnails in gallery view. #mini #bugfix #redesign And show full goal description as hovertext.
  32. When you had non-midnight deadlines for a goal we'd sometimes show you the wrong date for adding new data. #redesign #bugfix
  33. #bugfix in URLminder: don't add a new datapoint every single time we check, only when wordcount has actually changed beeminder.com/new#urlminder
  34. Added a new premium FAQ item at beeminder.com/premium. Includes my ill-advised murder joke. #yolo #mini
  35. #bugfix kind of: the dates used for the add-data form were being too clever and magically updating when your deadline hit; caused confusion!
  36. #bugfix: The iPhone beemergency badge icon didn't show up unless you remembered to manually launch the app every single day. HT Paul Schmidt
  37. I guess we'll count this: We now have an informative static image to show in place of graphs in case Amazon goes down and won't show them...

2017 March

  1. #bugfix w/ goal wizard that'd occasionally/rarely give a blank page when creating a goal (related to bad state from previous goal creation)
  2. Super facepalmy bug made us forget toggle states (countdown vs time, expanded vs not, etc) on dashboard after visiting new goal page #bugfix
  3. #mini UVIs: new Epson logo, made table in the middle of beeminder.com/api not ugly (#redesign), tweaked flash banner for premium plans
  4. At some point our push notifications for the Android app broke which made graphs appear to be regenerating forever. #bugfix #firebase
  5. We now have proper error handling for losing authorization to read a user's Todoist data #mini #bugfix
  6. We now support Romanian as one of the languages you can beemind learning on Duolingo!
  7. We added "number of activities" as a thing you can beemind via @fitbit (& removed "very active time" since Fitbit doesn't support that now)
  8. We made the goal descriptions smaller because we're very opinionated about people focusing on the goalnames as the main identifiers of goals
  9. We again let you jump from $0 to $5 pledged (even without the Beemium plan that lets you jump to any amount). #bugfix #redesign #regression
  10. Feature! We trust our users so much that when you update a failed payment method you can actually pick which charges should be retried!
  11. iPhone app couldn't handle safety buffer >32767 days so now we cap it at that. Also fixed a redesign regression as part of prev UVI. #bugfix
  12. Fixed a bug where sometimes the tabs below the graph would be completely blank until you reloaded the page. #bugfix
  13. We made our jobs page — beeminder.com/jobs — less out of date and embarrassing! And added a little "need help?" footer link.
  14. Added link to forum post which explains the aggday custom goal setting. & Fitbit "number activities" was buggy for the 1st 11 days. #bugfix
  15. We fixed our SMTP/DNS/whatever settings so outgoing mail doesn't say "sent via mailgun dot org" in Gmail. #mini HT our CEO's mother
  16. We made updates via the website & Android & iOS all have higher priority which noticeably improved graph regeneration times (tho still bad)
  17. We fixed some annoying things with the guest access (for beemium people) to our dev chat: URLs work now, and disconnects handled better
  18. Fixed a bug in the dashboard where quickly tripleclicking the goal would show the add data form below the collapsed goal. #bugfix
  19. We now support Swahili in Duolingo! And a #mini UVI: Tooltips in the header of the big table for setting reminders for all goals at once.
  20. Fixed the hovertext for datapoints to always show the relevant metadata and not redundantly repeat the comment as hovertext. #mini
  21. Email replies when you add data via the bot now never totally fail to send if we can't fetch one of the random tips of the day. #bugfix
  22. You can now see and update the list of URLminder URLs in your goal settings. Makes URLminder much more useful! beeminder.com/nanowrimo
  23. Also URLminder now supports arbitrary deadlines!
  24. Fixed a big with strange font sizes of goalnames on the dashboard. #bugfix forum.beeminder.com/t/strange-font-sizes-on-dashboard/3043
  25. Fixed a bug with creating new Fitbit number-of-activities goal. The initial import of last week of data could insta-derail you. #bugfix
  26. URLminder now magically fixes Dropbox links so you can beemind wordcount for any plaintext document you have sync'd with Dropbox
  27. Another #bugfix with Fitbit number-of-activities goals: we used the wrong endpoint and only got ones added via the website, not devices
  28. #bugfix for the +/- stepper buttons for Garmin & Epson goal creation: hitting the "-" button would increase the value. Negation is tricky!

2017 April

  1. We upgraded our database and got graph regeneration times back down to ~5s. Phew! Now we may have to work on mass-editing of goals
  2. We changed the smoothing constant for the purple line from .1 to .25. (forum post)
  3. We made a proper landing page for URLminder: beeminder.com/urlminder
  4. We now always fix Dropbox and Google Docs links when you add/edit them in Settings, not just when first creating the goal.
  5. Goals created via Beemind.me now act like proper autodata goals and magically fetch data before zeno'ing instead of just hourly!
  6. Our Twitter hashtag-minding integration was case-sensitive with the hashtags but Twitter search results aren't so now we're not either!
  7. We now allow dots in the names you give 3rd-party apps that use the Beeminder API, and we no longer let you change those names! #consistency
  8. We added a link to our newbee-friendly blog post about beeminding writing to the URLminder landing page. #mini
  9. Fixed our redirect from beeminder.com/services to point to beeminder.com/settings/account#account-permissions #mini
  10. Simplified forum.beeminder.com header, added an infinibee linking to Beeminder. (other improvements purely from Discourse don't count)
  11. Fixed a typo and added an FAQ item to beeminder.com/premium about the SMS bot being US-only #mini
  12. Also we now link to the FAQ item about SMS being US-only in the actual SMS settings, something we lost in the #redesign
  13. Closing another loophole: we now don't let you delete a goal that has a pending charge
  14. Also closed loophole where if you archived a goal and the archive took effect after derailing but before charging you, we wouldn't charge you
  15. And to minimize surprises, when you insta-archive a goal after derailing we warn you if there's a pending charge that'll still happen
  16. Safety buffer auto-trimming for do-less now asks for how much buffer you want in terms of, eg, cups of coffee (not days like do-more). #mini
  17. Big API improvement! 3rd-party apps can specify an autofetch callback so Beeminder tells them when to autofetch instead of polling
  18. Added documentation of the autofetch callback URL in beeminder.com/api (grep "autofetch") plus some other API docs cleanup
  19. And we now link nicely to the docs from beeminder.com/apps/new (milking this for 3 UVIs but it's a big deal guys!!)
  20. Another improvement for 3rd-party apps: you can explicitly register your app as the datasource for any goal. blog.beeminder.com/autofetch
  21. beeminder.com/changelog now points to an archive of all 2260 (as of this one) Beeminder UVIs!
  22. A bunch of improvements to the styling, layout, and webcopy for beeminder.com/changelog -- it's almost pretty now, at least up to mid-2016
  23. Prettified the rest of beeminder.com/changelog and made beeminder.com/changelog#latest link to the bottom of the page
  24. Fixed a bug in the road editor that rejected the road if you got rid of everything except the start and end. #bugfix (Trello card)
  25. And a different road editor bug that made us reject most changes to the road for do-less goals. #bugfix (forum thread)
  26. The API now returns the user-specified fine print for goals. (forum thread)
  27. Removed the deprecated 'edgy' parameter from the API docs and stopped setting it for all new goals
  28. Changed countdown format to be like "1h 30m 59s" (makes the difference from time-of-day more obvious) & no seconds if 2 or more days left
  29. Changed default format for time-to-derailment on dashboard to day/date instead of countdown; lots of simultaneous countdowns is nerveracking

2017 May

  1. Fixed broken image for blog post on front page; trimmed whitespace when not displaying seconds; fixed formatting bug in API docs. #mini ×3
  2. We were failing to update Todoist goals if you deleted the parent project of a project you had Beeminder tracking. #bugfix
  3. If you (ie, a 3rd-party app developer) tried to set your app as the datasource for a goal we were giving a 500 error. #bugfix
  4. We converted our API docs to the vastly prettier Slate and can also accept pull requests (github.com/beeminder/apidocs)!
  5. api.beeminder.com is now the canonical URL for the API docs (still hosting it on github.io but we don't redirect to that URL now)
  6. Added clarification and warning about auth_tokens vs access_tokens to the API docs. Also fixed some typos. #mini
  7. Fixed 2 links on beeminder.com/api and got rid of the search box since it was much worse than just grepping the page. #mini
  8. If you have SMS turned on but we can't SMS you cuz you didn't finish activating your phone number we now say so in the fallback email alert
  9. URLminder (and other autodata!) goals now do a re-fetch of data after you change settings, e.g. add/remove a URL or whatever.
  10. GTBee now lets you start w/ any amt at risk, fits on any screen size w/out being pixelated, & simpler task creation by moving to own screen!
  11. (+) Version 4.5 of iOS app!
    • (1) Updated Today widget: you can now add (integer) data directly from the Today screen. And the really huge news...
    • (2) Apple Health integration! You can now automatically sync data like steps, active energy, workout distances from Apple Health → Beeminder!
    • (3) The goal screen in the iOS app now includes a button to view the goal on mobile Safari.
  12. Version 4.5.1 of the iOS app fixes a crash that was occurring with the Today screen if you had less than three Beeminder goals. #bugfix
  13. The footer of the website (including links to mobile apps!) has been missing since October when viewed on mobile devices. #bugfix #redesign #facepalm
  14. Added error checking to the goal creation API call for the pledge parameter so you can only start at pledges the user is allowed to start at
  15. We were previously only alerting you about a failed credit card payment if it was for a derailment. Now we do so for API charges, IFTTT, etc.
  16. We no longer show the "Beeminder can't be a credible threat until you add a credit card" banner if you're already on the payments page. #mini
  17. Apple Health is now listed as an integration on beeminder.com/new with a link to (a draft of) instructions for setting it up
  18. Nixed "red archive button" copy (cuz it's not red anymore) + version 4.5.2 of the iOS app: #bugfix for a crash that happened in obscure situations
  19. Road Editor's Undo button now available for an hour after any change so you can revert unwanted edits. HT @kenoubi (forum thread)
  20. Dashboard sorting is now stable, meaning it breaks ties in favor of how things are currently sorted. HT @PhilipHellyer
  21. Stopped confusingly showing 2 buttons (one disabled) for each plan on beeminder.com/premium if you hadn't confirmed your email address
  22. We had a regression of #2037 which is now fixed for real! #redesign #regression
  23. We introduced a bug (part of upcoming PayPal integration) where we'd give a 500 error on your goal page if you had a pledge stepdown pending. #bugfix
  24. We now automatically email you if Beeminder loses its authorization to fetch your data from an autodata integration
  25. Change in the Habitica API that we now handle for when a user's API key changes (or user's account deleted). Failed silently before! #bugfix
  26. Fixed bug that (rarely but nastily) caused a 500 error on goal pages after adding a credit card. #bugfix
  27. We broke the ability to start goals with $0 pledges for 5 days. #bugfix #regression forum.beeminder.com/t/pledge-upgrade-on-startup/3193
  28. Handling timeouts from 3rd party autofetch urls (eg Beemind.me): retry couple times then show user an error message (like w/ other autodata)
  29. We now notice if a Twitter account we're autofetching tweet counts from gets deleted (or becomes private) & show an error, not silently fail

2017 June

  1. GTBee 1.4! It now shows you your list of your completed tasks (only starting from when you upgrade though) forum.beeminder.com/t/gtbee/3209
  2. GTBee now does Zeno polling, hounding you more and more frequently as your deadline approaches, not just at T minus 1 day & T minus 1 hour
  3. We revamped the layout of /premium, mainly making it much easier to compare the different perqs between plans (not separated in boxes)
  4. Also changed the styling of the discount slider and colors and moved things like coupon alerts and discount amounts to be more noticeable
  5. And a #bugfix we caught later: fixing the hover effects on links and buttons in the popups for changing plans
  6. One more for beeminder.com/premium: legacy plans aren't displayed jankily anymore, and clearly indicate their legacy-ness
  7. Advanced data entry #bugfix / robustification: don't count empty lines as bad datapoints and don't submit if all whitespace
  8. Yet more fussing with beeminder.com/premium: styling of zebra striping, more compact/consistent buttons, margins, boldness. #mini
  9. Partial fix for #redesign #regression of UVI#555 (needs to also do this when navigating between tabs)
  10. Added warning about UI inconsistency in showing exponential road rates as fraction vs percentage. Will be moot when we kill exp roads! #mini
  11. We now indicate (on both dashboard and goal pages) when a goal is scheduled to be archived (forum post)
  12. Since the archiving indicators was like 3 UVIs we'll use up a tweet to mention a trivial one: the copyright in the footer now says 2011-2017 #mini
  13. #bugfix with our Jawbone integration: if you edit your sleep data we were then treating the edit as a new datapoint and double counting
  14. Charges created via the API (eg: GTBee and IFTTT Actions) now have a default note if you don't give one, like "alice via IFTTT"
  15. Fixed up our CSS for beeminder.com/aboutus & for beeminder.com/donate (the latter lost its paragraph spacing etc during the #redesign). #bugfix
  16. iOS app 4.5.3 fixed a crash on iPhones 5 & older that would happen when trying to display bare min amounts for some goals. #bugfix
  17. Improved the font and line spacing and widths of the sections of beeminder.com/api (basically emulating stripe.com/docs/api)
  18. #bugfix where, when updating a deadline on goal page and there was an error, we'd redirect you to the main reminders page. Now we don't!
  19. We now email you a receipt for premium subscriptions (forum thread)
  20. User-visible but dubious to call an improvement from user perspective: We now set the "deadbeat flag" if a premium payment fails.
  21. Removed a redundant "Data source" subheading that was appearing on the Settings tab for some autodata goals. Visual #bugfix HT @lady_alys
  22. Not sure this is better since min weight is arguably truer weight but by principle of least surprise, weight gain goals now use max weight
  23. Made bmndr.com/cla, modeled on Discourse's. Nixed "via the API" in the "you're being charged" email (cuz it's not always true; IFTTT, etc)
  24. Added Japanese to our @duolingo integration! (And another #mini #bugfix: properly pluralize "months" in the "you're being charged" emails)
  25. (+) Version 4.6 of the iOS app!
    • (1) #bugfix for the mystery of the duplicate datapoints
    • (2) New metrics for Apple Health goals! Now tracking mindful minutes, sleep, time in bed, and water consumption.
    • (3) No longer crashing on older models of the iPad. #bugfix

2017 July

  1. Trello #bugfix HT @richarmstrong: goal creation now nicely handles the case that Beeminder's authorization to read your Trello data expired
  2. Copy & CSS improvements to our Trello landing page; compacted feature list on beeminder.com/premium to get the buttons above the fold
  3. For autodata goals, we now send you back to the right place in goal creation after authorizing us to read your data. #bugfix
  4. Brief bug exposed by UVI#2329: were creating extra spurious Todoist goals (if you'd auth'd Todoist) when you created any other goal. #bugfix
  5. For Runkeeper auto-fetching, if we saw no previous auto-entered data we sometimes missed your most recent datapoint. #bugfix
  6. The data import section now explains about including username/goalname in the subject for the email bot (& prefills it for the mailto link)
  7. We now support PayPal in addition to credit cards! (So many people have been asking for this, for years. Sorry it took so long!)
  8. We made beeminder.com/pact to help @PactApp users migrate to Beeminder now that Pact is shutting down :(
  9. We're now finally showing amounts for timey-wimey goals as HH:MM consistently in the bot emails
  10. Also show HH:MM in iOS app. And fixed a bug that that introduced where we briefly showed deadlines as offset from midnight in seconds! #bugfix
  11. We now redirect beeminder.com/reminders to beeminder.com/reminders/USERNAME (this mostly matters for pointing people there in support)
  12. Fixed goal description wrapping ugliness for long descriptions when looking at other users' goals (or logged out viewing your own). #bugfix
  13. Also fixed goal description shortness for your own goals (was only showing ~210px's worth) and #bugfix w/ not showing pencil icon after edit
  14. (+) Version 4.7 of the iOS app!
    • (1) #bugfix for Apple Health weight goals not updating with new data (forum thread)
    • (2) #bugfix for multiple metrics appearing to be selected when pairing
    • (3) #bugfix for goals paired to Apple Health not updating after reinstalling the app
  15. We put back the lost link to the secret chat URL for Beemium subscribers that we lost in UVI#2328. HT @mimercha
  16. For Gitminder we ask for the GitHub repo name. If you give us the whole URL we now parse out the name instead of confusingly failing. #mini
  17. Exception to UVI#2294 — we don't bug you about that if you're not a monthly active user
  18. #bugfix in recent data display where we we'd interpret HH:MM times as times of day and show things like "24:00" as "0:00". HT @mimercha
  19. Fixed a typo in the API docs and made the URL prefixes consistent (forum thread)
  20. Other API docs #mini's: deprecated "panic" param out of docs, clarify what happens if submitting new runits & new road (roadall) together
  21. If you tried to have a road segment with inferred end date in the road editor, we'd silently fail to update the graph anymore. #bugfix
  22. #mini's: fixed new bug caused by UVI#2339, copyedits to beeminder.com/pact, Beemium chat link on beeminder.com/contact
  23. Another #mini: cleaned up our username validator to disallow usernames we need to reserve and unreserve some we don't need after all
  24. The road editor in Settings (premium only) now shows rate units
  25. The "roadall" API call now accepts daystamps like "2017-07-27" or "20170727" as well as timestamps. Updated beeminder.com/api as well. (forum post)
  26. UVI#2353 was mostly true over a year ago (but not logged here). Added: #bugfix that made hyphenless daystamps not be interpreted as timestamps
  27. GTBee version 1.4.1 fixed a bug with some crazy integer overflow that made the sting show up as $-311 if you specified $1000. HT @roberthopman #bugfix
  28. GTBee version 1.5! Fix for notifications not arriving (you're now prompted to allow notifications to remind you when tasks are coming due). #bugfix
  29. GTBee 1.5 also makes the app icon badged with the number of tasks you have to complete (forum thread)

2017 August

  1. Most of a #bugfix for duplicate datapoints on Apple Health: script to remove them server-side (forum thread)
  2. #bugfix in API docs that made backtick-quoted things in square brackets not display, and goal attributes table was all wrong. HT Chelsea
  3. Garmin sleep goal setup fixed the defaults so you wouldn't end up with a 10000 hours/day sleep goal if you breezed through. #bugfix
  4. Bigger Garmin #bugfix: we weren't fetching sleep time at all ever for newly created sleep goals since the #redesign #facepalm
  5. #bugfix in Garmin integration after migrating to their new API: we were unfairly rounding down to a whole number of hours!
  6. #bugfix in our Draft data import for new goals: imported last 7 entries instead of last 7 days and could result in insta-derails
  7. The Slack bot's intentionally obtuse about any private goals it's bugging you about in public channels, but shouldn't've been in DMs. #bugfix HT @nitrogen
  8. We made schedule-a-break less confusing by making the lower bound inclusive, no need to yell at you about making it be "at least one day"
  9. And UVI#2365 means we could drop the confusing warning about making the start date the day before the break & making 1-day breaks as if 2 days
  10. Alphabetized the sites & categories in RescueTime goal setup (so you can find what you're looking for amongst the slew of sites) HT Chelsea
  11. Removed references to 'mannequins' and updating your measurements from the weight goal reminders (we were running a study that's done now) HT Chelsea
  12. We now fill in the signed-in user’s email address in the beeminder.com/contact form (if there is a signed-in user). HT Chelsea
  13. Also in the contact form: we now actually give an error message if there’s a problem and the message isn’t sent. :( #bugfix #redesign
  14. Added Active Time tracking to Garmin for a more general activity metric than steps w/o having to have one of their GPS gadgets. HT @adamwwolf
  15. Garmin #mini: it was ambiguous in the goal setup wizard what unit of measure is for Activity time tracking so we added "Total Time (hours)"
  16. Habitica integration now tracks completed Dailies either with To-Dos or separately (for now, only if your CustomDayStart time is midnight)
  17. We now have a (barebones) curl and ruby tab on beeminder.com/api with a pointer to other API libraries on github
  18. Curl examples at beeminder.com/api now all give full/correct curl syntax and include 'auth_token=abc123' as placeholder for authentication params
  19. More improvements to beeminder.com/api: bug fixes with the tabs and added an actual Ruby example
  20. #bugfix in the new Garmin active time tracking: our numbers now match the numbers on your device / in Garmin Connect. HT @adamwwolf again
  21. We no longer refer to "unfreezing" a goal. It's just "restarting" now. Eg, in beeminder.com/faq and blog.beeminder.com/glossary #mini
  22. Other #mini copyfixes in beeminder.com/faq like "form below your graph" (now next to your graph) & typo fix in beeminder.com/pact
  23. Dumb #bugfix: our donate button was redirecting to beta.beeminder.com after a successful donation. HT @adamwwolf
  24. We now include the transaction description on your payments page -- beeminder.com/payment -- for people using PayPal
  25. And PayPal #bugfix: correctly indicate the transaction status (we weren't correctly showing if a transaction was declined)
  26. Another PayPal integration #bugfix: Adding PayPal wouldn't remove the deadbeat flag on your account. Now it does.
  27. We now indicate that all datapoints are loaded (instead of just disabling button) when all datapoints are loaded. #mini
  28. A bunch of fixes and tweaks to the CSS for the take-a-break interface -- sane fonts and spacing and the error messages show up in red

2017 September

  1. Better client-side validation of take-a-break dates: added checks for trying to create breaks in the past or before the akrasia horizon
  2. We no longer let you enable Slack notifications without having Slack authorized. #bugfix
  3. Added link to help.beeminder.com on the contact page, and updated a bunch of other links throughout the site to point to the help site
  4. Arranged goal types on goal creation page so Do More/Less vertically aligned, Odometer less front-and-center, descriptions clearer/conciser
  5. Habitica Dailies #bugfix: we'd switch your completed Dailies for yesterday to 0 if your timezone was sufficiently far ahead of server time
  6. Now show current lane width in custom settings even if it's automatically computed so it's easier to avoid instaderailing. HT @mgiannopoulos
  7. We were accidentally not letting you archive a derailed goal without having a payment method on file. #bugfix
  8. We got rid of the "unarchive" option for archived goals because it was literally equivalent to "restart". #mini
  9. Conciser & larger: "To restart this goal you must add a pledge, but we don't have a payment method from you yet" #mini
  10. (+) Multiple related #bugfix's w/ custom goals
    • (1) don't complain about no initial value and say "today's weight" (& assume 0 if none given)
    • (2) we were ignoring initial value if you provided it and starting custom roads at 0. #bugfix
    • (3) we'd sometimes fail to ask for the initial value at all. (Probably more #bugfix's as well as part of cleaning up this mess.)
  11. UVI#2384 caused a brief bug that yielded a 500 error when restarting some goals (not sure any actual user encountered it though!) #bugfix
  12. Bee fixed the annoyingness where clicking 'load all datapoints' would load the datapoints in nonsensical order. #bugfix
  13. #bugfix with sorting by value in the Data tab, and we think but aren't sure that 'load all datapoints' got faster after these fixes
  14. #bugfix in Garmin sleep integration: we were adding multiple datapoints for one day, rather than updating the current datapoint
  15. We updated the logos on the frontpage. Some logos changed altogether & all of them looked a little crappy. Now they look non-crappy! #mini
  16. If you hate typing, bmndr.co is a new alias & other aliases work correctly now, always preserving the whole URL when redirecting to beeminder.com
  17. Increasing your pledge now causes the graph to refresh so you don't see the wrong amount in the watermark. #bugfix
  18. We now set the start of the road on goal creation, not infer it from the first datapoint. Fewer surprise derails when adding past data!
  19. 2 #mini UVIs: include query string when redirecting to beeminder.com/changelog?shownotes=1 & prettier zapminder.com landing page
  20. We now send an email alert with debug info to you if your registered zeno webhook fails (used to say/do nothing)
  21. #bugfix in UVI#2407: we were treating any non-200 response as "failure", even, e.g., 201 (successfully created). HT @samstokes
  22. Far superior road editor, by Uluc Saranli, in Javascript. Visual, interactive, available to all (not just premium): road.glitch.me
  23. #bugfix in visual road editor: floating point comparison bug meant roads were sometimes wrongly rejected as invalid
  24. In the commitment tab aka road dial, we'd sometimes show the wrong inferred (grayed out) value when setting goaldate/value/rate. #bugfix #redesign
  25. If your current rate was 0 & you changed it from, eg, daily → weekly, we'd show 'NaN' for your rate (divide-by-zero error) #bugfix #redesign
  26. More road dial fixes: say 'Goal total' not 'Goal value' for cumulative goals, and fixed some bad rounding. #bugfix
  27. Fixed the rounding bugfix from UVI#2413 in the road dial. Also we had broken inferred rate etc for exponential roads. #bugfix #redesign
  28. Lots of improvements, additions, and copyediting to help.beeminder.com — 98 articles now!
  29. Removed "mean" option from the list of aggday methods for custom goals since it was redundant. Just "true mean" and "uniquified mean". #mini
  30. We now link to help.beeminder.com in the footer, and the help page has its own fancy contact form
  31. On goal pages for autodata, centered the icon and the refresh/sync button nicely. #mini HT @adamwwolf
  32. You can now edit what Todoist projects and labels your Beeminder goal is tracking at any time (in goal settings). HT wswld
  33. Fixed up the alignment of the labels/projects in Todoist goal creation so they look nicer. #mini
  34. Client-side checking for if a scheduled break was w/in the akrasia horizon was a little wrong. Now enforces exactly 7 days always. #bugfix

2017 October

  1. (+) Improvements to restarting goals!
    • (1) For starters, it's all way prettier and with lots of small UI/webcopy improvements...
    • (2) We now ask for the rate you actually want (instead of starting with an infinitely flat road).
    • (3) Restarting with an infinitely flat yellow brick road was especially broken for do-less goals. #bugfix
    • (4) We now let you choose whether / how much safety buffer to (re)start with (and it does the right thing for do-less).
    • (5) We give you the chance to reconsider your pledge cap (though you can always do this any time so it's just a UI thing).
    • (6) We get the minimum pledge right, rather than force a $5 pledge for successful $0 goals, or for Beemium users. #bugfix
    • (7) Got rid of the condescending "are you sure?" interface for the new pledge, which was especially broken ever since #redesign.
    • (8) The graph is now zoomed in by default (t-min setting) to hide everything from before the restart.
  2. If you unticked all your labels/projects in goal settings for Todoist goals you would get a 500 error when you submitted. #bugfix
  3. Premium folks now get a link to the fancy interactive road editor in the Settings tab of their goals. #mini
  4. We closed a loophole with shortcircuiting pledges via the API (and via a weird browser/wifi glitch when mashing the submit button). #bugfix
  5. We're verrrrry gradually open-sourcing more parts of Beeminder and have various libraries and projects at github.com/beeminder -- enjoy!
  6. Added a warning about how you should specify your rate units as daily if you use the weekends-off feature
  7. Arithmetic in the road dial! You can say, eg, you want to do 7/5+1/14 for "7 per 5 day week & build a day of safety buffer every 14 days"
  8. When you create a goal with goal units "hours" we default the "Show data in HH:MM format" setting to true.
  9. Specifying goal units when you create a goal is no longer optional
  10. (+) Road editor improvements at road.glitch.me
    • (1) There's a take-a-break interface!
    • (2) If you just want to change the amount you're committing to per day or per week there's a simple UI for that a la the classic road dial
    • (3) Fixed a timezone bug relating to the x-axis tick marks. Bonus UVI: Tweaks to the button styles and other CSS tweaks (thanks Bootstrap).
  11. Arithmetic for datapoint values (eg, fractions, or a tally of things like "3+2+4") but just on the dashboard & basic data entry form & Data tab so far
  12. If your goal units are hours (technically even if they aren't) you can specify the steepness of your yellow brick road in HH:MM format
  13. Hovertexts on datapoints no longer go missing after clicking Load All Data. #bugfix
  14. Goals w/ earlybird deadlines (before midnight) wouldn't let you change them w/in 24 hours of the deadline instead of T-6 hours. #bugfix
  15. On the dashboard we no longer let you toggle to show your absolute amount due for auto-summing goals because it never makes sense and just adds confusion
  16. The arithmetic magic would make you submit the value twice if you hit enter (it'd try to submit the raw expression the 1st time). #bugfix
  17. You can now beemind the most recently added languages on @duolingo: Korean and Czech. And High Valyrian because, y'know, nerds.
  18. The SMS bot is more clear and coherent in reporting errors now (including saying "ERROR" so it's nice and obvious)
  19. Fixed a race condition (that could derail you!) by no longer replacing existing Misfit datapoints that matched what Misfit API said. #bugfix
  20. Previous fix also makes Misfit consistent w/ Fitbit in always treating Misfit's data as gospel, overwriting changes made Beeminder-side
  21. Todoist integration #bugfix: goals weren't automatically recommitting when you derailed! HT @realchrisbutler
  22. Buttons now subtly change tint when the mouse is on them to help you notice that they're buttons. Nerdspeak: new hover effects.
  23. 3+ #mini UVIs: Typo fixes (HT Grayson Bray Morris); Blog sidebar defines "akratic"; Fixed redirect for uservoice.beeminder.com
  24. Negative UVI :( Beedroid's Google sign-in broke so as a stopgap we published v2.6.1 that doesn't have the Google icon. HT @adamwwolf
  25. Another #mini: we fixed more redirects so help.bmndr.co & help.bmndr.com & help.beeminder.com all point to the same place
  26. And a big one, at least as measured by how much people've been wanting it: extra dates in dropdowns in the dashboard & newbee data entry form
  27. If you want a date further back, there's now also an "Advanced Entry" entry in the date dropdowns linking to goal page w/ the form expanded
  28. Fixed hover effect on some buttons that made text turn white instead of yellow on black. And some very minor color tweaking. #mini

2017 November

  1. Barely user-visible mass-mailer #bugfix: if you unsubscribe after an email is queued, we check again to make sure it's still ok to send
  2. Road editor improvements: better auto-scrolling & date highlighting in the table on the right as you hover over things in the graph
  3. Even better: start of the road & the column headings stay put when scrolling & final road segment (aka road dial) is highlighted & stays put
  4. Also in the road editor: got rid of the ugly checkboxes and made it so you can just click the fields to change which of the 3 is inferred
  5. Also in road.glitch.me: a #bugfix w/ the day we show when it's before midnight but after the deadline, & don't show YBR before road start
  6. "Save & Send a Test" button in the goal reminder settings to send a test alert immediately via all your chosen channels. AKA zeno-me-now.
  7. Added hovertext to help explain the zeno-me-now and fixed some hovertext with formatting problems on the front page. #mini ×2
  8. We were rounding in the wrong places and there were cases where we could charge $1 more than what beeminder.com/premium said. #bugfix
  9. In email that says, eg, "subscription charge for 12 months of a infinibee sub..." we now say "a year", "an", "Infinibee", etc. #mini #bugfix
  10. No more hard resets on graphs so you can always zoom out to see entire history and cumulative totals always include all data
  11. Now robust to temporary errors from Todoist's API, automatically retry data fetching. Less spurious zenos or need to manually hit refetch!
  12. For our Habitica integration, the link to Custom Day Start and to get your credentials on Habitica changed so we updated the links! #mini
  13. Added a super basic captcha-like field to prevent spam signups ("Prove you're a human by telling us what color the yellow brick road is")
  14. Version 4.8 of iOS app finally fully (?) fixes duplicate datapoints in Apple Health integration. And Mindful Minutes no longer overwrites data with zeros! #bugfix
  15. We're killing off auto-widening roads! The 1st thing that means for users is that new weight loss goals ask "What's the *most* your weight can change in 1 day?"
  16. Big change: New weight loss roads no longer have lanes! They have zero width but use the max fluctuation you specified to give you an initial safety buffer
  17. Remember UVI#181 & UVI#570? We've thrown away that whole "weight loss leniency" feature. Instead just specify the max fluctuation you think you'll need!
  18. Next consequence of killing off auto-widening roads: the parameter called "noisy" is deprecated and removed from the API (see beeminder.com/api)
  19. The white "x" that lets you close a flash message banner (e.g. "Datapoint updated!" or "Error: Rate cannot be 0!") now only shows up *after* the banner itself
  20. UVI#2471 broke sign-up in the Android app (we kind of forgot Beedroid could do that!) -- now fixed! #bugfix
  21. And similar #bugfix for signing up with Google, Twitter, GitHub, and Facebook!
  22. Error alert banners (especially in goal creation) were really slow / delayed showing up; now they're not! #mini #bugfix
  23. #mini 2-for-1: Made beeminder.com/faq stop telling lies about PayPal (like us not supporting it); you can now beemind Chinese on Duolingo (& 27 other languages)
  24. Fixed a margin on an error message in the sign-up UI; and we were briefly spelling 'subscription' as 'suscription' #bugfix #mini ×2
  25. Some refactoring of goalnames and goal descriptions caused a crash in the iPhone app when a goal description wasn't set. Now fixed! #bugfix
  26. Made our Todoist integration follow the 7-day rule that applies to most other autodata sources. #bugfix for insta-derailing by editing old tasks on Todoist.
  27. iOS app version 4.8.1: Small #bugfix for some people with Apple Health goals that was crashing the app for people. Sorry about that!
  28. In Withings (now Nokia) goal creation, we forgot to ask for max daily fluctuation (UVI#2474) so new goals started you on the razor's edge. #bugfix
  29. When you click to force an auto-fetch of new data for autodata goals we add the datapoint to the list below the graph immediately. No page refresh needed.
  30. URLminder would, in somewhat rare circumstances, record duplicate datapoints. #bugfix

2017 December

  1. Added rate units dropdown to RescueTime goal creation (had been static text, "EACH WEEK", but it was easy to miss and wind up confused). HT Louis Hong
  2. Cleaned up our so-called press kit, made a URL for it (beeminder.com/press), and linked to it from beeminder.com/contact
  3. And added max daily fluctuation to Fitbit goal creation (cf UVI#2474) #bugfix (Sorry to milk this for 3 UVIs -- Manual/Withings/Fitbit were each lots of work!)
  4. Fitbit weight loss goal creation now asks if you want pounds or stones or kilograms instead of trusting what's set in Fitbit, which sometimes caused problems
  5. Gmailzero now allows arbitrary deadlines! So you nightowls can stay up late clearing your inboxes. Or the opposite: force yourself to do it by 5pm.
  6. We now unset auto-ratchet (max safe days) if you cancel your premium plan. Not to be petty but it was kind of a bug because you can't update it w/o the plan!
  7. Tiny improvement to the API: dropped the alphanumeric restriction on requestids. See api.beeminder.com/#postdata
  8. Fixed some broken CSS in the reset password form that had links showing up yellow-on-gray. #bugfix
  9. Fixed a wrapping problem on beeminder.com/overview #css #bugfix and tweaked the margins
  10. 2 #mini UVI #bugfix's: fixed outdated "below your graph" copy in beeminder.com/faq, very brief 500 error from changes to our admin UI that leaked & broke things
  11. We replaced our Google-related logos on the front page with what their brand guidelines demand. #mini
  12. Added "Very Productive/Unproductive" categories to the list of things you can automatically beemind via @rescuetime
  13. Jawbone/Fitbit/Misfit/Withings no longer autofetch and add data to goals that are frozen. Mostly this doesn't matter to users but can make restarting smoother.
  14. Since the #redesign in 2016 we've had the y-axis label auto-inferred from the goal units but it failed to account for changing auto-summing. Now manual again.
  15. We stopped stupidly suggesting you could set your rate to 0 when restarting a goal if unsure what to set it to and now default to previous overall average rate
  16. Another improvement to restarting frozen/finished/archived goals: for the value to restart at, for autodata goals, default to the most recent datapoint value
  17. Fixed a regex bug in our Slack bot's /charge command that could make it ignore the "in so-many-minutes" part & charge you immediately. #bugfix HT Cameron Harris
  18. We now ask for max fluctuation as part of restarting a frozen/archived/completed "noisy" goal. And show you the calculated "90% variance" as a default.
  19. Also upon restarting an old-style supa-wide "noisy" (typically weight loss) goal we convert it to a zero-width razor road
  20. Updated beeminder.com/faq to reflect changes in weight loss goals and to point to help.beeminder.com
  21. Edited the graph legend in light of weight loss changes and made other copy tweaks and made links in places like the legend open in new tabs more consistently
  22. We've gotten rid of "noisy" and "exproad" settings for all new goals. Fully purged from the UI and the API gives a friendly error if you try to use them.
  23. Edited help.beeminder.com & the blog & the API docs to bring everything up to date with our killing of exponential and auto-widening yellow brick roads
  24. The "bare min" blurbs for do-less timey-wimey goals in the red were saying things like "+-00:06" if you were 6 minutes over instead of just "-00:06". #bugfix
  25. We now allow entering HH:MM:SS values like ":30" without a zero before the colon. HT Laurie Reeves (Merry X-mas, Mom!)
  26. Our opinionated tie-breaking (see UVI#2290's hovertext) for dashboard sorting was only happening when you 1st clicked a column header, not on page load. #bugfix
  27. Fixed CSS problems in the Apps & API section of account settings so everything lines up nicely now

2018 January

  1. (+) Version 4.9 of iOS app!
    • (1) Goals can now be sorted by name, deadline, pledge, and recently updated, just like on the web dashboard
    • (2) The Settings screen got a (mostly cosmetic) overhaul
  2. And version 5.0 of iOS app has Timer Mode: from a goal screen, tap the timer icon to bring up a timer screen and easily submit datapoints for timed activities
  3. Fixed a 500 error on archived goal pages for users with no payment method, which we broke around UVI#2392 or so. #bugfix
  4. The bmndr.com/appsbmndr.com/settings/account#account-permissions (& similar for /settings/password) redirects weren't using the anchor link so wouldn't always take you to the right Settings tab
  5. Cleaned up old links to beeminder.com/payment (now has a more concise URL) and tightened some of the web/email copy referring to it. #mini
  6. We now show you the fine print (if you have any) on archived goals; wasn't previously available because it was in Settings which are disabled for archived goals
  7. The goal creation wizards for autodata goals now let you choose rate units (per day vs per week). I.e., UVI#2489 but for all autodata goals.
  8. Changed the wording on a few of the autodata integrations to make more sense, sound more sentence-like, and fit on the page better
  9. Updated the CSS for our autodata goal creation wizards to make the form fields line up, consistent headers, etc
  10. Added units to the rate steppers for all these autodata goal wizards, like adding "points" or whatever to the "[-] 5 [+]" widget
  11. Added an actual link to the Sleep Cloud Backup add-on which is required for the Sleep As Android integration to work
  12. Made the y-axis in the API default to empty string, not null. The more user-visible aspect of this is the iOS app sometimes crashed on y-axis null! #bugfix
  13. When restarting an archived goal, we'd claim to let you change the rate units but ignore your change! #bugfix HT Mike Rosulek
  14. Updated the IFTTT logo on our front page and our IFTTT landing page and changed their old term "Recipe" to their new term "Applet" everywhere
  15. A bunch of other changes to beeminder.com/ifttt to make it pretty and more descriptive and include lots of examples of beeminding that users automate with IFTTT
  16. Better goal creation wizard for IFTTT goals that guides you through creating a goal and then sends you to IFTTT to create the corresponding Applet
  17. More copyedits and improvements to the IFTTT landing page, like using the new link for our channel instead of relying on a redirect. #mini
  18. Version 5.0.1 of the iOS app adds text to the initial blank goal gallery so newbees know to go to the website to create goals. HT @slothbear & @faireness
  19. Beeminder's API would sometimes falsely reject changes from the road editor as if they violated the akrasia horizon constraint. #bugfix HT @kenoubi
  20. To make such errors less opaque in the future, the road editor now echoes any errors from Beeminder's API. HT @kenoubi
  21. Changing weight-loss roads to zero width (razor roads, as we call them) broke the rose-colored dots option, making it distinctly non-rosy. #bugfix
  22. We now include the "integery" field in the output for the Goal object in the API. HT @adamwwolf (not just hat-tip; Adam actually implemented this for us!)
  23. New aggday method "skatesum" plots the min of the daily rate and the sum of the datapoints for that day. For super hardcore edge-skaters. HT @kyshoc
  24. The automatic datapoint comments for Garmin autodata now use the user's timezone when saying "Auto-entered via Garmin at...". #mini
  25. Changed "reset password token is invalid" to "that must be an old password reset link -- can you click 'forgot password' again to get a new one?" HT @faireness
  26. There's now a chat button at the bottom of every page on beeminder.com for giving us quick feedback or asking questions
  27. 2 related #mini UVIs: removed the speech bubble on the help link; clarified that the beemium perk is hanging out in our dev chat, not just realtime support
  28. Changed the html field names for password & password confirmation; turns out to be user-visible because otherwise we're not playing nice with password managers!
  29. The password fields in account settings now have buttons to show the password you're typing, for occasions when you're not in enemy territory
  30. Improvement to that little but long-awaited UVI: just one button suffices for both password & confirmation. Also better placeholder texts in account settings.
  31. Fussing with the password fields (see previous few UVIs) slightly broke the display of the pledge cap UI. Now fixed!
  32. Skatesum #bugfix (now always uses the final road rate) and updated the aggday docs (such as they are)
  33. Fixed more redirects & a banner link that didn't use the right anchor tag for Settings tabs (legacy redirects saved this from being *totally* broken) #bugfix
  34. Added a couple links to beeminder.com/premium (like to our shiny new help page explaining what all the fancy goal types are) and fixed a typo there

2018 February

  1. Converted existing active exponential roads to be piecewise linear (and we're shirk-n-turking the remaining inactive ones when/if they're restarted). blog.beeminder.com/deathtoexp
  2. Fixed most if not all instances (including in Beedroid) of misleading rounding, like saying you have +1.5 left to do when it's really +1.50003 #bugfix
  3. Improvement to tags (UVI#2080): now a header shows what goals are being shown. Also mitigates confusion when redirected from eg Facebook w/ "#..." appended!
  4. Last UVI broke things: tags weren't case-insensitive like they're supposed to be & more critically, we briefly weren't showing tagged goals by default. #bugfix
  5. Added explanation about the Four Platonic Goal Types to the API docs (and some prettifying of em dashes)
  6. Changed the footer link to the help docs and added a link to the help docs in an automatic Intercom message for new users
  7. Got the password show/hide button out of the tab index (it annoyed us, and conceivably a security concern if you accidentally hit show?) #mini
  8. Goal units / y-axis labels were allowed to be so long they looked hideous or broke the graph completely. Now they aren't! (And manually fixed existing ones!)
  9. Going way back to UVI#548, we now *don't* slytherin-401 for users that don't exist. A simple 404 suffices in that case; same for bmndr.com/nosuchuser/nosuchgoal
  10. Cleaned up, reorganized, fixed the description of the autofetch callback in the API docs. Also post-deauth callback. And some other little fixes. HT @nitrogen
  11. UVI#2558 was just for goal creation. Also cap the y-axis label length (max 70 characters) when you edit it in Settings. #mini
  12. Fixed a broken link on the Habitica landing page and got rid of the Todoist example on the Zapier landing page since we have built-in Todoist integration now
  13. Subtle #bugfix possibly only affecting Safari but double-clicking Submit could duplicate a datapoint. Related to UVI#314, UVI#646, & UVI#843.
  14. Brought back the pencil and ex-out buttons for the road dial. Last known #redesign regression!
  15. Changed the webcopy and added links to blog posts and fixed the cute contract image on our RescueTime integration landing page
  16. Fixed the link on our front page to our Todoist landing page. It was pointing straight to the goal creation wizard which complained if you weren't logged in.
  17. Added back the original tooltips on the pencils & exes for the road dial and added the missing "Goal Rate" label ("Commit To" section of the Commitment tab)
  18. Added back the fancy squiggly divider thing on landing pages and otherwise spaced things out better so, eg, the "get started" buttons are call-to-action-ier
  19. Embarrassing bug introduced along with UVI#2492: we started creating all new Fitbit goals with units set to kilograms (even non-weight ones). Now fixed! #bugfix
  20. Major philosophical concession by the founders who are very persnickety wrt concept of URLs: front page finally redirects to your dashboard if you're logged in
  21. Finally added some nice images for our Runkeeper landing page, and updated the webcopy a bit. beeminder.com/runkeeper
  22. And same for our Draft landing page. beeminder.com/draft (Also updated the sample graphs for do-more style autodata integrations)
  23. The website is now mobile-friendly! (That's kinda the whole UVI but, being months of work by Andy Brett, we're keen to milk it for as many minis as possible...)
    • In addition to not being hideously hard to use on a small screen like your phone, the website takes much better advantage of wider screens
    • Specifically, advanced data entry is less cramped, you can see more information on your dashboard, and same for the Data tab
    • That's already rightfully a ton of separate UVIs (221 commits & 130 files changed!) but we'll wrap it up by mentioning the myriad layout tweaks
  24. The todayta checkmarks (as we call them -- the checkmarks that tell you data has been entered for that goal today) are much less fuzzy. #mini
  25. The pledge modal has an X to close it now. (On big screens you could click outside the modal to dismiss it but on small screens you really need that X!)
  26. The pencil to edit the goal description is no longer placed some random distance to the right of the text it lets you edit. #bugfix
  27. Fixed a bug that made the Account Details tab of Account Settings show up blank when you first clicked on it. #bugfix

2018 March

  1. We were briefly missing the +/- buttons after each row in the road matrix that let you remove or insert a row after the mobile-friendly deploy. #bugfix
  2. Mobile-friendliness means the graphs resize themselves to fit your screen. But letting it grow arbitrarily large looked ugly and pixelated, so we capped it!
  3. Fixed some layout bugs in the custom goal settings section of the goal settings tab. Mostly a regression introduced by the mobile-friendly redesign. #bugfix
  4. Full-width Account Settings, fixed an alignment problem w/ beeminder.com/reminders, & fixed an alignment problem w/ the "add a credit card" button
  5. If you removed the authorization for us to read your Todoist data we'd give a 500-error when u tried to load the goal page. Now we give a helpful error. #bugfix
  6. Fixed a rare 500-error for very old users that happened when trying to show the new Intercom chat widget. #bugfix
  7. 2 related #bugfix's w/ goal description above the graph: you couldn't click to edit it again after blanking it out, & similar for clicking away w/out editing
  8. Added reassuring copy when fixing failed payment info: "Don't worry — you'll have a chance to review old charges and cancel any that aren't legit". HT Kim G
  9. In URLminder settings, the width of the text area to paste URLs being minded was waaay too narrow. Now it's maybe only moderately too narrow. #bugfix
  10. Fixed the off-center checkmarks in some radio buttons, and fixed a couple wastefully hi-res autodata logos. #mini
  11. Fixed a yellow-on-white link on the commit-wall page that was supposed to be a button #bugfix (#regression from mobile-friendliness redesign)
  12. Fixed layout bugs in beeminder.com/money like the header for the image being orphaned in the preceding paragraph and other tweaks. #bugfix
  13. The "Sign up" buttons on beeminder.com/premium when not logged in were no-ops. Used to be a modal but it never worked right so now it's just a link. #bugfix
  14. The buzzing infinibee (depending on the size of your browser window) was all distorted; also fixed ugly overlap of graph w/ goal description edit field. #bugfix
  15. Not sure when we broke this but we were saying, eg, "you'll be charged 16 month" instead of "$16 / month" when trying to sign up for or upgrade a premium plan
  16. Now we don't show the so-called deadbeat banner (when there's a problem with your payment info) when you're actually on the payments page (presumably to fix it)
  17. Improved the "you just created a new goal" email we send, eg, now include your pledge cap and the language now longer presumes you're a newbee. HT Robin Ryder
  18. (+) Beeminder Android App version 2.6.2!
    • New feature: Play/pause buttons in the notifications for running timers
    • Also removed username from the goal details if there is only one account signed in
    • Various other UI tweaks and fixes, like getting rid of the backburner setting since that doesn't exist since UVI#2082
  19. Fixed a layout bug in the header of the forum (was messed up on mobile), and added a pointer to the colon shortcut in the help docs
  20. On the payments page, we added whitespace between credit card & PayPal so it's more obvious which you're selecting when you click the radio button
  21. Added "(preferred)" after "Credit Card", "if you must" to PayPal, & layout #bugfix w/ the PayPal & CC sections running together if you only had PayPal added

2018 April

  1. We no longer let you blithely turn on SMS reminders in goal or reminder settings if you haven't actually provided a phone number
  2. We now link the reminders page header "SMS" to your account settings where you can add a phone number
  3. Now on both goal settings and reminder settings: handy tooltips on the disabled checkboxes explain why they are disabled
  4. The refresh button for IFTTT & Zapier goals now correctly takes you to IFTTT/Zapier to trigger a refresh. #bugfix #regression from mobile-friendliness redesign
  5. Added Adam Wolf (@adamwwolf) to beeminder.com/aboutus (and other housekeeping, including updating @dyang's picture)
  6. New tagline ("Seize the day after tomorrow" HT @pennockd) and slightly improved the box for entering URLs in URLminder settings by making it taller
  7. Fixed a link to the payments page (in the "can't be a credible threat" dunning banner) to not need a legacy redirect. #mini
  8. We made a super useful tool (we use it every day ourselves) for monitoring your edge-skating on Beeminder goals fed by TagTime data: mind.tagti.me
  9. We finally have the best of both worlds since UVI#2570: beeminder.com/home, which the logo now links to, goes to the front page whether or not you're logged in
  10. Fixed an old reference to "the red archive button" (it's not red anymore). And in some email copy we accidentally the verb in "we tried to charge the account".
  11. The text on the blank gallery page (for new users with no goals yet) got ugly when we broke its CSS in the mobile-friendliness redesign. Now it's all pretty!
  12. The Regenerate API Key button on beeminder.com/settings/account#account-permissions was broken! #bugfix HT @shantithewriter
  13. Turns out UVI#2607 only fixed the refresh button on the dashboard, not the goal page. Both now fixed! #bugfix
  14. We revamped the documentation for our @compliceGoals integration: help.beeminder.com/article/85-complice
  15. Money-burning #bugfix where the "Use a different card" dialog had the "Continue" button scrolled out of view with no visible scrollbar
  16. Changed the big "cancel charge" buttons (from UVI#2221) to "not legit" links. Definitely didn't want those all call-to-action-y!
  17. Fixed some CSS that made the date fields for x-min/x-max/y-min/y-max too narrow. #bugfix
  18. Fixed link to beeminder.com/home in FAQ, updated timezone database, included number of pending charges in restart dialog. #bugfix #mini ×3
  19. Fixed an ugly wrapping problem in the restart dialog and a spacing problem between the Restart button and the "Back to goal" link. #bugfix
  20. (+) Beeminder Android App version 2.6.3!
    • Fixed bug with multiple concurrent timers. #bugfix
    • Related #bugfix with start/top timer button in the notification drawer.
    • Made the small Beeminder widget resizable to better support really large goalnames.
  21. Were allowing bad URLs for your default reminder webhook, leading to mystery errors on any new goals after that (because they got a bad webhook). #bugfix
  22. At some point (maybe the 2016 redesign??) we lost the notice on beeminder.com/sleep about needing to get SleepCloud. #bugfix #regression from UVI#1928
  23. We now force new users to confirm their email address before we let them create a goal
  24. Spruced up the CommitWall page where we make you add a payment method before creating a new goal (text in white shadowbox, wrapping issues)
  25. Added Restart & Archive buttons for completed/frozen goals directly on the dashboard. HT @lady_alys

2018 May

  1. Thanks to @patio11 pointing out that the "You have signed up successfully! Please confirm your email address..." banner was adding no value, we removed it
  2. Significantly condensed the "What You Should Know" webcopy on the blank gallery screen. Cf UVI#1882, also HT @patio11
  3. Whoops! In UVI#2630, the Archive button was broken and didn't do anything when you clicked it. Now, as the name implies, it archives the goal. #bugfix
  4. We now show descriptions on PayPal charges at beeminder.com/payment
  5. Removed password confirmation field from signup, which served no possible purpose since UVI#2545. HT @patio11
  6. Fixed a layout bug with displaying coupons — like the current beeminder.com/premium?coupon=maythe4th — on the page for premium plans. #bugfix
  7. Layout/wrapping #bugfix when resizing the signup page (password field length was only fixed-width item on page so it messed up responsiveness)
  8. We no longer show the banner about how you won't get reminded about a goal because you turned off all email alerts unless you actually turned off ALL alerts
  9. Now showing only 50 payments on beeminder.com/payment so the page loads faster (w/ link to get the rest); also added more reserved usernames like "unsubscribe"
  10. A link to our URLMinder integration was missing on the front page integrations section. We had no logo for it so @thatgirl made one up.
  11. Added hovertext "AKA scribeminder.com" to the header section of the URLminder landing page; copyediting and new links on help.beeminder.com #mini ×2
  12. Added "Prefer chat? Look for the chat bubble in the lower right corner" to beeminder.com/contact & more copyediting of help.beeminder.com #mini
  13. Small layout/copy fixes in Twitter & URLminder landing pages (URLminder was slightly off center, Twitter: added link to blog post). #mini
  14. Added tooltips on the pledge in the goal header -- give the date for a pending stepdown, and explain things like the '*' and '**' notation for pledge caps
  15. Thanks to @falkencreative, we changed the webcopy about Beeminder, @stickK, and Pact (RIP) on beeminder.com/overview
  16. Fancy domains now in hovertext on landing pages: zapminder.com gitminder.com duominder.com gmailzero.com trellominder.com ifthisMINDthat.com slackminder.com
  17. Changed "Withings" to "Nokia (formerly Withings)" on the Nokia (formerly Withings) landing page and redirected the old beeminder.com/withings URL there
  18. Made more changes to the Nokia (formerly Withings) landing page, like replacing the "Just Do It" image and changing some copy to be more descriptive
  19. Since we packed up to 6 things in yesterday's 2 UVIs, we'll cheap out today and count reclaiming the URL beeminder.com/github and redirecting it to Gitminder
  20. Made the trellominder.com landing page nicer: better header image, better contract image, added link to blog post, copy tweaks
  21. Reclaimed the rest of the obvious URLs for autodata integrations: beeminder.com/apple beeminder.com/gmail beeminder.com/slack
  22. Made little info icons for each column header of the due-by table instead of writing "confused?" below the table with a single info icon
  23. Better error messages for invalid usernames/goalnames, and we automatically reject usernames that collide w/ existing Beeminder URLs like beeminder.com/new
  24. Fixed all cases (that creeped in from past redesigns) of yellow-on-white text (and hopefully didn't accidentally create cases of black-on-black in the process)
  25. The warning about turning off autoratchet (max safety buffer) when scheduling a break is now styled as a warning in hopes that you'll notice it
  26. Sad trombone: Jawbone went out of business last year and shut down their web services yesterday. We updated our integrations gallery & beeminder.com/jawbone
  27. Added links to blog posts on beeminder.com/skritter & beeminder.com/sleep and fixed the contract image on beeminder.com/jawbone even though that's moot now
  28. Happy GDPR day! We added a bunch of legalese to beeminder.com/legalschmegal -- pretty cheap UVI since we already were more than GDPR-compliant in spirit
  29. Fixed the webcopy (#regression) and fixed the centering of the how-it-works images on beeminder.com/fitbit #mini
  30. Made more old URLs pointing to various documents use our new doc.beeminder.com URL scheme; made /sleepminder the canonical sleep-as-android landing page URL
  31. We made beeminder.com/help beeminder.com/support beeminder.com/legal beeminder.com/tos beeminder.com/terms & beeminder.com/cookies all point to useful things
  32. Beedroid 2.6.4 fixed a rare-ish crash (none of us ever encountered it but it was happening a few times a day across the userbase) when syncing data
  33. Added new conditional webcopy and link to how-to-get-started help docs for users with no goals coming back to Beeminder
  34. More accurate unsubscribe webcopy: "No reminders, no beemails. (To receive literally no email, make sure to archive your active goals!)"

2018 June

  1. Fixed some bad syntax highlighting in the beeminder.com/api examples that made the contrast all wrong (purple on black) #mini
  2. Fixed brokenness with layout of beeminder.com/overview on mobile: goal types example tabs weren't stacking and everything became unreadable. #bugfix
  3. We made it possible to turn your reminder alerts back on if you've ever unsubscribed; used to just fail silently and confusingly for such users
  4. Banner nagging you the first time you visit a goal page of a goal with all reminders turned off, "Heads up! You've turned off all Beeminder alerts..."
  5. Fixed spacing on registration page (captcha question was squished against password field). #mini #bugfix
  6. Made the reassuring copy from UVI#2588 ("you'll have a chance to cancel old charges...") more noticeable (and says how many charges)
  7. Major #bugfix with inbox-style "less To-Dos" goal setup in our @habitica integration: we were starting them at 0 and not fetching your initial To-Do count
  8. Habitica integration #bugfix: if you changed default rate (-10) when creating a "less To-Dos" goal it wouldn't allow negative numbers, which you definitely want
  9. Habitica goal creation #bugfix: if you unchecked "All To-Dos" w/o picking a tag then we'd just never fetch data for your goal! Now doesn't let you do that
  10. Some #mini improvements to Habitica goal creation page: select box for tags on same line as checkbox, links open in new tabs, & "soon" in the webcopy was lies
  11. While we were at it we made all links site-wide indicate with a little icon if they'll open in a new tab (let us know if you find anywhere that's stupid!)
  12. For Habitica Dailies we'd sometimes get confused, eg, if you were active on Habitica as the day rolled over at midnight, and reset your Dailies to 0. #bugfix
  13. Header navigation links don't open in new tabs (that was annoying/dumb) and same for links on autodata integration landing pages
  14. Updated gallery & beeminder.com/codeschool but not as sad-trombone as Jawbone (UVI#2656) because Pluralsight bought Code School & has subsumed the functionality
  15. Fixed a facepalmy bug w/ choosing rate units of per-month or per-year when choosing road rate, making the inferred goal total (or rate or whatever) wildly off
  16. Layout #bugfix: long string of unbroken text (eg long URL) in your fine print would make your goal settings unusable. HT @mattepp
  17. For PayPal users, we were giving a 500 error on the payments page if we couldn't get a first and last name for you from PayPal's API. #bugfix
  18. If you signed up via Facebook in Beedroid we failed to get an email address, which caused myriad problems. We manually fixed this for as many users as possible.
  19. Made the Archive button say "Schedule Archive" so it's more obvious that the archiving is delayed, for users who're like "but I thought I archived that goal!"
  20. Fixed an error in beeminder.com/faq about where to find the data import/export section and a tiny error in help.beeminder.com about the SMS format
  21. (+) Beeminder iOS app version 5.1!
    • Added a new Apple Health metric: Stand Hours (as in, number of hours you were not sitting down)
    • Fixed the most egregious bug with Mindful Minutes: deleting and re-adding the same datapoint and causing spurious derails. #bugfix
    • Added sync buttons to manually sync the last day and last 7 days of data
    • You can now disconnect a goal from Apple Health
    • Added a notice to the home screen if there are no goals that you need to create one on the website
    • Brought back the ability to create goals via a webview in the app
    • Mindful Minutes and Time Asleep / In Bed now correctly compute the time you spent from midnight to midnight. #bugfix
  22. (+) Beeminder Android app version 2.7.0!
    • Made it so if you sign up with Facebook in the app you can also log in to the website with Facebook. #bugfix
    • Now requires entering an email address if signing up w/ Facebook, to make sure we get it / get your actual email. Email is an integral part of beeminding!
    • Cleaned up the login flow, login screen, and reworded things to make them clearer
    • Other small tweaks like not using the word "dummy" in the default email address and being consistent about "log in/out" vs "sign up"
    • Added MORE and HELP links on the main login/signup page
  23. Eek! Twitter auth (signing up or logging in via Twitter) was broken since May 25th or so when Twitter made some GDPR changes. #bugfix
  24. We found 2 more cases like UVI#2578: the popup (modal) for reviewing charges and the one for changing your goalname. Exes for all the modals!

2018 July

  1. On the "more free goals please" popup, we moved the X to the right side for consistency, made the textarea bigger, and rearranged things to be less ugly
  2. Similar to UVI#2603 but for the payment popup: Changed "don't use a credit card?" to "can't use a credit card?" & added "if you must" to the PayPal link. #mini
  3. Long goal descriptions overlapped all uglily on the goal page because they were wrapping behind elements. Now they're truncated!
  4. Had some broken layout in the Runkeeper goal creation UI: the dropdowns were technically functional but the arrows were off to the right, not clickable. #bugfix
  5. We made Todoist autofetching more robust (by try, trying again if we get a temporary error from Todoist's API)
  6. Fixes/tweaks to the Habitica goal creation UI: made the radio buttons not clumsily touch each other and stretched out the commit-to stepper to fit better
  7. Yet more Habitica goal creation UI tweaks: fixed a spacing problem with juxtaposing a checkbox and a dropdown, made "PER DAY" look less like a heading
  8. Added a long hovertext/tooltip for "less remaining To-Dos" as an elaborate apologia for not saying "fewer To-Dos"
  9. You can now enter dates after 2038 in the road dial without causing the whole form to entirely disable itself. The error message was quite sufficient. #bugfix
  10. For Habitica goal creation you can now choose rate units; it doesn't have to be per day
  11. If the deadbeat flag is set (due to a failed payment) then you can't create new goals. So either UVI#1008 was lying or, more likely, we regressed. #bugfix
  12. The Supporters feature now clarifies in the UI that we'll email the potential supporter to opt in. Cf UVI#1172
  13. Made more copy and formatting changes to the UI for the Supporters feature, and fixed a broken link to @mashape in beeminder.com/api #mini #bugfix
  14. The Supporters feature that let you copy your supporters to all your other goals confusingly let you click the button even if no supporters. #bugfix
  15. Hovertext on the deadline above the graph shows deadline time w/ timezone (including both browser timezone & user timezone if different)
  16. Either a big UVI or a big stretch to call it a UVI, depending on your perspective: The Infinibee premium plan just went from $4/mo to $8/mo
  17. Finally added the Slack logo to our integrations gallery on the Beeminder front page
  18. And Apple's brand guidelines be damned, we added the words "Apple Health" to the heart-in-a-white-box logo since no one recognizes that (and it looked dumb)
  19. Fixed an instance of referring to Infinibee as costing $4/mo & made beeminder.com/slack the canonical URL for our Slack integration. #mini ×2
  20. When signing up for a new premium plan it didn't make sense to delay the first charge by 24 hours and really just added confusion, so now we don't do that
  21. We now show a static 401-not-authorized page instead of redirecting to your own gallery when you try to view someone else's nonexistent or private goal
  22. Conditional webcopy that's displayed at beeminder.com/complice was showing some mish-mash of the 2 versions, now shows neither till a button is pressed. #bugfix
  23. Made the buttons (whether you're currently familiar with Beeminder or @CompliceGoals) on beeminder.com/complice less drab looking
  24. One more #mini with the @CompliceGoals landing page: changed to left-justified text which looks way nicer
  25. We added a timezone selector to the signup process (usually we guess it right, and we still use the guess as the default but better to have it explicit!)
  26. After further reading HTTP specs, changed our 401 response to a 403.5: 403 is "forbidden" & we're splitting the diff between that & 404 (ha ha, only serious)
  27. Also improved the explanation (403.5 NOT FOUND is the prominent thing, then explanation) plus made the words & spacing etc look a little nicer (CSS tweaks!)
  28. You can now beemind Hindi and Klingon on @duolingo!

2018 August

  1. Were inconsistent in how we hid your graph (showing masked bee) for other users / logged-out users when your payment method failed (deadbeat flag set). #bugfix
  2. Were inconsistent in showing the header (w/ avatar & how long they've been beeminding) on other users' empty galleries (for /user vs /user/gallery). #bugfix
  3. When you changed your goalname, we'd try to redirect you to the new name, even if there was an error and we hadn't changed the name for you. #bugfix
  4. beeminder.com/gallery & beeminder.com/dashboard are shortcuts for the logged-in user & we're now consistent about what those do if you're not logged in
  5. Made "dashboard" a reserved goalname (& renamed handful of existing goals named that) so we could be consistent with /user/dashboard and /user/gallery links
  6. Made /user/dashboard redirect to /user (your dashboard if you, user's gallery if not you)
  7. Made /user/gallery redirect to /user (unless user is you) & got rid of the superfluous extra version of the gallery without the "+1 due in 6h or pay $5" blurbs
  8. Generalized mercy! Used to have to choose normal recommits (~9 days' safety buffer after derailing) or "no" mercy (~2 days). Now any intermediate mercy allowed!
  9. New goal defaults now also have a generalized mercy field (UVI#2734 only had it in individual goal settings)
  10. After deploying General Mercy we briefly let you choose a non-integer number of days of mercy, which doesn't make sense. #bugfix
  11. And, more brokenly, the form for setting default amount of mercy for new goals wasn't actually saving what you put in the form. #bugfix
  12. We now use the value you give when restarting an odometer goal, not ignore it & use the previous value, ie, you could only restart where you left off! #bugfix
  13. Made field labels & descriptions more consistently formatted (label above the field, description after it)
  14. Error message wasn't showing if you made changes in goal settings that were rejected, which made things seem super broken. #bugfix #regression
  15. The API call for the Goal resource includes a handy new field "recent_data" with the 5 most recent datapoints
  16. Longstanding bug could shortchange you on amount of mercy you got after a derail if you had an upcoming rate change w/in the akrasia horizon. #bugfix
  17. Weight goals now give you your specified max fluctuation as safety buffer above your razor road when you derail (cf UVI#2474 & UVI#2734)
  18. Brief error where default pledge cap got set to be the default mercy value in user's goal default settings. #bugfix HT zedmango
  19. Fixed a rare bug with our @IFTTT time-of-day macro to turn, eg, 12:30am (if given as 12-hour not 24-hour time) into 0.5, not 12.5. HT zedmango
  20. (+) Beeminder iOS app version 5.2!
    • Edit and delete datapoints! Just tap the one you want below the graph.
    • Fixed final (?) bug with duplicate datapoints for Apple Health goals. #bugfix
    • The datapoints below the graph should now always match the website’s version of the truth. Syncing #bugfix
  21. Goal units (eg, "steps", "kilograms", "pages") must now start with a letter; users would put in numbers and be in for a world of confusion
  22. General Mercy for Do Less goals means you can specify any non-negative real number for the amount of safety buffer (in goal units) as post-derail safety buffer
  23. Specified default number of days of mercy in new goal defaults is translated to goal units for Do Less goals by multiplying it by daily rate
  24. The data source attribution for the auto-created initial datapoint on a new goal used to be "via api", which made little sense. Now it's "ex nihilo".
  25. Wow, how many ways did we fark up validation for the default mercy field? Also we messed up the bounds checking (2-9), yielding a 500 error. #bugfix
  26. Introduced a bug that made certain YBR changes (rescaling, @enolan's Beescheduler, some road editing) yield an ugly error about invalide road rows. #bugfix
  27. Datapoints are initially sorted by when they were entered. There's no column for that so it was confusing/buggy that the little ▼ was shown on the date column.
  28. Fitbit bodyfat asked for "today's weight" in goal setup when it meant "today's bf %" (and it messed things up if you believed us and gave weight). #bugfix
  29. When creating a Fitbit goal, we now check for recent measurements and populate the initial weight/bf field from your Fitbit account
  30. If a goal has autodata enabled then the pessimistic presumptive setting is disabled instead of it confusingly disappearing altogether
  31. Runkeeper #bugfix w/ editing datapoint comments (we were relying on an ID in the comment to dedup and know where to sync to; now it's in a meta field)
  32. Derailments now indicated on the graph with bright red vertical lines (based on the "RECOMMITTED" datapoint comments, not the robustest approach)
  33. Made the derailment lines thinner/subtler and got rid of the auto-opening chat window with a robot yelling at you

2018 September

  1. Graph images that fail to load now magically refresh themselves. Should never see broken graph images again (for more than a few seconds)!
  2. Very brief bug w/ graph image reloading that would show a "we reloaded your graph!" banner like a million times when you visited your dashboard. #bugfix
  3. Alarming/disorienting bug from graph reload UVI: if you visited any goal named "bananas", we'd show your own "bananas" goal (if you had one) instead. #bugfix
  4. UVI#2760 too garish so now derailments indicated by slightly bigger red dots on the eep day that you derailed on and the value you'd gotten to by the end of it
  5. Toggl integration! blog.beeminder.com/toggl
  6. We could probably milk the Toggl integration for a lot of UVIs (landing page, icon on front page, bugfixes, tweaks) but we'll lump them all into one (this one)!
  7. Last UVI for tweaking how derailments show up on the graph but now it's little triangles that point toward whichever the bad side of the road is. Fancy, right?
  8. We updated to version 1.2 of Fitbit's API, fixing a bug for some users seeing sleep times different from what Fitbit's app shows. #bugfix
  9. Generalized mercy: you can now have up to 30 days of it (used to be at most 9, for dumb historical reasons)! See UVI#2734
  10. Users were getting a Beebrain graph error after recommitting if derailing close to the end date of the goal. #bugfix
  11. Fitbit API upgrade broke things (our fault). Following metrics were returning zeros for the last ~24 hours: Calories burned, Net Calories, Active Time. #bugfix
  12. We were again showing any non-refunded PayPal payment as "paid" even if failed/declined/etc. #bugfix #regression from mobile-friendliness redesign, UVI#2382
  13. UVI#2750 introduced a bug that made us fail to restart do-less goals if you didn't ask for a specific amount of "extra safety buffer". #bugfix
  14. (+) Beeminder iOS app version 5.3!
    • New Apple Health metrics: Dietary energy, resting energy, and dietary protein
    • Refresh spinner should no longer get stuck. #bugfix
    • The ordering of datapoints under the graph should now match the website
  15. Made status.beeminder.com point to @beemstat since the former is where a lot of people think to check if Beeminder seems broken
  16. UVI#2773 didn't fully fix the #regression because it was dumbly splitting payment status into 2 columns (status & refunded). Now just 1 status column.
  17. Credit card statement descriptors now tell you as much as possible (in the 22 characters allotted) about the reason for the charge. HT William Ehlhardt
  18. Added missing vertical whitespace on beeminder.com/payments page (especially ugly if the "email me all of it" button was shown). #mini
  19. We replaced underscores with spaces for the status codes for PayPal payments, and added a link to the blog post on beeminder.com/toggl
  20. If you enter your water consumption in Fitbit you can now automatically beemind that. HT @kbennall & @apolyton
  21. Hitting autodata refresh on the first day a goal's created (for certain timezones & autodata sources: Fitbit, RescueTime, Skritter) wouldn't work. #bugfix
  22. Weight loss goals with razor roads now show the thicker yellow guiding line at maxflux (max daily fluctuation) below the yellow brick road. HT @everickert
  23. We killed auto-quit back in UVI#2076 but grandfathered people (& accidentally turned it on when archiving goals for a long time!). Now turned off for everyone.
  24. Any #hashtags you include in your datapoint comments now appear as annotations on your graph
  25. Fixed a bug where we could pick up a partial run from Runkeeper before it was completed and then we'd never update with the final value once completed. #bugfix
  26. Improvements to hashtag parsing: allow uppercase, only count space-separated hashtags
  27. Added a setting to turn off hashtag annotations (because for some graphs with lots of them it can be egregiously ghastly)
  28. We now uniquify the set of hashtags for same day (some graphs had lots of datapoints on the same day all with the same hashtag, which was quite cluttery)
  29. Regex for hashtags had a bug that made it ignore the 2nd hashtag if there were two in a row. #bugfix

2018 October

  1. Thanks to @chipmanaged for pointing out the privacy problem w/ showing hashtags on public graphs w/ private data. Now we don't do that unless you opt in!
  2. Also we moved the hashtags setting to the privacy section (next to the public data checkbox) so the privacy implication is obvious
  3. Added Hindi and Indonesian to the languages you can beemind the learning of with @duolingo. Also alphabetized the list of languages.
  4. Fixed some old subdomains to work regardless of http vs https and made beeminder.com/status an alias for status.beeminder.com
  5. UVI#2762 was for both dashboard & goal pages but with UVI#2764 we broke it again for goal pages. It's now fixed again for both! #regression #bugfix
  6. Released the first new version of the Beeminder Ruby gem since 2014. Do `gem install beeminder' for dependency updates, roadall stuff, etc.
  7. Added Hawaiian and Navajo to the languages you can beemind the learning of with @duolingo
  8. The @toggl goal creation wizard was confusingly including deleted projects in the list you choose from. #bugfix
  9. Minor improvement to the PHP library (& the fact that it exists, which we never announced); and updated the FAQ to mention charity option in Beemium
  10. UVI#2433 was for the Beeminder organization on GitHub. There you'll find Ruby OmniAuth strategies for many of our autodata integrations.
  11. Other open source repositories in the Beeminder org: WordPress plugin, 3rd-party version of URLminder, road editor, Clozeminder, Perl & Mathematica libs, etc etc
  12. Official @Strava integration! blog.beeminder.com/strava
  13. New column in the data tab of Strava autodata goals links each datapoint to the corresponding workout on Strava
  14. Added @Strava logo to the Beeminder front page; added link to blog post on landing page. beeminder.com/strava (+ CSS/copy tweaks since the soft launch)
  15. Fixed an occasional bug with our Todoist integration where we'd add tasks from a wrong project to your goal. #bugfix
  16. We finally made a "sign up for our newsletter" form on the front page (and at the bottom of the overview page), only visible to logged-out users
  17. Customized the confirmation email you get if you sign up for our newsletter (the one for not-yet-users)
  18. Punnified the wording for the newsletter form ("keep abreast of the buzz") and tweaked the formatting
  19. Upgraded the forum to SSL and updated links and single-sign-on (for signing into forum) to all use https instead of http
  20. More descriptive and more consistent hovertexts in the autodata integrations gallery on the front page
  21. We now linkify URLs in the goal description for users looking at their own goal and for anyone looking at a goal if the goal's owner has a premium plan
  22. RunKeeper integration #bugfix: new goals were getting created with the goal units set to the string "undefined" rather than "mi" or "times" etc
  23. Settings for Toggl filters (projects, tags, etc) are now adjustable in goal settings!
  24. Toggl integration wasn't keeping the data in sync with the last 7 days from Toggl (like most other autodata integrations do). Now it is.

2018 November

  1. If you removed Beeminder's permission to read your Todoist data, we'd give a 500 error on any active Todoist goal page (when trying to show settings) #bugfix
  2. Dashboard #bugfix for goals with numeric names: when you expanded such goals there was no data entry form
  3. Also fixed a memory leak that happened if you had goals with numeric names that made the dashboard (gradually?) unusable. #bugfix
  4. Improved the short string explaining the charge for derailments on your credit card statements (though some banks seem to screw this up)
  5. Fixed broken Strava activity verbing in goal creation (and slashes, as in "and/or", instead of commas/"and" for multiple activities) #bugfix
  6. Canonical URL for this UVI list now changelog.beeminder.com (still hosted on Glitch but no longer redirects to Glitch's domain). Similar for mind.tagti.me
  7. Made road.beeminder.com the URL for the visual road editor and updated various legacy links related to our changelog (/latestuvis, /uvi)
  8. Error messages when signing up (like trying to have spaces in your username or whatever) were easy to miss -- made them bright and bold so they stand out now
  9. In the Toggl integration settings we weren't saving tags when you updated (clients & projects were OK). #bugfix
  10. While we were at it we made the Toggl forms in settings look a little nicer by making the select box uniform width. #mini
  11. road.beeminder.com was still redirecting back to road.glitch.me when you actually logged in. Fixed that now too. #mini
  12. Analogous to UVI#2120, we now adjust shareable links for a text document stored in Google Drive for the URLminder integration. HT apolyton
  13. We have soft-launched our @clozemaster integration! beeminder.com/clozemaster
  14. Broke Clozemaster integration 25 days ago trying to make it sync only the last 7 days (doesn't make sense since Clozemaster gives cumulative total!) #bugfix
  15. Getting redirected back from authorizing us to read your Fitbit data when creating 1st Fitbit goal, we'd forget your place & you'd have to start over #bugfix
  16. Added a nifty button to blog.beeminder.com to subscribe to our posts via Slack, because that's what the cool kids do, presumably
  17. GmailZero partial #bugfix: if you had an expired authorization for us to read your Gmail, we'd screw up new goal creation w/ no error. Now there's an error.
  18. Additional GmailZero #bugfix: if there was an authorization problem a newly created graph would say "saving your goal..." forever. Now it doesn't.
  19. The max daily weight fluctuation field now defaults to 1 unit (pounds, kilograms, whatever -- we recommend just going with the nice round number 1)
  20. New Strava metric! Effort-weighted time (walking counts normally and everything else counts double). Huge thanks to @dehowell for making it for us!
  21. While we were at it we made an obvious variant of the new Strava metric: everything counts normally except walking which counts for half the time
  22. Phone numbers w/ certain area codes were rejected cuz our dumb parser mistook them for country codes (silly cuz we only support US numbers still) #bugfix
  23. We also robusted up our phone number parser so it should take US numbers in any format you like and reject anything too weird (including invalid area codes)
  24. Updated a bunch of things in the Newbee Guide and made several tweaks and formatting fixes in help.beeminder.com
  25. The bot email reply you get if you've weaselproofed an autodata goal and then try to sneak data in via the bot is now more clear you are talking to a bot!
  26. Our @Strava integration now (optionally) reads private as well as public data (current users need to revoke & re-add permission for Beeminder to read your data)
  27. Also in our @Strava integration, we now count "virtual rides" (bike rides on stationary bikes or rollers or whatnot) the same as normal bike rides
  28. Oops, previous bugfixes UVI#2833 & UVI#2834 needed a meta #bugfix and weren't (user-visibly) true till just now!
  29. The beeminder.com/premium FAQ said "cost of lifetime [...] is subtracted" but meant "if lifetime, the monthly cost is subtracted" #bugfix HT @bettywiderski
  30. The boxes (for the 3 steps) on the autodata integration landing pages are now consistent width, including when the screen is too narrow to fit them side-by-side
  31. In goal creation, the placement of the "start with ___ days of extra safety buffer" was messed up. Now it's not! #bugfix #css
  32. Official launch of @clozemaster integration! Added Clozemaster logo to the front page of beeminder.com
  33. Made the fields (and buttons too, which we're not sure if that's weird) for the Clozemaster goal creation form all the same width. #css #bugfix
  34. Added an "all languages" option to Clozemaster goal creation (which also fixed some ugliness/brokenness if you hadn't started any languages on Clozemaster)

2018 December

  1. The signup form now asks you to state your intentions as a way to help you commit to your goals (and maybe in the future as a quasi-captcha)
  2. The road dial (in Commitment tab) would disable itself until you reloaded the page if you messed it up, like submitting something that wasn't a number. #bugfix
  3. Animated Beeminder tutorial! road.beeminder.com/tutorial
  4. Interactive Beeminder sandbox! road.beeminder.com/sandbox
  5. UVI#2842 worked fine for existing users but for new users (for 5 days till this #bugfix) it wasn't fetching new Strava data (after the initial fetch)! Eek!
  6. Changed the state-your-intentions prompt to "Beeminder is a community of seriously awesome and ever-improving humans. What do you intend to beemind?"
  7. Made text area fields look nicer: full width & same rounded corners & font size as text fields. Seen in signup, settings for fine print, URLminder URLs, etc.
  8. If you sign up w/ Google/Facebook/GitHub/Twitter we make the email field uneditable (you can still change it later in Settings)
  9. Relatedly, for oauth signups w/ email address provided, we skip the email confirmation step since we're already getting a confirmed email address
  10. Toggl integration was occasionally overwriting your last week's data with 0s, causing insta-derails! #bugfix
  11. Also Toggl: we'd overwrite each day's datapoint whether or not the value was different so you'd lose timestamp info in the comment field. #bugfix
  12. If you started to sign up w/ an oauth service and aborted we'd remember that forever and you couldn't sign up normally later. #bugfix
  13. Quasi-official integration with Boss as a Service (@Manasvinik) so far means an entry in the beeminder.com/premium FAQ!
  14. In new goal defaults, the default amount of safety buffer you get after derailing is now 7 instead of 9 (9 was for dumb historical reasons involving road lanes)
  15. #bugfix w/ associating your Beeminder forum account to GitHub, but not clear this mattered w/ Beeminder as the only way to log in to the forum. #mini
  16. (+) Fancied up the signup page in a few ways
    • Showing off some of our press hits to remind you we're a real company and stuff
    • Showing the 1-2-3 hexagons ("Commit to your plan and set a pledge, Stay on track or pay the price, Follow through and reach your goals")
    • Simplified the "What do you intend to beemind?" question
    • Maybe rearranged the boxes ("Sign Up for Beeminder", "Or sign up with", etc) a bit and made beeminder.com/signup work as a URL for the signup page
  17. Made newly created empty goal galleries say "Welcome Newbee" & changed the front page button text from "Start your goal" to "Sign up" (if not logged in)
  18. Galleries like beeminder.com/featured now include the goal descriptions
  19. New Year's Resolution Survivor Challenge! beeminder.com/survivor

2019 January

  1. Better URL for survivor (still redirects to the ugly one for now though) and fixed a broken image on the signup page (wasn't broken for long, but still). #mini
  2. beeminder.com/survivor goals now sorted by last-entered datapoint (and briefly brought back the masked bee for private goals but then just disallowed them)
  3. Added clarification to the yellow brick road captcha (cf UVI#2471) that it's a captcha because at least one new user tried to answer it aspirationally
  4. Clozemaster integration #bugfix for users with dots in their usernames which caused all manner of confusion when setting up goals. HT jay.dugger
  5. Toggl integration #bugfix: if you had no projects in Toggl, goal setup would fail with a wrong error, "no such Toggl user found"
  6. On Toggl goal page if you had no projects in Toggl we'd give a 500 error. #bugfix (similar to previous but on goal settings page)
  7. Exclamation explanation: the little "!" to the left of goals on the dashboard indicating scheduled archive now has a tooltip explaining what & when
  8. The road editor (and soon to be engine that generates all the graphs!) at road.beeminder.com is now noticeably faster
  9. Trello integration was not respecting rate units setting, e.g. if you created a goal of 12 cards per year, it'd create a goal with 12 cards per week. #bugfix
  10. The link in the warning about unsetting autoratchet aka max safety buffer before scheduling a break was broken (linked to the current page/tab). #bugfix
  11. Various improvements to the road.beeminder.com version of the graphs (axis on top, nicer tick marks)
  12. Daily beemail subscribers now have a BETA checkbox in graph settings to opt in to the new version of the graphs
  13. Fixed weird error with IFTTT "datapoint added" trigger where if an admin edited your goal, the trigger would re-fire for all of the goal's datapoints. #bugfix
  14. We now show the Toggl settings for all Toggl goals (we weren't showing them at all if you had no filters set). #bugfix
  15. If you changed your tags in Toggl settings we had a bug that made us no longer update your goal. #bugfix
  16. In Toggl settings, non-lowercase tags would never appear selected due to us buggily only storing the lowercase version of all tags. #bugfix
  17. The survivor contest introduced a rare bug with legit check emails (a couple of them didn't go out) when adding Mary to the bcc. #bugfix
  18. Some fields on autodata integration goal creation were too narrow. Was especially buggy for Trello were you couldn't tell what one field was for. #bugfix
  19. Toggl treats ongoing timers as having a negative duration, weirdly. We'd sometimes count those as negative datapoints, which was buggy. #bugfix
  20. We were embarrassingly negligent with a scheduled Withings API update, broke the integration, scrambled to fix it, and now we get to count it as a UVI! #bugfix
  21. We were missing some Todoist tasks if you marked them done right after creating a goal. Now we never miss any! #bugfix
  22. Javascript-generated graphs live for all daily+weekly beemail subscribers (still static images for now but visually slightly different & better in a few ways)
  23. All graphs now generated by new Javascript engine! Some small improvements now (like hashtag comments not shifted right) and the way is paved for larger ones!
  24. If you removed a beeminded language course from your profile on Clozemaster the goal would silently fail. Now we fail loudly, with a banner. #bugfix
  25. If you tried to go to bmndr.com/user/goal.fiz (or were a bot trying bmndr.com/user/goal.xml) we'd barf all over the page. Now we give a normalish error. #bugfix
  26. Changed checkbox webcopy to be about opting back in to Python graphs, for daily beemail peeps. And changed placeholder text w/ "bethaknee.com" to "mydomain.com"
  27. For road errors about duplicate road rows, we now show the dates human-readably. #mini
  28. The numbers on the y-axis now have commas, plus several bugfixes getting us to seemingly complete parity with the Python graphs
  29. The purple steppy line is no longer ever missing its first vertical segment. #bugfix #beebrain (and the choice of x-axis tick marks are maybe a bit better!)
  30. Fitbit weight goal creation: alignment/margins/padding of input fields. Units dropdown next to weight field. Killed weird floating dropdown arrow. #bugfix #css
  31. Also in Fitbit weight goal creation, we now include units after the "how much does your weight fluctuate" question, for helpfulness.
  32. Commitwall! It's no longer possible to create a goal without giving Beeminder a payment method so Beeminder is always a credible threat
  33. Nicer "Set up your pledge" screen when creating goals -- better distinguishes starting pledge from max pledge
  34. As part of Commitwall, we now always show the pledge setup screen instead of skipping it if you didn't have a credit card on file. #mini
  35. Along for the ride with Commitwall: there's now a screen to collect your credit card or PayPal right there in goal creation. Yay for less friction!
  36. To help you feel ok about Commitwall, there's a "Why?" link that pops up a nice modal with reassuring copy to reassure you
  37. Finally, you no longer ever see the old commitwall where you go to create a goal and we throw a big wall of text in your face begging you to add a credit card

2019 February

  1. Another improvement with the new graphs: the purple steppy line is drawn for all past datapoints, even ones before the start of the YBR. HT zedmango #beebrain
  2. We now hide the OMG-please-give-us-your-credit-card banner on new goal pages since we're about to ask you for it anyhow. #commitwall
  3. Changed the webcopy on the "why?" popup modal (which is meant to reassure you about adding a credit card) to "Why? Because credible threats! 💸" #commitwall
  4. We updated our footer links to get rid of Google+ (RIP) and added LinkedIn and Instagram cuz that's the kind of hip company we are, fellow kids!
  5. We cleaned up and clarified a couple things in our terms of service and even updated its changelog so you don't have to read the whole thing again
  6. Oops, changelog for the ToS changelog: accidentally said 2018 instead of 2019. Also ++'d the copyright date in the footer while we were at it. #mini
  7. Akrasia Horizon line was red, not blue, in the graph legend (because once upon a time, long long ago, in a kingdom far far away, it was red). HT @instigate_it
  8. Corrected a tiny falsehood in the API docs: create_all returns the last created Datapoint, not the whole list of created Datapoints. HT @dreev
  9. Copyediting, added links, fixed spacing issues, and got rid of all instances of "here" as link anchor text in the help.beeminder.com Quick Start guides
  10. Sometimes confirmation emails got stuck behind batches of graph refreshes; moved them to a higher priority queue, so hopefully no more delays!
  11. The styling (CSS) on the "discount please" button was broken (probably since the #redesign) and looked more like a link than a button. #bugfix #regression
  12. When you are already premium, beeminder.com/premium now starts the discount slider at your current subscription frequency (had been always starting at monthly)
  13. UVI#439 stopped being true when we deployed UVI#1517 and we finally separated Google login from Gmail permissions again!
  14. You now see both Google and Gmail as separate entries in beeminder.com/services
  15. Fixed up the error banners to tell you to either re-add Gmail or re-add Google as needed (and updated all the existing goals accordingly)
  16. That Gmail/Google auth split felt like more than 3 UVIs so we'll count this cheapo one: Additional clarification in ToS that we don't read or save your email
  17. We accidentally broke our Strava integration for close to 12 hours! Deployed bad code, went to sleep, woke up to irate (not really) users! #bugfix
  18. The graph legend now shows you what it's not showing you, in a "disabled graph features" section. Just a small thorn in @dreev's side that made for an easy UVI!
  19. We were also misguidedly suppressing the yellow guiding lines in the legend in the first week. Now we're not.
  20. In beeminder.com/apps/new (registering a new Beeminder app) we had a broken link to the Autofetch Callback URL documentation. Now we don't!
  21. Fixed / cleaned up some other other internal links (aka anchor links) in the API docs while we were at it
  22. We updated beeminder.com/money to not say false things like "it's free to create a goal -- no credit card required". HT @EricMueller #commitwall
  23. Tagging (UVI#2080) had a critical bug: negating tags (#!tag) broke the javascript & made it impossible to add datapoints on the dashboard! #bugfix HT @openmedi
  24. New aggday method "cap1" (HT zedmango) and brought the aggday documentation up to date

2019 March

  1. We cranked up the image resolution on graphs to... literally infinity. That's right, next time your graph regenerates it will be an SVG image!
  2. Revamped the "What do I do first?" help page that we remembered we prominently link to on the page you land on after signing up
  3. The fancy new svg images weren't displaying the bull's eye, infinity symbol, jolly roger, etc. #bugfix
  4. Leading zeros in the datapoint field no longer make the number be interpreted as (yes, this was true) base 8. Eg, "011" was parsed as 9. #bugfix Cf UVI#2441
  5. Updated submit buttons in the tabs below your goal to have more specific labels (like "update derail behavior" instead of "update goal", etc etc)
  6. Oops, the leading zeros #bugfix had a much worse bug and was stripping non-leading zeros! HT teoajantaival
  7. And one more #bugfix to the bugfix with leading zeros: we now no longer strip the zero from, eg, "1:02" turning it into "1:2". HT @dehowell
  8. Deadlines for new Skritter goals now 4am again (cf UVI#1715), not the user's default. #bugfix #redesign #regression
  9. Added error checking to the goalname change field so it won't let you submit invalid goalnames (before it would let you and then complain)
  10. Made goals with the unfortunately named deadbeat flag not appear in bmndr.co/survivor & added a link to the derailing-is-not-failing blog post to bmndr.co/money
  11. Removed the checkbox to opt in to the old graphs, and more importantly, stopped generating the old graphs for everyone in parallel which should speed them up!
  12. UVI#2577 subtly broke the todayta checkmarks so that you had to reload the dashboard to make them show up. #bugfix #regression
  13. Folks were weaselproofing themselves thoughtlessly too often! Now have to prove you really mean it, typing "I'm a weasel" & everything, not just check a box.
  14. Weaselproof-related copyediting (mainly that it's always "weaselproof" not "weasel-proof" or "weasel proof" now)
  15. Other changes to the weasel insurance webcopy, not to mention all the new webcopy @thatgirl added as part of deploying this, eg explaining how to unweaselproof
  16. The SVG graph image files are now much smaller, thanks to an insight from Philipp Dörfler (round the needlessly precise floats in the vector specifications)
  17. Changed the section heading/label "SAFETY BUFFER" to "REDUCE SAFETY BUFFER" after learning that that was confusing lots of people
  18. We changed our name on Instagram from bmndr to beeminder and updated the link in the footer of the website accordingly. HT Philipp Dörfler
  19. Had a nasty css bug that made the "We'll adjust the road so you have ___ units" form display as "___ We'll adjust the road so you have units" #bugfix
  20. URLminder was erroneously shown in the list of services you can authorize Beeminder to access (and we gave a 500 error if you actually clicked it). #bugfix
  21. Made improvements to the font size in flash banners, like making it smarter about when to use a smaller font in order to fit the whole message
  22. Relatedly, we now use a smaller font size on smaller screens in the flash banners (and embiggened the reduced font for longer messages)
  23. Added missing links on beeminder.com/clozemaster: to @clozemaster itself and to the blog posts, blog.beeminder.com/clozemaster & blog.clozemaster.com/beeminder
  24. Our help page about auto-canceling was wrong. Only adding data (not logging in or making changes to your goals) prevents premium subscriptions from pausing!
  25. Updated all the help pages in the Payments category (copyediting, minor corrections, formatting, clarifications). help.beeminder.com/category/6-payments
  26. We were inconsistently punctuating headlines on integration landing pages. Now there are no periods, because headlines don't use periods. #mini
  27. On some autodata goal creation pages (Strava, Trello, Clozemaster, GitHub) we fixed a CSS problem that made the initial safety buffer field way too wide
  28. Did a full justify on the front page summary text. Looks way nicer than the centered version. HT @LawrenceEvalyn
  29. Updated all the help pages in the Goals category (copyediting, corrections, formatting, links, clarifications, updates). help.beeminder.com/category/50-goals
  30. Updated all the help pages in the Data category (copyediting, corrections, formatting, links, clarifications, updates). help.beeminder.com/category/35-data
  31. Updated all the help pages in the Derailing category (copyediting, links, clarifications). help.beeminder.com/category/8-derailing
  32. Updated all the help pages in the Quitting category (copyediting, links, corrections). help.beeminder.com/category/43-quitting
  33. The CSS (styling) of the modal (popup) when you click "discount please!" was embarrassingly broken/misaligned. #bugfix
  34. Updated popup copy and hovertext for the "discount please" button to clarify that clicking the button immediately emails us
  35. Made the "more free goals please" button do that too (but the first time it just magically grants the free goal, and now says as much in the hovertext)
  36. In the Clozemaster integration we'd fail to fetch your points if there was trailing whitespace in what you gave us as your Clozemaster username! #bugfix

2019 April

  1. New copy, links to things (like this changelog!) on our /beebacksoon.html "bee back in a bit" page shown during downtime, sadly user-visible for ~3 hours today. #poppies
  2. Updated all the help pages in the Apps category (copyediting, corrections, clarifications, links). help.beeminder.com/category/59-apps
  3. Now we warn that changing autodata settings can derail you, for all autodata settings that you can change. And made it more noticeable.
  4. Include in goal settings what the goal is tracking for RescueTime goals, for the forgetful, etc, among us to know what exactly is being tracked
  5. Fixed a broken link to mind.tagti.me in the FAQ and updated the copy there about TagTime. HT @shanaqui
  6. In Toggl, Strava, Fitbit, et al, we were letting you type new units on goal creation, which we then ignored. Now we don't let you edit that field! #bugfix
  7. Updated old links from settings/payment to use the new URL: /payment (previously we were redirecting those links)
  8. Sometimes Fitbit would send updates to 2 datapoints at once and, you guessed it, we had a race condition. Edge-skaters could get false derails! #bugfix
  9. We no longer delete "RECOMMITTED" datapoints from Fitbit goals when adding autodata (which also means the triangles marking derailments stay put). #bugfix
  10. Oops, yesterday's Fitbit UVI introduced a new bug: we weren't adding the real/new datapoint on RECOMMITTED days! #bugfix
  11. Shortened the trip to our overview page: were using an old URL (/about) and redirecting. Now we just use the canonical URL (/overview). #mini
  12. When setting a break, we'd let you set the end of the break beyond the end date of the goal, which caused graph errors. #bugfix HT @SayHiNeil
  13. Yesterday's take-a-break bugfix included a brand new bug of its own: it wasn't submitting the break at all! [🐑ish] Break scheduling broken for ~24hrs. #bugfix
  14. (+) Beeminder iOS app version 5.4!
    • No more hanging spinner of doom! #bugfix
    • Apple Health now consolidates data from multiple sources (watch, phone, different apps) rather than blindly adding it all together
    • The app now allows background updating so should be more likely to be up to date and in sync with Beeminder's servers as soon as you switch back to it
    • Apple Health data now syncs automatically, periodically, when your phone is unlocked, without having to open the Beeminder app to get it to fetch Health data!
  15. UVI#2934 broke UVI#2762. This turned out to be very hard to fix but our SVG images now also magically refresh themselves! #bugfix
  16. Robusted that up further by showing a message when the image failed to reload properly, with the buzzing infinibee overlaid until it does
  17. Also turned off the infinibee-buzzing for other people's goals. A key #bugfix because if you loaded someone's goal page when it was buzzing it'd never stop.
  18. Embarrassingly overdue but we got Nikki and Holly and Mary on the beeminder.com/aboutus page!
  19. And added Austin too! beeminder.com/aboutus
  20. We now have help.beeminder.com doing double duty as our help-wanted page(s); see beeminder.com/jobs
  21. Corrected lies in api.beeminder.com about the 'datasource' field for goals. To set it back to the default (manual), pass the empty string. Docs #bugfix
  22. Zero-value datapoints were not always updating the graph! Buggiest case was when a 0-datapoint (for a cumulative goal) replaced a PPR. #bugfix
  23. Zero-value kyoom datapoints also failed to update the graph if they were the 1st datapoint of the day (they should turn the little triangle into a dot). #bugfix
  24. Couple #mini's: Fixed a typo (double period in a warning message) and fixed the margin in fine print settings. #bugfix

2019 May

  1. The so-called todayta checkmark was weirdly over-specific, only showing up if you'd entered data today AND that datapoint was the most recent datapoint. #bugfix
  2. Dates of premium charges advanced by a day each time we charged you; a whole free day each period! Also bad for those trying to budget their monies. #bugfix
  3. There was no indicator that the date in the data entry form on the goal page was a dropdown menu. Added a little triangle guy to indicate its selectiness!
  4. Tweaked the copy for our live chat to clarify it isn't always real-time; you may have to leave a message. And made the forum display pretty math via MathJax!
  5. Updated the help pages in the Philosophy category (updates, prose tweaks, typography, link fixes). help.beeminder.com/category/33-philosophy
  6. Added more instructions & warnings about importing data via the bot for autodata goals (at the bottom of the Data tab)
  7. UVI#2998 caused a bigger bug (in users' favor), adding extra months of free premium when upgrading. Oops. #bugfix
  8. Also made frequency upgrades/downgrades make more sense: if you upgrade, eg, from monthly to yearly, you pay for the rest of the year upfront
  9. And various webcopy updates and fixes to go along with that, not saying "you are upgrading from Infinibee to Infinibee" or "per every" and whatnot
  10. Our Duolingo integration was briefly broken today, unable to pull in your totals, due to a change in their (formerly fully publicly accessible) API. #bugfix
  11. Our Toggl integration now works as advertised, tracking the union of all selected projects / tags / clients (had been the intersection of unions). #bugfix
  12. Rearranged the instructions slightly on the Toggl setup page (put the "tags OR projects OR clients" up top)
  13. UVI#3006 fixed Duolingo goal data fetching, but forgot goal creation, which also relies on checking your points totals on Duolingo! #bugfix
  14. Doh, UVI#2221 (review pending charges, cancel any you deem not legit when updating failed payment info) didn't apply to PayPal this whole time! Now it does.
  15. UVI#3007 introduced a new bug: If you edited your Toggl settings to remove all filters, we would filter *everything* out. #bugfix
  16. Critical Gitminder #bugfix: if you closed an old enough gissue (ie, more than 30 gissues created and closed after it) we would miss it and not give you credit!
  17. New names for the beeminder.com/survivor categories: Ultimate Survivors, Penultimate Survivors, Casualties
  18. Tiny one that's mostly to make our lives easier in support but we added usernames to subject lines of emails like "Couldn't charge your credit card"
  19. The email list signup on the front page had a bug: If you later signed up as a real user it would sometimes give you a preassigned hideous username. #bugfix
  20. Addendum to UVI#2934: You too can use SVG graph images, because we return the svg_url in the API output. Now documented at beeminder.com/api as well.
  21. Oy, a truncated error message! Shortened it to: "Oy! You're in a RECOMMITLOOP! Help debug it by sending hints to support@beeminder.com (pretty please?)"
  22. Rare bug in graph generation that could try to create a wildly bounds-overflowing aura yielding an unrenderable (on some browsers) SVG file. #bugfix
  23. The road matrix table at road.beeminder.com was not letting you move the start date of the yellow brick road more than a few months back. #bugfix
  24. We no longer let you (try to) ratchet to 0 safety buffer on day 1 of a new goal (it would insta-derail on non-kyoom goals). #bugfix
  25. And to make sure that's Pareto-dominant, we tweaked it to only prevent day-0 beemergency ratcheting for non-kyoom (non-auto-summing) goals!
  26. Also for those errors we now use our nice flash banners instead of the boring browser-native alerts. #mini
  27. We were getting rate-limited by Withings, which could cause a fetch to silently fail. Now we catch the error and retry in a couple minutes. #bugfix
  28. (+) Beeminder Android app version 3.0!
    • The first most obvious change is the permanotification, which, frustratingly, Android now requires for guaranteeing reminders at exact times
    • We made the permanotification link to a help page explaining how to make it shut up
    • All the types of notifications are listed in Android settings (Apps -> Beeminder -> Notifications) where you can customize (or suppress them)
    • Fixed a bug that would sometimes cause incessant reminders, like one a minute, even when the deadline was like an hour away. #bugfix
    • Switched to Crashalytics for crash/error reporting
    • Zeno notifications now happen immediately at launch
    • Fixed bug in fwomp page (reminder settings for all goals): the zeno checkboxes are now clickable instead of getting covered up by the scrollbar. #bugfix
    • Goals are now sorted alphabetically for the 1-up widget configurator (the screen for creating new homescreen widgets for single goals)
    • In the manual data entry screen, added some space between the year, month, and day since it sometimes looked like, eg, "531" instead of "5 31"
    • New lumpy swipey indicator that maybe will help more people notice that there are 3 different data entry screens, since few people have realized that so far
    • Fancy new Troubleshooting Notifications screen that tells you lots of useful things and lets you create test notifications (immediately and scheduled), etc
    • And beyond just troubleshooting, the Troubleshoot Notifications screen lets you recreate all zeno reminders for all goals that should have them
    • Beedroid now starts automatically when the device boots up
    • Minor visual changes, mostly with the goal of matching the previous status quo but there are various user-visible differences in buttons and such
    • Improvements to timey-wimey parsing, like handling "HH:MM:SS", and a #bugfix where "H:MM" didn't work depending on locale
    • The zeno reminders configuration page now tells you if and when the next zeno reminder for each goal will come
    • The goals in the Zeno Configuration screen are now sorted alphabetically
    • We got rid of the notifications that said "in panic" and don't use that term anymore. It's all about beemergencies now.
    • If two goals were updated at the exact same time, going to a screen that showed them both would at least sometimes crash. #bugfix & HT Mary who reported it!
    • Tons of mostly user-invisible work on notifications (eg switching GCM to FCM) that had the user-visible effect of stark improvements to latency/deliverability
    • Fixed an orientation crash. #bugfix (Plus a lot of improvements to the Send Feedback feature and debugging info but that's not very user-visible)
    • We now show onboarding copy when there are no goals to show! (We thought we'd done this a long time ago but they weren't showing up, so #bugfix)

2019 June

  1. Errors from Beebrain (like segments of the yellow brick road being out of order) were displaying on the graph as black rectangles instead of text. #bugfix
  2. GitHub goal creation #bugfix: If you hadn't already auth'd us to access your GitHub data and were creating a goal involving a specific repo, we'd not let you!
  3. In Garmin goal creation we weren't letting you choose steps/sleep/active-time on non-Vivofit/Vivoki devices. #bugfix HT @phreeza
  4. If you had a timey-wimey goal and you recorded a datapoint that was <30 seconds, we'd round it to "00:00". Misleading to say the least. Now we show eg "00:00.5"
  5. Fixed typography things (bullet wrapping, title wrapping, margins) in the "why?" modal that is available when we ask for a credit card in goal creation
  6. UVI#2221 let you cancel not just derailment payments but premium subscription payments this whole time, which made no sense so now it doesn't
  7. We still wanted to warn you about a failed/pending subscription charge (despite UVI#3051) when updating your card, so they're included in a secondary list
  8. Also adjusted margins, font sizes, and line height for listed charges (there was too much space when the description wrapped to 2 lines)
  9. A bunch of small layout changes to the new goal screen
    • Most notably, shifting and resizing the manual-data icon so it doesn't look like part of the header
    • Increased the vertical space between the manual & autodata sections and added a large OR in that vertical space to highlight the difference
    • Increased the whitespace around the integration icons to make them match more / have more similar presence on the page with the <+> manual-data icon
    • On the next screen for goal type (do-more, do-less, etc), fixed a problem with vertical alignment of icons. #css #bugfix
  10. Doh, UVI#3054+ messed up the +/- stepper in goal creation & restart for 'commit to' (in manual goal types) and the pledge cap picker. #bugfix
  11. Fixed overhelpful Firefox defaults/autocomplete on dashboard & goal page; it remembered last date used for data entry even when you reloaded the page. #bugfix
  12. Rewrote the help page copy about the Android permanotification to emphasize how ok it is to turn that off and to better explain why it's there at all
  13. Fixed a tiny bug in the new user signup page where if you changed the timezone and then made some other error in the form it would lose your choice. #bugfix
  14. Bunch of webcopy tweaks in goal creation: mention SMS, "Use an odometer" to just "Odometer", nixed the "www" in the live URL, shortened/removed other things
  15. On the "select goal type" screen in goal creation, small text letting you know that advanced goal types are a premium feature
  16. Layout tweaks in goal creation: made the commit-to fields the same width (also fixed truncated placeholder text for goal units)
  17. Updated the help pages in the Goal Settings category (updates, fixes, prose tweaks, typography, link fixes)
  18. Updated the help pages in the Account Settings category (updates, prose tweaks, link fixes)
  19. Pledge cap UI in goal creation now has radio buttons to pick between two possible pledge caps instead of a stepper widget
  20. Also a bunch of a tweaking of the webcopy for picking initial and max stakes and explanatory text for how to change or cap pledges any time
  21. More tweaking of the goal creation "Pledge Your Money" screen's webcopy, laying out the full pledge schedule, coining "starting stakes", calling it "pledge cap"
  22. Further separated the first row of the reminders page (aka fwomp page) for goal defaults; jettisoned the explanatory hovertext now that it's obvious enough
  23. Also on the fwomp/reminders page, do-less goals are now in a separate section (in anticipation of handling their reminders differently)
  24. Beedroid version 3.0.1 has an option to send us feedback (including debug logs) before logging in. Pretty helpful when the bug is you can't log in!
  25. Another mini-revamp of the pledge setup screen of goal creation: show the whole progression vertically with arrows, and no choice (on that screen) on pledge cap
  26. Added missing dropdown arrow indicators on some dropdowns in goal creation (Garmin, Habitica, and RescueTime). #css #affordance
  27. Okfine, we'll still let you pick a pledge cap during goal setup. We put the picker back, alongside the vertical-spelling-out. Click the little arrow to reveal.

2019 July

  1. Beedroid version 3.0.2 handles SSL errors more gracefully/informatively (and maybe fixes a couple other things but we're saving those for when we're certain!)
  2. Added the newest Duolingo course -- Arabic -- to the list of languages in the Beeminder integration!
  3. RescueTime goal creation wasn't letting you set your initial safety buffer. Now it does! #bugfix
  4. Yesterday's RescueTime bugfix prompted us to finally make it so you can choose an initial safety buffer on all do-less goals when you create them!
  5. We now finally use HH:MM format (assuming you've checked that box for timey-wimey goals) in formatting beemergency reminders from the SMS bot. #bugfix
  6. The evaluating of arithmetical expressions was silently failing if the value was superficially right but syntactically wrong, like "2++2". #bugfix
  7. The initial safety buffer checkbox/field was getting messed up if you started creating a do-more goal and then hit back and chose weight loss. #bugfix
  8. Changed the derail/rerail behavior: the road jumps to where you ended the beemergency day, not the post-eep day
  9. In addition to the visual changes, now you can now ratchet to zero safety buffer any time! (Before this you couldn't do that the day after a derailment.)
  10. Doh, the road editor was broken for 2 days before we got the new rerail behavior hotness deployed to road.beeminder.com as well. #bugfix
  11. Highly dubious UVI from one perspective and highly legit from another: Ended the year of grandfathering on the Infinibee price hike ($4/mo to $8/mo)
  12. Changed a dash to an em dash in the goal settings UI webcopy which counts as a #typo #bugfix for us because we're very finicky about these things!
  13. The 'start with extra buffer' checkbox starts expanded for do-less goals, and unchecking it is now equivalent to choosing no extra buffer. Improvement + #bugfix
  14. Beedroid version 3.1.0
    • Beedroid no longer starts the whole app when you boot up the device. Why did we ever think that was a good idea? We didn't, Android development is hard.
    • Beedroid 3.1.0 also fixes some crashes. We don't know how they were happening but they were and now they're not! Also fixed the changelog formatting. #bugfix
    • Removed custom notification sounds since trying to set them caused a crash in new Android versions (and you can still do it in general Android Settings) #bugfix

2019 August

  1. Follow-on to UVI#3084, you can now choose zero-mercy derails (including as a default for all new goals in account-level settings)
  2. Garmin sleep tracking didn't allow multiple sleep entries in a day. E.g., naps wouldn't register, nor post-midnight followed by pre-midnight bedtimes. #bugfix
  3. Standardized whitespace and added a missing period in the email bot replies
  4. For do-less goals, added hard cap to data entry replies from the SMS and email bot as well as SMS reminders
  5. Oops, previous UVI broke the SMS bot which stopped sending zeno alerts and reminders for some hours. #bugfix (and manually interceded for all affected users)
  6. New (currently optional) pledge schedule! $1, $5, $10, $20, $40, $80, $160, $320, $640, $1280, $2560
  7. Version 5.4.1 of the Beeminder iOS app!
    • Added 3 new metrics -- dietary sugar, carbs, and fat -- to the Apple Health integration
    • The Today widget wasn't showing goals for some users so they couldn't add data! #bugfix
    • Updated the syncing spinners to make it more apparent that syncing has happened
    • We now display the Beeminder-correct date if the goal's deadline has already passed for the day
    • Fixed an alignment thing so that things look better on phones with curved bottom screens
    • The spinner would fail to disappear if you chose an existing username. #bugfix
  8. Opting in to the OG pledge schedule mostly worked but wasn't actually letting you start at $0 like it's supposed to. #bugfix
  9. The infamous, enigmatic do-less loophole is closed: if you're in the red when you hit the deadline, you derail, no caveats!
  10. The SMS bot now uses emoji! ⏰🔥❗️ (yes, those ones in particular)
  11. The new yesterday-is-red derail criterion introduced a bug for odometer (and some do-less) goals that would make them insta-derail upon creation! #bugfix
  12. Replaced "Emergency day" in SMS reminders with "Beemergency". It's slightly shorter and we're gradually doubling down on "Beemergency" everywhere anyway!
  13. For do-less goals created w/ 0 safe days you'd derail at end of very 1st day (unless you can unsmoke a cigarette?). Now we put you just on the cusp of red.
  14. We broke (or did it never work?) the Reply-To for nonce transactional emails. Now we can (again?) send them as ourselves but have replies go to support. #bugfix
  15. Better integeriness: there were corner cases, like do-more goals with negative amounts due, where values weren't being rounded to an integer. Now they are!
  16. All SMS alerts now include bare min or hard cap
  17. In 2014 we lost the feature that let you upload custom avatars (profile images) and we just now got it back!
  18. Because that Pareto Dominance Principle violation really bothered us, we also reinstated all the ancient avatars & warned everyone we were Rip-Van-Winkling them
  19. UVI#3105 made most archived/frozen goals insta-derail when you restarted. For now we're kludgily adding a dummy datapoint & moving the road yesterday. #bugfix
  20. When restarting, goals we were always defaulting the rate units to 'per week'. Now we default to the goal's current/previous rate units.
  21. Kind of kludgy but we're now filtering out spurious zeno alerts for goals more than 24 hours from derailing, which would, rarely, get sent until now. #bugfix
  22. On the goal restart page we'd sometimes suggest a pledge cap that was lower than your actual current pledge. #bugfix
  23. Also, whatever the default is, we now prevent you from picking a pledge cap (aka max pledge) lower than the current pledge on the goal restart page
  24. Removed the weird line in the pledge section of goal creation that said "Click on the $ above your graph to change your pledge cap"
  25. Beemium users can now pledge $0 without switching to the traditional pledge schedule
  26. We accidentally weren't letting non-Beemium people jump their initial pledge if they chose $1 and then changed their mind and wanted to bump up to $5. #bugfix

2019 September

  1. Duolingo Latin is here and beemindable!
  2. UVI#3084 wasn't quite true because of UVI#3020 & UVI#3021! Now you can ratchet to zero safety buffer on day one of any goal for real. #bugfix
  3. Beedroid version 3.2.1 makes everything not be pink (this was a real thing) in Android 10. Also a #bugfix from 3.2.0 that broke summary widgets in Android 9!
  4. We briefly broke goals created via the API (hello @CompliceGoals) for a few days after UVI#3097 (you'd get a 500 error when visiting the goal page). #bugfix
  5. We now say "scheduled change" (for when your pledge is going to drop) not "pending change" because it turns out that's very easy to misread as "pending charge"
  6. Changed a couple instances of "email support@beeminder" to add the ".com" and got rid of the lingering reference to Intercom chat on beeminder.com/contact
  7. Graph generation (aka Beebrain) is now slightly but measurably faster thanks to magic from Uluc with reusing connections and such
  8. We now actually refresh the graph image after updating road settings (i.e., the boring non-interactive road editor in the goal settings tab)
  9. Allowing Beemium to pledge $0 on the new schedule (UVI#3121) also allowed non-Beemium to cap pledges at $0 (on the old schedge) and $1 (on the new). #bugfix
  10. We now sort the list of goal names that is sent to IFTTT so you can find the goal you want to connect more easily
  11. Withings née Nokia née Withings is now called Withings everywhere on Beeminder again (Withings literally bought itself back from Nokia), ie, we undid UVI#2647
  12. We now include a 'resend activation' link for SMS whenever your number isn't activated w/ Beeminder so you can reactivate it if you injudiciously deactivate it
  13. Adjusted the formatting of instructions & phone state (hanging instead of wrapping text) and made the part about the phone state (ie, activated or not) be red
  14. We were inconsistent about "Runkeeper" vs "RunKeeper" -- they're definitely using "Runkeeper" currently, so we standardized on that too. #mini
  15. Embarrassing typo fixes: misspelled "language" on the Clozemaster landing page and called Duolingo "Runkeeper" on the Duolingo landing page. #mini #bugfix
  16. We thought we'd deftly upgraded to Todoist's new API with no user-impact but, alas, we missed something and broke the integration for some hours. #bugfix
  17. We now allow you to set a custom deadline for Twitter goals
  18. In the pledge schedule shown at goal setup we were repeating the $5 pledge so it looked like the schedge was $5 -> $5 -> $10 -> ... $CAP. #bugfix
  19. Goals with custom aggdays (especially binary and nonzero) were derailing on restart since God-knows-when. Now fixed along with UVI#3106 and UVI#3114. #bugfix
  20. Clozemaster integration robustification: if the last autodata fetch of the day happens just after midnight, still count the data for what's now the previous day
  21. Same for Todoist! If you're super edge-skating and get a Todoist task done after the last zeno but before the deadline, it should now count for the right day!
  22. You can now set arbitrary deadlines on Clozemaster goals
  23. Also in Clozemaster: we no longer add new datapoints if your score hasn't changed (matters for determining if you're still active, for, e.g., deadmanning)
  24. Soft launch / beta of our official Project Euler integration! beeminder.com/projecteuler
  25. Added limits & sorts & pagination (oh my!) to the datapoints API endpoint -- api.beeminder.com/#dataall
  26. Critical #bugfix: it was possible for do-less goals to get the PPR and derail you without ever warning you a derail was imminent. Broken since UVI#3104!
  27. Dropbox URLminder #bugfix: if there's no "?dl=1" on the end of the Dropbox URL we now correctly add it and thus correctly get your document's wordcount
  28. If you haven't entered data on a do-less goal, the triangular presumptive datapoint (like flatlining for do-more) is shown where the PPR would put it
  29. As part of UVI#3148, we also stop sending zeno alerts if you actually add data (and if that data puts you in the blue or better)
  30. Tiny #bugfix: if for esoteric reasons you have a do-less goal with a negative slope, we no longer anticipate a negative PPR
  31. Additional very corner-casey #bugfix's to make the anticipated PPR always match what the actual PPR will be. Mainly do-less goals with zero rate.
  32. The triangular presumptive datapoint as well as the last vertical segment of the purple steppy line are shown translucent/ghostily for anticipated PPRs

2019 October

  1. We'd sometimes give a bad date (unixtime 0, 1969-12-31!) to all the datapoints we fetched when we did the initial fetch for brand new Todoist goals. #bugfix
  2. There were rare circumstances (due to recent changes with PPRs) that we would skip regenerating graphs when seeming no-op data was added. Now we don't. #bugfix
  3. One more #bugfix with how the graphs calculate PPRs: doing so the same way today as well as all future days. Also always say 0 safe days if derailed.
  4. We put the red triangle marking derailments where the aggregated datapoint for that day goes instead of showing it at the worst point of the day
  5. Tiny #bugfix: more consistent ghosty triangles (only ever show it ghosty when there's actually an anticipated PPR shown)
  6. Another Beebrain #bugfix: don't let the ghosty PPR datapoint go out of bounds of the graph, or rather, don't let the bounds of the graph not include the PPR
  7. Fixed our avatar (Gravatar) default image to use https so browsers like Firefox don't give us an orange padlock icon as if we're not fully secure or something
  8. For indecisive or curious folks: if you switched to old pledge schedule then back to new schedge, even if you asked for a $5 goal, you'd get a $1 goal. #bugfix
  9. If you have Pessimistic Presumptive Reports (PPRs) turned off (they're always off for autodata goals) then we no longer show a ghosty PPR on the graph. #bugfix
  10. Our early Strava adopters had old-style tokens, which Strava just got rid of. We migrated your tokens to avoid downtime with your goals. Related: UVI#2842
  11. Updated the webcopy at the top of beeminder.com/changelog in light of the new dogfood world order. #mini
  12. The emails that give your delta w.r.t. the yellow brick road now mention your goal units, which is slightly clearer. #beebrain
  13. We now warn you when removing an autodata service, like "Are you sure? You have 2 active Withings goals. If you remove the service your goals may derail."
  14. Autodestructing PPRs now even more autodestructing: if you edit another datapoint's date to be the same as a PPR, the PPR self-destructs. HT @PhilipHellyer
  15. If you tried to unset mercy days (clear the field and then submit the form) we'd give a 500 error. Now you get a nice error that it has to be a number. #bugfix
  16. Per blog.beeminder.com/dogfood , we've listed "A chance to win our derailment charges" as a premium perk at beeminder.com/premium
  17. Do-less retroratchet could derail you when there was an upcoming rate change scheduled in your road! #bugfix
  18. Hashtags (cf UVI#2787) can now have unicode characters
  19. We added gunits (goal units), hhmmformat (timey-wimey), and todayta (data entered today) fields to the API and updated beeminder.com/api
  20. Oops, Stripe gives us amounts in cents instead of dollars and our CSV export of charges was inconsistent. Fixed with division technology. #bugfix HT phi
  21. We now prevent the creation of charges (via IFTTT or the API) that are less than $1 since those would fail anyway due to technical limitations of credit cards
  22. The alert email we send if you create an invalid charge with our IFTTT channel now includes the (new) error message telling you that charges must be >= $1
  23. Sneak peek of Yellow Brick Half-Plane visuals: daily beemail subscribers with zero-width custom goals can now check the YBHP box to see colored regions
  24. We no longer suppress zeno alerts for do-zero (do-less with flat slope) goals. #bugfix
  25. We would sometimes needlessly repeat a Duolingo autodata datapoint even when your XP hadn't changed. Now we don't. #bugfix
  26. We now remember the sort you had picked for datapoints last time you were on the data tab and restore it when you come back
  27. We now show the arrow indicator on Date Entered on the data tab when you first load the page. #bugfix #mini
  28. Ascending/descending-ness of data sorting is no longer wonky/confusing: only toggle it if you click the header twice in a row, not for switching columns!
  29. We weren't defaulting to descending order for dates the first time you clicked a column on the Data tab. #bugfix
  30. Submitting a datapoint to the API w/ a bad timestamp now gives a helpful error ("did you give us milliseconds instead of seconds?") instead of barfing. #bugfix

2019 November

  1. Project Euler integration #bugfix: we weren't sending the reminder emails for Project Euler goals (fixed before public launch)
  2. Project Euler integration is official! (Added to the front page gallery, etc, not to mention blogging about it.)
  3. If all your goals are private we now say "no public goals" on your gallery page instead of just "no goals". HT @chriswaterguy
  4. Scheduling a break was causing "duplicate road row" errors around Daylight Savings Time. #bugfix
  5. Grammatical #bugfix: Say "This goal gets its data automatically from the API" instead of "...from API". HT forum user zzq
  6. Beeminder iOS app version version 5.5
    • Includes the (hopefully final) #bugfix for intermittently disappearing goals
    • And updates for Dark Mode. It was previously hiding goal names and making the app unusable if you had Dark Mode on! #bugfix
    • Updates for iOS 13 like default presentation for some screens (log-in, timer) changed to being a dismissable screen; put it back to non-dismissable. #bugfix
  7. UVI#3172 accidentally made hashtags no longer allow underscores. Now they do again! HT Sindre Eilertsen & @matkoniecz
  8. We saved a whopping 7 characters by dropping the "http://" from the URLs in the SMS bot alerts and replies
  9. And we also stuck a bee emoji 🐝 after the URLs from the SMS bot to keep iOS from adding the annoying preview
  10. The API now has access-control-allow-origin header; you can build browsery integrations w/out a back-end server to work around the browser's CORS security stuff
  11. Our timezone database was out of date for Chile and Brazil and didn't know when they go on and off daylight savings time. Now it does / we do!
  12. Fixed the layout for the IFTTT and Zapier landing pages (things were off center, boxes were different heights, better wrapping). #css #bugfix
  13. Also fixed the line height for the little icons in the text in the Zapier blurb. And made the subheader bigger. So many little UVIs! #css #bugfix
  14. Made the Fitbit setup form conform to style of others (all caps headers, spacing, width). #css
  15. Made autodata info body in goal creation a uniform 300px (w/ a few exceptions) because of uniformity (some were wide, some narrow) & mobilefriendliness #css
  16. Consistent width also fixed some weird-looking wrapping. #css #bugfix
  17. Centered the "Authorize RescueTime" button. #css #bugfix
  18. Withings goal creation form: less gross! Added missing arrow for units dropdown, "fetch" button on own line, fixed padding in text input fields. #bugfix #css
  19. Oops, the bee emoji in SMS messages (UVI#3195) caused them to sometimes be split up into multiple out-of-order messages; nixed it. #bugfix
  20. UVI#3172 broke the road editor in Firefox! #bugfix but hashtags with unicode characters won't show up in the road editor with Firefox (kinda Firefox's fault!)
  21. The API docs were incorrectly describing the return value of the datapoints/create_all endpoint. #bugfix HT @phdoerfler
  22. The New Goal Defaults section of account settings now points to reminder settings for setting default deadline, reminder start time, etc. HT Nathan Arthur
  23. We rewrote the copy for keep-abreast-of-the-buzz confirmation email
  24. More consistent/correct conservative rounding so you're never misled about how much you have to do
  25. Goals default to integery (no decimal places) until you enter a datapoint that's not a whole number
  26. We generalized the "integery" field to "precision". Instead of integery=true (only available for custom goals) you can now set precision=1 on any goal
  27. You can now customize how many decimal places you see by setting precision<1
  28. You no longer see a superfluous ".0" appended to every datapoint value

2019 December

  1. Made various UI tweaks to accommodate the the new less-decimally world order, like getting the "integery" field out of custom settings
  2. The bare min in the header wasn't toggling to the delta; both versions showed absolute amount due. #bugfix #regression
  3. Added a limit to the precision, both precision inferred from data and precision set explicitly, of 0.00001 to prevent various hideousness
  4. Better UI copy and changed "Precision" to "Display Precision" (and then made it not wrap uglily)
  5. We now accept scientific notation for timestamps in the API. Not sure why your client would send timestamps that way but the JSON spec allows it, so... #bugfix
  6. We briefly broke a tiny thing in the API: undocumented fields baremin & baremintotal in the Goal output would cause a 500 error for old frozen goals. #bugfix
  7. Rare but ugly bug where we'd complain of "duplicate road rows" and not show your graph. #bugfix
  8. Recovered various broken images on the blog that were pointing to an old AWS bucket from our HipChat days (!) -- salvaged thanks to archive.org #bugfix
  9. Found a rare bug with our rounding that made it all wrong for some small negative numbers, yielding, eg, -0.25560000000001 #bugfix
  10. Improvements to the visual aesthetics of the Yellow Brick Half-Plane graphs
    • New grayed-out visual for what was previously called the pink zone (when editing your road, the region it can't intersect w/out violating the akrasia horizon)
    • Bright red line for the razor road instead of a dotted orange centerline
    • Fixes to the shaded regions so you always go from green to blue to orange to red despite nonmonotonicities in the road
    • Changed the turquoise swath (which didn't work at all with the new shaded regions) to translucent purple
    • Fixed the dot colors so they match the region they're in!
    • And fixed the dot coloring boundary case (eg, orange if exactly on the bright red line)
    • Other fixes and tweaks, made subtle outline for watermarks so they're more visible, made graph margins work better for zero road width, etc
  11. New webcopy on the contact page to gently discourage calling us for support (~"we're great in email! did you try email?")
  12. In the API docs, clarified the rate parameter slightly by mentioning rate units (runits) & moving runits documentation next to rate in the big attributes list
  13. In the API docs, added a warning / clarification re the base URL for the API, since that's a common thing to mess up
  14. Subtle #bugfix for rationing goals (custom goals where the road goes down but the good side is up) computing the wrong bare min / hard cap
  15. Gmail Zero: Now with labels!
    • The integration now exclusively uses labels to check your message count. Also it should be way faster for large inboxes.
    • We no longer ask for read permission on your emails, cuz all we need to see we get from the labels now
    • You can now beemind starred emails! (There was a weird bug before that made this not work but now it's moot!)
    • Nicer interface for setting up Gmail Zero goals: you're just picking a label from a dropdown and picking between read/unread/all messages
    • Emailed everyone affected with what they have to do to migrate to the new GmailZero; also small webcopy tweaks in settings like "query" -> "search"
    • We automatically migrated everyone it was possible to migrate, namely, those just minding their inbox
    • And a #bugfix after deploying all this: We were trying to fetch Gmail labels on every page causing a weird banner error for some people
    • One more post-deploy #bugfix: we failed to update the code for the initial fetch of label count on goal creation so GmailZero goal creation was broken briefly
  16. Finally added Jon Courtney to beeminder.com/aboutus <3
  17. Cleaned up the UI to not show the legacy GmailZero stuff anymore after you've successfully migrated to the label-based new world order

2020 January

  1. Zapier accidentally broke our integration, which we fixed thanks to Adam and Mary and Nikki. Emailed affected users and cleaned it all up! #bugfix
  2. Google was granting us more permissions than we asked for for GmailZero; we made it so when people re-auth we drop the previous permissions we no longer need
  3. Added missing arrows on the GmailZero dropdowns for picking labels and read/unread status. #bugfix
  4. Another GmailZero tweak: we now alphabetize the labels in the dropdown (except INBOX, which is always on top)
  5. Your gallery of archived goals is now alphabetized. The previous order was ... we're not sure. Whatever order the database felt like giving them to us in?
  6. Strava integration #bugfix: we weren't picking up updates to your workouts, like if you edited your distance in Strava (hopefully for legit reasons!)
  7. Creating a Strava goal with one of the "effort-weighted time" metrics (walking counts as half-time) used the wrong units (miles instead of hours)! #bugfix
  8. Fixed a security bug with beeminder.com/widgets that could leak some limited information about private goals! Now widgets do a proper Slytherin 404. #bugfix
  9. Another GmailZero #bugfix where if you weren't auth'd yet then goal creation would skip over the part where you pick your label after auth'ing
  10. We were giving a 500 error if you tried to unset your precision setting entirely; now it gives a nice error telling you it has to be a number. #bugfix
  11. Fixed some ugly trailing .0s in the Goal Progress section of the Statistics tab and things that ought to be showing as times (HH:MM) if timey. #bugfix
  12. In a bunch of places the timey (HH:MM) setting wasn't being respected. Checking the box wasn't making datapoints show as timey, etc. #bugfix
  13. New feature! Schedule breaks for all your goals at once! beeminder.com/breaks (still very beta; report bugs if you try it!)
  14. We were failing silently and opaquely when you gave a goalname that was too long when creating a new goal. Now we give an actual error. #bugfix
  15. For non-do-less goals we used calendar day not Beeminder day when ratcheting and if it was after an earlybird deadline you got 1 too few safe days! #bugfix
  16. Although it's the same #bugfix there was a subjectively very different, more severe special case: ratcheting to 0 safe days in that scenario instaderailed you!
  17. Another #bugfix from UVI#3083: if you derailed and then changed an earlybird deadline to be later we'd wrongly show you in the red again
  18. Improved error detection on beeminder.com/breaks -- it was not removing the angry red if you broke a cell and then fixed it. #bugfix
  19. Fixed a CSS alignment problem on beeminder.com/breaks (left-aligning the Break Details) #bugfix
  20. We no longer say wrong things about how much Sleep As Android's SleepCloud Backup add-on costs. And we now explain that it's so we can read their data.
  21. We now include datapoint text in the "are you sure?" confirmation that pops up when you delete a datapoint, for extra surety when confirming
  22. We don't want to alter precision of datapoint values but some autodata sources can report things like 1.9999999999973 so we now use a cap of 6 decimal places
  23. Rearranged the data settings and changed the button text to not erroneously imply that webhooks are a data source
  24. Made button texts in settings consistent: "save changes" → "update deadline & reminder", "add" → "add supporter", "save settings" → "update custom settings"
  25. Eep-ectomy! We changed all the web copy to be consistent about "beemergency" and "beemergency day" instead of "eep day", cute as that was
  26. Eep-ectomy part 2! We found additional instances in our API docs! Also we had instances of "emergency day" that we also changed to "beemergency day".
  27. We finally fully, officially killed auto-widening roads: noisy roads are now fixed at their current widths. We're emailing everyone affected.
  28. Eep-ectomy part 3! Updated help.beeminder.com to be consistent in always saying "beemergency" (or "beemergency day") instead of "eep" or "emergency"
  29. Brought help docs up to date for GmailZero & Withings: help.beeminder.com/article/82-gmail & help.beeminder.com/article/90-nokia-health-withings
  30. Put back the the "About You" and "Your Site" fields in Account Settings. #redesign #regression

2020 February

  1. Additional #regression #bugfix: Added "About You" to the gallery page (where "Your Site" has been showing this whole time)
  2. We only linkify your site URL there if you're a premium subscriber (we were getting lots of spam signups in the olden days motivated by us linkifying that)
  3. We (i.e., @shanaqui) updated the Habitica autodata integration help page with some common issues. help.beeminder.com/article/83-habitica
  4. Changed the "Load All Datapoints" button to "Load More Datapoints" button since the former could bring your browser to its knees
  5. By the Pareto Dominance Principle, we decided to also keep "Load All Datapoints", just as a down-popped link
  6. Zooming on road.beeminder.com is smoother now; it was accidentally leaking the scroll event to the web page itself when the mouse was on the datapoints. #bugfix
  7. We introduced a bug with premium sign-up on Friday -- you'd get a 500 error if you tried to sign up without a coupon code! #bugfix (fixed as of last night!)
  8. Updated help docs for custom goals to remove references to integery & noisy settings, other copyediting, typo fixing, and fussing with layout. help.beeminder.com/article/97-custom-goals
  9. Better x-axis tick mark separation for smaller graphs
  10. Typo fix in our beeminder.com/premium copy ("kindler") #bugfix HT @propensive esp. for the creative rationalization involving funeral pyres
  11. Nixed garish colored regions for Yellow Brick Half-Plane; now very similar to previous graphs but with thin colored lines showing amounts of safety buffer
  12. A bunch of tweaks to graph rendering including more consistent/subtle skull&crossbones without the weird outline around it
  13. Watermarks are consistently/fully in the background and don't interact weirdly with any graph elements that overlap with them
  14. The so-called pink zone is back for yellow brick half-plane graphs, in addition to the gray lines (UVI#3224). Let there be no doubt how verboten this zone is!
  15. Zero-width roads were sometimes showing the wrong color on the dashboard. #bugfix
  16. Two tiny UVIs in one: made our Fitbit integration more robust to Fitbit's API timing out on us + opened yellow brick half-plane opt-in to anyone w/ custom goals
  17. Fixed some bad links to our API that were showing up in Google search results (by adding redirects). HT @fredantell
  18. Newly added datapoints were sorting to the bottom of the dashboard with sort-by = 'recently updated', rather than the top where they ought to've gone. #bugfix
  19. Myriad fixes, tweaks, & improvements to the isolines (thin lines in yellow brick half-plane graphs) for both static graphs and interactive ones in road editor
  20. More fixes & tweaks for the isolines, like special cases for vertical segments (we could milk this for a lot of UVIs but Uluc is too fast to keep up with)
  21. If you delete your Duolingo account / change username (/ make it private?) we now notice and put up a banner letting you know we can no longer fetch your data
  22. A big deal for certain supernerds for now and probably normal people later: Added an urgency load metric to the user API output (and put it in the API docs)
  23. We (mostly @shanaqui again) added lots of exposition to the help docs for Do Less goals and did a bunch of editing to both that and the Do More docs
  24. After derailing, the weekends-off scheduler could interfere with your scheduled post-derail-mercy break, cutting it short. #bugfix
  25. If you had a short break scheduled in your road, the weekends-off scheduler could overwrite that, unbreaking your break. #bugfix
  26. We had a weird corner case where if you toggled weekends-off off and back on again, it would buggily flatten the whole current week of your road. #bugfix
  27. We managed to break but then fix all of the doc.beeminder.com/* links. In case that's too cheap a UVI, we also wrote some copy for doc.beeminder.com
  28. For the past several weeks we've had cases of mail delayed by several hours (upgrading Rails, long story) #bugfix
  29. We added a new server to process background jobs. The user-visibility is that your graphs should refresh faster when they hit their deadlines. Ekers beware!
  30. beeminder.com/breaks was actually ignoring the break rate passed in when scheduling a break and just using 0 instead. Especially bad for do-less! #bugfix
  31. beeminder.com/breaks now drastically prettier
    • Added fancy Beeminder-style checkboxes. #css
    • Got rid of the strikethrough effect for goals you're not taking a break on; now we gray things out instead. #css
    • Fixed margins, line height, & spacing in the intro paragraph. #css
    • Fixed myriad tiny alignment issues (left-justify, text baseline is all the same across a row, moved take-a-break checkbox closer to its form etc). #css
    • In the do-less section, added the field for amount of weekend buffer for weekends off (#bugfix) and updated the header to say 'max safe *buffer*' not 'days'

2020 March

  1. On beeminder.com/breaks if you turned on weekends-off and scheduled a break on that same goal at the same time, the weekend would clobber the break. #bugfix
  2. Fixed the hover effect on checkboxes site-wide so that the hover effect doesn't misleadingly happen if the checkbox is disabled/grayed-out. #bugfix #css
  3. The 'load all datapoints' link was inconsistently, uglily button-y in Safari. Now just an ordinary link, and the spacing is a little improved. #bugfix #css
  4. Updated our Withings landing page to include pointers to our Withings help docs and to Withings's blog post about us
  5. Tweaked some copy on beeminder.com/withings, like changing the middle piece of the triptych from 'Just Do It' to 'Weigh In'
  6. Also added a customized Withings-specific contract image. Most of our integration landing pages have them. Some of 'em are pretty funny, if we do say ourself.
  7. Used an actual weight loss graph for the example in the 'Track' section of the Withings autodata integration landing page
  8. Finally, more copy improvements and added hovertexts on the links (plus a new link to a classic Beeminder blog post) on the Withings landing page
  9. We updated the Apple Health help docs with guidance on sync issues: help.beeminder.com/article/61-apple-health (& updated the list of supported metrics)
  10. We managed to break our PayPal integration and didn't charge any PayPal users for anything for a week. #bugfix and emailed everyone and retried the charges!
  11. Visual improvements to the Yellow Brick Half-Plane graphs: made the orange/blue/green guiding lines (and the razor road itself) significantly fainter/subtler
  12. We were missing sending out an email when you changed your password between Feb 29 & Mar 11 (and a couple more failures after that, long story). #bugfix
  13. Made beeminder.com/premium downgrade buttons just say "downgrade" instead of "downgrade to ___" since the "to ___" was clear from context. Also for consistency.
  14. Fixed a margin thing with "downgrading on DATE" buttons, where the text overflowed the edge of the button. #css #bugfix
  15. We now tell you (in a pop-up) when you downgrade your premium subscription level that you keep your perks until your next payment would have been
  16. Made the buttons in the downgrade dialog on beeminder.com/premium match the rest of Beeminder. #css
  17. Webcopy change for downgrading / removing a premium subscription: "your subscription has been removed" → "your subscription is downgrading"
  18. Bug we've been shirk-n-turking (manually fixing as it happened) since we introduced it with UVI#3004: proper prorated credit for premium upgrades. #bugfix
  19. Lifetime premium subscribers were getting quoted wrong prices for upgrades! Now we say e.g. "$16/month ($8 for you)" to a lifetime Infinibee subscriber. #bugfix
  20. Copy fix: "You are switching to ___ & will be charged $__ per lifetime until you cancel, starting now." → "You are adding a lifetime subscription to ..."
  21. Nicer formatting for doc.beeminder.com documents and other related tweaks like giving the pages meta descriptions. #css
  22. On your goal page, we linkify stuff you put in your goal description, but we weren't linkifying on the dashboard, so you got ugly '<a href=...' stuff. #bugfix
  23. Premium credit! It's now a thing we can give you! Drastically more than you wanted to know at doc.beeminder.com/credit
  24. Updated beeminder.com/widgets to show "goalname: description" in the goal selection dropdown. Had been showing only descriptions which made no sense. #bugfix
  25. Yellow Brick Half-Plane graphs now include the thicker yellow guiding line on weight loss goals indicating the most your weight fluctuates day to day
  26. Updates to beeminder.com/api -- Documented the sort order for the Goals endpoint + various copyediting, formatting, tweaking, fixing things throughout the docs
  27. Oops, previous (like 6-for-1!) UVI for the API docs introduced a formatting bug with lists inside a bulleted list. #bugfix
  28. Added a loadbalancer & upgraded Rails, which may not be user-visible enough but in the process we broke the "load more datapoints" button & fixed it. #bugfix
  29. And we missed a spot with the loadbalancer and broke oauth (eg, logging in via Google) for some hours. #bugfix
  30. One more: our server/rails upgrades messed up our Javascript for autodata goal creation for several integrations including Duolingo and Todoist. #bugfix
  31. Turns out our fix in UVI#3130 only worked sometimes, randomly. Now refreshing the graph when you edit the YBR works all the time, deterministically. #bugfix
  32. Autoratchet (setting a max safety buffer) wasn't always getting applied for do-less goals! Sorry about that! HT Neal Chau #bugfix
  33. Some buggy API clients were accidentally requesting full history of data every time so we added a helpful check + error message for the diff_since parameter

2020 April

  1. There's no such thing as lanes in the Yellow Brick Half-Plane new world order but we made the API lane field backward-compatible to not break clients. #YBHP
  2. The new pledge schedule from UVI#3097 is now opt-in instead of opt-out. Less confusion this way (for now) w/ people expecting $0 initial pledges. HT @TomFrankly
  3. Some yellow brick half-plane graphs were showing the wrong number of safe days (missed a spot with purging all the horrible lane-related code). #bugfix
  4. UVI#3342 broke Complice! Eek! Now slightly "smarter" (though all quite a mess now, design-wise, sadly) so diff_since=0 is allowed in the case that skinny=true
  5. Made YBHP graphs give an error if you set lane width > 0 and removed an accidentally visible placeholder from the y-axis on graphs that are blank due to errors
  6. Brought our Withings help docs up to date, including max daily fluctuation, plus myriad copy improvements. help.beeminder.com/article/90-withings
  7. UVI#2713 wasn't enough; we now show timezone directly in the graph header along with the deadline in case your browser and Beeminder disagree on your timezone
  8. Display of timezones above the graph now much prettier: we show the standard abbreviation like 'PDT' if there is one, else the canonical city like 'Los Angeles'
  9. Again, that's just if the browser's and the user's stored timezone differ. Also we improved the tooltip/hovertext showing both, including nicer UTC offsets.
  10. More error checking in beeminder.com/breaks -- we no longer silently fail if you clear the dates and submit them blank. #bugfix
  11. Insidious rare bug with beeminder.com/breaks that would break (bad kind of 'break') weekends-off-enabled goals next time we tried to schedule a weekend. #bugfix
  12. Huge facepalm: UVI#3342 broke Beedroid (one of the "buggy API clients" apparently): was impossible to sync goals after first logging in. Ouch/sorry! #bugfix
  13. Two typo fixes: a comma splice (or was it asyndeton??) in a tagline and a missing word ("in case you'd like try it") in our webcopy. #bugfix
  14. Warn you of your max safety buffer (autoratchet), if you have one, when setting your (initial post-restart) safety buffer while restarting a goal
  15. Facepalm: Previous UVI broke goal restarts altogether! We pretty quickly #bugfix'd it and emailed the 2 people affected.
  16. New hovertext on the word "due" above your graph with a better descriptor of how safe you are / what you have to do to get safe. Also in API as "safesum".
  17. Got rid of the dumb "0.0" in "initial datapoint of 0.0 on the 5th" when creating a goal. It's just zero. Good old "0". A lot behind the scenes there though.
  18. When recommitting after derailing, we'd lose the first future row if you had zero recommit mercy and had future changes scheduled. #bugfix HT @phdoerfler
  19. Yet another fix with removing trailing .0 decimals when stringifying numbers, this time in the dashboard & goal page add-data widgets. #bugfix
  20. If you updated the goal description above the header then updated things in goal settings (eg, fine print), we'd clobber the updated description! #bugfix
  21. We made Megabreak (UVI#3257) official (not that awful name though!). It's now in the main menu and we blogged about it and everything!
  22. In fact, Megabreak is so official (again, the feature, not the name "Megabreak"!) that it has a help doc
  23. Webcopy bug in Do Less section of Megabreak table: Do Less goals give safety buffer in goal units, not days. #bugfix Also blog.beeminder.com/glossary updates!
  24. Zero-lane-width goals (custom and/or new YBHP goals) gave one too few days of mercy when recommitting! #bugfix
  25. Version 5.6 (and 5.6.1 and 5.6.2) of the iOS app!
    • Newly beemindable Apple Health metrics: Saturated fat and Sodium
    • Better, more prosaic, sometimes more concise descriptors of what you have to do by when
    • A search button (originally just if you had >10 goals, which is when it makes sense, but that violated the Anti-Magic Principle so now everyone sees it)
    • We now show your timezone in settings. You can't edit it, mind you, but at least you can see what it's set to!
    • The deltas (how much you have to do to get in the orange/blue/green) are now centered below your graph
    • If you entered invalid credentials, you were bombarded with multiple popups admonishing you, over and over. That was deemed excessive so now you get 1. #bugfix
    • If we really need you to upgrade in the future you'll now see a banner telling you your version is out of date
    • Between 5.6.1 until version 5.6.2 the app wouldn't display your most recent datapoint. Made things seem very broken! #bugfix HT Faire Soule-Reeves
    • Also the sort feature was sort of broken in 5.6 until 5.6.1. Sheepish-face-emoji! #bugfix
    • Finally, a little improvement to the search feature: results stay filtered to your search after you view a goal and go back to the gallery
    • The app now understands that Beeminder days end at the deadline, not necessarily midnight. #bugfix HT Garrison Taylor

2020 May

  1. The SVG URL in the JSON output at beeminder.com/username/goalname.json was broken. #bugfix
  2. Sped up page loads by being smarter (using if-technology!) about not loading redundant snippets of html. Thanks @honeycombio!
  3. Added a (currently stubbish) help page for our Toggl integration + more details on downgrading on the help page for premium subscriptions
  4. Updated our help-wanted page, accidentally broke some links, fixed them again, and added clear update headers so no confusion about (lack of) current openings
  5. Yellow Brick Half-Plane goals were sometimes giving the wrong amount of safety buffer (a lane width had snuck in to some of the YBHP calculations!) #bugfix
  6. The hovertext on graphs would sometimes, for crufty historical reasons, say "Coasting on a currently flat yellow brick road" when that wasn't true. #bugfix
  7. We were sometimes drawing the thick yellow guiding line demarcating your max daily fluctuation (aka maxflux) in the totally wrong place. #bugfix #YBHP
  8. We removed the custom absolute lane width setting, replaced with link to blog post about why we're killing it (also means you can switch to YBHP in 1 step now)
  9. Custom lane width (abslnw/lanewidth) out of the API & updated the API docs. And replaed mention of it in the help docs with Yellow Brick Half-Plane instead.
  10. More help docs updates: lots of copy improvements to the page on Whittle Down goals and a new placeholder page for Yellow Brick Half-Plane
  11. Version 5.6.3 of the iOS app fixed a bug where the refresh button didn't update the blurb saying how safe you are if you'd added data elsewhere. #bugfix
  12. The delta_text API output is now correct for Yellow Brick Half-Plane. This should also fix the multicolored numbers below the graph in the iOS app. #bugfix
  13. Also those multicolored numbers are now conservarounded correctly to the user-specified precision
  14. We converted all existing absolute-lane-width (abslnw) goals to Yellow Brick Half-Plane and emailed everyone affected. Lanes delenda est! See UVI#3385
  15. Newly created weightloss goals are now Yellow Brick Half-Plane! For normal users that just means they look a bit different, w/ a bright red line you can't cross
  16. And everyone restarting any existing frozen/archived weight-loss goal, those will also be Yellow Brick Half-Plane style now!
  17. There's now a thin red line visually highlighting the critical edge of your yellow brick road. Useful in and of itself but especially for converting to YBHP!
  18. Pledge settings now included in the Commitment tab instead of just a button to open a popup to edit them (like when you click the pledge above the graph)
  19. For old users who managed to create a goal without a payment method, the Pledge section of the Commitment tab is now clear about that. #antimagic
  20. The "email me my full payment history" (for users with more than 50 payments) button was broken since UVI#3321. #bugfix #regression
  21. Our login-via-Facebook option broke so we fixed it, which involved appeasing the Facebook gods with a new privacy policy link. #bugfix
  22. Made the headers of various pages ("pricing", "FAQ", "Team", etc) consistently styled (all-caps, black-on-yellow). #css
  23. Date pickers on break settings & in road dial now have correct minimum date & don't let you pick a date that's too early, ie, inside akrasia horizon #bugfix
  24. We added meta-data to our +/- stepper buttons so screen readers can interpret them, thus making Beeminder *slightly* more accessible to the visually impaired
  25. Similarly for our tabs below the graph, which should now, we believe, be more comprehensible to screen readers / non-visual navigation
  26. Fixed a bug where sometimes going to your normal goal URL didn't open the last bottom tab you had open. #bugfix
  27. And when following a direct/anchor link, the page automatically scrolls past the graph to the tab (but no magic scrolling when just clicking around)
  28. Anchor links (the "#stuff" part at the end of the URL) can also link to subsections of tabs (and does the auto-scrolling), eg, bmndr.com/d/mass#goal-safety
  29. Updates, clarifications, adding links, and other copyediting to 4 different help doc articles!
  30. Another batch of edits to help doc articles, including removing things that have become wrong

2020 June

  1. And a new help page for Pessimistic Presumptive Reports (PPRs)! These are all thanks to @shanaqui!
  2. And one more #mini since we kinda bundled a bunch of these help docs UVIs into 3 entries: the Do-Less help page now links to the PPR help page.
  3. We made the graph page load a little smoother by leaving room for the graph (so it doesn't have to rerender/reflow when the graph renders)
  4. Firefox (et al?) would change data in the data tab. Browser saw a partially completed form so it was 'helpfully' 'remembering' previous values. #bugfix
  5. The red line demarcating the critical edge of the road (UVI#3394) now always visually matches the road and is always parallel to the centerline. #bugfix #YBHP
  6. We made some graphs with very shallow roads much faster to generate (they were trying to generate an unwieldy number of isolines). #YBHP
  7. Some YBHP graphs didn't show the thin yellow lines (or only would for part of the half-plane). Now we shade the whole good side yellow for such goals! #bugfix
  8. Now conservatively infer earlier end date (aka dayfloor) if road dialed with rate and value that implies end date not on a day boundary. #bugfix
  9. All new goals are Yellow Brick Half-Plane! We couldn't turn back now even if we wanted to! #YBHP
  10. Weight-loss goals and other goals that use a "max daily fluctuation" are now less cluttered, not showing the orange/blue/green lines
  11. We've now converted the first significant chunk of goals to Yellow Brick Half-Plane, namely, all daily beemail subscribers!
  12. When starting a new goal after its deadline and before midnight, the road would start technically-yesterday giving you 1 less initial safe day. #bugfix
  13. But that broke things for certain timezones (HT @lady_alys of Brisbane!) yielding correct road-start date but data in the future! #bugfix
  14. Twice, doing #YBHP conversions broke tons of goals that we painstakingly restored & emailed everyone affected. #bugfix
  15. As part of the switch to Yellow Brick Half-Plane, new goals by default start with just one day of safety buffer instead of two
  16. Version 5.6.4 of the iOS app!
    • For datapoints shown like "1,234" if you used the stepper or edited it, it would change the comma to a decimal point! #bugfix
    • If you delete a datapoint, the datapoint now immediately disappears from the list of datapoints under the graph. #bugfix
    • Similarly, if you edit a datapoint, it immediately updates under the graph, as does the value in the data entry field, to reflect the edit. #bugfix
    • The intermittent blank white screen on startup is, we believe, vanquished for good. #bugfix
    • If the app fails to fetch the latest from Beeminder, there's no longer an alert ("Error fetching goals") waiting for you when you return to the app.
    • We now prompt you to turn on notifications when switching to a new device or on a reinstall of the app, if necessary
  17. Webcopy/#css changes in the "From the blog" section of the front page, to not seem like the "Guaranteed Fresh" link is to the blog itself. HT @slatestarcodex
  18. Also updated that link to point to the newer blog post, and more webcopy and hovertext updates there
  19. Webcopy tweaks for consistency: refer to ratcheting as manually reducing and autoratchet as automatically trimming your safety buffer. HT @philiphellyer
  20. UVI#3389 had an off-by-one error. Now the 3 colored numbers under the graph in the iOS app (delta_text in the API) are right for real. #bugfix HT @faireness
  21. Added some tolerance to some floating point comparisons in Beebrain because we found a few cases of a dot exactly on the road that was red (!). #bugfix
  22. We converted the last existing goal to Yellow Brick Half-Plane and removed the checkbox to opt out so there's now literally no such thing as non-YBHP
  23. We have a new @beemuvi avatar (also visible here on the changelog) plus we've made custom images for our last 6 blog posts because we're that fancy
  24. UVI#3419 & UVI#3420 introduced a bug where you couldn't create new goals if your default goal deadline was before 9:30am. #bugfix
  25. If your Beeminder API client had a registered post-deauth-callback URL, we were failing to alert you if there was an error trying to post to your URL. #bugfix
  26. The blurb about how much safety buffer you have (aka safesum) was saying, eg, "safe for 1 day" on already-ended goals. #bugfix
  27. The blurb about how much safety buffer you have (aka safesum) had spurious extra spaces if goal units was blank. #bugfix
  28. And another spurious space in safesum, this time before the due-time in cases where the hours in the time-of-day had 1 digit. #bugfix
  29. Since around YBHP transition, do-less goals were being drawn with a thick yellow line for maxflux instead of the normal colored lines. #bugfix

2020 July

  1. The help doc for URLminder now clarifies about sharable links vs public docs, points to the blog post which has new screenshots for Google Docs & Dropbox
  2. In the iOS app, repeated notifications for the same goal no longer pile up as separate notifications -- the existing notification just updates itself. Phew!
  3. Added missing hovertext for lead days, alertstart, & deadline so UI is consistent in both places you find reminder settings (goal page & reminders page)
  4. Also added hovertext restoring some webcopy describing early bird vs nightowl deadlines (probably doesn't suffice to only have as a tooltip!). #regression
  5. "Load all datapoints" link now suppressed (instead of giving a confusing error) if less than a page's worth of data to load. #bugfix
  6. TaskRatchet integration is official and is now featured on the front page!
  7. "Sort by date entered" only worked correctly before loading/adding additional datapoints (used datapoints' dates after that). #bugfix HT Brent Yorgey
  8. Added a fancy TaskRatchet integration landing page: beeminder.com/taskratchet
  9. Changed our privacy policy, can dox you at will now; j/k, boring stuff like new anchor link, removing reference to fitness expert. See bottom of bmndr.co/terms
  10. Multiple other privacy policy tweaks too boring to count as UVIs but we'll count the new canonical URL, beeminder.com/terms, and the better changelog
  11. Ok, one more little one: both Terms and Privacy are in the site footer now. Google's persnicketiness was the impetus for all this, btw.
  12. If for whatever rare reason could no longer send updates to ur iOS device we'd give ourselves (not you) a 500 error & silently fail to update ur graph #bugfix
  13. None of the three types of calories goals for our @fitbit integration were showing the option for customizing initial safety buffer. Facepalm. #bugfix
  14. While we were at it, better distinguished the 3 @fitbit calories goal types: "Calories burned (more)", "Calories eaten (less)", "Net Calories"
  15. Do-less @rescuetime goals are now consistent with manual do-less goals in defaulting "start with extra leeway (safety buffer)" to checked
  16. Changed the default (i.e., no extra buffer requested) for do-less goals to be 1 day's worth of buffer, like do-more goals.
  17. The hovertext on the graph thumbnails are now more concise and don't mention the archaic notions of lanes and centerlines
  18. Another dumb floating point comparison bug meant some rare cases of a datapoint's dot showing red on successfully completed goal. #bugfix HT Mary
  19. Changed all the email/webcopy to say things like "you're in the orange" instead of "you're in the wrong lane" and "you're safe" instead of "on the road"
  20. Also changed references to "centerline" to refer to "the bright line" everywhere in the web and email copy
  21. Purged mentions of "lanes" and "centerlines" and "critical edge" from our help docs. Viva la Yellow Brick Half-Plane!
  22. If you had non-ascii characters in your @Runkeeper username/profile, we'd fail when you tried to add Runkeeper authorization to your Beeminder account. #bugfix
  23. The previous fix for character encoding in Runkeeper's oauth caused a bug in our Slack oauth (for the Beeminder Slack bot, and Slack alerts)! #bugfix
  24. "Retroratchet" is now just "ratchet". Updated the site copy, help docs, even the glossary!
  25. When support replied to the email bot on your behalf we'd spam you about adding data from an "unknown" email address. We've now finally whitelisted ourselves.
  26. We officially added safebuf, the integer number of days of safety buffer (not just the losedate timestamp), to the API
  27. Our Misfit autodata integration was sometimes sending us duplicate datapoints. Our fault for not being robust to that; now we are! #bugfix
  28. We edited all the copy in the API docs to not talk about lanes and centerlines anymore and added instructions for inferring color from the safebuf parameter
  29. At some point we added some metadata to datapoints and we missed at least one and it caused at least one person's graph to give a 500 error. #bugfix
  30. Letting you interact with your newly created Fitbit goal before it finished importing your Fitbit data could yield insta-derails or other wrongness. #bugfix
  31. The confirmation dialog for deleting datapoints would sometimes say "[undefined]" instead of the actual datapoint. #bugfix HT @phdoerfler & zzq
  32. Revamped the graph legend! New images, new words, new things that weren't documented like colored guidelines and the pink zone!
  33. Also the legend images are higher resolution. We should probably be milking the legend revamp for several more UVIs!
  34. Also a copy fix in the legend: "above this bright red line" to "good side of this bright red line"

2020 August

  1. The pink shading & the grayed-out lines denoting the region your road can't intersect (the akrasia horizon constraint) were sometimes mismatched. #bugfix
  2. A related #bugfix in the road editor: when you dragged the yellow brick road, the pink shading would not stay put, defeating the point
  3. We broke the animated watermarks in road.beeminder.com/tutorial at some point (probably around UVI#3287) and have now fixed them again. #bugfix
  4. HTML-like characters (like less-than signs) in goal units or the y-axis label don't break things now. #bugfix
  5. The isolines (yellow guiding lines indicating different amounts of buffer) sometimes leaked onto the bad side of the yellow brick road! #bugfix
  6. We now shade yellow any region of your graph in which you have an infinite amount of safety buffer (like having enough buffer to take you to the goal date)
  7. The new "shade if infinitely safe" feature included multiple fixes like always drawing enough yellow guiding lines (aka isolines). #bugfix
  8. And another #bugfix / improvement in deciding the density of the isolines so they're hopefully never so dense as to obscure watermarks, etc
  9. Graph generation is now measurably faster, especially for rare graphs with an obscene number of yellow brick road segments
  10. We rewrote the FAQ item about so-called "90% Variance" to make it comport with the Yellow Brick Half-Plane New World Order
  11. Beeminder's Boss as a Service -- bossasaservice.life -- integration is Extra Official and is featured on the front page!
  12. We also made a landing page, with help from @Manasvinik, for our Boss as a Service integration: beeminder.com/baas
  13. If your pagination parameter 'per' got to the API as a string, we gave a 500 error. Now we're robust to that and magically convert it. Oof. #bugfix
  14. Better error handling for the 'roadall' parameter in the API. We were giving a 500 error instead of an informative error for some nonsensical roads. #bugfix
  15. The bright red line on the graph no longer extends to the left of the goal start date or to the right of the goal end date. It was confusing when it did!
  16. Small visual improvements like crisper bright red line on some graphs and subtler shading of the pink zone (aka akrasia horizon constrained zone)
  17. Fixed some spurious half-plane shading, as in wrongly shading the whole good side of the road yellow. #bugfix
  18. Yellow guidelines (aka isolines, especially helpful to make obvious what the good side of the road is) are now shown during visual editing of the road!
  19. In the visual road editor, the road is shown as a dashed line past the goal end date and before the goal start date so you can click to extend it
  20. When editing with the visual road editor, the previous position of the bright red line is shown as a dashed red line instead of orange, which made no sense
  21. When editing the road with the visual editor, violating the akrasia horizon constraint makes the pink zone get brighter
  22. Also when editing, we made the bright line red line always be red instead of black while editing and turning red when violating the akrasia horizon constraint
  23. And then to make sure it was obvious enough we made the whole graph have a dashed red outline and show a message when the road crosses the pink zone
  24. Better choices about how dense to make the yellow guiding lines (aka isolines) and fixed some bugs with dynamic display as you visually edit the road. #bugfix
  25. The pink rosy line no longer extends before the start of the yellow brick road. It was messed up when it tried to. #bugfix
  26. Fixed a rare bug where the isolines for a do-less goal could intersect each other and be all messed up. #bugfix
  27. Improved the animations in road.beeminder.com/tutorial and updated the copy
  28. When you visited another user's Gmail goal it would try to fetch your own labels (yielded surprising errors sometimes, plus slowness). #bugfix
  29. We removed all the legacy Gmail settings from goal settings that we had due to the labels migration (see UVI#3235)
  30. When showing a message after successfully authenticating to a third-party service, we now always show the actual capitalized name, not our internal code name
  31. In Gmail goal creation, we dynamically adjust the headline based on chosen goal parameters. "I pledge to get my ___ down to...". So slick!
  32. Also the up/down stepper for what you're committing to has its label change dynamically: 'read messages' vs 'messages' vs 'unread messages'
  33. Kind of a bug fix or UI improvement: we disable the Gmail label dropdown in your goal settings before we've fetched your labels
  34. Also we updated the copy on GmailZero landing page, updated the link to point to the help page instead of the old blog post, etc.
  35. Copy/typographical tweaks in goal settings: consistent periods/colons and a hovertext improvement (maybe also more GmailZero cleanup a la UVI#3504)
  36. Help docs updates! Extra FAQ about PPRs; "How do I delete a goal?" page mentions that archiving takes 7 days; clarification on starting pledges
  37. Version 5.7 of the iOS app!
    • There's now a cancel button in the search bar to make it easier to go back to showing all goals
    • Graph images on the gallery screen no longer flicker when the screen is first loaded or when you pull to refresh; more responsive placeholder images. #bugfix
    • You can now see more up to 3 goals in the Today widget (click the expandy icon to see more than one)
    • Additional images and tweaks to make dark mode look better
    • Better sorting of goals to show which can be linked to Apple Health (sections: “Manual”, “Connected to Apple Health”, “Other Autodata Goals”)
    • Also w/ Apple Health: instructions blurb, pull-to-refresh, fixed scrolling glitch on goal screen for Apple Health goals, #bugfix w/ disappearing checkmark
    • Visual tweaks: Added padding around the Infinibee in the app icon, thumbnail placeholder image for Today Widget
    • The app badge now goes away if you log out of Beeminder + Sorting by recent data in the gallery now actually does so. #bugfix
    • We no longer remind you to unlock your phone for health data if the app is in foreground
    • Prettier log-in / sign-up screen with better errors
    • You can now view/edit a goal in a webview and then hit “done” to go back to the normal app but never actually leave the app
    • Same for creating a new goal! This piggybacks on the website but very seamlessly so users’ perspective is you can create goals in the app now!
    • Less crashing! At least we fixed one particular kind of crash. #bugfix
    • Negative UVI: no more 3rd-party login (long Apple-y story)
    • Improvements to the open-source code repository itself, like elaborating on contributor guidelines
  38. Critical #bugfix in our Twitter integration: we finally caught up with the new 280-character limit and hashtags in the 2nd half of tweets are picked up now
  39. Previous UVI broke reminders (for ~24 hours) for Twitter goals! meta #bugfix sheepish-emoji & doubly-sheepish-emoji

2020 September

  1. We now strip html out of user-entered stuff when showing error messages (and fixed a bug that that #bugfix caused with showing our own html!)
  2. We now spell "autodata" consistently (no space or hyphen) and fixed a sorta-typo while we were at it ("swap data source" → "swap data sources")
  3. We chopped out the parts of the front page video that are no longer true (mainly due to commitwall, UVI#2904)
  4. Several tweaks and cleanup of the visual road editor UI: added space, tightened copy, changed title, moved credits to the README, etc
  5. 7 more visual road editor UI tweaks: better errorcopy, instructions, descriptions of UI elements, spacing, button text, etc
  6. Since the previous UVI was 7-in-1 (!), here's sorta-but-not-really negative UVI: yanked the checkboxes to turn off showing all data and the context graph
  7. A bunch of minor webcopy changes like changing "Paypal" to "PayPal", fixing a tiny typo on the Complice landing page, and general prose-tightening
  8. Slightly bigger copy change: rephrased all instances of things like "...then Beeminder will be free for you forever" to keeping it goal-specific
  9. And still bigger copy changes: fixed cases where we still wrongly said you didn't have to add a credit card till the first time you derailed
  10. And then more minor copy changes like adding hovertext to more links and intentional vagueness about if you can start at $0
  11. Tiny typo (huge thanks to @Mcarthur_Joe for spotting it!): we had a rogue space in the link text at the bottom of the Data tab. #bugfix
  12. The blog is responsive / mobile-friendly now! HT @skalinchuk
  13. Red error banner now says "Could not update avatar" if you click "update avatar" button w/o first uploading an image (used to give a 500 error). #bugfix
  14. Some red error messages were getting swallowed up by the server, resulting in some forms having silent failures when there was an error! Serious #bugfix
  15. We now always prepend "Legacy" to the names of the legacy premium plans. #mini
  16. Purged all mention of "road width". Specifically: in the FAQ, in the premium FAQ (buried in hovertext), and in the "Beeminder Standard Contract".
  17. On weight loss graphs we now show a dotted yellow line offset from the bright red line (yellow brick road) by an amount equal to the 90% Variance
  18. We added a cheesy captcha to our contact page to thwart an influx of nasty spambots. Also fixed some dashes to be proper em dashes. #mini
  19. Ratcheting (reducing safety buffer on) a goal no longer changes the dates of future changes in your yellow brick road!
  20. That ratchet revamp fixes lots of things, like auto-ratchet (capping your safety buffer) plays nice with weekends-off and scheduled breaks now!
  21. If you ratchet a goal with a final road segment defined in terms of going at some rate till hitting some value, it actually works consistently. #bugfix
  22. We no longer let you ratchet a road with upcoming nonmonotonicities (non-monotone roads can lead to insta-derails and other surprises when ratcheting)

2020 October

  1. Relatedly, if you have an upcoming flat spot in your yellow brick road, the interface warns you, "you may not be able to remove all of your buffer"
  2. Ratchet error messages used to say, e.g., "Number of _days_ can't be less than zero"; now says "units" when appropriate and "days" when appropriate. #bugfix
  3. Do-less and similar goals now include the actual goal units (not just "units") in the ratchet form, e.g., "you have N units (cookies) of buffer on this goal"
  4. Fixed some inconsistencies in ratchet error messages and how we quote hard caps on rationing goals, plus a wording tweak. #bugfix
  5. We now update the text box for do-less (and rationing) ratchets after ratcheting (we weren't updating the default value that's in the box before)
  6. Also we now do a validation check on the lower & upper limit for do-less ratcheting and don't allow you to submit values outside the range
  7. If you ratcheted away some buffer and then did so again without reloading the page, we'd let you try to ratchet to now-impossible amounts. #bugfix
  8. All those ratchet changes made some goal pages reeeally slow to load and even yielded some 500-errors on some archived/frozen/etc goals. Now all fixed! #bugfix
  9. Nice visual indicator when you're ratcheting away a flat spot as opposed to shifting your road up or down (usually up, for do-more)
  10. Also added lightning bolts to the "ratchet" button, brought back the briefly missing stepper buttons, and clarified "This will reduce the length of your break"
  11. Ratchet forms now update after doing a ratchet (like changing "you have an upcoming flat spot" to "you are on a flat spot") without needing a page reload
  12. Added 9 new taglines to the front page rotation, like "Live deliberately" (a Thoreau reference) and "Mr Hyde, meet Dr Jekyll's fist" (a Stevenson reference)
  13. How mean are we? We ended an experiment that randomly gave extra free goals to people and yanked the "discount please" button on the premium page.
  14. Insult to injury: The more-free-goals button grays out after several clicks (and changed/added webcopy around it). Even worse: made lifetime plans expensiver!
  15. Fixed a rare weirdness with drawing the purple steppy line on the graph: now it always starts from your first entered datapoint. HT @PhilipHellyer
  16. Sleep As Android now uses your timezone properly in automatic datapoint comments; relatedly: rare #bugfix with missing some sleep events on initial data fetch
  17. Fixed a rare-ish but blatant, baneful, borderline-bum-steer bug where in some timezones we'd mix up "tomorrow" and "today" in quoting your deadline! #bugfix
  18. Lots of (intended to be temporary) changes to the signup page which don't count as improvements but one does: being able to add a credit card as part of signup
  19. We now remind you of what payment method you have on file (and about how Beeminder charges you for going off track) every time you create a goal
  20. The precision (aka quantum) setting is now a dropdown (and never shows scientific notation) so that's way less confusing
  21. Minor things: copy tweak to refer to visual road editor as a prototype, and paired down the number of frequency options in the discount slider
  22. #bugfix in ratchet while rushing to publish the blog post about it: we miscalculated the road value of some segments & didn't allow ratchet when we should have
  23. Beedroid version 3.3.1! A relatively elaborate update to the Beeminder Android app!
    • Primarily: Pretty pervasive improvements to notifications. Beemergency notifications now consistently created when not already there / updated when they are.
    • Also with notifications: Separate notification channel for "goal is now safe", not creating new notifications just because something about the goal changed
    • More with notifications: Always making noise or vibrating or whatever it's allowed to do for beemergency notifications on the zeno schedule
    • Other notifications improvements and #bugfix's, like fixing some bum-steer bugs that sometimes prevented notifications from appearing
    • Kinda big for Beedroid: The due-by table! It tells you exactly how much you have to do on each upcoming day. It's in the slidey drawer on the graph image.
    • Better indications of how much safety buffer you have (aka safesum). Also we show goal units in more places.
    • Fixed abbreviations for amounts of time, got rid of obsolete "panic days" setting and references to "lanes", smarter about when to show your username
    • Fixed a rare syncing issue, fixed some crashes, and a rare weirdness with widgets. And a Tasker integration bug. #bugfix
    • The "send feedback" interface is now clearer / less confusing that it's generating an email for you to send to us
    • And finally, we now redirect you to the website to sign up while the free plan is full (see UVI#3568)

2020 November

  1. BeemiOS version 5.8! New hotness (but mostly incremental improvements and bugfixes) in the Beeminder iOS app!
    • Better Apple Health integration instructions, link for forgotten password, pull-to-refresh for goals, more consistent autodata datapoint comments
    • Other #bugfix's like missing settings gear icon on older iOSes, showing duplicate datapoints, a crash, number on app badge wrongly shown after logging out
    • That was a lot of UVIs packed into those couple entries! Also we no longer give a bogus error if you try to sign up while Beeminder's free plan is full!
    • Also fixed a weird black outline on the app icon and made countdowns (and maybe other things) on the goal screen appear more snappily
  2. We rewrote the confirmation email and banner message to be extra clear that you have to confirm your email when signing up for 'keep abreast of the buzz'
  3. We purged all HTTP links everywhere in webcopy and emailcopy. Everything should be HTTPS now. Also some changes to beeminder.com/contract
  4. Fixed a 500 error on signup (didn't actually prevent signups); no longer require email confirmation if already confirmed for 'keep abreast of the buzz' #bugfix
  5. Also no more need to confirm your email if you sign up via Google or something else that gives us a confirmed email address; now we send a welcome email instead
  6. Removed some no-longer-relevant warnings from the interface about how scheduled breaks and ratcheting don't play nice together. Now they do!
  7. Embarrassingly we broke the "Goals that people have been beeminding" tabs on bmndr.com/overview months ago! #bugfix HT @GigusDev
  8. Now consistent with "real time" as the noun, "real-time" as the adjective. Also a case-sensitivity #bugfix with the waitlist though that's moot now!
  9. As part of reopening the free plan (kinda also a UVI), we now require a payment method in order to sign up and added a "Why?" popup to justify it
  10. The ratchet UI now warns if your road is infinitely flat (ratcheting makes no sense then), pointing you to the road dial to make it not be so you can ratchet
  11. Beedroid (3.3.2) now aims you at the website to sign up; also the API gives a clearer message in rejecting signup via the API

2020 December

  1. Fixed the too-long placeholder text for goalname in goal creation and are now consistent about "goalname" instead of "goal name". HT Cantor Soule-Reeves
  2. Fixed and rewrote the tooltips for the due-by table, making it make sense for every goal type. HT Uluc Saranli. Also improved road.beeminder.com/tutorial copy.
  3. Our @integromat integration is official! Made a landing page for it and added it to our front page gallery. beeminder.com/integromat
  4. Important #bugfix in the email bot parser to be robust to some weird quoting that the Fastmail email client was doing. HT Andy Brett
  5. Added Finnish and Scottish Gaelic to our Duolingo autodata integration! Also added more direct links to the integration on our Integromat landing page.
  6. Dropped the grayed-out checkbox and webcopy about the yellow brick half-plane migration; so lanes are truly but a distant memory now. Also fixed aggday=mode!
  7. We removed the new pledge schedule :gasp-emoji: Back to just $0, $5, $10, $30, $90, $270, $810, $2430 for now. Also fixed erroneous $0 and $1 pledge caps!
  8. Added a bunch of explanation about weight loss goals to our help docs. help.beeminder.com/article/96-weight-gain-loss-goals
  9. An obscure rounding bug in Beebrain meant if you were right on the edge *and your value was a negative number* you could erroneously derail. #bugfix
  10. We got a marked (and provable thanks to @StatusCake) performance improvement (and downtime reduction!) by migrating from @linode DNS to AWS Route53
  11. All our alias domains redirect properly with every combination of www vs not, https vs not, subdomains, etc. Eg, blog.bmndr.co/nerds works now.
  12. Error banners were persisting thru the next page load; you'd sometimes see an error about access to an autodata source or something in the wrong place #bugfix
  13. Recommits that were close to the end date of the goal would result in a hideous/brick-wall "road rows out of order" error. #bugfix
  14. Goal-archiving UI-copy! Disambiguated canceling the goal vs canceling the archive, linked to the archive page when mentioning it, linked to help docs.
  15. Also added a parenthetical to the "since this goal is less than a week old" copy to further explain, fleshed out some other copy, fixed some commas, etc
  16. Rewrote the deadline snoozing email copy: it's years old, not "new", and it now solicits feedback about possible changes to deadline snoozing
  17. We were ignoring the starting buffer you requested on new Twitter goals and just always giving you two days! Pretty egregious #bugfix
  18. The numbers at the bottom of widgets from beeminder.com/widgets (orange/blue/green) were wrong since we got rid of lanes & the hovertext was broken #bugfix
  19. Fixed one bug (perhaps not the biggest bug) with the skatesum aggday option and made the trimmed mean option work again, not that anyone uses that. #bugfix
  20. Deconfused the UI-copy for changing default payment type from PayPal to Credit Card; also made it not submit the form if you didn't actually change anything
  21. Fixed up the default pledge cap section of Account Settings; was still referencing 'New Schedule' vs 'Old Schedule' (there is now only old schedge)
  22. The -/+ buttons on pledge steppers were always starting out enabled, even if they were at an upper or lower limit and ought to be disabled. #bugfix

2021 January

  1. Dumb rare bank-error-in-your-favor bug with failed PayPal charges; we would sometimes fail to retry them all! #bugfix
  2. We bumped up the price of Beemium to $40/mo (if you don't already have it) and stopped selling the lifetime option for all plans
  3. As probably just an easter-eggy new year's promotion, if that's not an oxymoron, the more-free-goals-please button now works for everyone on the free plan
  4. We were long experimenting with what the default pledge cap was (i.e., running bucket tests); now it's a consistent $270 (just the default, mind)
  5. We got all the help docs caught up to the fact that we don't sell lifetime plans anymore
  6. Beeminder merch! beeminder.com/merch
  7. When signing up, we were telling you your email address was invalid and not letting you hit submit if you had any space after your email addres. Silly! #bugfix
  8. We weren't charging if you derailed a goal & then archived before the charge went thru! Now we charge pending charges as part of the archive process. #bugfix
  9. Rejargoning! We reintroduced the terms 'road dial', 'ratchet', and 'auto-ratchet' to the UI and purged 'max safe days' in favor of 'safety buffer cap'
  10. Also we renamed 'mercy days', which didn't make sense since generalizing from the 'no-mercy derails' setting, to 'post-derail respite'
  11. And we added various blurbs to explain and clarify the rejargoned UI so on net we think it's actually more clear for newbees and normal humans
  12. Yet more cleanup and tweaks as part of the rejargoning: changing button text, removing field labels that the blurbs made redundant, etc
  13. Clarified that the fluctuation buffer is in goal units and renamed the 'weasel insurance' section to 'weasel-proofing'
  14. Improvements to beeminder.com/breaks -- condensed the column headers so they fit better and explained them better at the top of the page
  15. Also on that page, added hovertext on the links to the help docs with short versions of the explanations; + more copyediting like purging of 'max safe days'
  16. The rejargoning (specifically the new explanatory blurbs) managed to break the ratchet UI, causing duplicated lines to appear when you ratcheted. #bugfix
  17. We'd missed some instances of renaming 'mercy' to '(post-derail) respite': errory copy, webcopy in default goal settings, etc
  18. We now allow single-character hashtags; also we now say 'Apple Health' rather than just 'Apple' on goals with Apple Health autodata
  19. Significant decrease in the file sizes of the SVG graphs (about half, we think) and maybe a slight speedup in graph regeneration time too!
  20. All our bold fonts were appearing as just blurry in Google Chrome (apparently a widespread problem with Chrome). #bugfix
  21. Long-intended change to the free plan: you get 3 goals in your gallery/dashboard, not 3 ever-created goals. You can archive a goal to free up another slot.
  22. The 3-nonarchived change to the free plan also means we now show the paywall if you try to unarchive a goal when you already have 3 in your gallery
  23. If your payment method failed, you can't restart goals. Also some copyedits and link to blog.bmndr.co/commitwall around missing payment method.
  24. Copyedits on the paywall page and a #bugfix with displaying how many goals you've used up (it's goals in your gallery, not total created)
  25. Paywall now better explains reasons you may get extra goals on the free plan, + copy/style tweaks to the more-free-goals button (+ ended new year's promotion)
  26. Fixed a dumb double-redirect in legacy URLs, made a proper error if you try to hit a goal's restart page when it's already active, + obscure 500-error #bugfix
  27. One more tiny one: we don't let you try to rescale datapoints on a frozen goal (it would give you an infinitely spinning bee if you tried). #bugfix
  28. Lighter yellow shading of infinitely safe regions of the graph so it's distinct from the "yellow brick" danger zone next to the bright red line
  29. Pretty big copyediting pass on bmndr.co/faq with new links, nixing dead links, rewordings, clarifications
  30. If for some reason your bright red line is flat from beginning to end, the percent complete by value now says 0% if you're on the wrong side of it, else 100%
  31. Subtle #bugfix with isolines (the yellow lines parallel to the bright red line showing how much safety buffer you have) that made some be missing sometimes
  32. Kind of obscure #bugfix to close a loophole that let you drop your pledge below $5 via the API for non-Beemium users
  33. BeemiOS 5.9: Removed the "Unlock your phone to sync your Health data with Beeminder" notifications, which were often delivered nonsensically

2021 February

  1. Visual Road Editor redesign! road.beeminder.com
    • It's all pretty and responsive (ie, much more mobile-friendly) and has a Beeminder banner <3
    • Also there's a new Sandbox tab for experimenting with how your road will hypothetically change as you add future datapoints
    • Plus there are tabs below the graph that replicate some of the functionality on Beeminder proper, including adding data and viewing datapoints
  2. Fixes and tweaks to the visual road editor, including top-posting the datapoints and tweaking the CSS to better fit different screen sizes
  3. When you click Apple Health when creating a new goal, we now send you to the help page for instructions instead of our ancient blog post
  4. When creating a Project Euler goal, we now give a nice error message and a tip about unlisted profiles if we can't find your username
  5. We also added a nice banner message when we do succeed in fetching your Project Euler progress when creating a goal, eg, "Found 99 problems completed"
  6. In the visual road editor, we replaced the "fixed slopes" and "fixed intervals" checkboxes with just one "propagate forward" checkbox
  7. Fixed a regression that leaked private goalnames & descriptions of archived goals (!) and relatedly broke and re-fixed alphabetizing of archived goals #bugfix
  8. The recent Project Euler improvements broke goal creation for those who hadn't yet solved any Project Euler problems! #bugfix
  9. The API's Datapoints endpoint briefly gave a 500 error when trying to paginate. This also broke our old bmndr.co/fatcyclist page. #bugfix
  10. You can now to go beeminder.com/USERNAME/GOALNAME.svg to get the latest SVG of your graph (or any public graph). So crisp!
  11. Related #bugfix: beeminder.com/USERNAME/GOALNAME.png and .svg now work even if there happens to be a - or a _ in the goalname
  12. Beedroid version 4.0.0! Headliner is revamped, more reliable syncing!
    • We were accidentally requiring 'goal title' when changing goal notifications #bugfix (Also we renamed that to 'goal description' for consistency)
    • If you have a widget for a goal that doesn't exist anymore, it gives you a helpful error instead of stale data, + other robustification / #bugfix's w/ widgets
    • Beedroid now requires fewer permissions. And another little #bugfix: Beedroid no longer reports you are offline if you are using certain VPNs
    • You can now search for a goal where the goalname is a prefix of another goalname (like 'work' when there's also 'worktime' or whatever) #bugfix
    • We no longer show your username in the goal search dropdown if (as is almost always the case) there's only one user logged in
    • Things are a little faster and cleaner, we got rid of unneeded settings ('sync frequency' and 'panic buffer'), and added better diagnostics
  13. Oops! Beedroid 4.0.1 fixed a flurry of transient popups that annoyingly appeared for some users after upgrading to 4.0.0! #bugfix
  14. Fixed a malformed sentence on beeminder.com/premium and generally made the intro copy better for non-premium users
  15. Commitwall means never having to say you're sorry, er, never having to say "since you've added a credit card" (in the new goal email)

2021 March

  1. We removed the old "nomercy" field from the API docs since that hasn't been a thing since UVI#2734; also fixed a broken link to RapidAPI
  2. If you're learning a language in @clozemaster *from* multiple different languages, we were only counting your points from one of them. #bugfix
  3. There were some missing spaces in the blog blurb on the front page; #bugfix on the script that generates those. Also fixed date and author line getting merged.
  4. We were accidentally eliding your avatar / 'About You' blurb / URL on your gallery when you were logged in (it was only shown when you were logged out). #bugfix
  5. In the do-less section of the megabreak page we were giving safe days but calling it a hard cap, which was all wrong (now we give actual hard cap). #bugfix
  6. We added Simone Walters, part-time support workerbee, to our About Us page
  7. Also Robin Goins, our most recent addition to the support team (& Batman sidekick?), is listed, and we finally removed Jon who sadly left us a while ago
  8. Nitpicky punctuation fix in UI copy (HT zzq) and a #bugfix where we'd say things like 'a 15 days' after ratcheting and before refreshing the page (HT krugerk)
  9. The error banners on the megabreak page are now the right color (red rather than yellow or blue). #css
  10. Better error checking on the megabreak page: not allowing a negative safety buffer cap since apparently someone tried to do that? #bugfix
  11. Also if you set an autoratchet (safety buffer cap) on megabreak, you couldn't unset it. #bugfix
  12. Restarting an ancient GmailZero goal will now result in a helpful error message, alerting you to update your Gmail settings. #bugfix
  13. If you set tmin (aka x-min) to be in the future (via the API), we now give an error (on the graph) instead of silently failing to update the graph. #bugfix
  14. The email bot was breaking due to iOS inserting some dumb unprintable (in the literal sense) character, ''. #bugfix HT Mary Renaud
  15. Turns out UVI#3155 (bad dates on Todoist tasks) was incomplete and some cases were still slipping through. We're pretty sure we got them all now! #bugfix
  16. UVI#3682 introduced a bug where we'd double up the buffer number after a goal refresh (eg, "You have 7 7 days of buffer"). #bugfix
  17. Improvements to tags (UVI#2080)! (HT zzq AKA Benjamin Fox) Goals now sorted by goalname on bmndr.co/tags and you can add multiple tags at once (space separated)
  18. Another tags improvement from zzq: Fancy autocomplete (for the first tag typed at least; see previous UVI) based on existing tags
  19. We've standardised on American ſpelling in the webcopy. As dreev colourfully put it, 'this is America, dammit!'
  20. We added the list of tags to the API output (and documented it at api.beeminder.com). Thanks to zzq again!
  21. Added tmin and tmax (AKA x-min and x-max in the UI) to the API output / documented them as goal parameters in the API docs
  22. Further improvement on UVI#3687: we don't let you set a bad tmin (x-min) in the first place, via the API or otherwise (UVI#2170 may've covered the 'otherwise')
  23. If you had PayPal for your payment method, there was no account listed on the Payment Method step of goal creation. Now there is. Stupid PayPal grumble grumble.
  24. We now trim spaces from goalnames in goal creation so we don't have to give annoying errors about trailing whitespace (apparently especially annoying on iOS)
  25. Better error handling in our Trello autodata integration: standard blue banner like other integrations instead of 'there's an error' in the datapoint comment
  26. Also the Trello integration now tells you specifically if the beeminded Trello board goes missing
  27. We weren't letting you set tmax to today if it was Beeminder-today but calendar-tomorrow (ie, after midnight with a night-owl deadline). #bugfix
  28. Dropped mention of post-mortems in legit check emails since no one gave those (plus other simplifications). Also fixed our spelling of 'PayPal' from UVI#3697.
  29. As a follow-on to UVI#3332 (that we failed to announce at the time): you can now see all your premium credit on beeminder.com/payment
  30. For about a week we were letting archived goals go into a weird limbo quasi-archived state that would prevent charges but still send legit checks. #bugfix

2021 April

  1. As a failsafe for the quasi-archived limbo state, or other problems with archived goals, the legit check email now explicitly mentions this if it happens
  2. Fixed a bug that would sometimes mangle your road by picking the wrong slope when automatically ending the goal after the archive took effect. #bugfix
  3. If your buffer on a Do Less goal was ≤1 & you tried to ratchet, we'd nonsensically say "Number of units must be less than current safety buffer". #bugfix
  4. And yesterday's bugfix introduced a problem with Do More ratchets, where you could't ratchet by -1 (e.g. from 4 days to 3 days). #bugfix HT zedmango
  5. Updated the error message for Do Less ratchets to include the amount that you must be less than (instead of just "must be less than the current buffer")
  6. We now guarantee that the official end date for archived goals matches when the archive countdown ended (unclear if ever an issue other than from UVI#3704)
  7. Goals should no longer insta-derail when you try to restart them! Or, well, we fixed one known cause by making them deadline aware. #bugfix
  8. Restarts would sometimes get the tmin (x-min) wrong -- either slightly suboptimal (yesterday vs today) or gave a graph error (tomorrow vs today). #bugfix
  9. More recently, UVI#3696 introduced a new bug that would sometimes (like at certain times of day!) not let you restart the goal at all. #bugfix
  10. Daylight savings time bug for Garmin steps goals had, eg, the data for the 14th overwrite the data for the 13th after springing forward. #bugfix
  11. Fixed confusion with Garmin sleep records where you go to sleep post-midnight one night and pre- the next. We now match what you see in the Garmin app. #bugfix
  12. Rare 500-error when you restarted a do-less goal. It'd go away once the graph regenerated but now it doesn't happen in the first place. Even better! #bugfix
  13. Since Nov 2020 we undercharged for premium if you'd used a coupon previously and then upgraded with a coupon (we applied both on top of each other!) #bugfix
  14. Restarting Odometer goals (especially Duolingo) could cause us to do an unnecessary and confusing odometer reset giving you way too much safety buffer. #bugfix
  15. We now mercifully disallow goalnames like 'archived' & 'settings' that would/could break things by colliding with other URLs. #bugfix HT zzq AKA Benjamin Fox
  16. It would sometimes happen that our authorization to fetch your Withings data would expire and we'd fail silently instead of warning you! #bugfix
  17. We were (weirdly) silently failing if you tried to (weirdly) edit your goal description to be identical to your goalname. Now we just shrug and let you. #bugfix
  18. FAQ modernizations: No more 'red button', mentioning pledge caps, describing where things live in the tabs below the graph, various copy tweaks
  19. A new extensive copyediting pass on the FAQ: clarifying about PayPal, post-derail respite, daily rates, 'bright red line' rather than 'yellow brick road', etc
  20. Added more disallowed goalnames (like 'goal') and made cuter error copy for if you violate it (also we cleaned up existing goals, emailed people, etc)
  21. The error message if you used a reserved slug (like 'goal' or 'archived') for a goalname showed up a couple screens after the fact. #bugfix
  22. In goal creation we were giving browser-default-style alerts for some errors instead of consistently using our red flash banners
  23. More aggressive warning that custom goal settings are Highly Advanced and Might Break Things; plus a tweak to the wording about the "cumulative" setting.
  24. Closed a loophole in deadbeating where simply adding data to the goal caused us to show you the true graph again (instead of the guilt trip image). #bugfix
  25. We now don't allow goalnames over 20 characters, for various layout but mostly aesthetic reasons. Yay Opinionated Software?
  26. Indirect UVI but we improved the emails we automatically send to ourselves and then manually reply to, with the user included, when they first sign up
  27. Your payments page now also shows your pledge caps. beeminder.com/payments
  28. Help docs updates: troubleshooting Android notifications, iOS metrics, custom goal examples, iOS/Android login issues. help.beeminder.com
  29. Security/privacy #bugfix: there was a subtle way to break our glomarizing / Slytherin 404s by requesting certain image URLs. HT Benjamin Fox (zzq)
  30. When the deadline field is grayed out because it's an autodata goal on which we can't support non-midnight deadlines, the tooltip now explains that
  31. Our last Rails upgrade broke curl for some pages; also we now have better / less broken 404 errors for pages with weird extensions. #bugfix
  32. We deployed 2 additional servers! Most user-visible aspect is that there's noticeably less time between hitting your deadline and us processing the derailment
  33. Your forum profile now links to your Beeminder gallery! HT @philiphellyer and @nocas
  34. We fixed one reason for delays in fetching Strava data: we thought auth tokens lasted longer than they do and we weren't refreshing them. #bugfix
  35. Silly bitty #bugfix: 'load all datapoints' was disabled if your data was (somehow) mostly in the future. Beeminder now exhibits time reversal symmetry.
  36. Our 'contact us' form would silently drop messages if you specified an email address that our ESP considered shady (like '@inbox.ru'). #bugfix
  37. We would sometimes send duplicate reminders due to a dumb misconfiguration of our job scheduler. Now we don't do that. #bugfix
  38. We failed to check username length in signup before getting your credit card and we'd make you re-enter your credit card if your username was too long! #bugfix

2021 May

  1. We added a premium FAQ item about why the Beemium plan is so pricey and how you probably don't really want it
  2. Fixed margins and centering of the logos for autodata sources to the right of your graph on the graph page. #css #bugfix HT krugerk
  3. And a similar #css fix for the manual data entry box, both newbee and advanced
  4. Goalname character limit now also enforced via the API; also we fixed an off-by-one error in the error message (max characters is exactly 20)
  5. We no longer give an ugly error if all your datapoints are somehow in the future (as can happen when changing deadline right after goal creation). #bugfix
  6. You can now change settings (a subset of them, the ones that don't require the graph to be regenerated) for archived goals
    • Specifically, you can change goalname, description, goal units, y-axis label, fine print, visibility of fine print, other privacy settings, and supporters
    • Also there's a helpful note about the limitations of what you can change about archived goals (at the top, and also at the bottom about supporters)
  7. We missed updating the error message for 'goalname is too long' in the API for the new 20-character limit. (Also we grandfathered all existing long goalnames)
  8. UVI#2749 disallowed goal units that start with a number, but only at goal creation. Now it's enforced always, with a nice error message explaining goal units.
  9. Use cmd+enter (or ctrl+enter for non-Mac folks) to submit datapoints on the dashboard and on goal page (finally!)
  10. We've changed "yellow brick road" to "bright red line" in various places in the webcopy. Full terminological transition to come...
  11. The watermark on your graph indicating how much safety buffer you have now shows an infinity sign if and only if you're safe past the goal end date
  12. And if you just have a stupid amount of safety buffer, it always shows the number of days or '>999d' if more than 3 digits
  13. Added your premium subscription info to the payments page, and to account settings, because no one thinks to look on beeminder.com/premium
  14. When your premium plan is about to renew (which we've always emailed you about), there's now a button at the top of the premium page to cancel it
  15. And the same button is available in your account settings, in case you head there after learning your premium subscription's about to renew
  16. We made the cancel button just always be shown at the top of the premium page so you don't have to figure out to click downgrade to the free plan
  17. Besides the new button, the bigger improvement is the ability to downgrade after getting the email and before you pay for the new month (or however long)
  18. New Strava goals were broken for the last 20 days (sob-emoji), failing to ever start fetching your data. Regression introduced by UVI#3738. #bugfix #regression
  19. Goodbye Yellow Brick Road. UVI#3754 did this in some key places and now we've done it methodically throughout the webcopy. Viva la Bright Red Line!
  20. We also purged all references to roads in what we now call the visual graph editor at road.beeminder.com -- graph matrix instead of road matrix, etc etc.
  21. We broke our error checking for amount of initial safety buffer on goal creation. It was allowing invalid strings and then breaking uglily. #bugfix #regression
  22. There's now also a limit of 30 days of initial safety buffer when creating a goal
  23. Also we were never validating amount of initial safety buffer for any of the autodata integrations. Now we are! #bugfix
  24. Added a warning to the API docs about undocumented things; also added 'gunits' to the list of required params for goal creation
  25. So many more instances of 'road' and 'YBR' etc that we missed! Also got the help docs, but not yet the API docs or the video or the blog.
  26. Updated our Super Lame captcha in accordance with the spring yellow-brick-road cleaning. It now asks you to name our mascot. HT @brennankbrown
  27. Facepalm! The previous UVI broke signups for about 20 minutes, giving you a 500 error if you tried to visit the signup page. #bugfix
  28. The updated captcha was working in the Contact form, but was failing to actually validate the answer on signup, allowing spammy signups for a day. #bugfix
  29. Toggl changed their API (and they emailed all users of the Beeminder integration about it, making this user-visible!) and we did the thing to make it not break
  30. We now don't apply goal defaults to new goals if those settings won't actually work (eg, if you can't get SMS or Slack alerts anymore). #bugfix
  31. We soft-launched a Pocket integration for intrepid souls who're game to beta test it: beeminder.com/pocket
  32. Also we've submitted our Pocket integration for inclusion in their gallery and added it to our front page; so baaaasically official already

2021 June

  1. Fetching data for your autodata goals is now faster. We used to send two jobs through our background queues, but now it just takes one.
  2. Deadlines not on-the-hour sometimes had long windows where you could eke in after the deadline w/o derailing. Window's now shorter (and never over 15 minutes).
  3. Clarified in the Pocket autodata integration landing page and goal creation page that it's specifically archiving articles that gets you the +1
  4. We were hitting a race condition refreshing Withings auth tokens, which was making us expire your auth (and email you about it) when we really hadn't needed to
  5. Our Pocket integration only counted things Pocket classified as articles but it failed to do so for some definitely-articles so now we count everything. #bugfix
  6. Small clarification on weekend rate for do-less goals: you are specifying an amount of additional buffer for the weekend, i.e., on top of the existing rate!
  7. Clarified in the commitment dial UI copy that dialing only changes the final bright red line segment which is not what you expect if you have upcoming breaks
  8. Goalnames used to be changeable via the API but haven't been for ages (and since you can edit them on the website anyway) so we updated the docs to be correct
  9. We had an off-by-one error with where we drew the akrasia horizon on the graph and it made the visual graph editor too restrictive in allowing changes. #bugfix
  10. GmailZero goals were ignoring the initial safety buffer you asked for on goal creation. #bugfix
  11. GmailZero goals w/ pre-midnight deadlines created after said deadline started a day too early, meaning you'd start the goal in the red. #bugfix
  12. We now give actual constructive errors when you do things like add duplicate tags instead of a generic/incorrect "something went wrong. try reloading the page?"
  13. If Infinibee or lower folks hit submit on beeminder.com/breaks without changing anything, we gave a 500 error. Now we give a sensible error. #bugfix
  14. Fixed another unhelpful error if you clicked 'add tag' at beeminder.com/tags w/o actually typing anything. Now we sensibly do nothing if you do that. #bugfix
  15. Tiny things: Bit more consistency in the legend w/ "Bright Red Line" and yanked dogfood bounties from the list of premium perks since we scaled that back a lot
  16. Added explanation for the weekend buffer setting to the beeminder.com/breaks page
  17. Double-clicking the 'archive now' button could result in actually *restarting* your goal because !surprise!. Fixed by disabling double clicks. #bugfix
  18. New Todoist goals now count recurring tasks! (Transition for existing goals to come)

2021 July

  1. Help docs now explain about recurring Todoist tasks and how to transition existing graphs
  2. Changed road.beeminder.com to graph.beeminder.com + Gitminder docs say both "main" & "master" cuz GitHub's changing the default name of the master/main branch
  3. Y'know the little triangles or chevrons or v's that indicate that a dropdown menu is a dropdown menu? Some of ours went missing. #bugfix
  4. Also they're all consistent across the website now and are aligned properly and are v's instead of triangles which seems more modern/standard. #css
  5. While we were at it we did more #css fussery and fixing, like not using different font sizes and padding in the text boxes in goal creation
  6. Fixed a 500 error on the goal page if it was a Todoist-connected goal without a Todoist connection (like if you de-authorized Beeminder in Todoist). #bugfix
  7. UVI#3785 introduced a regression where the polynomial fit purple aura peeked out uglily past the akrasia horizon. #beebrain #bugfix
  8. The Todoist changes for recurring tasks broke our label tracking for new goals when you had both projects & labels selected for tracking by Beeminder. #bugfix
  9. We now do slightly more robust retrying when fetching Todoist data and Todoists rate-limits us. User-visibility: slightly less flakiness. #bugfix
  10. We split the display-precision setting into two side-by-side dropdowns depending on if you choose timey format
  11. Rearranged the settings a little and improved the webcopy around the timey setting and display precision, nixed an errant comma, etc
  12. And a smattering more fixes and improvements and #css tweaks, like a better icon for the autodata source, and capitalizing it, and aligning it correctly
  13. We no longer disable the PPR setting when you switch to API, Zapier, or IFTTT as the data source for a manual do-less goal, cuz then it's irreversible!
  14. More webcopy fussing: 'Esoteric Settings About Numbers' and hovertext on display precision and 'aka data push' and 'aka data pull'
  15. When you create a new goal, we now show a dynamic, zoomable preview of your graph and let you go back to make changes before finalizing the goal creation
  16. The visual graph editor at graph.beeminder.com now has a smarter graph selector with autocomplete instead of the old unwieldy dropdown. HT Benjamin Fox (zzq)
  17. The safesum blurbs for weight-loss and inbox-fewer goals make more sense now, always telling you your hard cap today instead of how many safe days you have
  18. Those safesum blurbs are shown in the Android and iPhone apps too; also we added an explicit error when something (rarely) goes wrong generating the blurb
  19. Todoist goals now support arbitrary deadlines!
  20. Panning/scrolling in the graph previews now works. Still somewhat buggy but before it didn't work at all! #bugfix
  21. Fixed the buggy panning/scrolling. It's like butter now! #bugfix
  22. Rare ugly bug where, when syncing the last week of Todoist tasks, if you had recurring tasks, we could delete some of them from your Beeminder data. #bugfix
  23. If you tried to scroll the browser page while your mouse was on the dynamic preview, it would turn black. Now it tells you another way to zoom! #bugfix
  24. We transitioned all the old Todoist goals to support recurring tasks and emailed everyone affected in case this breaks their workflow
  25. Pretty thoroughly revamped our tutorial at graph.beeminder.com/tutorial to demonstrate various things like edge-skating and scheduling breaks
  26. Also fixed at least one regression in the tutorial: the pledge amount failing to increase. #bugfix
  27. The 'currently subscribed' button on beeminder.com/premium was erroneously appearing grayed out despite still being clickable. #bugfix
  28. Bigger #bugfix: clicking that ostensibly disabled button would charge you for another month of your premium plan right away (delaying your next charge)
  29. GmailZero goal setup would fail opaquely/messily if your auth expired and not let you re-auth. #bugfix
  30. Also we email you when your auth expires (same as for other autodata integrations) so you can go re-authorize us to count your emails
  31. And in GmailZero goal creation we give better errors and updates, like showing 'Checking Gmail connection' while it does that
  32. Turns out you could crash Beebrain (our graph generator) with a derailed goal and x-min set to be later than all the datapoints. HT Mary Renaud #bugfix
  33. Fixed a briefly extant bug with new Todoist goals that autofetched pre-goal-creation data and made you start with way too much safety buffer. #bugfix
  34. Todoist datapoints are now consistently logged for the date Todoist logged them as. Can matter subtly for tasks done seconds after midnight, say.
  35. New official autodata integration! @CodeCombat! beeminder.com/codecombat
  36. All the usual follow-on UVIs for a new integration: added CodeCombat to the front page, wrote a blog post, etc.
  37. Added explicit mention of paying $5 on our fancy graph.beeminder.com/tutorial page plus fussing with the timing / animation speed. HT @LawrenceEvalyn
  38. Our fancy custom domains for various integrations like gmailzero.com and gitminder.com broke for https. Also fixed a broken blog thumbnail. #bugfix #regression
  39. Serious #bugfix where you could insta-derail a do-less goal by toggling weekends-off on and off and on again, inserting a flat spot
  40. We now helpfully reload/regenerate the graph after the weekend is scheduled when you turn on weekends-off; it seemed all broken when we didn't! #bugfix
  41. We got rid of the checkbox for weekends-off for do-less goals. Much simpler/clearer now: a single field for how much extra buffer to allow on weekends!
  42. Error checking for weekend buffer for do-less: you're forced to enter an actual number (also the webcopy clarifies that setting it to zero means turning it off)
  43. Anti-magic: instead of hiding the entire weekends-off section of the UI if you don't have a Bee Plus or higher premium plan, there's text saying what's up

2021 August

  1. Dumb regression: we were (mostly) sending emails with the "From" as a bare email address instead of, e.g., "Beeminder Support <support@beeminder.com>" #bugfix
  2. Oops, our dynamic graph previews were missing for GmailZero goals. #bugfix
  3. Updated the Habitica screenshot at beeminder.com/habitica to match modern Habitica; also fixed some em dashes on the Strava and Trello landing pages
  4. Fixed some ugly spacing (or lack thereof) on the reminders page, namely the little header icons like the sort arrows and the info (i) icons. #bugfix #css
  5. Added missing features to the graph legend: max flux, standard flux, and the pale yellow sea of infinite safety and tranquility
  6. In our list of autodata services in Settings, RescueTime was falsely listing your Beeminder email address as the username with which you connected. #bugfix
  7. We also added a column to that list -- beeminder.com/settings/account#account-permissions -- for the date the autodata service was added
  8. And we improved the layout/alignment of the autodata services you haven't (yet) given Beeminder access to. #css
  9. We replaced "credit card" with "payment method" throughout the webcopy, since we're gradually supporting more and more payment methods, thanks to @stripe
  10. Relatedly, we're getting closer to ditching PayPal thank goodness and edited the webcopy to strongly discourage ever using that as one's payment method
  11. We (mostly @shanaqui) edited and rearranged the Apple Health help page a bit in light of user confusion. Also cross-linked to the iOS app help page, etc.
  12. Added TaskRatchet and Complice shoutouts in our API documentation. Also rearranged the front matter a bit and added a "troubleshooting" header.
  13. Reminder settings let you set a negative value for lead-days, meaning, logically but confusingly, no reminders at all. Now we enforce lead-days ≥ 0.
  14. In the API docs, the datapoint parameters for the create_all endpoint were described incorrectly. Documentation #bugfix
  15. The "email not found" error on the forgot-password and email-confirmation pages was stupidly hard to notice. Now it's a big red banner.
  16. Fixed typo in password-confirmation error message: "Password confirmation does not match confirmation" → "Password confirmation does not match"
  17. Changed a few of the icons on the website so they all match (eg, we had 2 different pencil icons). Halved the number of icon libraries we use!
  18. Added a database index / tweaked a query that made dashboards load up to 10x faster. Extremely noticeable for oldtimers with many thousands of datapoints!
  19. We once had an "increase pledge on derail" checkbox, replaced it w/ pledge caps but some users still had it set false, so their pledges never increased. #bugfix
  20. We conservatively set pledge cap to current pledge for anyone who originally chose auto-increase off, except those with $0 pledges, who got $5 caps and an email
  21. Added Catalán to our Duolingo integration!
  22. The old legacy streak-minding goals for Duolingo now track site-wide streak rather than language-specific streak (Duolingo's phasing out the latter)
  23. Fixed inconsistencies with buttons (they should all be yellow on black now) and made the links on the premium page for resending email confirmation be buttons

2021 September

  1. Added a click-to-copy button for your Personal Auth Token in API settings instead of just linking to the raw JSON (and added "Personal" to the header)
  2. Made the click-to-copy much nicer: instead of a whole dumb confirmation dialog, just change the tooltip to say "copied!" (and cleaned up a spurious underscore)
  3. While we were at it: spaced out the icons (#css) and improved the tooltip text. beeminder.com/settings/account#account-permissions
  4. Autodata goals would freeze (not rerail) if you clicked refresh/refetch immediately after the deadline & were still below the line w/ the fetched data. #bugfix
  5. Added Yiddish and Guarani (one of the official languages of Paraguay, only learnable in Duolingo from Spanish) to our Duolingo integration
  6. We briefly broke our Duolingo integration for Chinese, Dutch, Klingon, and Norwegian -- we just wouldn't see new XP you got for like a day. #bugfix
  7. In our Duolingo integration if you changed your base language we'd stop seeing XP for languages not learnable from that language. #bugfix #regression
  8. Another brief #regression from all these Duolingo changes: We were starting Duolingo goals at 0 XP instead of however many XP you actually had. #bugfix
  9. One more Duolingo #regression (from UVI#3295): we were silently failing to tell you if we couldn't find your username on Duolingo. #bugfix
  10. Added a click-to-copy link to give you a URL for your graph image (beeminder.com/username/goalname.png) that appears when your mouse is hovering over your graph
  11. The hovertext on the "share" link in the Statistics tab said "cancel" for some reason (#bugfix); now a whole blurb about html-embedding and hotlinking images
  12. Also we made all(?) our hovertext have consistent capitalization. #bugfix HT zzq
  13. Deleting the (poorly named but that's a separate issue) "RECOMMIT" meta datapoint after derailing would (sometimes, long story) instantly re-derail you. #bugfix
  14. That fix also makes flatlining (do-more's counterpart to pessimistic presumptive datapoints) on derailed, frozen goals be more consistent/correct. #beebrain
  15. Embarrassingly, we had a dumb workaround for the flatlining bug where we'd add a "RESTART PLACEHOLDER" meta datapoint for goal restarts; mercifully nixed now
  16. One more #bugfix along for the ride: a weird edge case where flatlining got confused and failed to draw the graph at all, similar to UVI#3826
  17. Scheduling a break sometimes added superfluous zero-width segments to the bright red line, cluttering up the graph matrix. #bugfix HT adba
  18. Worse, that could result in insta-derails when ratcheting the red line (and ratcheting is now robust to such degenerate segments if they were added). #bugfix
  19. Fixed instances in webcopy of "break your pledge once, shame on you; break it again, put your money where your mouth is" from the pre-commitwall days
  20. Premium page webcopy clarifies how you'll lose access to perks if you downgrade from a premium plan (but some we intentionally let you keep despite downgrading)
  21. Beyond the webcopy clarification, it's all now true and consistent, as opposed to the old status quo of some perks like $0 pledge caps persisting on downgrade
  22. Pledges going to charity now also automatically goes away when you downgrade. Also we changed pledge caps that should've increased and emailed people impacted.
  23. SMS reminders used to (falsely) still show a checked checkbox after you downgraded your premium subscription (even though SMS reminders were not sent) #bugfix
  24. We fixed myriad styling / layout / font problems in our popup dialogs (aka modals). They should all be nice and consistent now. #bugfix #css
  25. Previous UVI was kinda many UVIs! Here's one that barely counts, since Stripe did all the real work for us: beeminder.com/climate
  26. The ratchet UI was blank for non-do-less goals after restarting an archived one. Now it at least tells you to reload the page. #bugfix #regression cf UVI#3716
  27. Made the text box in the "tell us why you are deleting your goal" UI normal-sized. It was narrow and ugly. #css
  28. The SMS bot was failing to check that your phone number was active before adding and replying to your datapoints. Now it bugs you to (re)activate instead.
  29. When you sent SMSes we still weren't checking if you had the SMS bot perk, so if you'd subsequently downgraded, the bot'd still accept data from you
  30. Fixed a couple places in error messages where we accidentally said "gunits" (the internal name) instead of "goal units". HT Robert Perce
  31. Got rid of a mostly redundant bit of web copy in the static graph editor. Rewrote it and made it the hover text on the final graph matrix row.
  32. SMS bot now uses safesum (see UVI#3358, UVI#3368). Previously it did something safesum-like for do-less and said nothing about safety buffer for do-more et al.
  33. SMS bot had been reporting incorrect hard-caps! It would reply before updating the graph and give the pre-datapoint hard-cap. #bugfix #regression
  34. If you submit data for multiple goals in one SMS, we now give a status update on each of them in the bot reply, not just the last one (or none, cf UVI#3892)
  35. The SMS bot now differentiates between "inactive" and "stopped" phone numbers in its error responses
  36. Fixed up the webcopy (including a longstanding typo) to be nice and clear that you need to actually press the "Schedule Archive" button to schedule archiving
  37. Another loopholey #bugfix: if your pledge was $0 or $1 we were letting you set that as your pledge cap when you restarted a goal, even without a Beemium plan
  38. When you updated your credit card on the payments page we didn't update the card info displayed there until after you reloaded the page. #bugfix
  39. Added an infinibee buzzer to spin while you wait for something to happen (aka servers to communicate) after you click "submit" after updating payment info

2021 October

  1. Starting 4 days ago the email bot was replying to datapoints you sent it AND replying to all subsequent data as if it'd been emailed to the bot. #bugfix
  2. In recent data, we were uglily displaying ampersands in datapoint comments as "&amp;" & now we display them the way you typed them. #bugfix
  3. Upgraded the CPUs & memory on our database server and reduced slow database queries by like 3x (~70s to ~20s for slowest response time)
  4. When we do server maintenance we now give a 503 error, not 405, to PUTs/POSTs from API clients (405 suggested that it was their fault, not ours!) #bugfix
  5. Also we now give an informative JSON-formatted error with a pointer to status updates instead of hideous html from nginx
  6. And we serve the JSON error directly for GET requests. Previously we did a redirect and it caused silent failure for our Zapier integration.
  7. IFTTT triggers now faster and more robust in fetching your data. If we get a timeout trying to tell IFTTT to fetch your data, we retry.
  8. For old users with no payment method, we weren't updating the page when you finally added one, making it seem kinda broken until you thought to reload the page
  9. Similarly on the goal creation page, if you were an old user with no credit card added yet, we now insta-add the payment method info to the page
  10. Show a progress spinner at the end of goal creation below "saving your goal..." (a janky one for now but better than nothing)
  11. We found a few more instance of "[yellow brick] road" that we've changed to "bright red line", in error copy and in the graph legend. HT Benjamin Fox aka zzq
  12. Revamped our Todoist integration help page to clarify how limiting to projects/labels works and removed cruft about recurring tasks, with links to previous UVIs
  13. We de-jankified the buzzing infinibee from UVI#3909 and made it a nice swooping css-animated lemniscate of Bernoulli
  14. We changed various references to "real-time support" (Beemium perk) to the more accurate "sometimes-synchronous support". We may just call it "priority support".
  15. Race condition #bugfix! If you submitted data at just the right (wrong) moment before your deadline, your graph could end up the wrong color on your dashboard.
  16. Labeled the ratchet field w/ the stepper UI "New number of safe days" because people weren't always sure if it was specifying the delta or the new number
  17. We now retry sending legit check emails if we get a timeout from our ESP (Mailgun). This mattered a lot yesterday when our servers were having network problems.
  18. Relatedly, if our ESP stops trying to send you email because your ESP thinks we're spam (and you're a paying user) we try via a non-Beeminder email
  19. We were sometimes showing an idiotic number of decimal places for current safety buffer on do-less goals in the ratchet UI. #bugfix
  20. The ratchet form was letting you submit an empty field for new safety buffer and reloading the page before showing an error; now it gives an immediate error
  21. We were sending goal alert emails (aka zenos) via a different Mailgun API and it wasn't as reliable; in particular UVI#3916 now applies to those as well
  22. Made the logos on autodata integration landing pages be smaller on small screens
  23. Added a help page about premium credit (see UVI#3332)
  24. Fixed up the CSS on beeminder.com/slack so it's mobile-friendly
  25. We no longer try to send beemails (or any other mass mailing) to users who haven't confirmed their email address. Dumb of us to miss that for so long!
  26. Revamped the help page about premium credit: new sections, new links, etc (see UVI#3922)
  27. The countdown on widgets (beeminder.com/widgets) broke at some point. #bugfix #regression Plus we killed the numbers w/ yellow-brick-road-mentioning hovertext
  28. All our autodata integration landing pages are pretty fully mobile-friendly now. Phew!
  29. This involved myriad improvements and cleanup. Spacing between boxes is sane and they never overlap and are centered and are the same height. #css #bugfix
  30. Next: The Beeminder logo and the integration partner logo are now consistently adjacent rather than weirdly spreading out across the screen.
  31. Finally: Justified the text in the "pledge, [do thing], track" boxes on the autodata landing pages. Bonus: fixed up our old beeminder.com/pact page
  32. If you tried to create a Fitbit water-consumption goal and hadn't yet authorized us to access your Fitbit, it would fail (silently) to create it. #bugfix
  33. Another user-visible aspect of that bug was that the units field was blank when creating a water consumption goal without having auth'd Fitbit
  34. If you create a Fitbit goal and our authorization to view your Fitbit data has expired, we now make you re-auth as part of goal creation, instead of later

2021 November

  1. The dropdown for units in Fitbit goal creation for weight was mis-sized and partially unreadable. #css #bugfix
  2. Fixed some tiny errors with units for Fitbit goals: 'kgs' is now 'kg', 'mls' is 'mL', and 'stones' is 'stone'
  3. Fitbit bodyfat percentage goal creation was messed up, both display-wise and asking for max fluctuation as weight instead of percentage points. #bugfix
  4. The bare min quoted to you in email alerts could be wrong for timey goals, e.g., overly conservatively rounding to +2:00 when you had +1:09 due. #bugfix
  5. Rewrote the help page for "How do I tell Beeminder what day my week starts?", prompted by ongoing confusion about that. New examples, links, clarification.
  6. You can beemind bodyfat percentage and fat mass via our Withings autodata integration
  7. Upgrading our database (Mongo 3 to 5) yielded a decrease in median page request time from ~275ms to ~200ms
  8. Burgle #bugfix w/ premium downgrades! In rare (exactly one before fixing) instances, we'd forget we charged you for the new plan and charge you again every day!
  9. We no longer ever magically turn on email reminders UNLESS you previously had SMS reminders and lost those, hence needing email as emergency fallback. #bugfix
  10. Almost doesn't matter but plenty of links to beeminder.com/jawbone out there & it was barfing 'translation not found' across the page & now it's not. #bugfix
  11. Easter-eggy for now but to avoid re-filling out date ranges on the megabreak page, you can add, eg, "&start=2021-11-20&finish=2021-11-23" to the URL
  12. We had some slightly broken #css in, embarrassingly, one of the first screens a newbee sees, making you confirm your email address before creating a goal
  13. Had an off-by-one error with the megabreak URL start param, giving a spurious error if you asked for a start date in exactly a week. #bugfix HT Daria Semenova
  14. On Trello autodata goals, the Trello logo now links to the Trello board that we're getting data from, on both your dashboard and goal page
  15. Turns out we get 3 decimal places of precision from Withings -- your weight in grams! -- and were throwing the least significant away. Until now!
  16. You can now specify tags (see UVI#2080 & UVI#3694) when creating and updating goals through the API! Thanks to zzq aka Benjamin Fox for the implementation!
  17. Our Garmin integration setup has a metric we were calling "Active time" which was misleading/confusing because Garmin now calls this metric "intensity time"
  18. Specifying tags yielded a 500 error if you formatted the tags wrong (they've gotta be an array). Now we give a semi-informative error if you do that. HT rperce
  19. The fix for the API giving a 500 error only applied to goal updates with the tags field. We've now robusted it up for the entire API. #bugfix HT rperce again
  20. Some of the logos for autodata integrations would show up bigger than others on your goal page and mess it up. Now they have a consistent max size. #css #bugfix
  21. Garmin goal setup now shows the goal units in the stepper box when you switch between, e.g., steps, sleep, distance, etc
  22. We got rid of the links to our beeminder.com/donate page, removed the PayPal donate button from it, and rewrote the webcopy. We ain't no charity case.
  23. The menu in upper right corner goes away / collapses itself when you click away from it, instead of only when you click directly on it
  24. We raised the price of Beemium from $40/mo to $50/mo. Happy Black Friday?
  25. The API docs were still talking about yellow brick roads a lot. Now they only use "road" as much as they have to for the fields/params still named that.
  26. API docs update for UVI#3949 plus fixing some typos introduced thereby. HT zzq again!
  27. Added an API endpoint for listing archived goals for a user, and documented it. api.beeminder.com/#getarchivedgoals HT zzq yet again again!

2021 December

  1. When we downgraded your perks from Beemium we failed to downgrade your default pledge cap, so you could still wind up with $0 pledge caps on new goals. #bugfix
  2. And we failed to downgrade your perks at all if you (or we) did the thing in UVI#3758 to cancel a premium subscription when it was about to renew. #bugfix
  3. We fixed some documentation bugs (screenshot/text mismatches) in the help page for goal statistics. #bugfix HT @oguzhanogreden
  4. If you had no goal units set for your goal and you tried to update a goal's goalname in settings we would inexplicably fail. #bugfix
  5. API documentation #bugfix: in one of two places we gave the wrong endpoint for the archived goals list, forgetting the '/archived' part
  6. The popup to add a new premium plan spuriously mentioned downgrading (before also mentioning that you are adding a premium plan). #bugfix
  7. At some point we broke the "Keep Plan" button for when you clicked to downgrade a premium plan but then changed your mind. Money-with-wings emoji #bugfix
  8. As you slide the discount frequency slider the currently-subscribed button changes: "downgrade frequency" <-> "currently subscribed" <-> "upgrade frequency"
  9. Changed the text of the "Downgrade on DATE" button to be "Downgrade Immediately" when that's what that button will do (see UVI#3758)
  10. When a premium downgrade's pending, it was confusing/wrong how we let you do other things before canceling that downgrade. Now everything else is disabled.
  11. We added tooltips on the other buttons explaining that the pending downgrade is why they're disabled
  12. The popup confirming premium plan changes now only says "we will charge the payment method..." when that actually makes sense, eg, not for downgrades. #bugfix
  13. The previous flurry of premium page improvements managed to break the page (500 error) for people viewing it while not logged in. #bugfix
  14. Cleaned up the premium page webcopy/hovertexts to always say "premium subscription" or "premium plan" instead of the ambiguous "subscription"
  15. Legacy lifetime users buggily got a "downgrade frequency" option when sliding the discount slider. Introduced in UVI#3821. #bugfix
  16. We belatedly removed our Epson integration (they stopped making QS gadgets years ago) and added an RIP notice for anyone who stumbles on the old link
  17. The "Add Supporter" button would disable itself after you clicked it, until you reloaded the page, making it annoying to add multiple supporters! #bugfix
  18. We made the error messages for adding supporters use our standard red banner instead of the browser alert() thing. Consistency!
  19. We did a full refresh of our Zapier integration help page: screenshots replaced, steps rewritten, and defunct links removed. By @shanaqui
  20. We had at least one real human fail our Captcha and at least one bot pass it, so we made up a new one, all nice and instructional/leading this time
  21. We were already staying on top of this manually to undo/refund them but we had a race condition occasionally queueing up double charges! Burgle-#bugfix!
  22. Oops, we missed a similar thing to UVI#3961: we weren't downgrading your default setting for 'wants SMS reminders' when you downgraded from Bee Plus. #bugfix
  23. Revamped/refreshed our help pages for Duolingo, Complice, and Fitbit! New screenshots, clarifications, and copy-tweaking. By @shanaqui
  24. We are now more robust to Toggl's rate-limiting, which was causing us to sometimes not fetch your Toggl data, even when you clicked the refresh button
  25. Pessimistic Presumptive Reports (PPRs) now always self-destruct with new data, even if you've turned off the PPR setting. Anti-magic!
  26. In your profile, in Account Settings, the fields for email address and URL now actually enforce that you give email addresses and URLs
  27. Also those fields now have nice example placeholder text and we cleaned up people's existing so-called URLs and email addresses that were malformed
  28. More help docs clarifications (things about pledge increases/caps in "What is Beeminder?") plus updated screenshots in a few Example Goals pages
  29. Plus more updated screenshots as well updated set-up steps in two other Example Goal help docs (more gym visits, less Facebook time). By @shanaqui as usual!
  30. Official @focusmate autodata integration! beeminder.com/focusmate
  31. In addition to the landing page, we made a Focusmate help page, blog post, etc. Also some bug fixes for the beta users.
  32. In addition to adding Focusmate, we rearranged the gallery of autodata integrations to put popular ones on top and group things a bit by type
  33. More help page improvements (clarifications, link tweaks) on "Why does Beeminder think it's already tomorrow?" and "How do I interpret the graph?"
  34. Added "weekends off" to the API goal resource, by narthur of @TaskRatchet
  35. Added Complice and TaskRatchet icons to the goal creation "how will you track your progress" section. By narthur again <3
  36. We expired all coupon code links, like beeminder.com/premium?coupon=abc123 , and added a message if you follow one saying we don't do coupons anymore
  37. We now apply the breaks page start/finish URL parameters (see UVI#3944) to the do-less section as well. #bugfix
  38. New metrics in our Strava autodata integration: e-bike, virtual ride, and virtual run (can beemind time, distance, or number of activities)

2022 January

  1. Our API docs for the charges endpoint were wrong. You must include a user_id parameter (technically it worked anyway when using a personal auth_token). #bugfix
  2. Login with Facebook was broken for maybe months and nobody told us about it until now! PSA: we love if you tell us when we've got a booger on our face. #bugfix
  3. We ended the year of grandfathering for the last Beemium price increase. Everyone is paying at least $40/mo (modulo discounts) for Beemium now.
  4. Help docs updates! More details on how to interpret graphs (x-min/max settings) + updated screenshots/terminology/explanations in "How do I change my goal?"
  5. More help docs improvements! A new FAQ item (asked by a real user) on the Gitminder (GitHub integration) page and general copyediting there and in example goals
  6. Our Toggl autodata integration now has a proper page in the help docs (was previously a stub with a rough synopsis of how it worked). HT @shanaqui as usual.
  7. Our Strava autodata integration now has help docs (this one was missing altogether till now; gulp)
  8. Copyediting and typo fixes in the Toggl and Strava help pages + updated screenshots/terminology/explanation in "Can I get rid of extra safety buffer?"
  9. We'd sometimes count you as 'inactive' if your only goals were certain autodata ones. This meant wrongly stopping premium payments, freezing goals, etc. #bugfix
  10. Captcha UI improvements cuz humans were still failing it. Most usefully, highlighting the field in red and adding a red error banner to the page.
  11. Also the error message now mentions "captcha" explicitly instead of "human check" and says explicitly that the thing you typed (which it quotes) was wrong
  12. We now enforce no-duplicate-requestIDs at the database level and sure enough, the iOS app was sending dups that weren't otherwise getting de-dup'd. #bugfix
  13. Not sure if the fix to requestIDs affected things other than iOS (in theory it could've!). We also removed the now-moot warning about this in the API docs.
  14. Strava users thought we were buggily missing their virtual rides/runs. Those are now adjacent to normal rides/runs in goal creation to mitigate that confusion.
  15. Help docs improvements: less weaselly wording in goal pausing doc + new FAQ item for the Gmail integration about multiple accounts
  16. Revamped the help page for starting a goal over, to discourage deleting data and clarify that if you do you still have to talk to us to prevent charges
  17. Updated screenshot and new section (plus copyedits) for the weekends-off help page
  18. New screenshot (albeit an outdated one) in the "how do I tell Beeminder what day my week starts" help page helping to illustrate why that is not a thing
  19. You can no longer specify goals as per week or per month on goal creation (though you can still switch to having them show non-daily rates later)
  20. Per the Pareto Dominance Principle (see previous UVI) we now support arithmetic in the rate field. Eg, you can say "5/7 per day" to mean "5 per week"
  21. And we have a new popup where you pick the rate in goal creation to explain all this
  22. Oops, "PER DAY" was showing up on weight and inbox goal creation screens despite having no field for setting a rate there. #bugfix
  23. Help docs: edits to "What if I only want to do this once a month?" to make it true and "My goal makes no sense" to be less customer service-y
  24. Help docs: new screenshots and copy-tweaking for the extensive article on Do More goals
  25. Help docs: Copyedits, new links, more explanation of ratcheting for Do Less goals + freshened up the page on Odometer goals
  26. Help docs: Updated screenshots and deconfused some prose for the page on Whittle Down goals
  27. In the bot response for ambiguous data, we now give the full support@beeminder.com address, not just, confusingly/buggily, support@beeminder
  28. Updated the "About" box on the blog and fixed a broken image in an old post
  29. When you confirmed your email we'd leave the banner telling you that you needed to confirm your email up for one extra page load. Now we don't do that. #bugfix
  30. Tiny improvement for users but handy for support helping you set breaks: don't need a username in the breaks URL for pre-specifying start/finish. See UVI#3944.
  31. Help docs: the page on custom got some edits, a link update, and some nudges to avoid custom goals if you don't know what you're doing!
  32. Help docs: the megabreak page (scheduling breaks on many goals at once) has a new screenshot and new instructions about the URL start/finish trick
  33. As part of improvements to the iOS app, we forced all Apple Health sleep goals to have 6pm deadlines (it's how Apple aggregates by day) & emailed those affected
  34. Embarrassingly, we did the whitelisting wrong in UVI#3466 and finally noticed. So now we for-real whitelist ourselves when emailing the Beeminder bot!
  35. Help docs: a bunch of copyedits and a modernized screenshot on the PPRs page + clarifying copyedits on the "What is my data?" & "How to enter data" pages
  36. Help docs: In "How do I fix incorrect data?", added info about why deleting datapoints can be bad and about insta-derails, plus other copyedits
  37. Help docs: Add a paragraph about Boss as a Service to the help page about whether anyone else can add data to your goal
  38. Help docs: new screenshot and a bit of clarifying language and other copyediting for "Can I change my goal units after the goal's created?"

2022 February

  1. New help menu in the header! Links to the FAQ, forum, help docs, and contact page.
  2. When you don't have Slack configured, we now, sensibly, don't let you set reminders for Slack (was already true on goal pages but not beeminder.com/reminders)
  3. Added a bunch of webcopy to beeminder.com/contact to set expectations about turnaround time in support
  4. We fixed some broken html, probably only user-visible on ancient browsers (stupid Postel's Law), and got our moribund Instagram link out of the site footer
  5. Help docs: rewrote the page on what happens if you forget to enter data, in particular mentioning how it's possible to derail yourself entering yesterday's data
  6. We took the next step from UVI#3847 and removed the ability to add PayPal as a payment method (can still switch back and forth if you already added it)
  7. Added Zone Minutes to our Fitbit autodata integration because the older Active Minutes isn't even discoverable in the Fitbit app if you have a Heart Rate device
  8. We also added little explainers to the UI for Fitbit metric selection to tell you whether you probably want Zone Minutes or Active Minutes
  9. Help docs: Corrected the max pledge amount (it's $7290) for the "How much do I pledge" page and did a bunch of cleanup to the text, hovertext on links, etc
  10. Closed UVI#4031's loophole / loose end: If you create a non-6pm-deadline goal and link to Apple Health sleep, we forcibly move the deadline to 6pm
  11. Help docs: new screenshots, clarifications for the article on changing your pledge, plus copyediting, adding hovertext to links, etc
  12. Help docs: revamped the page on pledge caps, including replacing a very outdated and wrong screenshot. See UVI#3856.
  13. Help docs revamps/fixes: Garmin page (eg, updated list of metrics), managing premium subscriptions (button stuff changed), auto-canceling (clarification)
  14. Popups (aka modals aka dialog boxes that pop up over the rest of the screen) are draggable now, in case you need to see something underneath them
  15. Trello changed their API and broke our autodata integration for some users. We changed the thing that needed changing on our end and it works again! #bugfix
  16. Help docs: updated two articles about payment methods with clarifications, corrections, and experimenting with adding keywords to help pages
  17. No-Excuses Mode! We killed doctor's-note-style weaselproofing. Instead you can commit to not call non-legit at all. Simpler, cleaner, fairer, better.
  18. We dropped the akrasia-proofing of weaselproofing / No-Excuses Mode. You can toggle it on and off at will.
  19. But we show when you last turned it on/off, including in the legit check email, making it hard to reply non-legit with a straight face if you JUST turned it off
  20. We changed "legit check" emails to "derailment notifications" for the case that you derail on a goal that has No-Excuses Mode turned on
  21. We changed all the webcopy, the FAQ, and the glossary to refer to No-Excuses Mode instead of weaselproofing (and some old blog posts, but not the help docs yet)
  22. We emailed everyone who'd ever turned weaselproofing on on any goal and made it easy for them to opt in to No-Excuses Mode instead
  23. The banner confirmation when you disengaged No-Excuses Mode was erroneously saying "engaged". #bugfix HT user root2
  24. Help docs: we thoroughly rewrote our page on what derailing means. It was so old it was all wrong! Added links, screenshots, hovertext.
  25. We now give a helpful hint along with the error response when you mix up POST and PUT in our API (and in general when a route's not found)
  26. Help docs: link hovertext and an explanation for why some charges take longer than 24 hours to appear for the "Why did Beeminder charge my card" page

2022 March

  1. Help docs: The "What happens if a charge fails?" page now says exactly what happens when the poorly-named deadbeat flag is set. Also keywords.
  2. Help docs: The "When do derailments happen?" page has new screenshots with hovertext, plus clarification about changing deadlines
  3. Help docs: The "What is a legit derailment?" is updated for No-Excuses mode, plus hovertext and keywords, etc
  4. Help docs: removed ancient screenshots and explained more things in "What happens when I derail?" and added hovertext on images on several help pages
  5. Help docs: did a pretty thorough weaselproofing-ectomy throughout the docs. Viva la No-Excuses Mode!
  6. Help docs: Added alt/title text for links & a bit of upside-down support to "Can I get rid of extra safety buffer?" + keywords on this and several other pages
  7. Help docs: "How do I quit a goal?" now talks about deleting archived goals, what happens when you derail an archiving goal, and has updated screenshots
  8. Help docs: fresh screenshot and minor rewording for "What happens to an archived goal?"
  9. Help docs: Extensive rewrite of "How do I delete a goal?" given all the latest ins and outs, new images, nudges about contacting support, etc etc
  10. Help docs: More explanation/apologia in "How do I delete my account?" plus hovertext and keywords (hovertext and keywords go without saying from now on)
  11. Help docs: Updated the ones about the Android permanotification (for Beedroid) and TagTime and GTBee
  12. Fixed tragicomically money-burning bug where we'd miss certain payment errors and neither charge you nor set the deadbeat flag. Emailed those affected. #bugfix
  13. That #bugfix caused a new (ironically similar) bug with missing errors from PayPal charges. Also emailed everyone affected about the bank errors in their favor.
  14. We were failing silently if, when creating or updating a Beeminder OAuth client, you left out the 'http(s)://' part of your app's URL. #bugfix
  15. We moved the post-derail respite UI up, so it's right below the commitment dial
  16. Help docs: cleanup and copyediting and cruft-removal on 4 articles: lying to Beeminder, the akrasia horizon, Beeminder vs StickK, and beneficiaries
  17. Help docs: revamped the article on the Android app (aka Beedroid) including new screenshots
  18. We finally added Clive and Nathan, both helping us with support, to beeminder.com/aboutus !
  19. Fixed a tiny typo with spacing in the new derailment notification emails when you have no-excuses mode turned on, plus made the timestamps less ugly
  20. Closed an ugly loophole where you could immediately end a goal by causing an error. Now we show the error in place of the restart/archive buttons. #bugfix
  21. We no longer show a hideous overflowing error message in the graph header. The graph itself still shows the error message so the header can just say 'error'.
  22. Something changed with browsers and the icons in header of the blog got hideously oversized. #bugfix (also nixed the old Google+ icon while we were at it!)
  23. Help docs: Added clarifications, further instructions, etc to the articles on new goal defaults, profile info, and goal settings
  24. Additional cute errorcopy (emoji and all) pointing you at the humans of support when your bright red line is borked. Kinda part of UVI#4082.
  25. Added a moving time metric for Strava. Previously if you chose "duration" it was total elapsed time of the workout. Now you can pick between either.
  26. A PayPal error caused us to fail inelegantly and stop charging anyone else. Oof. We caught up and then robusted things so no more such charge delays. #bugfix
  27. Help docs: Revamped and expanded (and renamed, from "Authorized applications") the "Apps & API" article. Describes creating apps, mentions TaskRatchet, etc etc
  28. Help docs: Revamped and expanded the article on goal settings. Notes about IFTTT/Zapier, added missing section, removed stuff about fine print, etc
  29. Help docs: We made all the help docs be consistent about "goalname" vs "goal name" (the former is what we're going with!)
  30. Help docs: minor improvements to the article on deadlines plus a smattering of typo fixes. HT @lady_alys
  31. Help docs: For the graph editor article, pointed more firmly to the visual graph editor, replaced a screenshot, minor copy-editing, etc
  32. Help docs: Copyediting and working in mention of Zeno's paradox to the article on reminders, plus the term "leeway" for the one on safety buffer
  33. Help docs: New screenshot and all new text for the help page on post-derail respite (previously known as "mercy")

2022 April

  1. Help docs: Added a caveat about autodata to the article on Data Source, plus a link to Boss as a Service
  2. Help docs: Rewrote parts of the article on what counts as a legit derailment to mention illness, plug no-excuses mode harder, etc
  3. Help docs: Edits to the article on PPRs to mitigate confusion and not saying anything that sounded like 'fake data'
  4. Added Haitian Creole as a language to our @duolingo autodata integration!
  5. Yet-another-bug (see UVI#4075) with handling failed payments from PayPal was causing us to repeatedly email the user about the failed charge attempt. #bugfix
  6. We made UVI#3947 be true for 5 more autodata integrations: the logo links to the data source for Clozemaster, CodeCombat, Draftin, Duolingo, and Fitbit
  7. Help docs: Revamped the help page for the iOS app with updated screenshots and instructions
  8. Help docs: Revamped the quite out of date help page for the Withings integration with new screenshots, instructions, tweaks to the answers to questions, etc.
  9. Phased out all coupon codes / percent discounts for Beemium plans and emailed everyone affected. No such thing as paying less than full price for Beemium now!
  10. Help docs: the graph settings page got new screenshots (the old ones were from the yellow brick road days!) plus other tweaks like keywords
  11. If your start & finish dates were in the past in the megabreak URL, we'd say (wrongly/confusingly) "your finish date has to be after your start date" #bugfix
  12. When the deadline hits and until we redraw the graph for the new day, we now show a banner on your goal page to warn you that things may be briefly out of sync
  13. We nixed signup/login via Facebook and clarified that you can use the forgot-password link if you never had a password, cuz you'd previously used Facebook
  14. Our new banner alerting you of goals out of sync was buggily showing up permanently on archived goals! #bugfix
  15. Help docs: Revamped out-of-date docs for the following autodata integrations: Draft, Fitbit, and Garmin
  16. Help docs: More changes and improvements to the following autodata integrations: Apple Health (new screenshots), Complice (new FAQ item), Focusmate (lots)
  17. Our 'new day has dawned' banner was also buggily showing up at the wrong time on certain goals with non-midnight deadlines (shaking my fist: timezones!) #bugfix
  18. Help docs: Overhaul of our Duolingo integration help page, new screenshots, troubleshooting, reordered questions, etc
  19. Help docs: Updated screenshots for our GitHub integration article, plus new clarifications about permissions in the Garmin article
  20. Added some missing page titles (the text the browser displays on the page's tab) for things like the premium page, the featured gallery, etc
  21. Released a new version of our Beeminder gem that works with Ruby 3. HT @t_a_w
  22. Help docs: Clarifications on our Gmail integration page + tweaks and a new intro on our IFTTT integration page
  23. Help docs: new FAQ items on our Habitica integration page plus revamped the set-up instructions, new screenshots, etc
  24. We made our html page titles nice and consistent (like always including the word 'beeminder')
  25. Turns out @stripe uses en dashes in their html titles so now we do too. The Goldilocks of dash lengths?
  26. Help docs: Improved the SMS bot page a bit and replaced the Jawbone integration page with notice that that thing is long dead
  27. Sad trombone: Misfit is defunct so we pulled them from the integrations gallery and updated the help docs, blog post, etc
  28. We fixed our meta tags and Open Graph blurbs so when you paste a link to Beeminder in places like Discord or Twitter you see something sane
  29. Official @freeCodeCamp autodata integration! beeminder.com/freecodecamp
  30. All the accoutrements for our freeCodeCamp integration: landing page, blog post, help docs, front page gallery
  31. A bug w/ our freeCodeCamp integration that we fixed before [oops: after] official launch: opaque failure if you changed your username's case. #bugfix
  32. Additional small fixes with meta tags / Open Graph like adding preview images for all integration landing pages
  33. Also the link previews for goal pages now (always) include a thumbnail of your graph plus username/goalname instead of just goalname
  34. Under certain rare circumstances you could zoom a graph way too far on the y-axis and see the red line as a hideous huge red square. #bugfix
  35. Help docs: New screenshots and mild copyediting on our RescueTime page plus a placeholder on our Slackbot page about broken reminders (!)

2022 May

  1. Graphs no longer show ugly non-monotone guiding lines on do-less goals with weird jumps in the bright red line. #bugfix
  2. Replaced our moribund Instagram in the page footer (UVI#4040) with our very not-moribund GitHub
  3. The undo button in the sandbox tab of graph.beeminder.com wasn't working. #bugfix
  4. We had broken graph.beeminder.com/sandbox #bugfix and we did an important SEO thing (rel-canonical for the different URLs for beeminder.com/home )
  5. We're migrating to a new email service provider and managed to break the ability to reply to beemails for some people. #bugfix
  6. We (Uluc) revamped the moving average line: it's now an acausal filter and doesn't lag behind your data when you're trending in a consistent direction #beebrain
  7. Also we (still Uluc) revamped the aura (blue-green swath) in a similar way. No more dumb polynomial fit!
  8. Dumb #regression from UVI#4017 on our Trello autodata integration goal creation page: "every week I commit to ___ every day" which was silly/wrong. #bugfix
  9. Another #bugfix with freeCodeCamp username casing: if you had a camelCased username, we'd fetch your initial points fine but then fail to fetch them ever again!
  10. Help docs: New screenshots for RescueTime and Runkeeper and Skritter (and small copyedits on all of those)
  11. Help docs: New screenshots for Sleep as Android plus a new FAQ item about why you have to pay for their cloud service for this integration to work
  12. Help docs: Added new screenshots to our Todoist page and replaced an out-of-date one on our Strava page
  13. Help docs: Add a missing screenshot on our Toggl page and updated others, plus new FAQ item and other tweaks
  14. Help docs: Added FAQ items and made things generally much clearer on our URLminder page and even added an easter egg from Nicky
  15. Help docs: More screenshots for the Withings integration page, tweaks to screenshots for the Zapier page, and a big refresh of the Trello page
  16. Help docs: Added a help page for our @CodeCombat integration!
  17. Help docs: Added a help page for our @TaskRatchet integration!
  18. Help docs: Added a help page for our @clozemaster integration!
  19. Help docs: And finally added articles for our Pocket and Twitter and Project Euler integrations, which were the remaining missing ones! 3 UVIs in 1!
  20. Added keywords for all help docs for autodata integrations so you can find all our integrations for productivity or fitness or language learning or whatnot
  21. Help docs: New section on the akrasia horizon added to the "What is Beeminder?" article, plus other copy tweaks
  22. Help docs: Made the "What do I do first?" article less overwhelming for newbees and added mini screenshots to "How do I interpret the goal page?"
  23. Help docs: In-depth revamp of our "How do I interpret the graph?" article; new screenshots, better headings and organization, more words, etc
  24. Since UVI#4017, weight loss goals have defaulted to losing 0.1% of your body weight per day vs per week; not impossible but more ambitious than intended! #bugfix
  25. We broke for a while the ability to set a rate in the sandbox tab of graph.beeminder.com (it would divide your value by 604800). #bugfix HT Nathan Young
  26. Help docs: Copyediting, new links, hovertext, keywords, etc in two articles: "What's the best way to beemind ___?" and "How do I change my goal?"
  27. Withings goals are now created with rate units set to daily. Ambiguous improvement but it's important for consistency!
  28. As part of upgrading to a more recent version of Ruby on Rails, we broke some links to images, especially on some autodata landing pages. #bugfix

2022 June

  1. If you picked "moving time" for your Strava metric, it kept the units displayed as "miles" so you'd see like "30 miles of moving time per day" #bugfix
  2. We dumbly had all Strava goals you created default to 50 units even when that made no sense like "cycle 50 times per day". Now there's just no default.
  3. Help docs: Lots of clarifications + copyediting for "Why does Beeminder think it’s already tomorrow?" and "How do I tell Beeminder what day my week starts?"
  4. Help docs: Replaced an obsolete screenshot (plus the usual copyediting) on "Example Goal: Get 10,000 steps a day"
  5. Help docs: Our "Example Goal: Run 3 times per week" article now has an animated screenshot, plus lots more prose
  6. Help docs: Similarly extensive revamps to "Example Goal: Go to the gym 5 times per week" and "Example Goal: Spend less time on Facebook"
  7. Another casualty of the Rails upgrade: the graph editor started rejecting most changes, complaining about the akrasia horizon. #bugfix
  8. Previous UVI patched the graph editor problem with a workaround but it was still broken for people making changes to their red lines via the API. #bugfix
  9. Other things we broke and then fixed with the Rails upgrade: Our contact form, the email bot, and autodata settings for our Toggl integration. #bugfix
  10. And same for our Todoist integration settings: it was briefly the case that you'd get a 500 error if you tried to change them! #bugfix
  11. Also from Rails upgrade: We broke log-in for graph.beeminder.com (or anything else using Beeminder oAuth but #bugfix happened before anything else was affected)
  12. We introduced a bug that caused us to skip some premium charges for the last 9 days. Now caught up! #bugfix
  13. Our final check of the day for autodata that ensures you get credit no matter how down-to-the-wire you are was sometimes (rarely) getting skipped. #bugfix
  14. Help docs: Removed references to weekly rates, new screenshots, more guidance about safety buffer and ratcheting in veggie-eating example article
  15. Help docs: Added examples, discussion of manual beeminding and the timers in Beedroid and BeemiOS, screenshots, etc to the language-learning example article
  16. One more Rails upgrade regression: We started making you confirm your email address even if you signed up via Google etc and had a vouched-for email. #bugfix
  17. Added troubleshooting instructions and fixed a typo in an authentication error message for our Strava integration
  18. If, when creating a new Focusmate goal, we get an error trying to fetch your number of sessions, we now actually tell you about it. #bugfix
  19. Help docs: New screenshots and extra info in the article on safety buffer, plus rearranging prose in the article on ratcheting
  20. Rails upgrade keeps on giving: We lost the ability to specify alert start time on goal creation via the API. Also updating leadtime on existing goals. #bugfix
  21. Similar to UVI#4176, if we can't fetch your Todoist data when creating a Todoist goal, we now give an informative error. #bugfix
  22. Help docs: new screenshot for the article on break scheduling and new phrasing for the one about starting a goal over
  23. Help docs: New animated screenshot plus various copyediting/rearranging for the article on the weekends-off setting
  24. Help docs: New screenshots including an animated one for the once-a-month goals article; also new screenshots for the "My goal doesn't make any sense!" article
  25. Help docs: New animated gifs to show what's what with Do More goals
  26. Help docs: New screenshots (correcting a contradiction in what was shown in the old ones!) for the article on Do Less goals
  27. We had some old mentions of yellow brick roads (old term for the bright red line) in the fitness tips of the day in the email bot replies
  28. Also removed a bunch of the weight loss stuff and did other curation. It's still a crufty mess at this point but we're beeminding it into shape!

2022 July

  1. Help docs: new FAQ item for the article on Pessimistic Presumptive reports, other tweaking in that and the megabreak article
  2. Help docs: copyediting of several articles, especially the Gitminder one with an important clarification/correction in the troubleshooting section
  3. Help docs: started making screenshots clickable to get the full-sized view, in the "How do I enter data" article for now (plus screenshot improvements there)
  4. Help docs: Added instructions for Android and iOS to the article on fixing incorrect data and fixed confusing wording in the Whittle Down goals article
  5. Help docs: New screenshot and FAQs in the weight loss (gain) article plus copyediting, rearranging, clarifying, screenshotting in 6 other articles
  6. We made our ancient URLminder-as-third-party-integration point to the modern official autodata integration URLminder, and to the code for the 3rd-party one
  7. Help docs: Revamped the article on how much Beeminder costs: rearranged, clarified, added links; plus clarified in the SMS article that it needs Bee Plus
  8. Help docs: Lots of copyediting and cruft removal, new examples, etc in 4 different articles about managing pledges on goals
  9. Help docs: new FAQ item about editing projects/labels in the Todoist article plus copyediting/clarifying in 4 other articles
  10. Help docs: Pointed out in the goal-pausing article the trick of scheduling breaks to get more safety buffer
  11. Help docs: Edited the article on updating a failed payment method to mention that you get the chance to accept or reject charges that failed
  12. We started showing much-too-granular timezones in our dropdown and would give an error if you picked one of the obscure ones. #bugfix

2022 August

  1. Soft launch of our StoryGraph integration at beeminder.com/storygraph plus a fix (HT Christopher Moravec) to a broken link on that page
  2. The blue-green aura on the graph now has a minimum thickness of two dot-sizes so it never totally disappears. And the bright red line is slightly thicker.
  3. Strava autodata fetching is now a bit faster and more reliable. We were fetching data with unnecessarily many API calls and getting rate-limited a lot!
  4. We now allow custom deadlines on Strava goals!
  5. In the process of these Strava improvements, we broke Strava fetching altogether (for <24 hours) and then fixed it again. #bugfix HT narthur of @taskratchet
  6. We broke the (premium only) tips-of-the-day in the bot emails; it'd sometimes send blank tips. Now it doesn't. Also we're improving the crufty tips! #bugfix
  7. Turns out UVI#2407 only handled non-success responses; now we also email you if your server gives no response at all to our zeno webhooks
  8. Official launch of our StoryGraph integration! Added it to our frontpage gallery and goal creation page, made a fancier image, wrote a blog post!
  9. Help docs: Nicky even made a whole new help article for the StoryGraph integration!
  10. Help docs: Copyediting and deconfusion and more click-to-embiggen of images in five articles
  11. Added a couple missing end backslashes to multi-line curl commands in the API docs. HT @lady_alys
  12. Help docs: New headings, clickable images, and more specifics (about how different goal types handle derailing) in two articles about derailments
  13. Another Rails upgrade regression: it was taking noticeably longer to regenerate graphs. Now it's back to about 8 minutes after your deadline at worst.
  14. If there were commas inside quotes in a datapoint comment, we weren't escaping them correctly in the CSV export. Now we are! #bugfix
  15. Previous UVI caused a new bug, adding extra newlines between each row in the CSV and TSV export. #bugfix
  16. And while we were at it we now also properly escape tabs in the TSV export (though you'd probably need to have used the API to have gotten tabs in there)
  17. Help docs: Click-to-embiggen etc in 4 articles. Missed a spot in UVI#3282: references to the 'noisy' parameter (not a thing since UVI#2510) should be fully gone
  18. Added a "refresh page" button to the "a new day has dawned" banner on the goal page. HT narthur of @taskratchet again!
  19. If Todoist's API hiccupped in just the right (wrong) way, our integration could, rarely, erroneously unmark a project to-do, changing from done to not. #bugfix
  20. We now set a user-visible error on Todoist goals if we get repeated errors from Todoist instead of just silently failing to update your data!
  21. We broke our iOS app briefly (big thanks to everyone screaming bloody murder) when we tried to remove the old crufty 'panic threshold' parameter. #bugfix
  22. Help docs: New FAQs/clarifications/troubleshooting in the articles on Draft (pointing to URLminder), Duolingo, and Fitbit
  23. Help docs: The article on Focusmate has a new FAQ about sessions getting removed (plus click-to-embiggen for the images in all these articles)
  24. Help docs: New FAQ items in the Garmin article to address user confusion about intensity minutes vs activity duration
  25. Tons of work removing unused javascript plus caching took our mobile performance from red to orange per Google's Lighthouse! (Want it all green of course!)
  26. In the process of all the javascript refactoring we briefly broke our exquisitely fair discount slider on the premium page. #bugfix #zombie
  27. Fixed a zombie in which the API (and thus the smartphone apps) wouldn't give your list of goals if any of them had an error preventing it from generating. #bugfix
  28. The beeminder.com/breaks table was sometimes missing clicks when you clicked the column headers to sort the table. #bugfix
  29. Also, on refreshing the reminders or breaks page, we now use the last sort you had set if we can
  30. Also-also, we now always sort ascending when you first click the column header, which is probably always what you want and seems less confusing
  31. Help docs: Copyedits, deconfusion, and click-to-embiggen for our Gmail, Habitica, IFTTT, and Pocket autodata integration articles
  32. Help docs: Added blurbs to our old Jawbone and Misfit articles about converting these old goals to use a modern autodata source
  33. Help docs: Finally made a (barebones so far) Make (nee Integromat) autodata integration article
  34. Added missing favicon (the little icon in the browser tab) for the graph editor and tutorial and other things at graph.beeminder.com

2022 September

  1. We should've had at least 8 instances of the failsafe from UVI#3705 but it was buggy and those legit checks (and charges) got suppressed! #bugfix
  2. Bit of rare flakiness now unflaked: If you use both the iOS & Android apps, the BeemiOS push notification timing out would suppress the Beedroid push. #bugfix
  3. Extending UVI#4218, our Todoist integration now backs off exponentially so we're more robust to Todoist hiccups/downtime when retrying calls to Todoist's API
  4. Relatedly, we tweaked the error message you get if we run out of autodata fetch retries to be more specific, so you know what's going on
  5. Doh, we removed what we thought was a redundant javascript file and broke the website for about half of users for a few hours. Gulp.
  6. We're now doing more browser caching of graph images which makes a noticeable difference in page load times
  7. Also in the vein of UVI#4224, we broke the "start with safety buffer" option when restarting frozen goals. #bugfix #zombie
  8. Our Toggl integration suddenly broke when Toggl prematurely turned off an old version of their API. We emergency-upgraded and are now future-proof for a while!
  9. There's now a Toggl link in the sidebar of the goal linking to the autodata source. See UVI#4101
  10. We removed superfluous API calls to Toggl and Todoist and get rate-limited less often now; fetching your Toggl data in particular is 2 OOMs faster!
  11. Our Slack bot broke (it died of old age, basically -- changing APIs, hosted database going away) and Bee heroically got it migrated/updated/resurrected. #zombie
  12. Appended a clarification to the tooltip for the safecap column header in megabreak: "Note: This applies indefinitely, not just during the break!"
  13. UVI#4242 (consolidating API calls to Toggl) introduced a bug with timezones where we sometimes counted data for the wrong day. #bugfix #zombie
  14. Our Toggl integration now supports arbitrary deadlines!
  15. Help docs: small improvements to the autodata integration articles for RescueTime, Runkeeper, Skritter, Sleep as Android, our SMS bot, and TaskRatchet
  16. Help docs: Revamped the Privacy article (eg added hashtags explanation) plus keywords etc in "Can I get rid of extra safety buffer?" & "Deadlines & Reminders"
  17. Help docs: Caught the Slack bot article back up after UVI#4243 and improved it in various ways while we were at it
  18. Help docs: Added a question about beeminding single books to the StoryGraph integration article
  19. Similar to UVI#4235, we're now more patient with hiccups/downtime from Trello; we retry several times, with a backoff, before we set an error flag on the goal
  20. Trello error messages are now more specific, differentiating between board-not-found, token-expired, and random-downtime-or-errors-from-trello
  21. We added a CDN for our graph images which makes them load noticeably faster especially for people outside the US
  22. Help docs: Added a new clarifying FAQ item to our Todoist article plus all the usual cleanup on all these like click-to-embiggen images
  23. Sending the API something besides an array of tags for the tags field yielded silent failure, which was banefully buggy. Now we return a nice 422 error. #bugfix
  24. We now tell you in your GmailZero goal settings which email address we're pulling data from
  25. Also the Gmail icon next to your graph now links to the Gmail Label section of your goal settings where you can change what you're beeminding about your Gmail
  26. Our Focusmate integration now supports arbitrary deadlines!
  27. The API used to let you set your rate units to anything, which would break your graph if it wasn't something supported. Now we give a nice error!
  28. Help docs: tweaks and updates to our articles on Trello, Toggl, Twitter, URLminder, Withings, Zapier, and "How do I quit a goal?"
  29. We added a link to our blog post about our Storygraph integration to our Storygraph integration landing page. beeminder.com/storygraph
  30. The API now always responds with JSON, with or without the .json suffix. Previously it sometimes gave an opaque error if you didn't have .json in the URL.
  31. We used to give a 500 error if you (probably if you were a spam bot but who knows) submitted non-UTF-8 characters in our contact form / signup. #bugfix
  32. Previous UVI broke signup for a bit! #zombie #bugfix
  33. Help docs: Clarifications and copyedits and click-to-embiggen in articles about archiving and deleting goals and deleting your account
  34. Help docs: Fixed the documentation of notifications for the iOS app
  35. Fixed a bug with Garmin autodata fetches that caused noticeable Garmin fetch flakiness for 10 days. #bugfix #zombie
  36. Toggl goal creation flash banners ("checking for data" or "there was an error" etc) were tripping over each other with unsmooth show/hide animations. #bugfix

2022 October

  1. Our Focusmate integration was setting your goal's units to "Focusmates", which didn't quite make sense. Changed it to "sessions"!
  2. We were truncating the goalnames at beeminder.com/reminders at 8 characters, which was annoyingly short. Now it shows up to the full 20 chars.
  3. Adding data from the dashboard and clicking the graph image before the infinibee stopped buzzing could give a 404 error in some browsers. #bugfix HT glorkmod
  4. We removed the unnecessary "CUR" (for current) prefixes in the graph stats section of the statistics tab, which could cause ugly overlapping text. #bugfix
  5. Our SVG graph images are now always pure SVG instead of importing PNGs for things like the bullseye or skull and crossbones; crisper, faster, less flaky, etc!
  6. Help docs: Copyedits and other small improvements (keywords, links, etc) to our Beedroid, GTBee, and TagTime articles
  7. Less flaky Toggl and Todoist autodata fetching since we now retry when we get weird temporary errors from their APIs, similar to UVI#4251 et al
  8. Help docs: improved and slightly modernized the article about the permanotification in our Android app aka Beedroid
  9. We put a hodgepodge of site statistics at beeminder.com/stats in case you're curious about anything
  10. We had a dumb regex bug in our Todoist integration: you couldn't filter for tasks labeled, say, "cow" without also including, say, "coworker". #bugfix
  11. Zapier made themselves a new logo and we updated our landing pages and elsewhere
  12. Fixed a literal rounding error on our payments page: you'd get an email like "paid $6.75" which was correct, but beeminder.com/payments would say "$7". #bugfix
  13. Help docs: there's now a help doc about beta testing new versions of our iOS app (and there's a significant new beta version available to test!)
  14. Help docs: overhauled our article on lying to Beeminder, added more resources and links
  15. Fixed an error introduced by UVI#4280 that made our payments page give a 500 error! #bugfix #zombie
  16. We're now consistent in our capitalization of URLminder (and the forthcoming RSSminder). #bugfix
  17. We now only give up on fetching your Duolingo data (and showing an error banner saying we can't do autofetches) if we're pretty sure it's not a temporary hitch
  18. Soft launch of beeminder.com/rssminder plus initial bug fixes like giving a better error if you give it an unfetchable RSS feed URL
  19. Help docs: Improved articles (copyedits, keywords, links, etc) on Beedroid beta testing, akrasia horizon, Beeminder vs StickK, and specifying beneficiaries
  20. BeemiOS (that's our iOS app) versions 6.1 and 6.2!
    • Most immediately visible improvement is seeing checkmarks in your gallery for goals that have data added for today (aka todayta checkmarks)
    • BeemiOS is now smart about using the full width of your display for your goal gallery
    • And a small #bugfix in BeemiOS 6.2: the app icons no longer ever overlap the device's navigation bar icons
    • Apple's Shortcuts finally work! Automatically send data to Beeminder goals, or just put a Shortcut on your home screen to send a +1 to Beeminder with one tap
    • Shortcuts also now let you set the datapoint comment, either hardcoded or based on contents of the Shortcut, eg, to record the time of day the thing happened
  21. Help docs: Rewrote and made nice and comprehensive our article on account settings, plus small improvements to New Goal Details and Apps & API
  22. Help docs: Added tables of contents to some articles, and anchor links for linking directly to subsections to more articles
  23. Help docs: More tables of contents, saying "goalname" not "goal name", overhauling the Graph Editor article, clarifying things in the Respite article
  24. We were robusting up push notifications for iOS and totally broke them for a while! May have sped up graph processing times in the process. #bugfix #zombie
  25. We improved the layout in goal creation in a couple small ways: centering the CONTINUE button and better wrapping of text. #css
  26. Of course the previous UVI managed to totally bork the layout for the goal restart UI so we patched that up. #bugfix #zombie HT @chipmanaged
  27. Help docs: Continuing with adding tables of contents (which we'll stop counting as UVIs now) and small cleanup and copyediting for a few more articles
  28. Help docs: Added a screenshot and blog post link to the article on the Supporters feature
  29. UVI#4297 broke *another* page's layout -- beeminder.com/payments (all the tables were ugly) -- which is now also fixed. #css #bugfix #zombie
  30. And while fixing that we also gave the dates on the payment page a min width so they don't try to wrap on narrow screens, since that was hideous. #css

2022 November

  1. We briefly broke the ability to regenerate graphs for goals derailing for the second time in the same 24 hour period. #bugfix #zombie HT @chipmanaged
  2. Microsoft randomly decided to block all Beeminder email to hotmail and outlook email addresses. We went through an elaborate appeals process to get whitelisted.
  3. Help docs: Made the Graph Settings article prettier and clearer and added missing facts (like about restarting goals and the x-min setting)
  4. Help docs: Cleanup and new information in "what do I do first?" and smaller copy improvements to "what is Beeminder?" and the one about the goal page
  5. Slightly rearranged and slightly edited the premium FAQ at beeminder.com/premium (also warned $40/mo Beemium folks of the imminent end of their grandfathering)
  6. Caught a critical bug in RSSminder (still only soft-launched at beeminder.com/rssminder ) that made it get stuck on goal creation. HT narthur
  7. Fixed rogue instances of "road" in graph.beeminder.com if you dialed the red line improperly, eg, "Submitting this [bright red line] would insta-derail!"
  8. Official launch of RSSminder! Logo on the front page and goal creation, blog post, the whole nine yards.
  9. And just before the launch we fixed a problem with initial fetching of the feed and got more robust to real-world feeds in a couple other ways. #bugfixes
  10. When you hit your pledge cap, the legit check email links you to goal settings to adjust it. It now deeplinks to the right section: bmndr.co/user/goal#pledge
  11. Also we made that deeplink aka anchor link work correctly and added microcopy about "current pledge" and "pledge cap" to make it clearer and greppabler
  12. Help docs: copy tweaks, improvements, links, elaboration in half a dozen example goal articles
  13. Help docs: fixed some broken html in the "What's my data?" article
  14. Restored the missing logo to the header of graph.beeminder.com which we'd lost in some Amazon S3 caching incident #bugfix
  15. Help docs: Revamped/rearranged the "How do I change my goal?" article, added headers, new screenshot, etc, plus smaller changes to a few other articles
  16. Help docs: Added a new section with links to troubleshooting blog posts in "What's the best way to beemind ____?" plus missing image in another article
  17. We now link to both goal reminder settings as well as beemail settings from the unsubscribe page (for logged in users)

2022 December

  1. Help docs: more explanation of examples, added hovertext and anchor links to a few articles; bit more substantial changes to article on goal pausing
  2. Help docs: Clarified about x-min in the article about starting a goal over, clarified about multiple derailments from deleting data
  3. Fixed a bug that made us fail silently if, somehow, your StoryGraph username stopped existing after goal creation. Now we fail nice and loudly! #bugfix
  4. Help docs: Prose cleanup, anchor links, table of contents, layout, new links, etc on another batch of help docs!
  5. New users who hadn't already authorized us to read their Todoist data haven't been able to create Todoist goals since Todoist turned off API v8. Doh. #bugfix
  6. We changed "RECOMMITTED" to "#DERAIL" in the datapoint comment of the dummy datapoint we add when you derail and we rerail you
  7. We also updated the error copy and the API docs and the glossary and everywhere else we could think of to never refer to derailing as "recommitting"
  8. Fixed an ugliness where the pencil icon would wrap to a new line if your goal description was too long, plus better centering. #bugfix #css
  9. We made #SELFDESTRUCT and #THISWILLSELFDESTRUCT work as magic strings to mark Pessimistic Presumptive Reports (PPRs) as self-destructing. See UVI#3985
  10. And self-destructing datapoints now self-destruct fully consistently: no special case to abort self-destruction if the replacement is also self-destructing
  11. Oops, previous UVI was both false and also broke self-destruction altogether briefly. Fixed the regression and made previous UVIs true. #bugfix #zombie
  12. We made a new anchor link -- bmndr.co/USER/GOAL#deadline -- to link directly to the DEADLINE & REMINDERS section of goal settings
  13. And the link in bot emails to adjust reminders is now called reminder settings instead of, confusingly, email settings and links to the new anchor link
  14. Help docs: table of contents for most articles where that makes sense, generalized FAQ slightly on Whittle Down Goals article, other minor copyediting
  15. We upgraded to a newer Stripe API for collecting charges, which makes for fewer generically declined payments by your bank 💰
  16. Regression from our Rails upgrade: legacy users with PayPal as a payment method saw a 500-error when trying to view the payments page. #bugfix #zombie
  17. Regression from Todoist changing their API which broke our ability to fetch your Todoist data! Emailed those affected, etc. #bugfix #zombie
  18. Help docs: Improvements to "How do I enter data?" including visible anchor links, new details on when autodata goals update, and note about 3rd-party autodata
  19. Help docs: Clarified and corrected things in several articles
  20. Fixed some webcopy that was miscapitalizing RSSminder and linked to the blog post on the RSSminder landing page
  21. Help docs: new screenshots on 3 articles plus more explanation about free goals and some copy tweaks for clarity in others
  22. Help docs: illustrative screenshot and clarification around "custom pledges" in the "How much do I pledge on my goals?" article
  23. Preliminary metaminding! You can use the existing webhook feature to point a Beeminder goal at another Beeminder goal!
  24. Added proper loop detection so you can't create an infinite loop of Beeminder goals pushing data to each other
  25. When we first deployed the preliminary metaminding it would reject any goals with hyphens in them! #bugfix
  26. Official Metaminder integration! beeminder.com/metaminder lets you create goals that get their data from other Beeminder goals!
  27. All the accoutrements for Metaminder: Beeminder logo in our own gallery, blog post, etc

2023 January

  1. The Metaminder integration was missing datapoint info in the comment of the meta datapoints. #bugfix HT @lady_alys
  2. Our Strava integration started using the current date instead of the event date when adding datapoints. #bugfix #zombie
  3. Our webhook callback JSON now includes all the datapoint parameters documented at api.beeminder.com/#datapoint
  4. UVI#4339 broke how we displayed "Project Euler" and in fact made it impossible to load Project Euler goal pages altogether briefly. #bugfix #zombie
  5. January special: we bumped the free goal limit on the free plan from 3 to 4 goals
  6. Our stalwart integration partner, Draft, is sadly shutting down. We emailed those affected, converted their goals to manual, and removed Draft from the gallery.
  7. We changed the default end date of new goals from "now + 10 years" to "2099-12-31"
  8. Changing the end date to 2099 caused a regression: turns out we weren't letting you change graphs with red lines ending after the year 2038! #bugfix #zombie
  9. Turns out our own bmndr.co/aboutus page was not robust to graph generation errors in our meta graphs and the whole page was briefly broken! #bugfix
  10. Help docs: Revamp of the article about changing your goal's pledge, emphasizing both increases and decreases, more on step-downs and short-circuiting, etc
  11. Help docs: Clarified about different pledge caps in the article about that, other clarifications in the one about pledgeless goals, plus tweaks to 4 others
  12. Help docs: New article about when charges actually happen
  13. The link to data source on Duolingo autodata goals is now more direct, going straight to the page showing your language courses and XP totals
  14. You can now see what language you're beeminding and your Duolingo username in the Beeminder goal settings and goal sidebar for your Duolingo autodata goals
  15. We changed our @focusmate integration to ignore sessions you scheduled but never joined. Fair, right? We emailed all affected users to warn them of the change!
  16. To settle a years-long debate and secure world peace, we added the date and version of the latest deploy to the footer of the Beeminder website. #thanksobama
  17. Fixed some ambiguous webcopy on the newbee empty-gallery page: There's a one-week delay to make your goal easier -> Making your goal easier has a one-week delay
  18. We refined the urgency load metric to account for goals whose end date is approaching: max(0,min(7,m)-b) where m is days till your goal ends & b safety buffer
  19. Urgency Load is now in the Stats tab! Both the contribution to urgency load from the specific goal as well as the total across all your goals
  20. Help docs: New article about force majeure aka "an emergency came up and I can't do my goal!"
  21. We added new support workerbees Joshua and Oliver to the About Us page!
  22. As an add-on to UVI#4355 and because recent UVIs have been pretty huge, we'll count this: when/if we do break our meta graphs the hours will say "uncountable"
  23. Help docs: Our article on what is a derailment is now clear about the consequences of editing past data aka the red-yesterday criterion
  24. Help docs: clarifications and copyedits and links and such in 6 more articles
  25. An obscure bug made it impossible (at least once!) to confirm your email address. We fixed it for the user affected and robusted it for the future. #bugfix
  26. We now make all users, even if you sign up via Google or other oAuth service, confirm their email at signup. Yes, we are recanting on UVI#4174!
  27. Microcopy update: Narthur found a spot in the ratchet UI where it referenced "commit to" instead of the "commitment dial", which is what we call it these days
  28. We added some rate-limiting to fend off evil bots and buggy API clients but it was too aggressive and affected real users - whoopsies - so we backed it off
  29. In freeCodeCamp goal setup if you only had a solitary point we said '1 points'. It now correctly pluralizes the word 'point', even if that's lonelier. #bugfix
  30. Help docs: revamp of our Apple Health integration article with new FAQ item, table of contents, anchor links, and other links
  31. To guilt you into not abusing the loophole, the popup described in UVI#2221 now shows how many charges you've canceled via that feature
  32. We had a dumb ~bug in signup where you had to re-enter your payment info if you answered the captcha incorrectly. That's now smoothed out.
  33. Help docs: Official article for the official Boss as a Service integration
  34. Help docs: Official article for the official RSSminder integration
  35. Help docs: Our help page for the Metaminder integration was more of a placeholder and pointer to the blog post till now. Now it spells it all out, FAQ, etc!
  36. Derail and self-destructing PPR datapoints are now excluded from Metaminder

2023 February

  1. Doh, UVI#4378 accidentally made the captcha for the signup page be case-sensitive and trailing-whitespace-sensitive. #bugfix #zombie
  2. Also the captcha is slightly stricter (it used to accept any string that had the answer as a substring) but now says if you're right in real time; much nicer!
  3. Help docs: Improvements to our Clozemaster and CodeCombat articles (new link, etc) and graveyard-ified the Draft article and pointed to URLminder
  4. Help docs: Added new troubleshooting and a warning and an invitation to try a beta thing to our Focusmate article, plus tweaks to Complice, Duolingo, and Fitbit
  5. Years ago we introduced a bug with smartphone app logins that spuriously percent-unencoded your password so certain passwords with %'s wouldn't work. #bugfix
  6. That one was rare cuz any invalid %-encoding we'd just let thru. Then we "fixed" it to error out on invalid %-encodings & lots of folks couldn't log in. #bugfix
  7. Next step from UVI#4042: If you have PayPal as a payment method but something else as your default, you can no longer switch your default back to PayPal
  8. Help docs: copy tweaks, a new link, and some weasel-discouragement to the "What is a legit derailment?" and "What happens when I derail?" articles
  9. This specific thing isn't inherently an improvement but entails enough awesomesauce that it counts: we now redirect you to a Stripe page to add payment info
  10. We now support 3D Secure payments!
  11. We now support Google Pay!
  12. We now support Apple Pay!
  13. Help docs: Formatting and more troubleshooting updates to GitHub, Gmail, Habitica, and IFTTT integration articles, and the graveyard pages for Misfit & Jawbone
  14. Help docs: Added a section to the article for our Make integration comparing it to Zapier and IFTTT
  15. Improved long-standing funkiness with post-log-in redirects, where sometimes we'd send you to a surprising location (eg, after adding a 3rd-party oAuth) #bugfix
  16. Minor inconsistency in charge scheduling: normally 24 hours after premium renewal email but if you added a new payment method it would happen early. #bugfix
  17. Regression introduced in December: Self-canceling a la UVI#2221 silently failed for charges created before UVI#4334. #bugfix slight #burglebug #zombie
  18. Fixed an anti-magic violation on the signup page: the error checking for email/username/CAPTCHA is now always displayed as soon as you start typing
  19. There's now a nice green halation on the fields of the signup form when what you've typed so far is valid
  20. And the red halation for invalid input is no longer suppressed when the field is in focus. #bugfix
  21. Also on the signup form: the red halation for the text area for what you intend to beemind was altogether missing. Now it's the same as everything else. #bugfix
  22. The add-payment button would disable itself if anything in the signup form was filled out wrong, but not immediately re-enable itself when you fixed it. #bugfix
  23. Help docs: Lots of improvements to our Pocket integration documentation including primer on Pocket and examples of beeminding it, new FAQ items, and more
  24. Help docs: Intro blurbs, copy tweaks, standardization with other autodata integration articles, examples for Runkeeper, Project Euler, RescueTime, and RSSminder
  25. Reformatted and shortened the CAPTCHA riddle instructions on the signup form
  26. Gateway drug commitment device! Signing up for Beeminder now requires agreeing to get charged $5 if you don't create a goal within a week!

2023 March

  1. Help docs: Added Google Pay and Apple Pay and 3D Secure to our article about payment methods
  2. We were inconsistent between the website and the forum on whether to call ourselves workerbees or worker bees. We're going with workerbees! HT @lady_alys
  3. We increased the character limit for the intentions field on the signup form, plus all the new instructions/UI for the gateway drug commitment device
  4. Critical regression with the gateway drug changes: your gallery view (as opposed to dashboard view) of your goals briefly gave a 500-error. #bugfix #zombie
  5. There's a huge color-coded countdown on your empty dashboard page counting down to when you'll be charged if you don't create a goal!
  6. Fixed a bug with the "create a new goal" button getting off-center at small screen sizes, plus more copy tweaks/fixes on the empty dashboard page. #bugfix
  7. Updated the graph legend image for the swath-formerly-known-as-turquoise to be purple, and updated all mentions of turquoise to purple
  8. Added a graph legend entry for the $$ and countdown watermarks that show up on the graph
  9. Added a graph legend entry for the Jolly Roger that shows up on frozen graphs, like when you derail when the goal is scheduled to be archived
  10. Finally changed all mentions of "polynomial fit" now that we're using an infinite-impulse-response filter instead
  11. Oops, in the legend descriptions if you tried to click on one of the links, the whole description would switch state on you. #bugfix
  12. We made a bunch of copyedits and improvements to the graph legend (including a link to the glossary and marking the rosy line as deprecated)
  13. Added Forfeit and TaskRatchet and Complice to our FAQ (in case you're looking for commitment devices without data and graphs)
  14. Fixed inconsistent links in our graph legends; they all open in a new tab now. Also made more improvements to the explanations there.
  15. Regression from UVI#799 fixed: logging in with the wrong username/password actually tells you which was incorrect. #bugfix #zombie
  16. Missed a couple spots in the graph legend: we now give the true story of the moving average and purple swath (IIR filter, etc) with links
  17. Formatting/layout improvements to the signup form, lots of fussing with the webcopy, improved accessibility by adding labels to CAPTCHA and intentions fields
  18. We added added a couple sentences of reassuring webcopy to the signup form about clicking the "Add Your Payment Method" button. Seems to be helping!
  19. Added some cute placeholder text in the intentions field of the signup form. HT @shanaqui and Madge
  20. Fixed some microcopy in the ratchet UI that erroneously/outdatedly referred to "the 'commit to' section" instead of the commitment dial. #bugfix
  21. A regression from the Stripe upgrades: if you clicked the "email my full pledge history" button, it would sometimes silently fail! #bugfix #zombie
  22. For the gateway drug meta commitment device, we now email you a day before we charge you the $5
  23. Oops, we had an off-by-one error on display of deadline times thanks to daylight savings time and a timezone library that got out of date. #bugfix #zombie
  24. Help docs: Table of contents and other improvements to the articles for the Slack integration, Sleep as Android, SMS bot, Strava, TaskRatchet, and Toggl
  25. Help docs: New info about the StoryGraph integration (what happens if you add antedated data) and other improvements, and similar for Todoist and Trello
  26. Updated our use of Twilio's API. We were getting errors on some attempts to send SMSes, causing silent failure. Now we're getting no errors.
  27. Help docs: New details on "What happens to an archived goal?" plus standardization, TOC, etc on URLminder, Withings, and Zapier
  28. Help docs: New paragraph about what happens if, for example, you have a device failure and can't add data to a goal, in the "How do I quit a goal?" article
  29. Help docs: "How do I delete a goal?" now talks about how you can archive right away if you derail during the archive period, since that causes confusion
  30. Help docs: Screenshots added to "How do I delete my account?" and signposted archiving and adding breaks

2023 April

  1. A kind of obscure bug in the API that was affecting our Complice integration at least: API calls with long enough URLs would give 500-errors. #bugfix
  2. Help docs: New anti-cheating discussion in the "Can't you just lie?" article plus tweaks and a new link in two other articles
  3. Our guestbot feature that lets Beemium users drop in on our internal dev chat broke due to some SSL thing a while back; we got it back up and running. #bugfix
  4. Help docs: More verbiage and a link to a blog post in the "Can I specify a beneficiary?" article plus links/tweaks in 5 other articles
  5. Help docs: New article promulgating our derailing-is-not-failing philosophy
  6. Help docs: More guidance on changing settings in the "New Goal Defaults" article, plus brief clarifications in the one on PPRs
  7. Added a blurb to the "Wondering why?" popup convincing you to add a payment method to remind you about the gateway drug commitment device
  8. Fixed a weird typo in the error copy for creating callback loops with webhook URLs and copyedited it a bit. "I can't let you do that, HAL..." #bugfix #typo
  9. Earn additional free goals every time you get stung!
  10. Also we now show you your goal limit (aka glimit) in your account settings
  11. Changed the webcopy for the paywall when you hit your goal limit in light of the new parceling-out-goals-sting-ily feature
  12. We also made it so if for some reason we refund a pledge payment, we take back the free goal
  13. More changes to the the paywall webcopy to keep pushing on derailing-it-is-nailing-it (plus a typo fix, and a moneybag emoji)
  14. Help docs: new article about how many free goals you get, with screenshots and laying out the parceling-out-goals-sting-ily philosophy
  15. Fixed a broken link in account settings that was meant to link to the blog post about parceling out goals sting-ily. #bugfix
  16. Help docs: Clarifications and expanded copy in the Reminders article plus minor copy/formatting tweaks in 3 other articles
  17. Our Duolingo integration briefly broke on Saturday and we were able to quickly fix it by spoofing a human-looking user-agent 😬 #bugfix #zombie
  18. We finally nixed the auto-gimme-free feature from UVI#2018. Pressing the button to get extra free goals now always makes you go through a human.
  19. We now complain if you try to give us a malformed email address for many more ways of malforming an email address, like "me@hotmail" or "bob@gmail..com"
  20. Cleaned up the UI copy for Post-Derail Respite, nixed some redundant labels, and are now consistent in calling it Post-Derail Respite (not just Respite)
  21. Tiny thing that hardly ever matters but we now prevent goalnames from ending in "-thumb" for technical reasons involving URLs for graph thumbnails
  22. Help docs: Minor improvements and clarifications to the "Post-Derail Respite" article, plus a stronger warning on the GTBee article about its moribundity
  23. Help docs: Clarification/formatting/etc for the graph settings article (especially re: restart behavior and x-min) plus a smaller tweak to the TagTime article
  24. As a follow-on for UVI#4457 we now properly handle whitespace in the email address field on signup and other places (namely, we just trim it for you)
  25. Added more exposition to the SMS bot's activation and stop responses (there are carrier guidelines about these things that we're now following better)
  26. Integromat is now Make.com! We've updated the our integration landing page and Make's entry in our gallery, etc.
  27. If you were creating an autodata goal (that needed oAuth) and used the back button, it would disable the "next" button and you'd be stuck! #bugfix
  28. Soft launch of our Lichess integration! For intrepid users who watch our changelog, feel free to start beta testing it at beeminder.com/lichess
  29. We added reserved usernames for various future features (beeta, android, reminders/alerts/etc) and other URL slugs that would make horrible usernames
  30. By popular demand we added an option for which type of game to count for the Lichess integration: Blitz, Bullet, Correspondence, Classical, Rapid, or Puzzle!
  31. Official Lichess autodata integration! Added it to the front page gallery, wrote a blog post, the whole nine yards.
  32. We briefly had a bug with the Lichess integration that would make authorization errors fail silently instead of loudly. #bugfix
  33. Help docs: New article about the Lichess integration, plus added links on the Lichess landing page (to Lichess.org and to our blog post)
  34. We fixed an old problem with SVG sizing on Firefox with the graph previews and made the CSS more robust to such problems in the future. #bugfix #zombie

2023 May

  1. Help docs: Overhaul of our Android App article in anticipation of new Beedroid version, plus tweaks to the Beedroid Beta Testing and Permanotification articles
  2. Help docs: Small changes to 3 articles: legacy article about Yellow Brick Half-Plane, the iOS app (BeemiOS), and Lichess
  3. We changed the "username taken" error to "username taken or reserved" since we care about being impeccably truthful about these things. #truthfetishism
  4. We've closed a loophole! If you derail two days in a row, we no longer drop the second day's charge. 🤑
  5. Beedroid version 5! That's 5.0 of the Android app with a long list of improvements...
    • We finally restored the ability to log in w/ your Google account (phew!)
    • The other biggest change is that we've totally redone notifications and you finally can set them on the website like all other kinds of notifications
    • Bonus improvement with the new notifications: no more dumb permanotification (downside: notifications require an internet connection now)
    • Lots of things look better at different font sizes and load faster and stay in sync better as you move between screens
    • We've streamlined the settings in the app, getting rid of things like whether to vibrate for notifications. That one's built in to Android now.
    • Sending datapoints to Beeminder is now faster and more reliable
    • You can now set longer goal descriptions in the app
    • And you can create homescreen widgets by long-pressing on goals in the app!
    • Better widget previews and other widget aesthetics
    • And widgets no longer ever say "derailed" when it’s just that they haven’t loaded yet 😅
    • The list widget, showing all your most urgent goals, now shows a faded edge so you know to scroll to see more than what fits on your screen
    • Various accessibility improvements, making things easier to read and click on
    • Lots of changes dictated by Google, like not asking for notification permissions until you log in to Beeminder, plus removing unneeded permissions
    • All sorts of small or rare fixes, like restoring your phone from backup no longer messes up the current day's reminders
    • Fixed a silent-ish failure if you tried to add a widget before logging in to Beeminder on the app, plus other related #bugfix-es
    • Lots of copy tweaks for clarity and consistency, like always saying "datapoints" not "data points"
  6. Follow-on fixes in Beedroid 5.0.1 and 5.0.2!
    • We no longer crash if your phone doesn't have a browser! #bugfix
    • Also fixed a regression that prevented Beedroid from getting autodata from TagTime
    • Cleaned up some errant notification channels #bugfix
    • Timer notifications were opening the wrong goals! #bugfix plus sadly had to nix having pause/resume controls in the notification itself
  7. Help docs: New links in "What is Beeminder?" and revised the "What do I do first?" article in light of the gateway drug commitment device
  8. Help docs: Tweaks for clarity in the "How do I interpret..." articles plus an key clarification added to "How do I change my goal?" about post-derail steepening
  9. Help docs: New links etc in "What's the best way to beemind X" and the one about end-of-day and new section on adding data in one of the example goal articles
  10. Help docs: Lots of copyediting and new words in "How do I tell Beeminder what day my week starts?" and split "How do I set a weekly rate?" into its own article
  11. Rare bug with 3rd-party auth getting deleted and that preventing you from logging in to Beedroid or BeemiOS with your password. #bugfix #zombie
  12. Pretty horrible bug (thankfully only affecting 9 users who still had PayPal as a payment method) that wouldn't let you update your payment method! #bugfix
  13. Soft launch of our upcoming TryDeepWork.com integration at beeminder.com/trydeepwork (coming to the front page and the blog soon!)
  14. We fixed our old kibotzer.com redirect and fixed a tiny but embarrassing typo ("once place") on the beeminder.com/breaks page
  15. Help docs: Small copy improvements to 5 different articles on example goals plus the one on different goal types and how many free goals you get
  16. Help docs: In the article about Do Less / Odometer / Whittle Down goals, we clarified that you don't need premium for them if used for an autodata goal
  17. We added a mini FAQ to our Contact Us page with the top 3 questions we get asked. Yay @shanaqui!
  18. Also we made the bullets in the bulleted list be bees. HT @datasmithing1
  19. We added a warning about insta-derailing yourself by deleting old datapoints in the deletion confirmation popup
  20. And a permabanner in the data tab about being careful about the order of your edits so you don't derail yourself, plus a note when the goal's cumulative
  21. Tightened up, fixed typos in, and changed our mind a couple times about the wording for the insta-derail warnings; also added a link to the forum
  22. Added links to help articles about quitting goals and canceling premium plans in the section of account settings for deleting your account
  23. Also copyedited and reformatted the Delete Account section of settings a bunch
  24. Official launch of our trydeepwork.com integration: added to front page gallery, goal creation, a blog post, and a help article!
  25. Also leading up to the trydeepwork.com integration launch, we added a new metric, hours in addition to sessions, and are now robust to username-not-found
  26. Added a blurb to the legit check emails to tell you when your derailment is earning you another free goal, per parceling out goals sting-ily
  27. You can now double-click the little expand/collapse hexagons on the dashboard to cause the corresponding goal to refresh
  28. Help docs: Copyedited and reformatted the article on ratcheting to make things easier to find and to be consistent in using a hyphen with "auto-ratchet"

2023 June

  1. We now use a ❗ instead of ✔️ in the due-by table for do-less goals that are in the red, ie ineluctably derailing unless negative data is allowed
  2. While we were at it we fixed an alignment problem (er, the css kind of alignment) in the due-by table. #bugfix #css
  3. If we fail to set up Fitbit auth correctly (probably from having an old token on file) when creating a new Fitbit goal, we now we fail loudly/immediately
  4. Due to a bug in our own debugging code (facepalm) we were sometimes failing to update people's Toggl goals; at least one user was affected! #bugfix
  5. We now poke the mobile apps when a graph's eep status changes so the apps are less stale in reporting whether graphs are in a beemergency state
  6. Scheduling breaks on some graphs (those with a segment specified in terms of end value and rate) would fail with an opaque error. #bugfix
  7. In our Todoist goal creation we stupidly let you check boxes for projects/labels while having "all items" selected, rendering your box-checking useless! #bugfix
  8. We failed to notice an expired Todoist auth during goal creation unless you selected the "projects/labels" option. Now we check before creating it!
  9. Better/clearer error messages when various things go wrong (rate limits, auth problems) with our ability to fetch your Todoist data
  10. Todoist goal settings now always show the selected projects. (Labels were there all along, not sure if missing projects was a regression) #bugfix
  11. Twitter's API changed and our Twitter autodata integration was broken for a while. Switched to the new API to resurrect it. #zombie
  12. That entails a few changes we had to email affected users about: Have to oAuth now, can only count tweets for your own Twitter, and no more hashtag minding :(
  13. We missed a spot in settings that still referred to an exponentially weighted average and The Hacker's Diet, now fixed
  14. Some of our hovertext / tooltips on various graph settings was missing. Now it's there! Including commentary on the moving average line and the Hacker's Diet
  15. Help docs: Copy tweaks, more/better examples, clarifications, formatting, upside-downing, and other improvements to 8 different articles
  16. Help docs: Added a walk-through of setting up a Do Less goal in the article about those, plus a bit more explanation in the article on PPRs
  17. Exciting news for Complice I mean Intend! It's now Intend and we updated all our logos and webcopy accordingly!
  18. The "more free goals please" button used to be inexplicably disabled after you used it 7 times; now it's explicably disabled (ie, we added UI-copy to explain)

2023 July

  1. Beeminder iOS app version 6.3! The money-ectomy spaghetti-throwing Apple-appeasement release, with actual improvements along for the ride...
    • BeemiOS now calculates sleep / time in bed / mindful minutes properly (it used to be confused by multiple devices reporting data, etc)
    • The pointless ":" button on iPad is gone, and restyled on iPhone. Also we removed support for iOS 13 and earlier. Onward into the future!
    • You now see a preview of data when adding Apple Health connections. Also you can view logs and share them with support.
    • Finally, version 6.3 added various new Apple Health metrics users have requested. fireworks-emoji!
    • Finally-finally, we used to sometimes DOS ourselves by making like 90 requests/second to Beeminder; now we don't! Phew.
  2. Help docs: New example setup section in our article on odometer goals, plus smaller changes to the one on custom goals
  3. Help docs: New example setup section in our article on whittle-down goals, plus smaller changes to the one on how to enter data
  4. Help docs: More exposition in the "what is my data?" article, showing what data looks like on the website, links to other articles, etc
  5. Help docs: New example goal creation section added to the article on weight loss goals plus smaller changes to a few other articles
  6. Help docs: Added info about getting free goals when you derail to the article about how much Beeminder costs, plus clarifications in the "When do I pay?" one
  7. Help docs: Reorganized the "How much do I pledge on my goals?" article with headers -- much more readable!
  8. Help docs: We split the "Can I increase or decrease the pledge on my goal?" article in two. Added a list of caveats to the pledge-decreasing one.
  9. Help docs: And the new "Can I increase the pledge on my goal?" article is written mostly from scratch with new screenshots and explanation
  10. Help docs: Reorganized and added lots of info to the premium subscriptions article, plus added advice / copyedited to the ones on pledge caps / pledgeless goals
  11. Help docs: Added a note about Google Pay to the article on payment methods, plus minor tweaks to 5 other articles
  12. Goal alert settings were forgetting about Android alerts when deciding whether to remind you that you've turned off all reminders for a goal
  13. We also ignored presence of Android alerts in a fallback option for if you lose your SMS permission, and they are the only type of reminders you have turned on
  14. The Todoist #bugfix from UVI#3689 is now fixed across other autodata integrations that also sometimes had that 1970 datapoint date problem
  15. Tiny thing but it mattered for our quals, and might matter for you? : we now ensure TSV/CSV data exports are always sorted exactly the same way
  16. The forum welcome message now mentions some new competitors, highlights some forum categories, and we got rid of cruft about the old Akratics Anonymous
  17. Help docs: Fixed a broken link in the Gmail integration article, plus copy tweaks and clarification in 3 other articles
  18. We used to claim that if you replied to certain automated emails, the founders would see it. Changed that to "human workerbees", making it still true!
  19. We've done a lot on things like rate-limiting login attempts that's only verrrry technically user-visible directly but counts indirectly in server speed
  20. Help docs: Updated the list of Apple Health autodata metrics to show all 30 (!) of them. Plus typo fix and copyediting in 2 other articles.
  21. Our dumb regex for (dumbly) deciding when to infer a goal is timey had a bug: if goal units contained "hr" (eg "threads") it'd be created as timey. #bugfix
  22. The email we send when you create a new do-less goal now points to the help doc on do-less goals instead of the 10-year-old (!) blog post
  23. Also that email mentioned "road" instead "red line", plus we de-confused / tightened up / improved things in both the do-more and do-less versions of the email
  24. Rewrote the automatic email we send when when we lose authorization to access your data from an autodata source: shorter, clear, fewer quasi-typos
  25. Help docs: More improvements to the Apple Health article to deconfuse some instructions; also readability tweaks on the Force Majeure article
  26. Help docs: Standardized the layout and fixed some html in the article about Boss as a Service, plus a link to the blog post announcement by Manasvini
  27. Added missing hovertext on links on the beeminder.com/premium page

2023 August

  1. Added hovertext giving more details for each premium perk (even ones that aren't hyperlinks) on beeminder.com/premium
  2. Fixed some weirdness with tab indexes getting out of order on the dashboard page after re-sorting the goals. #bugfix
  3. Fixed some hovertext we broke on the premium page and fixed a couple instances of confusingly calling premium plans "subscriptions"
  4. The autodata landing pages had the old yellow-brick-road style sample graphs on them. Updated the image that the majority of them use to a modern graph image.
  5. Help docs: Changed all the references to Complice to "Intend (formerly Complice)", plus standardization of 2 other autodata integration docs
  6. Ever since UVI#3893 (!) the SMS bot has sometimes been replying "Beeminder is unavailable" before replying with your actual updated graphs. #bugfix #zombie
  7. An additional bug (we had to test this in production) kept yesterday's fix from preventing all cases of the SMS bot replying "Beeminder is unavailable" #bugfix
  8. Had to "register a brand campaign" w/ Twilio and get approved by carrier networks. Our SMSes were getting throttled before and now are failing much less often!
  9. We added reCAPTCHA to the signup form to help deal with bad guys using Beeminder to test stolen credit cards 😭
  10. Added a link to a blog post for explanation of "upcoming flat spot" in the ratchet UI-copy
  11. BeemiOS version 6.4 fixes a crash with the Today Widget for logged-out users and another rare crash for messed up graphs (no "mathishard" field). #bugfix
  12. We made the reCAPTCHA a little less annoying / more likely to verify you as human behind the scenes without making you do anything
  13. Another reCAPTCHA #bugfix: we'd think you failed the initial check if you took more than 2 minutes to fill out the signup form
  14. Regression from our latest Rails upgrade: we were giving an error on signup if you used unicode characters. #bugfix #zombie
  15. Our new reCAPTCHA broke the ability to put in your email to "keep abreast of the buzz". It'd give a 500 error. Mortifying. #bugfix #zombie
  16. Help docs: standardized the format of and/or made minor copyedits to 5 articles about autodata integrations
  17. Some RSS feeds didn't like that we were fetching the feed without a User-Agent header, so you couldn't mind those feeds with RSSminder. Now you can! #bugfix
  18. For new RSSminder goals we drew the red line starting at zero even if you had preexisting RSS entries, yielding excess safety buffer! #bugfix HT scarabaea
  19. If you edit your tags in the URL, the new filtering takes effect without having to reload the page. See UVI#2080 HT zzq
  20. What we previously called premium credit is now officially called Honey Money. The changes implied here are so far strictly in the name, but stand by...
  21. A little improvement along for the ride in version 6.4 of the iOS app aka BeemiOS: Theo tweaked the colors so the blue text is easier to read in dark mode
  22. The blog got a fancy redesign thanks to Nathan Arthur of @TaskRatchet fame! It's prettier and faster!
  23. The new blog deployment broke & fixed a long list of things: links/formatting/images/etc. We're counting all such regressions & #bugfix's as this UVI!
  24. The blog (ie, WordPress) used to have a dumb Anti-Magic Violation with redirects from partial URLs. Now we show a 404 page with explicit links to near misses.
  25. More blog 404 fanciness: if the given slug isn't a prefix/suffix of anything in the archives, we suggest the post with the closest Levenshtein edit distance
  26. Users sometimes land on the FAQ without knowing to also look in the help docs. We added pointers and links to the help docs including at the very top.
  27. We missed an instance of changing "premium credit" to "honey money" in the subscription charge emails
  28. We now round premium charges to whole dollars. Boo pennies! We previously displayed rounded amounts but charged exact amounts, which was a dumb bug.
  29. Help docs: standardized 7 more autodata integration docs plus added a list of alternatives in our articles about our retired Jawbone & Misfit integrations
  30. Help docs: Added an FAQ item for our article on our Lichess integration, answering something multiple people have been tripped up by
  31. We stopped cluttering your payments page w/ $0 honey money entries & if an entry is for less than $0.01 (it can happen, long story!) we show more decimal places
  32. We now show negative amounts of money like -$1.25 instead of $-1.25 (also fixed a brief regression where we showed amounts like $1.5 instead $1.50)
  33. On your payments page for adjustments to your honey money balance, for a couple days we were failing to display the text in the Reason column. #bugfix #zombie
  34. If we get an error trying to post to your reminders webhook URL, we email you. But some errors we weren't handling and the email failed to send! #bugfix
  35. The email bot would occasionally (if weirdness like the random "tip of the day" was blank, etc) fail to reply to acknowledge datapoints you emailed it. #bugfix
  36. We removed and disallowed the "safebump" goal field from the API. If you unwittingly sent it to the API, you'd break your goal!
  37. More blog fixes: redirected old RSS URL to the new one, stopped squishing the thumbnail images into a different aspect ratio, and better frontpage link preview

2023 September

  1. We're now less likely to miss our hourly polling for autodata: we no longer abandon the fetch for everyone if one goal has an error
  2. Help docs: Minor copy tweaks / fixes for 9 autodata integration articles
  3. BeemiOS now ignores data from before your goal was created and syncs more than just the current day automatically (as of version 6.4 or maybe earlier)
  4. The goal page for Gitminder (aka our GitHub autodata integration) goals now tells you what you're beeminding, including GitHub repo and username
  5. Our Toggl integration could miss data if you had enough future postdated data. We'd abused their 'since' param: it's 'modified since' not 'added since' #bugfix
  6. Embarrassing typo in emailcopy when we tell you your credit card card failed. We lost the words "your stored credit card" in "tried to charge your..."
  7. Help docs: Updated the article for our Apple Health integration to clarify that a couple issues with syncing are now fixed (yay!)
  8. We added 'currate' (internally: rcur) to the API output for finding the current slope of the bright red line. HT Theo Spears
  9. If your email client pre-fetches links you'd see " was already confirmed" when you clicked on the email confirmation link for us. Now worked around!
  10. Follow-on #bugfix's from the blog redesign: reinstated some missing images and two missing posts
  11. Also fixed the subscribe-by-email link in the header of the blog
  12. Added a warning to the API docs that the `mathishard` goal attribute can be null when the goal has an error (typically something like "no datapoints")
  13. Soft launch of the Readwise Reader autodata integration! Beta users welcome at beeminder dot com slash readwisereader!
  14. Help docs: New FAQs in the TryDeepWork autodata integration article, plus minor clarifications/tweaks in 7 other autodata articles
  15. The Pledge / [do thing] / Track boxes on autodata landing pages had some messed up CSS that made them different heights. #bugfix #zombie
  16. While we were at it we made other spacing tweaks to the autodata landing pages and fixed a typo in the anchor link on the BaaS landing page
  17. Made the autodata landing page boxes shrink consistently: width distributed evenly betwixt them, layout switches to stacked boxes at same breakpoint
  18. Help docs: Brought the Twitter integration article up to spec for the new Muskiness (only minding your own tweets) plus tweaks for URLminder, Withings, & Zapier
  19. Fixed a CSS error on the blog that made things misaligned when viewing by year (plus a few other bugs users caught that we've now paid honey bounties for!)
  20. Help docs: Clarified that quit/archived goals keep their URLs & explained more about restarting archived goals in the articles about archiving & quitting goals
  21. We updated our integrations gallery and landing page for Toggl's rebranding to Toggl Track
  22. We improved the social proof section of the signup page, showing off what Scott Alexander (@slatestarcodex) thinks of us, as well as the internet at large
  23. Also the responsive resizing of the different sections on the signup page is smoother now and they remain consistent widths + better distribution of whitespace
  24. Help docs: Lots of copy changes and reorganizing of the "How do I delete a goal?" article, including explaining archiving, what you really wanna know, up front
  25. Official launch of our Readwise Reader integration! Blog post, landing page, help doc! Plus lots of improvements since the soft launch.
  26. Help docs: Updated the Toggl Track autodata integration article for their new branding and reorganized it, removing unnecessary things, adding caveats, etc
  27. More signup page fiddling: we swapped the oAuth & social proof sections and added some color for contrast / visual division of space
  28. As more enticement to get through signup, we added the whole list of autodata integrations to the sidebar of the signup page
  29. More signup page CSS fixes: getting things to wrap and rearrange themselves nicely on small screens, and changed the Google logo to be the same size as others

2023 October

  1. And one more fix for small screens: hide the integrations (there are too many!) and adjust the ordering of sections to get you to the signup form quicker
  2. Help docs: Rearranged things in the "How do I delete my account?" article to sound less scammy 😬 and fixed some broken html in the iOS integration article
  3. Honey Money can now be used for derailments, not just premium (it's currently opt-in to do so, on your payments page)
  4. And you can buy honey directly, also from the payments page, if you prefer to prepay for derailments (or can't pay the traditional way)
  5. New honeypot symbol on a credit-card-shaped thing to help make it clear that you're effectively choosing between payment methods: credit card or honey balance
  6. Webcopy on payments page explaining about stored payment method (linking to Stripe) vs Honey Money, plus link to forum's Honey Money FAQ for now
  7. Small #bugfix with switching to honey money as your payment method: the banner that flashes up would erroneously say you were switching to (ugh) PayPal
  8. If you choose honey money for derailments and go negative, we set the deadbeat flag to quasi-require you to buy more honey or switch back to a credit card
  9. And now if your honey money balance goes negative we automatically charge your credit card to bring back up to zero
  10. Oops, we broke honey purchases briefly and were giving a 500-error when you tried to buy some! #bugfix and emailed the affected users!
  11. Beeminder iOS app version 6.5 adds Workout Minutes as an Apple Health metric and fixes Various Regressions / crashes
    • Also pull-to-refresh now triggers updates to your Apple Health metrics instead of merely resyncing with the Beeminder server
    • And we redesigned the screen for editing datapoints. So much new shininess!
    • Loose ends: added a hint that you pull-to-refresh for goals with autodata and updated the help docs
  12. Help docs: Adjustments and clarifications in 7 articles, including getting keyword formatting consistent
  13. Help docs: Added some extra guilt-tripping and anti-cheating ideas to the "Can't you just lie?" article
  14. We made a fancy hexagonal currency symbol for honey money and deployed it, then decided it wasn't as good as just "H$" so we changed to that
  15. We now show your honey money balance in the navigation bar at the top of every page
  16. Fitbit's downtime Wednesday gummed up graph re-draws. We trimmed down how long we wait on them, making us less generally fragile facing future Fitbit flubs.
  17. Changed "Complice" to "Intend" in our API docs. HT @malcolm_ocean and of course @IntendApp
  18. Ancient goals from before we required a payment method were un-archiveable if you still didn't have a payment method, making it hard to get back on the wagon
  19. If you created a charge via the API's "charge myself" endpoint and included an apostrophe, we'd fall on our face and not actually charge you. #bugfix
  20. Along with that fix is a general robustification of charging so errors like that don't delay ALL charges. We gotta be snappy about taking your money!
  21. If our authorization to access to your Toggl data had expired, you'd get a 500 error on your Toggl goal page. #bugfix
  22. Help docs: New article about where else to find help (includes a lot of encouragement to talk to support, of course)
  23. Help docs: Revamp of the article on Account Settings to give it context and be more navigable
  24. Help docs: Added key clarifications to the "Deadline & Reminders" article: 30 days being the max number of lead days, and about the 6-7am blackout for deadlines
  25. Help docs: Added smaller tweaks / clarifications / reassurances to 6 other articles
  26. Help docs: Revamp of the PPR article, including better advice on setting a cliff as a break for do-less goals. Also tiny edits to the Privacy article.
  27. Help docs: Major overhaul of the Data article since a lot has changed. In particular added things about webhooks / metaminder, and data precision.
  28. You can now access the 'autoratchet' setting from the API (read-only currently). Docs updated as well.
  29. The email you get if using honey money for derails & you go negative now actually says so, instead of confusingly saying we couldn't charge your payment method
  30. The email also spells out the situation with your negative honey money balance, how you can buy more honey now or wait till we automatically bring you up to H$0
  31. And we updated the red banner error: "Your honey balance is negative" if that's the case, rather than "your payment method was declined"
  32. Fixed a typo in the webcopy in the Supporters section of archived goal settings, and rewrote it while we were at it. HT Beeminder user hnsn
  33. An oldie we forgot to include as part of UVI#4478: From Beedroid you can hit beeminder.com/android-reminders to set Beedroid reminders in one place
  34. Beeminder Android app aka Beedroid version 5.1! We updated the Android API version we're targetting and seemingly fixed a widget crash.
    • Prevents you from entering a datapoint while the previous one you entered is still processing. Previously it could reset the form on you while you were typing!
    • More accurate todayta checkmarks, showing when data has been entered for today. We were wrongly using calendar days not Beeminder days.

2023 November

  1. Beemergency notifications now auto-dismiss when the deadline hits
  2. The dumb Now Safe notifications that literally everyone hates are now disabled by default
  3. Manifold autodata integration!
  4. All the accoutrements for the Manifold integration: blog post, landing page, help doc, and two different metrics to mind!
  5. Help docs: Clarified in the post-derail respite article that that doesn't mean not being charged, plus copy tweaks to 4 other articles
  6. Our Slack bot broke (similar to UVI#4243) and once again, Bee did the upgrades and got it back on its feet. #zombie
  7. Help docs: New section of the help docs called Historical Interest for defunct autodata integrations and murdered features
  8. Help docs: Added clarifications, removed encouragement to start at $0, removed errant reference to weekly rates, added a link, etc, in 4 articles
  9. Help docs: In "How do I change my goal?", link to the visual graph editor for making a goal harder w/in the akrasia horizon, plus rephrasings in another article
  10. Hitting the API's goal endpoint includes the five most recent datapoints. These now use the same format as all other datapoints you get from the API. HT Theo
  11. Updated the API to accept oAuth apps' access_tokens in an `Authorization: Bearer` header in addition to as a param; HT patimen
  12. The show/hide checkbox for the password field was missing on the login page (was only on the signup page). Now it's in both places! Consistency!
  13. Swapped out our boring black RSSminder logo on the front page with the cute orange one with a bee that Faire made for the blog post
  14. Also put the RSSminder logo on the the RSSminder landing page (which didn't have a logo at all before, boring or otherwise)
  15. Help docs: clarifications and cross-links in the articles about setting weekly rates and what day of the week your goal starts, plus small tweaks to 3 articles
  16. Fixed a #css bug that had paragraphs squished together without vertical whitespace in some places
  17. Added clarification/explanation/corrections to the API docs about how 1 of goaldate/goalval/rate is null when it's inferred from the other 2
  18. Help docs: Expanded explanations and addressed some user confusion and other small changes/clarifications in 4 different example goal articles
  19. Help docs: Fixed a weird and confusing bit in the article on Whittle Down goals that referred to Odometer goals in a couple places
  20. For everyone who had a sub-dollar negative honey balance for confusing reasons, we gifted them H$1 to bring them positive and emailed them to let them know
  21. When you have enough honey money to partially cover a charge, we now round up what we charge so that you never end up with a tiny negative honey balance
  22. And if you do have a small negative balance we no longer leave the deadbeat flag set to true indefinitely
  23. We revamped the beeminder.com/breaks page! It's prettier and responsiver and practical-er!
    • For starters, it's drastically more mobile-friendly
    • You can now choose default start/finish dates in the UI instead of the easter-eggy URL parameter trick from UVI#3944
    • Error messages are displayed nicely inline, next to where the thing you did wrong actually happened
    • The URL parameters change dynamically as you change the start/end dates in the UI -- best of both worlds for nerds and normies!
    • We no longer let you change goal attributes like weekends-off and autoratchet simultaneously with scheduling breaks, since those could confusingly conflict
    • The datepicker on the breaks page now accounts for user timezone as well as goal deadline when deciding what the minimum-allowed date for a break should be
    • Improved error messaging specifically with violating the akrasia horizon when scheduling breaks; now it actually mentions the akrasia horizon

2023 December

  1. We moved the Buy Honey button to the top of the payments page
  2. Also we lined the buttons up nicely and added a new link to the Honey Money FAQ
  3. We prettified more errors, like if you tried to hit a .xml URL you now get a nice normal html page saying the error instead of ugly plain text in the browser
  4. Patched a hole in our Slytherin 404 Glomarization: it was possible to get a 500-error for a goal that was different depending on whether the goal existed
  5. Help docs: Improved 5 articles with copyedits for flow, steering people to the forum, and new links to other help articles
  6. Help docs: Added details users get confused by to the article on ratcheting, plus minor tweaks and layout improvements to 2 other articles
  7. Help docs: Revamped the article for scheduling breaks for multiple goals at once AKA megabreak in light of the recent deluge of improvements
  8. Help docs: Improved 3 more articles with an extra tip, formatting and tweaks, clarifications, and a new cross-link to a related article
  9. We improved/consolidated the glomarization filter which we believe patched a brief glomarization leak on the breaks page and makes us robust to future leaks
  10. From UVI#4679, turns out the Slack bot was broken in different ways for DMs and for in-channel messages. Now both are fixed, at least for public channels. Phew!
  11. We now do a better job of showing a reasonable error if you request something with a conflicting extension and Accept header, or a missing extension
  12. Page load times are faster and we added accessibility labeling for links and images in the header and footer
  13. More decrufting, getting rid of old Javascript and things, thus improving page load times, plus tweaking some footer CSS for margins and font sizes
  14. And more accessibility tweaking, telling the browser that buttons are buttons and close links are close links and background images are background images
  15. Fixed aspect ratio on images and give dimensions so the browser can reserve space and things don't jump around as the page loads
  16. We now offer browsers webp versions of more images, further improving page load times
  17. Added missing alt and hover text to the logos in the integrations gallery
  18. Switched to thumbnail version of blog images on the homepage, and lazyload them (yes, we're still talking about page load time improvements)
  19. Added a Save All button to the breaks page (PDP violation avoided!) #zombie
  20. Honeygrams! You can now transfer honey money to any other Beeminder user!
  21. New help doc about honey money and updated the Honey Money FAQ links to point to it instead of the forum post we were using till now
  22. We made a new landing page for honeygrams that lists all the things you can do with honey money
  23. We made beeminder.com/honey an alias for the landing page and gave it a holiday theme
  24. We fixed some honeygram bugs: you can no longer send more honey than you have, nor can you send a negative amount of honey!
  25. Also it's no longer disallowed to send yourself honey, in case you want to try it out as a dry run before sending to a friend
  26. Made the honeygram page and the pages showing gifted honey viewable even if you're not logged in
  27. We now round down your displayed honey money balance to ignore fractional cents; it seemed buggy that you couldn't always honeygram your whole balance otherwise
  28. Added alt and hovertext and accessibility stuff (screenreader hints) on the honeygrams pages
  29. You can exchange honey money for mana on Manifold! beeminder.com/honeygram/manifold
  30. And vice versa: You can convert mana on Manifold into honey money on Beeminder!

2024 January

  1. Fixed broken blog images on the front page and robusted up the script that generates them so they shouldn't break again
  2. Improved the beeminder.com/aboutus page: alt text for images, webp versions of the images, image sizes for smoother page loading
  3. Added the Manifold logo to the Honeygrams page and fixed the Manifold link that initiates mana-to-honey transfers
  4. We bumped up the limit for number of datapoints allowed per day and improved the error copy slightly when you exceed it
  5. In your table of payments, the From/To now says "Beeminder" instead of, confusingly, "meta", and "you" instead of your username
  6. Also in the table of payments, we got rid of those barely-readable timestamps in favor of just dates, but with full timestamp on hover
  7. Help docs: Clarifications in the article about goal stats; and new links, copy tweaks, etc, in 8 other articles
  8. A minor fix to spacing in the winter-themed Beeminder logos: the spacing between BEEMINDER and the tagline text is now consistent. #css HT Paul Schmidt
  9. We were showing the wrong thumbnail for the 'Antimagic 404' blog post on the frontpage for a while. Those responsible have been sacked.
  10. Help docs: Clarified in the article about forgetting to enter data that you don't *have* to enter data every day, plus small improvements to 7 other articles
  11. Our tryDeepWork.com integration is now more robust, by retrying if it can't reach tryDeepWork's API
  12. Honey money purchases were getting shown in your payments with a blank description, oops. Fixed retroactively as well.
  13. All legacy PayPal users automatically get a $10 honey money bribe for switching to another payment method if they do it soon! (And emailed them all about it)
  14. And made the "can't switch _to_ PayPal" rule stricter: it's enforced in the API now, not just disabled in the interface
  15. Moved legacy PayPal to its own section of the payments page and added a banner to extra-emphasize that we really want you to pick a new payment method
  16. Not sure how long we'll support this but for now we have a "buy Honey with PayPal" button on the payments page shown to legacy PayPal holdouts
  17. Added a visual indicator of an autodata sync error on your dashboard, namely a light blue background for the goal, to match the error banner
  18. Also replaced the last datapoint with "Could not fetch data from ..."
  19. Also-also it explains the autodata error in the hovertext and we improved the hovertext more generally to say things like if a goal's scheduled to archive
  20. Oops, forgot the case of no error or archiving: dashboard hovertext erroneously just said "autodata error" on every single goal! HT brittany123 #bugfix #zombie
  21. Fixed a bug with datapoint pagination in the API: our paging is 1-indexed and saying page=0 would choke and give a 500 error. #bugfix
  22. Also for pagination: updated the API docs, generalized the bounds checking, and wrote nice errorcopy specific to the different parameters
  23. We made year-end Beecaps for everyone who was beeminding in 2023! beeminder.com/beecap
  24. Fixed a bug with the Beecap download button: the sizing of the downloaded image was all wrong in Firefox and Safari. #bugfix
  25. Made the Beecaps show something if the user has no active goals in the last year, so it's not a dead page should someone stumble upon it
  26. Finally, we pre-seeded/cached all the beecaps so the page loads nice and snappily. Oh yeah, and we emailed them to everyone who was beeminding in 2023.
  27. Oops, the Buy Honey With PayPal button for legacy PayPal holdouts (UVI#4749) became a no-op if you switched to a different payment method. #bugfix
  28. Worse than that, when it did work, the "yes, charge me $10" button just made the infinibee spin but nothing ever happened! #bugfix
  29. Bonus: made the popup undismissable until the the infinibee finishes and the charge goes through, preventing a jarring page reload if it finished post-dismissal
  30. For unhappy combos of publication time and user-timezone, your RSSminder RSS entries wouldn't show up in Beeminder until after the deadline. #bugfix
  31. Help docs: language adjustments and more explaining and encouragement and links in 8 articles
  32. Help docs: The payment methods article mentions the option of buying Honey Money with PayPal, plus clarifications and copy tweaks in 5 other articles
  33. For Beecaps, fixed a bug in determining when you should get the "No Beecap Available" page if you weren't active in 2023. Plus more error checking. #bugfix
  34. Oops! UVI#4235 actually worsened problems when Todoist is down by omitting a timeout. Now, we've shortened the Todoist timeout. #bugfix #zombie
  35. Fixed two broken links to the blog in the FAQ
  36. Fixed size and margin on the initial safety buffer entry field. Was cutting off double digit numbers, and the text on either side was too close to it. #css
  37. Do show/hide password on login form too (was only in signup). And also password reset in settings. We think that addresses all of them in one go!

2024 February

  1. We messed up UVI#4684 when we claimed that `Authorization: Bearer` now worked for API request authorizations. #bugfix HT Theo Spears
  2. We set up DMARC for our outgoing email finally which improves deliverability and some email clients now show the Beeminder logo when we email you
  3. Bug with mana-to-honey transfers that rounded to $0: we failed to transfer them! Fixed now, including retroactively for all affected transfers. #bugfix
  4. In Runkeeper goal creation, the rate field wouldn't let you specify a fraction, which is important to allow since we only let you create goals as daily! #bugfix
  5. Help docs: Clarified what's editable on archived goals and added links and rephrased things and improved formatting and such in 4 other articles
  6. This one seems to have been rare but there was a Todoist API time-out error we weren't catching that yielded 500-errors for at least one user. #bugfix
  7. Help docs: Added a screenshot to the article on archiving goals and fixed a bad formatting error on the one about deleting goals
  8. Help docs: Minor changes (improved flow and bolding for clarity) in the "How to delete my account" article and more serious rearranging of the Apple Health one
  9. Help docs: Added a missing metric to the Fitbit integration article, plus some clarification about data import to address user confusion
  10. Help docs: Removed some no-longer-relevant troubleshooting from the Focusmate article plus small tweaks to 4 other autodata integration articles
  11. Help docs: Moved our old Draft integration article to the Historical Interest section and added more details to it about URLminder as the modern alternative
  12. Help docs: Fixed an html bug in the Garmin integration article plus clarified why some Garmin devices can't use some autodata metrics
  13. We had a wrong link to Intend (nee Complice) on our landing page for the integration (also we made a redirect for the old URL). #bugfix HT Dan Zwell
  14. More spambot problem so now signed-out users just get a "mailto" link instead of our handy-dandy contact form on our "Contact Us" page
  15. New status page operational at status.beeminder.com (Twitter no longer works as a public status page since you have to be logged in to see it)
  16. Made the new status page more independent of Beeminder's infrastructure (no need for our own servers to redirect it even) in case of catastrophic failure
  17. Edited the "Bee Back Soon" page (aka the poppy page) to just talk about status.beeminder.com and not the old Twitter page
  18. Help docs: Mentioned in the freeCodeCamp integration article that you can donate half your pledges to fCC on the Beemium plan, plus tweaks to 2 other articles
  19. If your Focusmate account was suspended (or other auth problems, probably) we'd fail to tell you that we could no longer access your Focusmate data. #bugfix
  20. Fixed a server misconfiguration that allowed bad guys to spoof our whole website at their own nefarious URLs (which they did, and users noticed) #bugfix
  21. We're featured on Humble Bundle this month! Buying the bundle gets you freebies from RescueTime, Moodfit, RoboForm, and $10 of Honey Money from us
  22. Also we made a BOGO deal for Humble Bundlers: half off as much Honey Money as you care to buy
  23. And we made a whole welcome page for newbees coming from Humble Bundle where you can redeem all your sweet, sweet stuff: beeminder.com/humblebundle
  24. Misconfigured the Humble Bundle checkout page for the BOGO offer, causing an error instead of half-off-honey. How Sour. #bugfix and sorted the 1 affected user 😅
  25. Further #bugfix from UVI#4790 where we occasionally poppied the server (akin to a 500 error) when trying to drop that bad traffic
  26. We de-Valentine's-day'd the honeygrams page. It's now evergreen, which is better than everpink.

2024 March

  1. Help docs: Fixed some goofy HTML in the Lichess integration article and added a section on using Do Less goals with Lichess, since users asked about that
  2. Help docs: Moved Jawbone to the Historical Interest section plus tweaks to the Habitica, IFTTT, and Intend articles (like less opinionatedness on legit-ness)
  3. Help docs: Added a link to the mana/honey exchange UI to the Manifold integration article, plus a note midnight deadlines
  4. Help docs: Clarified in the Make integration article about switching manual goals to autodata, plus consistency in keyword formatting in other articles
  5. Your dashboard now shows goals dark green when they have 7 or more days of safety buffer. HT Grayson Bray Morris
  6. Minor change along for the ride: the borders on the graph thumbnails on the dashboard are thicker
  7. Graph color on dashboard and on goal page no longer disagree when you're closer to the goal end date than the amount of safety buffer you have. #bugfix
  8. CSS and page-rendering improvements: no flash of blue or orange and less redraw jumpiness when the countdown box for your goal loads. #css
  9. Habitica integration could miss Dailies towards the end of the day if you had more than a day of safety buffer. #bugfix
  10. Fixed blog links like blog.beeminder.com/tags/weight+loss which had broken, plus a #bugfix for footnotes whose tags ended with numbers
  11. Rainbow dashboard! The website dashboard got way more colorful
  12. We broke blog thumbnails on the main page (Again. Scraping the internet is hard!) Updated our script so it won't break (in this exact way) again. #bugfix
  13. HelpScout came up w/ a new domain to send email from and we freaked out users w/ spurious "unrecognized email address added data to your goal!" warnings #bugfix
  14. It's tiny but fixed the PayPal info on the payments page (only visible to you PayPal holdouts who haven't switched yet :AHEM:) to match other forms on the site
  15. When the bee is buzzing on a thumbnail on the dashboard (double-click one to see), we had a CSS bug that caused to border to be slightly wrong. #bugfix
  16. Further tweaking of the buzzing-bee state: now the thumbnail border is grayed out until it's done refreshing and has picked its new color
  17. We finally made weight loss goals just tell you your hard cap today, not your hard cap after coasting along without weighing in till it's a beemergency
  18. It also does this (weight-loss style graph headers with today's hardcap) for other goals that slope down with the good side below the red line, e.g. inbox goals
  19. Also weight & inbox goals show the hardcap info in SMS reminders and iOS and even zeno push notifications (if you have your own URL to handle zeno callbacks)
  20. For Do More goals we no longer say, eg, "bare min +1" after telling you you're safe for N days in SMS & iOS alerts. See the due-by table for that.
  21. Version 6.6 of the Beeminder iOS app, thanks to Theo Spears, is live!
    • Headline change is a new Apple Health metric: Time in Daylight
    • And the most visible change in BeemiOS 6.6 is the buzzing infinibee while the app is waiting on the Beeminder servers
    • Now fewer cases of showing unreasonably many decimal places
    • When defaulting to the most recent datapoint value in the field for entering data, we now exclude the meta datapoints for derails and PPRs
    • We now let you change deadlines on goals that *used to be* connected to Apple Health. #bugfix
    • Apple Health data is now correctly logged for the correct Beeminder day for non-midnight deadlines. #bugfix
    • The edit datapoint dialog now dismisses after editing/deleting a datapoint. #bugfix
    • Stopped superfluously triggering autodata refreshes for manual goals. #bugfix
    • No longer reset changes to datapoint values you're editing when switching between apps. #bugfix
    • The app now always syncs with Apple Health (like when launching the app) before syncing with the Beeminder server
    • Fixed a hard crash that could happen after logging out of the app, like if we tried to update Apple Health goals. #bugfix
    • Logging in to the app should now support password managers for most users

2024 April

  1. The blog has its own cute favicon now
  2. Beeminder now integrates with Wakatime!
  3. Added List-ID to our beemails, which helps with email deliverability and can help with users' email filters
  4. We slightly broke our links to individual glossary entries (anchor links were just linking to the top of the glossary). #bugfix #zombie
  5. Help docs: Fixes/improvements to the TaskRatchet integration article: corrected link to TaskRatchet docs and clarified confusion about task filtering
  6. Help docs: Cleaned up an obsolete part of the Todoist article and added a link to Betty W's discovery in the forum about deleting recurring tasks
  7. Help docs: Revamped the Toggl Track article and addressed new user confusion in its FAQ about running timers and timers crossing the goal's deadline
  8. Help docs: Changed some confusing wording in the headings and added more examples to the Metaminder article plus clarifying tweaks to 9 other articles
  9. Help docs: Clarified that two of the Strava metrics are Beeminder-computed, not available in Strava, and made the Storygraph article less rambly
  10. Help docs: Cleaned up the Android app article and moved the GTBee and Misfit articles to Historical Interest, plus clarifying tweaks to 4 other articles
  11. Help docs: Moved the Android Permanotification article to Historical Interest (yay for the obsoletifying improvements!) + clarifying tweaks to 4 more articles
  12. In the default pledge cap UI in account settings, the actual dollar amount was escaping out of the fancy input stepper. HT zzq #bugfix #css #zombie
  13. Rare bug with our WakaTime integration in goal setup that could cause us to endlessly keep asking you to connect to WakaTime. #bugfix
  14. In the "Beeminder can access" settings: the list of services wasn't using up all available horizontal space. Now the columns are distributed evenly. #css
  15. Do-less goals for which the most recent datapoint is a Pessimistic Presumptive Report (PPR) now sort to the top of your dashboard
  16. And in preparation for more changes to how we sort your dashboard, we changed the column header from "DEADLINE" to "URGENCY"
  17. Changed the subject line for "you made a new goal" emails for goals with PPRs. Now: "What you need to know about your new do-less goal"
  18. Also adjusted the email body so that it isn't talking about PPRs if you've already turned off PPRs. (HT narthur who noticed this on a custom goal)
  19. UVI#4813 added the hard cap for weight goals and inbox-style goals on the goal page; now it's done on the dashboard as well
  20. UVI#4814 made whittle-down goals on the dasboard confusing/deceptive. We've changed the wording to say "hard cap", added the word "today", and a comma. #zombie
  21. Fixed a long-standing annoyance with datapoints from Withings getting added in reverse-chronological order when they came in batched
  22. Disallowed another batch of usernames that caused or could cause or look like they could cause problems: null, undefined, nil, true, false, etc
  23. Fixed an opaque error if you tried to specify a number with a comma in it in the commitment dial. Now it tells you it doesn't count as a number. #bugfix
  24. In fixing UVI#4805 (about under-counting Dailies) we introduced a new bug where we over-counted them if you didn't log into Habitica at all. #bugfix
  25. Standardized on hyphenating or capitalizing the phrases "do-more goals" and "do-less goals" throughout the web/email copy
  26. Added some commas to some email copy while we were at it, which ambiguously counts as typo fixes
  27. We fixed the spacing and margins and image sizes on the goal creation page for the Strava integration so everything's reasonably aligned. #css
  28. We briefly broke the button to request additional free goals (the part that let us know you'd clicked it!); now fixed and emailing those affected
  29. The Beeminder API now returns urgencykey for your goal-sorting convenience, to match the dashboard's sort-by-urgency, and we've documented it in the API docs
  30. Death to $0 goals, birth of Feet-Wetting Mode, live for newly created goals now: choosing to risk $0 only lasts a week now, then pledge bumps itself to $5
  31. Significant UI improvements along for the ride on pledge selection, starting with dynamically adjusting the pledge progression when you change the pledge cap
  32. Checking the $0 checkbox also dynamically inserts "$0" into the pledge progression display with a shimmering arrow and heads-up of the auto-increase to come
  33. When Beemium folks opt for feet-wetting mode, they see a note telling them they can still set a $0 pledge cap, thus getting indefinite feet-wetting
  34. In the midst of the changes with $0 goals we bumped the price of Beemium from $50/mo to $64/mo, lest too many people decide $0 goals are worth paying for
  35. Help docs: Revamped the "how much do I pledge?" article, autodata integrations articles, other articles with goal creation help in light of feet-wetting mode

2024 May

  1. The introduction of feet-wetting mode broke the CSS for checkboxes elsewhere in the UI. #bugfix #zombie
  2. In addition to checkmarks being off-center, they were no longer on one line with their labels. This stacking caused mayhem in some settings layouts. #bugfix
  3. As promised in the blog post, we send an email to remind you that feet-wetting mode is ending and we're bumping your pledge to $5
  4. Since either honeygrams or Humble Bundle, we severely broke the margin spacing & subheader wrapping for autodata landing pages. Now fixed! #bugfix #css #zombie
  5. The button to regenerate your personal auth token now has a confirmation with warning that doing so will break any scripts you have that use the auth token
  6. Help docs: PPR article emphasizes ability to turn off PPRs, deadline/reminders article deconfuses am/pm/midnight, and smaller copy tweaks to 12 other articles
  7. Soft launch of our YNAB integration is available at beeminder.com/ynab for eager bee-vers to bee-ta test!
  8. Help docs: New article "Can I restart an archived goal?" addressing frequently asked questions from support
  9. Some people were hitting an error trying to remove the Lichess authentication from their Beeminder account. Now we let you do it, phew. #bugfix
  10. Help docs: Added caveats and copy tweaks and rearrangings and nudges and emphases and clarifications to 6 more help articles
  11. Added a blog footer crediting Narthur with all the blog fanciness we added last year
  12. Added a link from goal settings, where you can schedule breaks on a single goal, to the megabreak page where you can do so for all your goals at once
  13. Oops, we broke a bunch of old blog links like blog.beeminder.com/tag/* which now redirect to the canonical /tags #bugfix #zombie
  14. Help docs: Added a section to the "How do I interpret the graph?" article on graph features like moving average
  15. Made the new goal defaults reminder settings align nicely with the per-goal settings on the beeminder.com/reminders page. HT Tom aka fronol
  16. Cosmetic changes on the payments page: added big indicator of default paytype by the transactions list; Changed headers for Card vs Paypal.
  17. Manifold has pivoted to a real-money(-ish) prediction market and we've updated the mana/honey conversion rate accordingly
  18. We standardized the comment that you see on beeminder.com/payments when a workerbee refunds your derail (or other charges) as honey
  19. Also the original card (or PayPal) payment links to the honey transaction that reverses it in the 'status' column
  20. Help docs: Critical typo fix ("weekly" instead of "daily"!) in the "How do I set a weekly rate?" article, plus anti-weasel wording in "What is Beeminder?"
  21. Emailed everyone with $0 goals, offered a honey bribe, and started the 30-day countdown on bumping all pledges up to $5
  22. We don't use Uservoice for feature requests anymore but it was embarrassing that links to uservoice.beeminder.com broke. #bugfix
  23. Side margins were missing on the Featured Beeminder gallery (worse: edge of the graphs were slightly off screen). #bugfix #css
  24. That fix also fixed a spacing issue with user galleries (the not-logged-in view of your goals) not centering graphs on screen. #bugfix #css
  25. Help docs: Fixed up ~9 articles with broken anchor links. Doh! Thanks to Clive for the automated checking.
  26. Help docs: New note in the "can't find the answers here!" article re: not deleting goals you want help with (and naming them). Plus 5 other articles improved.
  27. Official launch of our YNAB integration! Added to the front page, revamped the landing page, all the things!
  28. Help docs: Wrote a brand new one for the brand new YNAB integration

2024 June

  1. We fixed some confusion-to-the-point-of-bugginess by not letting you create a goal with starting pledge greater than pledge cap (was possible on Beemium)
  2. For those with the smallest possible pledge cap ($5, or maybe $0 on Beemium) we were failing to show the starting stakes on goal creation. #bugfix
  3. Along for the ride with those fixes, we now always correctly dynamically update the pledge schedule when you change the pledge cap. #bugfix
  4. And added more guidance / error messaging in goal creation for Beemium folks trying to both start at and stay at a $0 pledge
  5. Special promo for Manifest! beeminder.com/manifest
  6. We made pretty physical cards with the redemption codes (and QR codes) for the Manifest promo
  7. We implemented an anti-money-pump (aka AML) safeguard to limit how much free honey money you can transfer to other accounts or to Manifold
  8. Group Goals publicly launched!
  9. New UI for adding groupies to your goal shows you the invites you've sent and who's accepted and joined. Also lots of explanatory copy.
  10. We send an email to the prospective groupies with a link to click to confirm they're on board with the madness
  11. Collection of fixes and improvements to group goals when it got more use: Don't resend invites to existing groupies, various typo fixes and copyedits
  12. Since it would subtly break things, we don't let you add a groupie to goal if they already have their own goal with the same goalname
  13. And we plugged a privacy leak with that, so people can't probe your goalnamespace by disingenuously inviting you to group goals
  14. One more #bugfix with group goals: we're now case-insensitive when you try to add a groupie's username
  15. Finally, we made the case of no groupies or prospective groupies less confusing by having an explicit "[none so far]" shown
  16. We emailed all the non-lifetime Beemium folks still at $50/mo to let them know they're grandfathered at that price for a year
  17. New distinct favicon for the forum
  18. Help docs: Reorganizing, streamlining, tinkering, link-adding, note-adding, clarifying, and other copyediting for another batch of 9 help articles
  19. Help docs: New screen shots for the "What is safety buffer or leeway?" article, for the new hard cap style in the goal page header

2024 July

  1. Help docs: Added a clearly-needed explainer to the article on getting rid of extra safety buffer, about two-step ratcheting to remove a flat spot
  2. Help docs: As required by Google Play, we clarified what data is retained (records of payments plus emails) when you delete your account
  3. Help docs: Small improvements to 6 more articles, eg, new note about the save-all-breaks button, formatting, rearranging, etc
  4. Help docs: And more small improvements to an additional 8 articles, eg, note on extra leeway when restarting a goal, tweaks for clarity, etc
  5. Help docs: Extra screenshot and text rearranging in the Custom Goals article, note about autodata in another article, and smaller tweaks to 2 other articles
  6. We added a button to retry failed charges!
  7. In the popup that shows outstanding charges when you update your payment method, we were erroneously always showing the gateway-drug charge. #bugfix
  8. Completed the 30-day countdown for bumping up pre-existing $0 goals, did so, and emailed everyone again
  9. And everyone who replied got their honey money gift to make that fair, which included opting them in to actually using honey for derailments
  10. More cleanup and brokenness prevention: we've disallowed another batch of tech-problematic goalnames: null, nil, archive, archives, true, and false
  11. Help docs: Replaced an outdated screenshot in the "how do I delete my account?" article and fixed the click-to-embiggen
  12. Added a reminder of feet-wetting to the new goal email (it's in a PPS, and only if your current pledge is $0)
  13. Moved post-derail respite next to the good-side/direction custom settings, fixing the bug that wouldn't let you switch graphs from do-more to do-less. #bugfix
  14. Also added a little javascript to clarify the units-of-respite when you switch between MOAR (respite in days) and LESS (respite in goal units)
  15. When you "sign up with Google", timezone was missing from the registration form (where we make you pick a username and stuff). #bugfix
  16. Also the intentions field was not getting highlighted as a required/missing field in the sign-up-with-Google case. #bugfix
  17. Help docs: Added small clarifications and new keywords and screenshots and such to 4 articles
  18. We now have social link previews for your Beeminder gallery, like when you link someone to beeminder.com/YOURUSERNAME
  19. Pocket changed something with their API and everyone's Pocket goals stopped being able to fetch for a couple days. #bugfix #zombie
  20. The link previews for your archived gallery was accidentally exactly the same as for your main gallery. Now it correctly describes itself.
  21. Facepalm: Previous UVI actually swapped the preview text for main and archived so they were both wrong. Now fixed for real! #bugfix
  22. Fixed our inconsistent web/email copy: the verb 'beeminding' is not capitalized!
  23. Oops, the button from UVI#4916 always or mostly failed, due to a rogue if-statement trying to prevent overzealous retrying when not user-initiated. #bugfix
  24. Our Garmin integration is so old it was making some http instead of https calls. Garmin warned this would soon break so we preemptively fixed it. #pregression
  25. Help docs: Tweaks and nudges and clarifications in 6 articles about costs and pledges and other topics
  26. Help docs: Added documentation of the gateway drug commitment device to the "When Do I Pay?" article
  27. Help docs: Added a bit about feet-wetting mode to the "Can I have goals without pledges?" article, mitigating confusion that's arisen in support
  28. Help docs: Added a section on discounts to the article on premium plans, plus editing to prefer "premium plan" to "premium subscription" across articles

2024 August

  1. Help docs: Updates to "What happens if a charge fails?" about retrying charges on your own, plus more on honey money there and in another article
  2. Help docs: Added a link to the "When do I pay?" article to the "Why did Beeminder charge my card?" article plus related clarifications
  3. No-Excuses Mode has eyes-open opt-in! We're trying really hard to get you to understand what you're opting in to. No More Whinging!
  4. No-excuses opt-in has a popup (with new words) that also makes you type "paying is not punishment" to confirm you've read all the words
  5. Tiny typo fix: we were failing to capitalize "URL" in an error message
  6. Help docs: Brought the article on failing charges up to date with new ability to retry charges, plus tweaks to another article
  7. We now give more specific error messages when you set an invalid reminder time (on the goal page, as well as the reminders page if only one goal errored)
  8. Also we made those error banners the standard red instead of blue
  9. Help docs: Overhaul of our Honey Money article, with rearranging, rewriting, table of contents, formatting, new info for Indian users, PayPal workaround, etc
  10. Soft launch of our Oura autodata integration at beeminder.com/oura
  11. Help docs: All-new article on No-Excuses Mode, hammering home the principles, walk-through of the new opt-in process, examples, etc
  12. Help docs: Moved the article on premium credit to the historical interest section (it's subsumed by the new honey money doc) and tweaked 2 other articles
  13. Whoopsies! The Oura soft launch broke Garmin auth (only if you were trying to add your first Garmin goal). #bugfix #zombie
  14. Updated the YNAB logo on our frontpage. Also added a YNAB-specific section to the Terms of Service.
  15. Fixed an issue with the date column wrapping on the payments page when there was plenty of space. Was a regression that snuck in at some point. #bugfix #zombie
  16. Also clarified some repetitive / non-informative title text (aka hovertext) from the list of honey payments
  17. For do-less goals with a weekend-off allowance and quantum=1 we were displaying the weekend rate as an integer even if it was floaty. #bugfix
  18. Same for any goal with a non-integer goal value, but a quantum of 1. We'd round it off to an integer in the commitment dial. #bugfix
  19. The new hovertext from UVI#4954 was wrong for like a day, repeating the text for the from and to instead of showing the right text for each. #bugfix
  20. New blurb at the top of the premium page telling you reasons you don't actually need premium!
  21. Oops, the "What are Honeygrams?" page (beeminder.com/honeygrams) has been broken since Manifest for non-logged-in users. #bugfix #zombie
  22. Clarified in the dialog box for signing up for Premium that we debit your Honey Money balance first, then hit your credit card if needed
  23. Moved yesterday's "you don't need premium" blurb into the premium FAQ and rewrote it a bit, added hovertext to the links, etc
  24. Help docs: New article for the still-in-beta Oura integration
  25. Help docs: Added a section to the Boss as a Service article about not needing to authenticate to it, since users kept asking about that
  26. We added a placeholder in settings for a future Uncle button that explains how it will work and linking to some forum discussion
  27. Help docs: added links (and swapped out for better links), removed redundant copy, added bits of new copy, and generally tweaked 7 articles
  28. Help docs: Elaboration in the Duolingo article on changing the language you're learning *from* (not "native language"), with examples
  29. Relative X-min! You can now specify the plot range of your graph with relative as well as absolute time, like showing the last month of data
  30. Double-whoopsies: UVI#4951 also broke Slack auth as well as other stuff with Oura auth. Now all fixed! #bugfix #zombie
  31. Deadline & reminder settings improvements: the labels always stick closely to the fields they're labeling, whitespace used sanely. #css
  32. Also that form is now more screenreader-friendly (using the "for" attribute appropriately) and slightly larger targets for hitting those checkboxes
  33. And finally: it actually works on small screens! Instead of getting super broken and sucky! CSS breakpoints oh my!
  34. Habitica made a change to their API that made us stop counting finished To Do's (Dailies were fine). #bugfix #zomb
  35. By popular demand, you can now choose "3 months ago" as a relative X-min
  36. Help docs: The freeCodeCamp article now says how to make freeCodeCamp your donation target if you have Beemium, plus tweaks to 2 other articles
  37. Help docs: The GitHub article now mentions you can actually log in to Beeminder with your GitHub account, plus related troubleshooting help
  38. Help docs: The Graph Settings article is now up to date with relative x-min, including a new screenshot

2024 September

  1. We went full anti-magic on the x-min setting: Pick a date that's before your graph has any data and you'll just see empty space on the left side of it
  2. Official launch of our @ouraring integration! Added to front page gallery, revamped landing page, blog post, etc
  3. We now always regenerate your graph if you change your timezone. #bugfix
  4. Help docs: Added instructions for fixing Lichess authentication problems to the Lichess article, plus notes on privacy in the Gmail article
  5. Help docs: Clarifications about what's trackable in the Fitbit and Habitica articles, plus explained a quirk about IFTTT-fed goals in the IFTTT article
  6. Closed a weird loophole that could let your stakes drop to $0 w/o Beemium, because we only checked permissions when you were scheduling the stepdown. #bugfix
  7. Help docs: Added what turned out to be a very much needed example to the Metaminder integration article. Plus tweaks (eg new links) to 3 other articles.
  8. Help docs: Removed the beta stuff from the Oura article, added a screenshot, and added a tip about Oura's web dashboard
  9. Help docs: New article on Group Goals, a bit on the bare-bones side so far
  10. At small screen widths the dates and values in the datapoints list could get impossibly small. Now they have a required minimum width. #css
  11. We had a bug with custom-styled checkboxes that caused hover text (aka title text) to not get shown. #bugfix
  12. We also made all the title text (hovertext aka tooltips) in goal settings use the biggest possible surface area for better discoverability
  13. Help docs: Added more explanation of the enforced 4am deadlines for Skritter goals to the Skritter article, plus tweaks to 4 other articles
  14. We no longer confusingly show a warning about how editing data could derail the goal to people who aren't allowed to edit the data for that goal
  15. Help docs: Fixed broken anchor links in the Toggl article, plus tweaks (including at least one typo fix) to 4 more articles
  16. The Lichess integration confusingly had an "All" option which didn't mean all puzzles and games but just all games. Now it actually says that! HT Philip Hellyer
  17. Show off the autodata source on the goal page of autodata goals (and link to partner) for everyone, not just the goal's owner
  18. To avoid confusion, beeminder.com/readwise now redirects to the Readwise Reader integration landing page + added (i) icons for some hovertext in goal settings
  19. Beedroid version 5.2.0! Headliner is that Google made us switch to a new API and notifications won't work without upgrading to this version 😬
    • We made it clearer what's going on when we haven't been able to charge your payment method (cf. the "deadbeat flag") instead of showing all skulls/crossbones
    • Removed Twitter & Facebook login options, which have embarrassingly been super broken and really more of a 2015-era thing anyway
    • Also added a self-closing progress modal to be clearer when logging in via Google, since that takes a moment
    • Fixed a rare crash on the goal list screen, plus removed a now-obsolete trouble-shooting setting for "clear push cache"
    • We had been failing to cleanly do token expiry/etc with Google when you logged out, which could make you have to try twice next time you logged in (w/ Google)
    • Finally, we made data entry more keyboard-compatible. That either means better support for external keyboards or just the ability to tab between fields.

2024 October

  1. Fixed a dumb javascript bug that prevented editing one's fine print when No-Excuses Mode was on. #bugfix
  2. Help docs: cleared up confusion in the GmailZero article about why hitting autofetch doesn't necessarily update your graph to your current inbox count
  3. Help docs: A bit of new info in the troubleshooting section of the Habitica article, better explanation in the Todoist article, plus tweaks to 3 other articles
  4. Help docs: The Trello integration article now addresses confusion about minding workspaces vs boards, plus tweaks/clarifications to 2 other articles
  5. Help docs: Added a section to the Twitter AKA X article about beeminding multiple Twitter accounts. Also minor tweaks to the URLminder article.
  6. Help docs: Added a section to the WakaTime article about the unfortunate day's lag for WakaTime data on time spent coding
  7. Got the API docs caught up to the almost year-old UVI#4684 about being able to send access tokens in the request headers. HT aad
  8. Fixed a broken link to Pocket in the "this data is autogenerated from Pocket" sidebar. #bugfix
  9. Made the Strava "view on Strava" links on the graph page open in a new tab + made Oura datapoints link to the Oura dashboard for that day
  10. Cute hand-sketched heart on the Oura landing page plus smoother re-authorization of Beeminder's access to your Oura should you revoke it and change your mind
  11. Added new Strava activity types: golf, velomobile, skateboarding, sailing, and soccer!
  12. Also on Strava goal steup, moved walking to the top section of "common activities" and made a separation between common and "the rest" to make it clearer
  13. Finally (still Strava), made the select box resizable and made the font just a hair smaller, so you can see more items at once
  14. The Manifold integration wasn't letting you customize your deadline. Turns out there was no need for that restriction, so we removed it. HT gbear605
  15. We now accept time format for the rate in goal creation. If you want to do 15 minutes of knitting a day you can put 0:15 as the rate when setting up the goal.
  16. The time-formatted-rates-in-goal-creation UVI messed up creating new inboxer and weight goals (which don't ask for a rate up front). #bugfix #zombie
  17. Help docs: Added links in the Zapier article, removed a no-longer-needed warning in YNAB, rearranged the flow and added warnings in "How do I quit a goal?"
  18. Help docs: Added warnings and a link to the article on restarting archived goals, reordered/clarified things in "How do I delete a goal?", tweaked Withings
  19. Help docs: Clarifications in the account deletion article, html fixes in the iOS one, and changed the TagTime article to say the Android app is sadly retired
  20. Help docs: The Beedroid article now explains how the app won't work when payments fail and what to do about that, plus tweaks to "Android App Beta Testing"
  21. Help docs: Reformatted the iOS beta testing article to match the Android one plus added instructions on opting back out of the beta
  22. Help docs: Added a link to the "Can't you just lie?" article, fixed a bad typo in the one about beneficiaries, plus tweaks to those and 2 other articles
  23. We now only show the 25 most recent honey money transactions on your payments page but you can click to see all of them
  24. Additions and changes to the glossary, including starting to add links to the help docs
  25. Fixed a 500-error when you tried to view someone else's full list of honey money transactions, bmndr.co/ious/username #bugfix
  26. We've implemented one-click unsubscribe for beemails. It's up to your email client how to show that to you but is visible for at least some users!

2024 November

  1. Turns out one-click unsubscribe was only live for the subset of users we still send beemails to via Mailgun, not via SendGrid. Now done for everyone, phew.
  2. Help docs: Got the Account Details article in line with the latest website copy and made small copy tweaks to the Derailing It Is Nailing It article
  3. Oops, since UVI#5024 we were accidentally showing the 25 *oldest* honey money transactions instead the 25 most recent. #bugfix
  4. Goals with autodata errors used to show a blue background on the dashboard. We accidentally broke that with UVI#4807 but now it's back as an alert icon. #zombie
  5. Also we moved the "this goal is scheduled to archive" icon to the same place in front of the goalname so it's in your face
  6. Help docs: Added a section to the table of contents of "Goal Settings", cleaned up the formatting, made it more accessible. Plus tweaks to "Apps & API".
  7. New metric for The StoryGraph autodata integration: number of books!
  8. Insidious blog regression: Ever since UVI#4590, some of our block quotes were failing to render as block quotes. Inadvertent plagiarism! #bugfix #zombie
  9. Help docs: Made the Privacy article clearer and more readable, added to the intro of "New goal defaults", plus copy tweaks to "Deadline & Reminders"
  10. Help docs: Fixed a broken link in the language learning example goal article, plus rephrasing and clarifying of the PPR article
  11. New metric for our Focusmate autodata integration: total sessions duration!
  12. UVI#4967 introduced a bug with restarting frozen or archived goals: if you'd had a relative x-min set, we wouldn't let you! #bugfix #zombie
  13. We improved our Manifold Markets autodata integration. We no longer count superfluous sub-bets in certain market types. One logical bet is +1 on Beeminder.
  14. And a change to the Manifold integration: it's designed for human levels of trading, not bot trading, so we only guarantee to count up to 100 bets/day
  15. Changed wording in the 'Your payment was declined' banner: made it more concise, and now mention retrying the charge as well as updating payment method
  16. Also changed text for the dismiss button in the retry-charges dialog. It was potentially implying you could cancel the *charge* (as opposed to the dialog).
  17. Fixed a bug with updating your credit card if you had a failed charge from prior to 2022. #bugfix
  18. Soft launch of our new Curlminder integration for minding arbitrary numbers on arbitrary web pages! beeminder.com/curlex
  19. Help docs: Added a note about webhooks to the Data article, plus tweaks to the Supporters and Graph Editor articles
  20. We accidentally broke URLminder goal creation when we soft-launched Curlminder. #bugfix #zombie
  21. The incipient Curlminder integration now ignores commas and shows you how it's parsing your regex match into a number
  22. Help docs: New "Groupies" article for consistency in linking to something for each section of the Goal Settings category, plus new links and keywords, etc
  23. Help docs: The Reminders article is now less weird and confusing, plus tweaks to the Graph Settings article
  24. Oops, the previous 'improvement' to Curlminder broke its ability to fetch new values after goal creation. #bugfix #zombie

2024 December

  1. Help docs: Added to the Post-derail Respite article an explanation of how it works for Do Less, Odometer, Whittle Down, and Weight goals
  2. Oops, UVI#5024 didn't work for the PayPal holdouts. Payments pages for them were loading like molasses if they'd been beeminding forever. #bugfix
  3. Uncle Button! Click it to accept a derailment early, to get a red goal off your dashboard and stop getting reminders about it (till the next beemergency)
  4. Help docs: Links to Oura in the historical interest section under possible alternatives to integrations that died. Plus tweaks to 4 other articles.
  5. Proper ARIA labeling of the uncle button for accessibility
  6. Made the uncle button nicely buzz the infinibee until the derailment's processed and the graph updated
  7. Spruced up the UI-copy for the uncle button, including the heads-up that it's grayed out if you're not in the red
  8. Last uncle button thing for now: we add "#UNCLE" to the #DERAIL datapoint comment, just in case you want a record that you used it
  9. Officially launched the Curlminder integration!
  10. Improved the Curlminder landing page copy and made a square version of the logo for the gallery
  11. Help docs: New article for the Curlminder (AKA Curlex) integration
  12. Fixed a bug with the hovertext on blog images on the blog home page that had the wrong text appearing. #bugfix
  13. When we made goal creation accept timey-wimey format for rates (UVI#5016) we broke the GmailZero graph preview step. #bugfix #zombie
  14. Version 6.7 of the Beeminder iOS app! Lots of fixes and little improvements and a new feature: Beeminder goals are searchable in Spotlight
    • First little nicety he app icon now supports dark mode and tint mode
    • More practically, the app now shows goals as dark green when they have 7+ days of safety buffer (catching up with UVI#4801 for the website)
    • Improved the styling of some buttons and UI elements, fixed visual glitches, etc
    • The dashboard now sorts by urgency instead of strictly by deadline, catching up to the website change from April
    • The built-in timer now shows the goalname being timed
    • The date picker now disambiguates when the date wraps around to a new month (there was both bugginess and confusion without this)
    • Fixed a bug with calculating Mindful Minutes. #bugfix HT sachiesaaan
    • Apple Health integrations no longer overwrite the #DERAIL meta datapoints, plus #THISWILLSELFDESTRUCT now ignored for datapoint suggestions
    • Critical #bugfix with datapoints being entered for the wrong Beeminder day for goals with non-midnight deadlines
    • Goals are no longer hidden behind the keyboard when filtering. #bugfix
  15. If you have Bee Plus and have any goals with very large graph matrices, you might've noticed that that made the page load time reeeeeeaaallly slow. #bugfix
  16. While we were at it, made the graph editor a bit nicer by defaulting to the date of the parent when you insert a row in the middle, rather than the current date

2025 January

  1. The breaks page now disallows breaks after the implicit end date (for goals w/ a final target + rate, w/ inferred end date). #bugfix HT Clive
  2. The breaks page no longer shows group goals if you're not the owner of the goal, because groupies are only supposed to have edit access to the data. HT Clive
  3. Doh, when we added the honey-transactions page (UVI#5024) we broke links to honeygrams. #zombie #bugfix
  4. Fixed an issue for do-less goals where weekends-off (or other upcoming breaks) could get ruined by an intermediate derail. #bugfix HT Clive
  5. New beecaps of your 2024 year! beeminder.com/beecap
  6. We removed the mention of the meta-commitment device in the "why?" popup when you've already complied with the meta-commitment device
  7. We smoothed out our username validation so it never happens that we say a username is valid and let you move to the next step before changing our mind
  8. Help docs: Changed headings and adjusted wording away from paying-as-punishment in "What Is Beeminder?" plus tweaks and little fixes in 9 other articles
  9. Help docs: Deleted most words from the "when does my week start?" article, making it hopefully much clearer, plus made another one not discuss fake data
  10. Help docs: Made the article about Beeminder end-of-day more readable (by deleting lots of things) plus fixed an error a user caught in the Odometer goals one
  11. Help docs: Added guidance about replying to legit checks and other support email things in the catchall article, plus tweaks to 2 other articles
  12. Help docs: In the article on weekday-only goals, added links and made clear you can toggle weekends-off on the mass-breaks page
  13. Help docs: Retitled article on getting free goals making it more findable, plus edited "my goal doesn't make any sense!" article to encourage more self-help
  14. Help docs: Added more about Whittle Down and Weight goals to the safety buffer article, addressing some user confusion, plus cleaned up the formatting
  15. Help docs: Clarified about ratcheting number of safe days vs goal units in the Ratchet article, plus tweaks and rearranging/rephrasing in 2 other articles
  16. Help docs: Lots of edits throughout the article on scheduling breaks to clarify about when/how one can derail during a break
  17. Got our YNAB integration the official stamp of approval from YNAB, meaning we're in their "works with us" gallery and also we can have more than 25 users now
  18. Help docs: Updated screenshot and text for relative (aka rolling) x-min (aka t-min) in the article about restarting archived goals
  19. Help docs: Added bit about visual graph editor in "Can I start my goal over?" and Do-More-vs-Do-Less tradeoffs plus new links in the Do-Less article
  20. Help docs: Added warnings for wary to the Custom Goals article, fixed a missing sentence ending in another, and tweaked the intro in 2 more articles
  21. Soft launch (beta) of our Fatebook integration. Open to daily beemail folks and anyone else who can guess the URL.
  22. We updated our Garmin integration which was about to break if we didn't change some API calls Garmin asked us to change. Sweat-smile-emoji.
  23. Help docs: Fixed some user-confusion with the Weight Loss/Gain article by changing headings and adding clarifying words and sentences
  24. Help docs: Clarifications in "What is my data?" re: auto-summing vs odometer goals, plus keywords and a link. And a tiny tweak to "Can I export my data?"
  25. Fixed a critical bug in the soft-launched Fatebook integration: it's odometer style, not auto-summing. HT @poisson
  26. Help docs: Lots of copyediting love and new examples for the "How do I enter data?" article, plus a clarifying line in "How do I fix incorrect data?"
  27. Help docs: Significantly rewrote the "When do I pay?" article to make it clearer, easier to read, and to get important stuff up front
  28. Help docs: Rephrasings/clarifications in the article on others adding data to your goal, plus mention of API in data import article, plus link added to 1 other
  29. Help docs: Added a link to goal archiving to the article on changing goal units, as some users needed that pointer
  30. The refresh/resync button now retries fetching data for an autodata goal even after there's been an auto-fetch error
  31. The API has a new boolean field to tell you if a datapoint is a true logical datapoint or just a placeholder/meta datapoint like marking a derail (is_dummy)

2025 February

  1. The API also has a new boolean field to distinguish the initial datapoint that's added as part of goal creation: is_initial (documented these as well)
  2. When we added info about where a goal gets its data to the sidebar of the goalpage, we broke some of the meta user's goal pages. #bugfix #zomb HT David Yang
  3. The refresh arrow in the sidebar of autodata goals now changes color when new data fetched by pressing it changes the goal's safety buffer, e.g. orange to blue
  4. We now include the connected username and a description of what the goal is tracking in the GitHub section of goal settings for Gitminder autodata goals
  5. We also added a button for the Gitminder form that lets you change the repo it's tracking, if you're tracking a specific repo, instead of all commits
  6. Finally, we added a warning line for Gitminder if the goal's owner is disconnected from GitHub
  7. SerineMolecule fixed the bug w/ anchor links here in the changelog. Linking to specific UVIs works now without scrolling slightly away from the target! #bugfix
  8. Help docs: Subtle edits to the "how much do I pledge?" article to encourage derailing-it-is-nailing-it plus tweaks/rearranging to 5 other articles
  9. Help docs: Same story for the "can I increase the pledge?" article plus tweaks/clarifications to another 3 articles
  10. Official launch of our Fatebook (with a T) integration! blog.beeminder.com/fatebook
  11. Help docs: New article for the new Fatebook integration
  12. We fixed the alignment of the integrations gallery so when the don't fit in a nice rectangle, the overlow is left-justified
  13. Also we improved the spacing of the gallery and made the logos slightly smaller so things fit better
  14. Removed all-commits tracking from Gitminder for now; it has been semi-broken because the API it uses is not realtime and we can miss data & derail edge-skaters
  15. Toggl changed their URLs around and we now once again link to the right place to find your token for pasting in to create a Beeminder autodata goal
  16. We fixed a slight/sorta error in the feet-weeting emailcopy and added a conditional blurb for the (edge) case that the goal ended up archived (somehow)
  17. Help docs: Rearranging and clarifying in the "Why did Beeminder charge me?" article plus smaller tweaks to 4 other articles
  18. Fixed a bug introduced by UVI#5122 where we weren't validating your tracked repo when you set up a new GitHub (Gitminder) goal. #bugfix #zombie
  19. Our GitHub integration now checks and keeps in sync the last week of data, in line with other autodata, rather than just the current day
  20. We now check that the goaldate parameter passed to the API in goal creation is a Unix timestamp, and give a coherent error if not
  21. To catch more errors (e.g., unixtime in milliseconds instead of seconds), we further enforce NOW < goaldate < 2099-12-31
  22. Help docs: Added to the Boss as a Service integration article info about non-legit derailments when using that integration
  23. We added an explicit link to the dashboard in the dropdown menu in the upper right of the website; apparently not everyone knew how to find the dashboard
  24. While we were at it we changed "gallery" to "gallery view" and added some handy tooltips

2025 March

  1. Help docs: New FAQ item / clarification in the article for the Fatebook autodata integration, plus copy tweaks to 3 other articles
  2. Help docs: The Focusmate autodata integration article now covers the new time-based metric, plus copy tweaks or added details to 4 more articles
  3. For consistency (and cuteness?) and I guess in some cases actual usefulness, we added tooltips to pretty much everything in the navbar and dropdown menu
  4. Oops, we accidentally swapped the Log In and Sign Up links. #bugfix #zombie
  5. While we were at it / for completionism, we added tooltips to the remaining navbar / menu items, and improved several of them
  6. Help docs: Clarification about donations to freeCodeCamp in the article about the autodata integration, plus tweaks to 2 other autodata articles
  7. Some autodata integrations used to overwrite the #DERAIL datapoints and others wouldn't. Now they never do. Consistency (and moar information) FTW.
  8. There's a new AGGDAY section at the end of the Data tab indicating how multiple datapoints for a single day are aggregated, e.g., "last", "first", "min", "max"
  9. The new AGGDAY section also explains aggdays in general and links to the help doc about them
  10. Tweaks to the aggday section: following our convention for opening links in new tabs or not, not using "here" as anchor text, more words for aggday=max
  11. Help docs: Added a section to the GmailZero article about how to add a break
  12. Help docs: Added a section to the Gitminder article about flakiness with all-commits tracking with link to new forum thread
  13. Added "6 months" as one of the choices for relative t-min aka x-min (either by popular demand or because 3 months was demanded and having 3 but not 6 was weird)
  14. Our authorization to read your Lichess data only lasts a year. Now we handle that gracefully, showing you the error and letting you reauthorize us.
  15. Added an "Expired Services" section to your account settings; otherwise we would only notice a service expired if you had an active autodata goal using it
  16. YNAB sent us some legalese to put in our TOS. We're counting this as a UVI on grounds that they'd demote (and thus break) the integration if we didn't.
  17. The Toggl autodata integration, for earlybird goals, wasn't adding data for the new day till the calendar day and Beeminder day matched. #bugfix
  18. Our query for showing Expired Services from UVI#5147 was wrongly including non-expired services (ones with refresh tokens). #bugfix
  19. We also made it anti-magic-compliant so if you have no expired services it tells you so explicitly
  20. The anti-magic fix also magically fixed an if-statement bug that caused us to only show *one* of auth'd, expired, or "you haven't auth'd anything yet". #bugfix
  21. Also in the Apps&API tab of Settings, we made the autodata integration logos and names look better at small screen sizes
  22. Another style improvement: we fixed up the whitespace in the Unauth'd and Expired sections so it's distributed evenly
  23. Finally, we made the layout responsive so it switches to a two-column layout at small enough screen sizes
  24. Fixed an alignment problem w/ the "Apps you have authorized to access your beeswax" section that we introduced in the previous batch of UVIs. #css #bugfix #zomb
A bee working on the Infinibee logo