2026-02-16 15:54:43
Howdy y'all!
I hope your week was a good one. Mine felt productive, which is always a nice feeling! Let's leeearn.
Was this forwarded to you? You can subscribe here!
Building a View Counter for Static Sites with Supabase and Astro
Interop 2025: A year of convergence
Shades of Halftone
React Logo Soup
I mentioned last week that I (re?)started my YouTube channel after not really using it beyond a video/livestream dumping ground, and it's been fun getting back into making videos a bit more regularly! I made this one about parenthood in tech, and this one about how I've been passively learning morse code for over a decade now. I have a few videos coming this week that I've partially made, and I'm enjoying it so far!
I also built and open sourced a new project this week, FancyGist! It's a UI on top of GitHub Gists. I have some ideas in the repository if you want to take a peek (or drop a star, perhaps)!
Get your year started with personalized career coaching from Keenesse
Keenesse offers coaching to help you gain crystal-clear career goals, pinpoint exciting advancement opportunities, and master crucial skills like resume optimization, interview mastery, and confident negotiation – all to land your dream role in a competitive market.
Our expert team of seasoned tech industry coaches provides tailored support at every career stage, from ambitious students to accomplished executives.
Ready? Schedule your free, no-obligation consultation today at keenesse.com.
Last week, I had you move numbers to the end of an array! To the left to the left Jacob, Jeremias, Miguel, David, Amine, Leyan, Micah, Iskren, Ridhwaan, AJ, Matt, Michael, Ten, Paul (who solved it with LEDs??), Mikaël, Toni, Phillip, Noumisyifa, Varenya, Simeon, and Roberto!
This week's question:
You have a 2D grid of numbers. Write a function that zooms in by an integer factor k >= 2 by turning each cell into a k x k block with the same value, returning the bigger grid.
Examples:
zoom([[1,2],[3,4]], 2)
[
[1,1,2,2],
[1,1,2,2],
[3,3,4,4],
[3,3,4,4]
]
zoom([[7,8,9]], 3)
[
[7,7,7,8,8,8,9,9,9],
[7,7,7,8,8,8,9,9,9],
[7,7,7,8,8,8,9,9,9]
]
zoom([[1],[2]], 3)
[
[1,1,1],
[1,1,1],
[1,1,1],
[2,2,2],
[2,2,2],
[2,2,2]
]
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
The seismometers at the end of the earth have names
R3 V4n4g0n with c0v3r
How long do job postings stay open?
Searching for Birds
Why was the programmer upset with the tester?
The tester was mocking their code.
That's all for now, folks! Have a great week. Be safe, make good choices, and water your plants!
Special thanks to Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon | youtube
2026-02-09 16:40:46
Hey friends!
Happy Superb Owl day! I hope you had a good week. Mine, per usual, was fairly busy, but I had some good times with family and friends, which was good for my brain. Let's learn!
Was this forwarded to you? You can subscribe here!
We mourn our craft
Building an RSS Aggregator with Astro
How the same content always has multiple different versions
React’s ViewTransition Element
The logo soup problem (and how to solve it)
This week went by so quickly. I shipped the latest episode of The Download at work, and it got me thinking... I've been making a whole lot of video content everywhere except YouTube. So, I made another video on my personal channel that I'd love your input on in terms of what I should make, what the channel could provide, or just generally what you'd like to hear from me outside of this newsletter!
Take your design and development way beyond what you thought possible with Piccalilli and Set Studio.
Check out the excellent premium courses if you'd like to level-up your skills with lifetime access and an active community.
We're also taking on projects at Set Studio. Let us come in and take your brand and teams beyond the next level with our hyper-efficient approach that puts your competitors, well in the rearview mirror.
Last week, I had you find perfect months! To me, YOU are perfect Miguel, David, Muhammad, Roberto, Matt, Amine, Varenya, Andrew, AJ, Sean, Noumisyifa, Ender, Stephen, Toni, Will, Ten, Donato, and the fine folks in the Ruby Users Forum!
This week's question:
Given an integer array and a number n, move all of the ns to the end of the array while maintaining the relative order of the non-ns. Bonus: do this without making a copy of the array!
Example:
$ moveNums([0,2,0,3,10], 0)
$ [2,3,10,0,0]
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
The Labyrinth Locator
Building a 16x16 Spaced Handwired Mechanical Keyboard (video)
Paintings of Paintings
Vocal Guide
I thought I'd check out the winter olympics by watching some ski jumping.
Then I ended up watching the bobsleigh, downhill, freestyle skiing and luge as well.
It's a slippery slope.
(credit to David!)
That's all for now, folks! Have a great week. Be safe, make good choices, and use face lotion!
Special thanks to Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon
2026-02-02 16:29:47
Hey friends!
Happy February! Last month felt like the fastest and slowest month ever. I, for one, am hoping for warmer weather, better news headlines, and more interesting projects this month. Let's learn!
Was this forwarded to you? You can subscribe here!
Drawing Connections with CSS Anchor Positioning
CSS in 2026: The new features reshaping frontend development
How an accessibility designer adds keyboard shortcuts to a web app
Using 100vw is now scrollbar-aware
I'll be honest... this was a tough week. Lots of changes, lots of things to catch up on, lots of news, all that. But, this weekend I was mostly offline and just spent time with my family and friends, ate good food, and had a good reset, and so I'm ready for a fresh start in February!
One goal that I accomplished this past month is journaling every day. I've mentioned it before, but I use Dabble.me for journaling via email, and it's awesome. My journaling habit ebbs and flows, but I'm happy to have stayed consistent so far in 2026!
Don’t you want sticky notes that fly around your head until you need them again?
Or a pair of roller-skates with a built-in bird feeder?
Then you need The Weekly Inventions of Dr Splatterjacket.
It’s a weekly story and podcast created by Alex Andronov and illustrated by Dani Safitra.
Each week, Dr Splatterjacket unveils a new “amazing” invention that almost completely works, all in service of his not-so-secret ambition to be the first person to drill to the centre of the Earth — while his arch-rival robot Zargoid 5 tries to beat him to it (and occasionally steal his pet gerbil, Dennis).
Great for kids of all ages.
Read, listen, and subscribe at splatterjacket.com.
Last week, I had you reverse words based on vowels! Yay yay yay (look, palindromes!) Muhammad, Miguel, Ten, Brooks, Paul, Austin, Michael, Clifford, AJ, Noumisyifa, Donato, Andrew, Matt, Stephen, George, Amine, Varenya, Pranshu, John, Paul, Toni, and Roberto!
This week's question:
February 2026 is a perfect month! Write a function that returns the closest previous and next perfect month around the given Gregorian year.
Examples:
nearestPerfectMonths(2025)
> { prev: "2021-02", next: "2026-02" }
nearestPerfectMonths(2026)
> { prev: "2026-02", next: "2027-02" }
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
100 years since the first TV demonstration
Tashkent Metro wayfinding system
New satellite view of Tibet’s tectonic clash
Laquered keycaps
What is the difference between ignorance and apathy?
I don't know, and I don't care!
That's all for now, folks! Have a great week. Be safe, make good choices, and trust your gut!
Special thanks to Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon
2026-01-26 15:54:05
Hey friends!
I hope you had a good week. HUGE thank you to the thousand+ (!!) of you who replied to the last issue, I didn't expect that many, and I'm so grateful for you appealing to the Algorithm Gods for lil ol' me. Thank you thank you!
Anyway, onwards!
Was this forwarded to you? You can subscribe here!
The Most Hearted Pens of 2025
Code is Clay
When will CSS Grid Lanes arrive? How long until we can use it?
Tips on How to Pick the Right Icons for Your Website
This week was really a perfect storm of national news, changes at work, releases at work (check out the GitHub Copilot CLI and SDK!), busy times at home, and a hearty lack of sleep. I've been so busy but it also feels like I'm doing nothing (which isn't true... but it's a lot). I wrote one blog post on remaking the Linux touch command for Windows PowerShell, but besides that... this was a week for survival.
Mux is video infrastructure for developers. We give you the building blocks — playback, thumbnails, transcripts, storyboards — so you (and your agents) can focus on what makes your product different.
We just open-sourced @mux/ai, a TypeScript toolkit that makes video AI workflows easier to build. Summarization, chapter generation, moderation, translation, dubbing — pre-built so you're not stitching together workflows from scratch.
Works with OpenAI, Anthropic, and Google. Bring your own keys. Every workflow is tested for quality, speed, and cost.npm i @mux/ai and get building.
Last week, I had you find and map the Konami code! This was a TRICKY one but y'all did great John, Sergio, Donato, Ten, Paul, Ender, Amine, AJ, Pranshu, John, Varenya, and Toni!
This week's question:
You are given a string consisting of lowercase words, each separated by a single space. Determine how many vowels appear in the first word. Then, reverse each following word that has the same vowel count.
Examples:
flippedy("cat and mice")
> "cat dna mice"
flippedy("banana healthy")
> "banana healthy"
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
Poem: We Lived Happily During the War
How Bluey's Music Is Made (video)
Code & Visuals: Zootopia 2
Oblique 60 with GMK Kaiju R1
Bought a new jacket suit the other day and it burst into flames.
I can't be mad though, it was a blazer!
That's all for now, folks! Have a great week. Be safe, make good choices, and be there for your friends!
Special thanks to Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon
2026-01-19 17:56:10
Hey friends!
I hope you had a good week. Before we get scooting: Would you mind doing me a favor and replying to this email (or a future issue, doesn't have to be this one) on occasion? Even if it's to just say "hey" or a joke. It'll help with the newsletter's reputation on The Internet. Annnnyyyway thanks in advance, let's surf the web!
Was this forwarded to you? You can subscribe here!
Using Caddy as a link shortener
4 CSS Features Every Front-End Developer Should Know In 2026
Can You Fetch Data with React Server Actions?
Simulating Crop Marks
I was in Seattle this week for a team offsite! A ton of cool things are coming to the GitHub community this year (in terms of platform improvements, events, freebies, and mooore), and it was genuinely fun planning everything and seeing my team in person.
I got on a blogging kick, in between everything else! Some posts for ya:
No sponsor this week!
Check out PocketCal for your chill group scheduling needs, and Ductts for tracking how often you cry. <3
Last week, I had you sort some hungry bears! Grrreat work Marco, Muhammad, Joe, Nico, David, Ross, Miguel, rardk64, Chakradhar, Brooks, Ten, Micah, Paul, AJ, Matt, Stephen, Jacob, Sergio, Donato, John, Ridhwaan, Umar, Stephen, Varenya, Jeremias, Ender, Amine, Nick, Andrew, and Toni!
This week's question:
Given a string str, find a contiguous substring of length 10 whose characters can be bijectively mapped to the moves {U,D,L,R,B,A} so that the substring decodes to the Konami code "UUDDLRLRBA" (a character always maps to the same move, and two different moves can’t share a character). Return a valid mapping as an object.
Example:
konamiMapping("xx2233454590yy11110")
> { "0": "A", "2": "U", "3": "D", "4": "L", "5": "R", "9": "B" }
konamiMapping("sduwahoda22ii0d0dbn")
> { "0": "L", "2": "U", "i": "D", "d": "R", "b": "B", "n": "A" }
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
The Engineer to Executive Translation Layer
How Hackers Are Fighting Back Against ICE
SINGAKBD Gundamhaku Typing Sounds (Cherry MX Brown / BSUN Tai Chi) (video)
Photos Capture the Breathtaking Scale of China’s Wind and Solar Buildout
What happened when the scientist mixed crab DNA with cheetah DNA?
Things went sideways really fast!
That's all for now, folks! Have a great week. Be safe, make good choices, and be brave!
Special thanks to Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon
2026-01-12 16:19:03
Hey friends!
I hope you had a good week! Mine was productive, but I was also fighting off a cold the whole time so I feel like a pile. Anyway, lots to read, let's boogie!
Was this forwarded to you? You can subscribe here!
A data model for Git (and other docs updates)
How Markdown took over the world
React Conf 2025 talks
Not All Browser APIs Are "Web" APIs
This week went by so fast and slow with a cold pushing through everyone in our house, all while scrambling to get things done. I built a couple mechanical keyboards (I'll post about them soon!) and made some things:
I have like 3 or 4 blog posts sitting in drafts that I've got to publish, but first... I gotta stop sneezing!
Protect your important moments with Ente
Ente is an open-source platform to store photos, videos and more.
Ente is end-to-end encrypted. Ente is cross-platform. Ente is beautiful.
Ente keeps 3 copies of your data in 3 countries.
Ente is cassidoo approved 👍
Last week, I had you reset and sum numbers in a list. Good work plus one Miguel, Michael, Will, Donato, Amine, Martin, Jihchi, Ten, John, Sergio, Daniel, Stephen, Ridhwaan, Gavin, Toni, Matt, AJ, Micah, Paul, and Marco!
This week's question:
Given an array of objects representing bears in a forest, each with a name and hunger level, return the names of all bears whose hunger level is above the forest average, sorted alphabetically. In how few lines can you do this one?
Example:
const bears = [
{ name: 'Baloo', hunger: 6 },
{ name: 'Yogi', hunger: 9 },
{ name: 'Paddington', hunger: 4 },
{ name: 'Winnie', hunger: 10 },
{ name: 'Chicago', hunger: 20 },
];
hungryBears(bears)
> ['Chicago', 'Winnie']
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
Sneezes, Ranked
Agar by KBDfans (video)
From Old English to Modern American English in One Monologue (video)
Goodbye to the Chicago Intersection Where I Was Reborn
My friend Tony asked me not to say his name backwards. I asked, “Why not?”
That's all for now, folks! Have a great week. Be safe, make good choices, and stay hydrated!
Special thanks to Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon