• Projects
  • Archive
  • Links
  • Look, mom: I’m quoted in Fast Company!

    → 8:33 AM, May 8
    Also on Bluesky
  • Had some old MIDI files from our circa-2000 iMac. For ease of use, I’d “converted” them to QuickTime movies. So naturally, they wouldn’t play today, and QT Pro doesn’t work. Shout out to Infinite Mac where I was able to load Mac OS 8.6 and convert the files back to standard MIDI.

    → 8:57 PM, May 2
    Also on Bluesky
  • Apple has been ordered to stop blocking and charging commission on links from apps to websites. Good.

    I use IAP for PillTimer; it lets me focus on the app and not payments and DRM. It’s well worth the 15% fee. But as I’ve mentioned a few times on this blog, forcing it on everyone is stupid.

    → 10:08 AM, May 1
    Also on Bluesky
  • Well I didn’t have “dentist tells me not to brush my teeth” on my 2025 bingo card, yet here we are.

    → 11:01 PM, Apr 30
    Also on Bluesky
  • “The light shines in the darkness, and the darkness has not overcome it.”

    Ergo, “while I breathe, I hope.”

    → 10:11 AM, Apr 20
    Also on Bluesky
  • In reading about Gumroad, I managed to find out that the founder is working with DOGE. That bumped up my attitude from “not angry, just disappointed” to “close my account.”

    → 6:59 PM, Apr 5
  • Bumps In the Gumroad

    It’s hard to overstate just how much my opinion on Gumroad has changed since the beginning of 2025. I’m not mad, just disappointed. Incredibly disappointed.

    Strike One: Unintended Consequences

    Let me preface this by saying I get problems with email delivery. There’s a whole system of checks and ranking that is based almost entirely on reputation. And it goes layers deep: bad behavior by one entity can risk the reputation of a provider serving thousands of people.

    So I understand why Gumroad made the change they did: sometime after December 1, 2024, Gumroad instituted a new policy: only sellers with $100 in sales could send emails:

    Screenshot from Gumroad saying You are not eligible to publish or schedule emails. Please ensure you have made at least $100 in sales and received a payout.

    A reasonable position. Gumroad provides a lot for free, and while they have a lot of features related to email marketing (which might have gotten them into trouble), it mostly exists for creators on other platforms.

    But this decision failed to consider the product holistically. See, Gumroad has another feature called memberships. Someone subscribes for a recurring fee and gets access to a pool of content that creators can consistently update, most similar to another platform that misspells “patron.” A creator can create a post on a membership, and members can comment on those posts.

    Except… for Gumroad, posts are emails. So are notifications. In fact, there is literally no other way to alert members of new content in the membership except through email. Email that is now off limits to new creators.

    This policy change hit me three months into a new membership project I was attempting. I was treating my membership product like a newsletter which—as far as I can tell—is how it’s intended to be used. I was putting out regular content and trying to build value over time. And overnight, my sole ability to connect with my customers was yanked away.

    To add insult to injury, despite the error message saying “$100 in sales,” the actual threshold was $100 in payouts. Which means the actual threshold was more like $115 in sales once Gumroad and credit card fees were taken care of.

    Now, I’ll admit that all of this is just based on my experience with the product. I’d love to link to a page documenting the change, but…

    Strike Two: This Isn’t Helping

    I couldn’t find Gumroad’s comprehensive help site. I’d previously read through it to get a feel for what was and wasn’t allowed on the site and to make sure that my plans for my project fell within scope for the platform. But now, when I needed information on a new policy, it was nowhere to be found.

    Eventually, by going to a completely separate page (payment info?) in the Gumroad admin, I stumbled upon an AI chatbot. With nothing else to lose, I asked how to send emails. It pointed me to buttons that didn’t exist. I then asked more specifically about the new policy, and it told me what I already knew. (It did not tell me about the sales v. payouts threshold.) It did provide some color as to why the policy was implemented, but it suggested building my audience organically through social media.

    Social media I couldn’t tell my customers about because Gumroad had taken away my only means of contact!

    Finally, I asked how to contact Gumroad support. It pointed me to the help site that didn’t exist and the contact form within. I eventually found an email on another page and sent a message there; the response was very obviously from the same chatbot.

    Chatbots are fine as one of many options to access support information. But as the only option? When it’s been trained on a help site that references itself (and therefore references a site that doesn’t exist)?

    Strike Three: It Doesn’t Mean That…

    I’ll admit, this one’s pedantic. But I got this email this morning:

    Screenshot from an email: Gumroad is open source! Dear Gumroad creators, Today, as we celebrate our 14th birthday, we’re thrilled to announce something big: Gumroad is now open source!

    Except… it’s not. Not technically.

    Looking at the GitHub repo, the code is released under the Gumroad Community License 1.0, a custom license. This is usually frowned upon, but not necessarily a dealbreaker for an open source release.

    What is a dealbreaker is this condition:

    You may use the software under this license only if (1) your company has less than 1 million USD (2024) total revenue in the prior tax year, and less than 10 million USD (2024) GMV (Gross Merchandise Value), or (2) you are a non-profit organization or government entity.

    This conflicts with article 6 of the Open Source Definition (emphasis mine):

    The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

    Now, to be fair, they didn’t capitalize “open source” in the email. But the point remains: The Gumroad Community License is, by definition, not Open Source.

    Is this a big deal in the broad scheme of things? No, not really. But it speaks to how I’ve been feeling about Gumroad as a whole…

    Who Cares?

    I think what is disappointing me about this whole thing is the lack of care for the product. The changes to email causing memberships to be unusable speaks to an organization that doesn’t have someone watching over the product as a whole. These seem like short-term decisions that hurt the product’s reputation more than solve whatever problem they were intended to solve.

    For a product that I was excited to find reasons to use, this hurts. Like I said, I’m not mad; just disappointed.

    And I’d tell them to their face if they had a working support email.

    Edit: 24 hours later, I’ve closed my account. A bad product is disappointing; working with the current US administration to “cut costs” is unacceptable.

    → 10:37 PM, Apr 4
  • Today’s brainworm: a parody of “Put Down the Ducky” called “Tighten the Graphics.”

    → 9:25 AM, Apr 1
  • Sometimes I get so deep into composition and particular abstraction layers that I forget that basic object-oriented programming exists. And what I thought was going to be a nightmare to code and even more to maintain actually wasn’t that complicated. (I welcome you to tell me why it’s actually bad.)

    → 7:52 PM, Mar 25
  • I didn’t add a way to prefix Smolblog’s DB tables because I didn’t need it, and I need to not build what I don’t need.

    Today, the auto-migration wiped out my test WordPress’ tables.

    I am now building a way to prefix Smolblog’s DB tables.

    → 11:27 PM, Mar 22
  • John Gruber on the full DeepSeek AI model running locally:

    Apple has tremendous technical advantages to offer in AI. But they’re marketing Genmojis of hot dogs carrying briefcases.

    I might argue that there’s very little else to market.

    → 10:11 AM, Mar 22
  • I’m afraid—if I log out—I won’t be able to find my LinkedIn account!

    → 7:01 PM, Mar 21
  • Hey #php land, what’s going to be the easiest way to build an admin interface? I’ve got all my data persistence and retrieval functions written; just need to build the UI. (Would love if there was some easy way to build the forms in WordPress' backend.)

    → 3:24 PM, Mar 9
  • I’m thinking of making a custom language definition for highlight.js so I can specially-format parts of a story (chat window, AI dialogue, etc.) without leaving Markdown.

    Am I overcomplicating this?

    → 11:34 PM, Mar 3
  • I want to like Scrivener so much more than I do. I want to use it, really dive into it, but writing in it feels like using a word processor; anything too far from CSS isn’t intuitive for me anymore. And the HTML it generates is… generated HTML.

    So… anyone organizing a novel with Markdown?

    → 3:13 PM, Feb 23
  • Trying something: every time I see a news story about government incompetence in the name of efficiency, I forward it to my congressman and senators.

    → 9:20 AM, Feb 15
  • I love how Fox had arguably the perfect score bug in 2020 and has spent every Super Bowl they broadcast making it worse.

    → 8:05 PM, Feb 9
  • Ok, where are y’all hosting your email? iCloud and Mailgun keep silently breaking on each other, and I’m not sure my forwarding is working either. Would love to support multiple custom domains.

    → 1:19 PM, Jan 18
  • After seeing from @dame and @manton what a premium .blog domain costs, I feel really lucky they didn’t consider “smol” a desirable word.

    → 2:24 PM, Jan 13
    Also on Bluesky
  • Back again with another #php question: I’ve put classes that exist and don’t exist through this loop, but I’m still only testing 3/4 code branches. Any ideas?

    PHP code: foreach ($services as $service) { if(!class_exists($service) { continue; }
    → 9:48 PM, Jan 12
    Also on Bluesky
  • Happy New Year! May you find what you’re looking for, or at least get closer. 😄

    → 12:12 PM, Jan 1
    Also on Bluesky
  • Just read a detailed post about GitHub Copilot by David Chisnall. It reminds me of when I almost failed a college math class because I thought I was done with homework. When I got to the tests, it was my first time really doing the problems and I struggled. The doing itself was and is important.

    → 10:24 AM, Dec 21
    Also on Bluesky
  • Anyone got experience with CSS widows and orphans? I’m trying to have a 3-line paragraph go entirely to one page, but a 4-line split evenly. Right now a 4-line paragraph will put the first three on the first page (orphans: 3) and the last line on the next (violating widows: 2). Help?

    → 11:26 PM, Dec 18
    Also on Bluesky
  • Thought I had found a clever way to auto-generate endpoints… except it depended on each one having a different static property which doesn’t work in PHP. TIL.

    → 11:03 PM, Dec 15
    Also on Bluesky
  • This is your annual reminder not to sleep on the Hallmark movie Round and Round. It has everything: nerd references, time loops, and Vic Michaelis. I’m not even being ironic; we literally sought out this movie to rewatch it.

    → 10:04 PM, Dec 12
    Also on Bluesky

Slightly uneven since 2005.

Find oddEvan on

  • Micro.blog
  • Bluesky
  • Mastodon
  • GitHub
  • Tumblr
  • YouTube
  • LinkedIn
  • Read.cv
  • TCGplayer

Projects

  • Smolblog
  • PillTimer
  • oddEvan UI
  • madcrasher
  • Other projects

Archive

Links

  • Blogroll
  • Resources
  • Fun Times

About

  • About Istoria

Colophon

Typeset in Raleway by The League of Movable Type and Satoshi by the Indian Type Foundry. Powered by Micro.blog. All your base are belong to us.

© Evan Hildreth; licensed under CC BY 4.0.