{"id":5523,"date":"2025-07-22T00:00:12","date_gmt":"2025-07-22T00:00:12","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2025\/07\/22\/good-riddance-teespring-hello-fourthwall\/"},"modified":"2025-07-22T00:00:12","modified_gmt":"2025-07-22T00:00:12","slug":"good-riddance-teespring-hello-fourthwall","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2025\/07\/22\/good-riddance-teespring-hello-fourthwall\/","title":{"rendered":"Good Riddance Teespring, Hello Fourthwall"},"content":{"rendered":"<p>    Good Riddance Teespring, Hello Fourthwall<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.troyhunt.com\/content\/images\/2025\/07\/02225942-e772-403d-b5bd-d9f1edf9206a.jpg?ssl=1\" alt=\"Good Riddance Teespring, Hello Fourthwall\"><\/p>\n<p>If I&#8217;m honest, I was never that keen on a merch store for <a href=\"https:\/\/haveibeenpwned.com\/?ref=troyhunt.com\" rel=\"noreferrer\">Have I Been Pwned<\/a>. It doesn&#8217;t make the code run faster, nor does it load any more data breaches or add any useful features to the service whatsoever. But&#8230; people were keen. They wanted swag they could wear or drink from or whatever, and it&#8217;s actually pretty cool that there&#8217;s excitement about HIBP as a brand. Plus, setting up a merch store is easy, right?<\/p>\n<p>To cut to the chase, we set up a store on <a href=\"https:\/\/teespring.com\/?ref=troyhunt.com\" rel=\"noreferrer\">Teespring<\/a> and they&#8217;ve been an absolute bloody disaster. Like, <em>appalling<\/em> bad to the point where we began to wonder if they&#8217;re even legitimate, and I wish we had found a blog post like this before entrusting them with our brand. Initially, it was just dumb stuff like this:<\/p>\n<p><!--kg-card-begin: html--><\/p>\n<blockquote class=\"twitter-tweet\">\n<p lang=\"en\" dir=\"ltr\">FFS <a href=\"https:\/\/twitter.com\/teespringcom?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">@teespringcom<\/a> \ud83e\udd26\u200d\u2642\ufe0f So far finding their support just appealing incompetent, this is regarding the <a href=\"https:\/\/twitter.com\/haveibeenpwned?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">@haveibeenpwned<\/a> merch store, check out the canonical link: <a href=\"https:\/\/t.co\/uHBeTlI1yU?ref=troyhunt.com\">https:\/\/t.co\/uHBeTlI1yU<\/a> <a href=\"https:\/\/t.co\/nJBTGfCrqg?ref=troyhunt.com\">pic.twitter.com\/nJBTGfCrqg<\/a><\/p>\n<p>\u2014 Troy Hunt (@troyhunt) <a href=\"https:\/\/twitter.com\/troyhunt\/status\/1929647702658503157?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">June 2, 2025<\/a>\n<\/p><\/blockquote>\n<p> <script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\n<!--kg-card-end: html--><\/p>\n<p>I mean, <em>really<\/em> dumb:<\/p>\n<p><!--kg-card-begin: html--><\/p>\n<pre><code>&lt;link rel=\"canonical\" href=\"https:\/\/0.0.0.0:3000\" \/&gt;<\/code><\/pre>\n<p><!--kg-card-end: html--><\/p>\n<p>So, everyone who visited the store and tried to share it via a mobile device was sending <em>that<\/em> address, and Teespring&#8217;s response was that people should just manually copy and paste the URL! I stand by my reactions in that tweet &#8211; FFS \ud83e\udd26\u200d\u2642\ufe0f<\/p>\n<p>Or on a similar note of technical incompetence, they were completely unable to add me to our store as an admin:<\/p>\n<p><!--kg-card-begin: html--><\/p>\n<blockquote class=\"twitter-tweet\" data-conversation=\"none\">\n<p lang=\"en\" dir=\"ltr\">For those that come later and consider <a href=\"https:\/\/twitter.com\/teespringcom?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">@teespringcom<\/a>, don&#8217;t even think about it! I&#8217;ve been trying to join the store <a href=\"https:\/\/twitter.com\/Charlotte_Hunt_?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">@Charlotte_Hunt_<\/a> set up for us for 4 weeks ago now and the invite just gives a JSON response about failed CAPTCHA every time. Support is completely useless \ud83d\ude21 <a href=\"https:\/\/t.co\/d4EH6nC5O2?ref=troyhunt.com\">pic.twitter.com\/d4EH6nC5O2<\/a><\/p>\n<p>\u2014 Troy Hunt (@troyhunt) <a href=\"https:\/\/twitter.com\/troyhunt\/status\/1931890751547543765?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">June 9, 2025<\/a>\n<\/p><\/blockquote>\n<p> <script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\n<!--kg-card-end: html--><\/p>\n<p>That support thread spanned from the 16th of May to the 12th of June and culminated in:<\/p>\n<blockquote><p>At this time, I still don\u2019t have any updates from the Tech team. I understand this isn\u2019t the resolution you were hoping for, and I sincerely apologize for the inconvenience and the delay.<\/p><\/blockquote>\n<p>And that&#8217;s just the technical examples. The real pain came once we ordered merch, here&#8217;s the timeline:<\/p>\n<ol>\n<li>19 May: Order placed with a 3 Jun to 11 Jun delivery timeframe<\/li>\n<li>20 May: We&#8217;re advised that the order is &#8220;in production&#8221; (the status has not changed at the time of writing)<\/li>\n<li>29 Jun: We lodged a complaint: &#8220;We have a bunch of fans complaining they are not getting their orders.&#8221;<\/li>\n<li>1 Jul: We receive a platitude response citing &#8220;unexpectedly high volume of orders&#8221;<\/li>\n<li>8 Jul: Teespring advises they &#8220;recently lost one of our key print partners&#8221; and we reply the same day, cancelling the order. Their auto-reply states that &#8220;We&#8217;ll get back within the next 24 business hours&#8221;.<\/li>\n<li>11 Jul: 3 days passed with no response, so we gave them a 24-hour deadline before lodging a dispute with the card provider, to which we received another automated response: &#8220;We&#8217;ll get back within the next 24 business hours&#8221;<\/li>\n<li>17 Jul: Still no feedback, so we lodge a dispute with Amex<\/li>\n<\/ol>\n<p>It&#8217;s not just us either; not only have I not seen a single &#8220;hey, check out my cool HIBP merch&#8221; social post, I <em>have<\/em> received messages like this:<\/p>\n<figure class=\"kg-card kg-image-card\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.troyhunt.com\/content\/images\/2025\/07\/image-7.png?resize=300%2C515&#038;ssl=1\" class=\"kg-image\" alt=\"Good Riddance Teespring, Hello Fourthwall\" loading=\"lazy\" width=\"300\" height=\"515\"><\/figure>\n<p>So, onto that dispute and believe it or not, this is the first time I&#8217;ve ever lodged a one. Turns out it&#8217;s really simple, and I&#8217;d like to show everyone who made a purchase through the Teespring store just how easy it is. Firstly, I found the transaction on my Amex card:<\/p>\n<figure class=\"kg-card kg-image-card\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.troyhunt.com\/content\/images\/2025\/07\/image-4.png?resize=1544%2C331&#038;ssl=1\" class=\"kg-image\" alt=\"Good Riddance Teespring, Hello Fourthwall\" loading=\"lazy\" width=\"1544\" height=\"331\" srcset=\"https:\/\/www.troyhunt.com\/content\/images\/size\/w600\/2025\/07\/image-4.png 600w, https:\/\/www.troyhunt.com\/content\/images\/size\/w1000\/2025\/07\/image-4.png 1000w, https:\/\/www.troyhunt.com\/content\/images\/2025\/07\/image-4.png 1544w\" sizes=\"(min-width: 720px) 720px\"><\/figure>\n<p>That record had an option to submit a dispute which then allowed me to choose a reason:<\/p>\n<figure class=\"kg-card kg-image-card\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.troyhunt.com\/content\/images\/2025\/07\/image-5.png?resize=1893%2C873&#038;ssl=1\" class=\"kg-image\" alt=\"Good Riddance Teespring, Hello Fourthwall\" loading=\"lazy\" width=\"1893\" height=\"873\" srcset=\"https:\/\/www.troyhunt.com\/content\/images\/size\/w600\/2025\/07\/image-5.png 600w, https:\/\/www.troyhunt.com\/content\/images\/size\/w1000\/2025\/07\/image-5.png 1000w, https:\/\/www.troyhunt.com\/content\/images\/size\/w1600\/2025\/07\/image-5.png 1600w, https:\/\/www.troyhunt.com\/content\/images\/2025\/07\/image-5.png 1893w\" sizes=\"(min-width: 720px) 720px\"><\/figure>\n<p>A few little questions in between (dates, attempts to contact them, etc), and we&#8217;re done:<\/p>\n<figure class=\"kg-card kg-image-card\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.troyhunt.com\/content\/images\/2025\/07\/image-6.png?resize=1720%2C860&#038;ssl=1\" class=\"kg-image\" alt=\"Good Riddance Teespring, Hello Fourthwall\" loading=\"lazy\" width=\"1720\" height=\"860\" srcset=\"https:\/\/www.troyhunt.com\/content\/images\/size\/w600\/2025\/07\/image-6.png 600w, https:\/\/www.troyhunt.com\/content\/images\/size\/w1000\/2025\/07\/image-6.png 1000w, https:\/\/www.troyhunt.com\/content\/images\/size\/w1600\/2025\/07\/image-6.png 1600w, https:\/\/www.troyhunt.com\/content\/images\/2025\/07\/image-6.png 1720w\" sizes=\"(min-width: 720px) 720px\"><\/figure>\n<p>And just like that, Teespring suddenly found the ability to reply to support queries again!<\/p>\n<blockquote><p>We noticed a dispute was recently submitted for your transaction related to order #[reacted], with the reason noted as PRODUCT_NOT_RECEIVED. We wanted to reach out directly to better understand the situation and see how we can assist.<\/p><\/blockquote>\n<p>That came through yesterday, the 20th of July. As I think I&#8217;ve done a pretty decent job of outlining the situation in this blog post, we&#8217;ll be sending them a link to it and following through with the dispute. Raising a dispute with your card provider not only returns the funds to your account, but it also levies a fee on the merchant, which in this case, seems entirely deserved.<\/p>\n<p>I sincerely apologise to the HIBP supporters who trusted us enough to go to the merch store and make a purchase. This experience seriously sucks and should never have happened. I&#8217;ll update this post with any further feedback I get from Teespring or Amex.<\/p>\n<p>Onto more positive things, and an opportunity did arise out of Teespring&#8217;s incompetence:<\/p>\n<p><!--kg-card-begin: html--><\/p>\n<blockquote class=\"twitter-tweet\" data-conversation=\"none\">\n<p lang=\"en\" dir=\"ltr\">Happy to help you switch to Fourthwall. Shoot me a DM and we\u2019ll move everything over for you<\/p>\n<p>\u2014 Will Baumann (@dubbaumann) <a href=\"https:\/\/twitter.com\/dubbaumann\/status\/1930005538781442186?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">June 3, 2025<\/a>\n<\/p><\/blockquote>\n<p> <script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\n<!--kg-card-end: html--><\/p>\n<p>Usually, I&#8217;d be reluctant to respond to someone jumping in on a thread and pitching their product, but hey, we were desperate! And it turns out that Fourthwall is pretty awesome because people there actually talk to you and get stuff done \ud83d\ude44 I mean, <em>properly <\/em>done:<\/p>\n<p><!--kg-card-begin: html--><\/p>\n<blockquote class=\"twitter-tweet\">\n<p lang=\"en\" dir=\"ltr\">We\u2019ve got <a href=\"https:\/\/twitter.com\/haveibeenpwned?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">@haveibeenpwned<\/a> merch! Arrived a little while ago and finally got into it today, we\u2019ll keep adding more stuff to the store based on demand: <a href=\"https:\/\/t.co\/uHBeTlI1yU?ref=troyhunt.com\">https:\/\/t.co\/uHBeTlI1yU<\/a> <a href=\"https:\/\/t.co\/dQW7dcM0Ey?ref=troyhunt.com\">pic.twitter.com\/dQW7dcM0Ey<\/a><\/p>\n<p>\u2014 Troy Hunt (@troyhunt) <a href=\"https:\/\/twitter.com\/troyhunt\/status\/1947093608278216725?ref_src=twsrc%5Etfw&amp;ref=troyhunt.com\">July 21, 2025<\/a>\n<\/p><\/blockquote>\n<p> <script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\n<!--kg-card-end: html--><\/p>\n<p>We ordered it on 2 July and received part of the order in Australia on 7 July, and the other part on 18 July. That&#8217;s 5 and 16 days (both of which exceeded their estimate of 21-24 July), whilst the Teespring order was lodged 63 days ago \ud83e\udd37\u200d\u2642\ufe0f<\/p>\n<p>So, check out <a href=\"https:\/\/merch.haveibeenpwned.com\/?ref=troyhunt.com\" rel=\"noreferrer\">merch.haveibeenpwned.com<\/a> and have confidence that you will actually get what you order. Please leave a comment below if there&#8217;s anything else you&#8217;d like to see in the store, and don&#8217;t forget to pick up some nice thongs for yourself <a href=\"https:\/\/merch.haveibeenpwned.com\/en-aud\/products\/breach-thongs?ref=troyhunt.com\" rel=\"noreferrer\">some nice thongs<\/a>!<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Troy Hunt<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/www.troyhunt.com\/good-riddance-teespring-hello-fourthwall\/\">Go to troyhunt<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Riddance Teespring, Hello Fourthwall If I&#8217;m honest, I was never that keen on a merch store for Have I Been Pwned. It doesn&#8217;t make the code run faster, nor does it load any more data breaches or add any useful features to the service whatsoever. But&#8230; people were keen. They wanted swag they could [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[139,51],"tags":[1590,1591,1558],"class_list":["post-5523","post","type-post","status-publish","format-standard","hentry","category-have-i-been-pwned","category-troyhunttroyhunt","tag-store","tag-teespring","tag-they"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/5523"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=5523"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/5523\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=5523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=5523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=5523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}