funding OSS through illicit activities

Issue #134.November 7, 2022.2 Minute read.

Welcome to the 847 new readers who have joined since last week. We hope everyone will be on their best behavior, now that you know we have new guests.

This week, we’ve got firestick tricks, a JS runtime drinking game, and Rich Harris’ new side hustle 🤫.

Welcome to #134.

If you’d like to share this issue, here’s the web link.

Eyeballs logo

The Main Thing

Babel, Webpack, and Bower gambling

It's a craps shoot

Funding OSS through illicit activities

There’s been a lot of talk this year about ways to monetize OSS projects. The most OP strat seems to be tricking a bunch of unsuspecting venture capitalists into giving you money based on the amount of github stars you have, hoping they overlook that pesky business model you haven’t thought about yet.

But our favorite strategy is one you’ve probably never heard of. We call it “funding OSS through illicit activities”, and all the cool kids are doing it.

Take Bower, for example. If you have an anal fissure you can’t get rid of, you probably remember Bower as the package manager for the front-end whose popularity died off in ~2016.

Over the last year, Bower has raised $68k from the distinguished company of 420couponcodes·com, tradingwolf·com, and firesticktricks·com – among others.

Webpack? $167k from casinotop·com, topcasinobonus·com, and bestbitcoincasino·com – among others.

Babel? $249k from turtlebet·com, firesticktricks·com, and casinority·com – among others.

So is firesticktricks just more conscious of the mental health of our OSS developers than the handful of billion dollar companies who profit off of OSS while ignoring where it came from, or is something else going on?

As Mr. Munger would say, we need to follow the incentives.

When you’re peddling weiner pills and online casinos, it’s hard to get quality backlinks from reputable websites. The problem, of course, is that quality backlinks from reputable websites is the biggest driver for how well your site gets ranked with search engines.

This is where these OSS sponsorships come into play. For all of these OSS projects, when you sponsor them, you get a “shout-out” on their website – and by “shout-out” we mean a backlink.

The Bottom Line: It’s a win/win – the hungry maintainer gets the bread and the thirsty sponsor gets the (link) juice. Whether you think it’s appropriate is probably correlated with how much free code you’ve given away lately.


Stream logo

Our Friends
(With Benefits)

ET posing for a picture with Michael Jackson

True love always finds a way

Stream + your chat app. Power couple.

Building a chat app from scratch is like getting back together with your toxic Ex: it’s stupid, slightly dangerous, and also stupid.

That’s why most developers choose to have a healthy and fulfilling relationship with Stream. It’s the #1 chat and activity feed platform in the world, because it handles all of that annoying infrastructure stuff for any size app.

We’ve talked about Stream in the past, but even we’re blown away by how fast they’ve grown. They now serve over 2 billion active end users and help power huge enterprise apps like SoundCloud, Match-dot-com, Imgur, Glossier, and Adobe.

And just like Michael Phelps’ freakishly long torso, Stream comes with built-in features to make it the absolute best at what it does — which in this case, is to help you scale to the moon without any issues (including security and compliance).

Unsplash’s CPO said, “Stream simplifies processing billions of activities into a simple API for input and output with performance that would take our team months, if not years, to learn and optimize.” And if that doesn’t sound like true love, I don’t know what love is.

Check it out (for free!)

The Job Board Logo

The Job Board

Senior Full Stack Engineer
Remote friendly
$160-210k base

Motion is looking for experienced TypeScript engineers to build the next generation of productivity tools. You'll inform key frontend architectural decisions that help Motion scale the next 2 order of magnitudes, create delightful user-facing features, and improve application performance. We are an ambitious team of 15 people distributed remotely across North America.

Cloud Architect
US-based Remote

Capco is the largest financial services consulting firm in the world, and they're looking for an experienced cloud engineer to lead new projects for their clients, which ranges from FinTech companies to global banks.

Powered By: hackajob logo

Senior or Staff Front-end Engineer
100% Remote
React is looking for an experienced React developer to help design, implement and launch major user-facing features. Close is a 100% globally distributed team of 65 high-performing, happy people that are dedicated to building a product our customers love.

Lead Technical Architect
Application Infrastructure

The UK Home Office is looking for an experienced engineer to help define, own, and contribute to its technical roadmap and strategy as they build applications and services used by the UK government and its citizens.

Powered By: hackajob logo

Software Engineer - Mobile
React Native

Come work closely with Phantom's founders to build their flagship mobile app in React Native – a crypto wallet that's already used by millions of people to access apps and financial services built on the Solana blockchain.

Spot the Bug logo

Spot the Bug

Sponsored by Bright Data

If you need to collect any type of web data for your app, their data collector toolkit is by far the easiest way to do it.

function calcPrice(price, tax, discount) {
  tax = tax || 0.05;
  discount = discount || 0;

  return price - price * discount + price * tax;

Cool Bits logo

Cool Bits

  1. Sue Gee wrote a great article honoring the achievements of Kathleen Booth, who recently passed away. Among other things, Kathleen invented the first-ever assembly language, co-built the hardware for the ARC, and founded the first university computer science department. RIP to a computing legend.

  2. CarbonQA provides QA services geared for dev teams. They’ll break your code repeatedly — but the good news is that you’ll never have to waste time on testing again. They work in your tools, talk with your team on Slack, and let your devs be devs. [sponsored]

  3. The TypeScript compiler is now implemented internally with modules, not namespaces, and its main JS outputs are now produced by esbuild. This made the compiler 10-25% faster, which is probably just enough for you to not really notice (but we respect the effort).

  4. Steven Traversi created — a helpful cheat sheet for learning the basics of Lit. Please don’t confuse that with how.lit — a helpful cheatsheet I created back in 2013 for rating college house parties on a scale from “dece” to “poppin’“.

  5. Protobuf-ES is a complete implementation of Protocol Buffers in TypeScript/JavaScript that’s suitable for web browsers and Node.js. I obviously know what Protocol Buffers are, but I just want to make sure that you know what they are, so I’m not going to tell you.

  6. Matt Brophy (a staff developer at Remix) wrote about React Router-ing Remix. Arming the rebels, one route at a time.

  7. If you’re bored with all the JS runtime wars, you can check out this article on Running JavaScript in WebAssembly with WasmEdge, the fastest Wasm runtime out there. From now on, let’s all play a fun game where we take a drink every time we hear about a new runtime. You can always use Kool-Aid if you don’t feel like getting hammered on a Monday morning for some reason.

  8. The Svelte Team wrote about all the new and exciting things happening in Svelte-land. And TIL that is a place where you can buy “BodySlimming ConditionDetect Thermochromic Rings” for only $22.97. I’m glad Rich Harris still has time for his side hustle.

Spot the Bug logo

Spot the Bug: Solution

Sponsored by Bright Data

The || operator checks for falsy values and 0 is a falsy value, which would accidentally apply the default tax rate. To fix this, instead of checking for a falsy value, you can use the nullish coalescing (??) operator.

function calcPrice(price, tax, discount) {
  tax = tax ?? 0.05;
  discount = discount ?? 0;

  return price - price * discount + price * tax;

The nullish coalescing operator works because it returns its right-hand side operand when its left-hand side operand is null or undefined (NOT 0), and otherwise returns its left-hand side operand.