HN user
mfrisbie
Personal site: mattfriz.com
Company: trackandtrace.tools
So this extension is feeding a stream of your browsing activity to a bunch of third party services? No thanks.
Looks nice, but that extension is a high-value acquisition target for bad actors, and there's nothing but an email for contact information.
Sideloading eliminates this risk completely.
I kept catching myself scrolling down their idiotic feed and wondering what the hell I was doing. Mindless dreck, all of it. Yet I still get cold inbound from it that turns into business, so I can't just abandon the platform entirely.
I wrote a ~50 LOC browser extension that always redirects away from the feed to your profile. Works great, sideload and forget.
Some charge a nominal fee, and one I had to travel to a studio to record. Made for a nice weekend in LA with my wife.
I run Track & Trace Tools[1], an extension directly targeted at the legal cannabis industry's main compliance platform Metrc.
Since it's targeted at businesses and not consumers, word of mouth has been powerful for me. I've rapidly grown in the state of Michigan thanks to a few very enthusiastic operators.
I also went on a slate of podcasts last year to talk about (read: promote) my product. Podcast hosts are always looking for guests, and most of them didn't cost me a thing.
It's also been helpful to be a Google Developer Expert for web extensions, the Chrome team interviewed me and that gave me a platform to talk about what I was working on[2].
I tried very hard to find a way around using an external server, as I knew HN would harp on the related privacy issues. No luck.
I'll admit, the launch messaging could have been better.
For the record, this is bang on.
Creator here - you bet! It's a big problem.
Creator here. A check automatically runs every hour, and if there are any changes detected, a badge appears over the extension icon. I decided anything more than that was too invasive.
Creator here. It does self-detect (chrome.management.getAll() returns all installed extensions), but fair point.
I've been self-employed for nearly two years. I work on a Chrome extension [1] that is used by a significant fraction of the US legal cannabis industry for compliance.
2/3 of my time is spent on consulting projects, which pay better, and the rest is spent maintaining the platform. At the moment, the platform is self-sustaining and the revenue from it is growing fast. I work some of the largest companies in the industry, which is great for network building. The flexibility in schedule it offers is terrific, and I have no need to fundraise or hire.
A big factor in my industry was scanning damaged barcodes, which was frequent since they're attached to indoor/outdoor plants and physical boxes that get moved around. They get weathered and scraped.
If there's even slight damage to the barcode, forget the browser scanners, you can scan that thing until the next Olympics and not get a read. HID scanners don't skip a beat.
Native apps use Android/iOS scanning libraries that are much more effective than the in-browser options. They are still nowhere near as good as hardware scanners.
The initial idea involved a low-friction onboarding that didn't require any extra hardware - "Just use your phone to scan!". Stupid.
Turns out that workers would rather manually key in the last 5 numbers of a barcode to look it up than screw around with a poorly behaved camera. For the current version of the platform, it's either dedicated hardware scanning or manual ID search, the phone scanning wastes everybody's time.
Resolution is certainly a major factor in the scanning acuity. The browser scanning issue is somewhat paradoxical: getting a clear and high-resolution image of the barcode improves scan accuracy, but to achieve this, the camera needs to get so close to the barcode that the autofocus starts to freak out and blur the barcode. Since the browser scanner is using the browser camera API, there's no good mechanism to control the autofocus. It's enough to make you want to throw your phone in the garbage.
QR codes are very easy to scan in-browser, but 1D barcodes are significantly more challenging. ~75% of the cannabis industry deals with Metrc, which forces companies to place 1D Code-128 barcode tags on everything they grow or manufacture. As a result, I've spent a lot of time investigating ways to scan these barcodes with a phone camera in a cross-browser webpage.
Ultimately, after much experimentation, the unavoidable conclusion is that the optical scanning solutions are junk. Connecting a crappy $20 HID bluetooth barcode scanner to a phone is so crazily better at scanning a 1D barcode than even the most massaged optical barcode scanning libraries. Industry workers that deal with these barcodes don't even bother with phone camera scanning, it's way too slow and temperamental.
ChatGPT for Google was #1 on HN earlier this year. Check out the GitHub repo now: that person sold the extension.
I had a small side project extension, ~25,000 installs & free to use. I got enough inbound interest trying to "help me monetize" that I thought it would be worth cataloguing all the different unsavory avenues: https://mattfrisbie.substack.com/p/the-ugly-business-of-mone...
My favorite Metrc API wart was submitting harvests when their API servers were bogged down. Sometimes, your "create harvest" request would get stuck in a transaction pool that wouldn't timeout for 10 minutes. You'd have to wait the full 10 minutes to see if it succeeded or not because setting a shorter timeout would risk double-submitting the harvest, thereby completely screwing up that cannabis business's compliance data.
Up until very recently there was plenty of federal support for tobacco farmers, and you can't eat that either.
If states are going to legalize and tax, then they're obligated to treat these businesses as legitimate - especially with respect to social equity programs that give priority to minority license applicants. If you're sending these licensees into a meat grinder, that's not social equity.
I was on Cannabis Talk 101 recently to talk about this issue specifically: https://www.youtube.com/watch?v=FwOmtBo8sBU
It is not hyperbolic to say that in many states, the cannabis industry is drowning. Far too much regulation, far too many taxes, and no access to capital yields an environment for cannabis SMBs that is effectively impossible to thrive in. The largest multi-state operators are the only businesses that are positioned to survive this downturn.
Contrast this with federal agricultural policy for the past 100 years, in which entire agencies are dedicated to ensuring the health of American agriculture through loans, subsidies, and economic policy. Even though cannabis is the 6th largest cash crop in the US - roughly the same size as cotton, and larger than rice or potatoes, it is being actively crushed underfoot.
Federal legalization is not close, and SAFE banking is not close. The industry as a whole is sliding into an enduring period of stagnation, and legislators are far too slow to act. For people who have been closely following the industry, all of this is completely unsurprising.
It's very bizarre, and possibly why it got kicked off the front page
High praise indeed! Thank you.
Fair point, multiple people have circled this snippet as problematic. I'll confess, I didn't spend much time testing this for performance.
My idea was that separate inputs should have separate debounced handlers, but it's likely you could do away with that and just listen for input events globally with no adverse effect on data collection.
Author here! I'm tickled to see that this whimsical cautionary tale is so resonant.
https://www.trackandtrace.tools/
Open source Chrome extension for Metrc, the primary cannabis track and trace platform in the US.
It's free to use, but I'm proud to say that a significant slice of the cannabis industry uses this tool daily when reporting their business's cannabis activity.
Safari's extension support is great, I was keen to include that in the book. Having to develop extensions inside XCode and deploy them in the Apple App store felt a bit odd, but it's really interesting how the extension has a dedicated "app" on the phone, which allows for some interesting possibilities.
I'm a faithful Firefox Mobile user myself, it's the easiest way to use an adblocker on a mobile device. I don't think it's controversial to suggest that extensions are a desktop-first platform: things like popups, omnibox API, contextmenu API, or customizing developer tools either aren't applicable in a mobile format or don't translate very well.
I was enthusiastic enough about extensions that I decided to publish a book about building them: https://www.buildingbrowserextensions.com/
Browser extensions are severely underrated as a platform because they aren't sexy. For all that mobile devices have given us, so much of our work continues to be done using a desktop browser. Enhancements such as augmenting websites with widgets, supplying contextual information, and automating repetitive tasks using the authenticated session - when applied appropriately - can save someone hours every day.