MoreRSS

site iconrendezvous with cassidooModify

I'm going to share with you what's new and cool in the world of web development, with content for everyone, from beginners to pros.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of rendezvous with cassidoo

🐦 "Of all possessions a friend is the most precious." - Herodotus

2025-04-14 11:45:51

Hola hola!

We made it to mid-April, where does the time go?? I hope you had a good week. Let's get learnin'!

Was this forwarded to you? You can subscribe here!


Web links of the week

Tauri vs. Electron: performance, bundle size, and the real trade-offs
Mastering default values in JavaScript with the nullish coalescing (??) operator
CSS Bursts with Conic Gradients
Better typography with text-wrap pretty
A steam locomotive from 1993 broke my yarn test


Something that interested me this week

I pumped out a bunch of content this past week!

For work, I morphed a post about MCP that I wrote for my own blog last week into something a bit more business-y, and shipped the latest episode of The Download!

I also blogged a bunch of other stuff:

Anyway, for the 8th (!) newsletter anniversary raffle last week, winners will be pinged this week! Thanks for entering, y'all!


Sponsor

Unlock Your Career Potential with Keenesse

Feeling stuck, or ready for your next big move?

Keenesse offers personalized career 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.


Interview question of the week

Last week, I had you generate Leyland numbers. Ya did great David, Muhammad, Elke, Ten, Austin, Jeremias, Patrycja, Nick, Levi, and Neha!

This week's question:
Given a 2D grid of integers, find the largest sum of any connected path of cells. A path consists of horizontally or vertically adjacent cells (no diagonals) and cannot reuse cells. Return the largest sum.

Examples:

const grid1 = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

const grid2 = [
  [5, 3],
  [2, 8]
];

largestPathSum(grid1)
> 45 // (1 → 2 → 3 → 6 → 9 → 8 → 7 → 4 → 5)

largestPathSum(grid2)
> 18 // (5 → 3 → 8 → 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)


Cool things from around the internet

Custom Gochu60 keyboard
What is manga lettering?
Avoid these 5 tape measure mistakes (video)
Leaf Color and Shape Enhance Cooling Effect


Joke

What kind of tree fits in your hand?
A palm tree!


That's all for now, folks! Have a great week. Be safe, make good choices, and get the rest you need!

Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!

cassidoo

website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon

8️⃣ "You can have a plan, but you have to be flexible." - Jane Krakowski

2025-04-07 13:49:25

Hey friends!

I'm so excited to be in your inbox today! It is this newsletter's EIGHTH year anniversary!! I'm so grateful for all of you here. Let's keep it going (also there are free things and coupons below, keep scrolling)!

Was this forwarded to you? You can subscribe here!


Web links of the week

The Death of the Browser - Rachel-Lee Nabors (video)
Minimal CSS-only blurry image placeholders
Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot
Automatically create social card images for your Astro blog
I don't know what MCP is and at this point I'm too afraid to ask


Something that interested me this week

Gosh, it's so unfathomable to me that it's been 8 years since starting this newsletter, and I am so grateful to you for being here and reading along with me each week. It's a genuine pleasure to know that it's giving you some value in some way, even if it's just a light occasional chuckle.

For those who've been here before, you may know that I love doing raffle giveaways and coupons every year! We have some lovely folks offering free things for ya!

  • FusionAuth has been securing user login, registration and management for over 8 years! To celebrate, they're giving away a "cat /etc/password" t-shirt (US/Canada only) and 3 copies of an ebook about the intricacies of OAuth!
  • GitHub is giving away 3 coupons for 12 months free of GitHub Copilot Pro!
  • Kedasha is offering 3 free spots in her awesome workshop Build Your Own Apps with AI!
  • Autonomous, creators of innovative ergonomic office furniture, is giving away a SmartDesk 5—their latest desk designed to elevate your workspace and make work feel effortless (US only).
  • Get (my favorite) coding font MonoLisa for 15% off with code freakingnerds!
  • FSH Technologies, is building the Costco of software for local governments, is raffling off a fun sticker pack!
  • CascadiaJS is giving away 1 ticket to their 2025 conference, which will be in Seattle, WA on Sept 18-19. Come for the talks on web and AI, stay for the karaoke!
  • SmashingConf New York is offering discounted tickets to their October 6-9th event to all newsletter readers with this link!
  • Complete CSS is offering 30% off to all readers who use code CASSIDOO at checkout! Take your CSS skills to the next level.
  • ElevenLabs, the AI audio API for building conversational AI agents, is giving away 3 credit-and-swag packages. Each package includes over 1.1 million characters (3 months of the Pro tier) and an official ElevenLabs cap.
  • Jelly, the better way to manage your team's inbox, is offering 15% off your first year with code CASSIDOO15!
  • Pika is a good blogging platform that is pretty and easy and pretty easy. Use code CASSIDOO20 for 20% off your first year of blogging with Pika!
  • CodeCrafters (Build your own Git, BitTorrent, SQLite etc) is giving away 3 lifetime memberships worth $1490 each. Sign up for free at this link in addition to my form for this part of the raffle. The lucky winners will be emailed by end of April!
  • Drop is raffling off 3 keyboard bundles! Winner’s choice of CSTM65 (Linear or Tactile) or CSTM80 (Linear or Tactile), plus choice of Decorative Case to go along with it! Shipping US and CA only. Click here to join the Drop Community!

If you'd like to enter in the raffle for all the great prizes here (huge thanks to all the folks who are offering them!), please fill out this form by Thursday at noon, U.S. Central Time to get an entry!

And just once again: Thank you so much for being here. It makes my day to see replies and messages and posts and toots and skeets and carrier pigeons from people that enjoy reading this, and seeing you share it with others.

Also as a quick (mic drop ICYMI?) side note: I'm super pregnant, and due this month! If you see some repeated interview questions or links over the next few weeks... that's why. Woo hoo!


Sponsor

Some APIs just hit different—clean docs, solid DX, and they actually listen.

Vote for your faves in the Postman Developers’ Choice Award now through April 17.

Just hit the vote icon on their Postman API Network workspace—you can even track a live leaderboard on the API Network homepage.

Winners drop at POST/CON 25. Let’s give props to the APIs that make our lives easier.
👉 Cast your vote

P.S. Want to go to POST/CON and celebrate with the winners? Here’s a special 40% off discount code just for you — expires April 17, so don’t wait!
👉 Register now with code PMN40CAM1


Interview question of the week

Last week, I had you find gaps in timestamps! Tick tock, you rock John, Taylor, Andy, Ben, Mike, Mazen, Nick, David, Muhammad, Roodz, Andrea, Ten, Huyixi, Elke, Austin, Miguel, Ben, Neha, Murtala, Levi, Saleh, Saravana, and Ross!

This week's question:
Write a function that returns the first n Leyland numbers in ascending order. A Leyland number is defined as x^y + y^x for integers x > 1 and y > 1.

Examples:

getLeylandNumbers(1)
[8]

getLeylandNumbers(5)
[8, 17, 32, 54, 57]

(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)


Cool things from around the internet

What If We Made Advertising Illegal?
Stoop Coffee: How a Simple Idea Transformed My Neighborhood
Medieval Tavern in Blender - 3D Modeling Process (video)
Keykobo Soju on the Mode Encore


Joke

My laziness is like the number 8.
Once it lies down, it becomes infinite.


That's all for now, folks! Have a great week. Be safe, make good choices, and thank you for being here!

Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!

cassidoo

website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon

🛵 "It is never too late to be what you might have been." - George Eliot

2025-03-31 15:04:50

Hey friends!

It's the last issue of March AND next week is the 8th anniversary issue! How about that? Make sure you're ready for some goodies that I can rustle up for ya. Until then, time to read!

Was this forwarded to you? You can subscribe here!


Web links of the week

Meet Declarative Web Push
UI Algorithms: A Tiny Undo Stack
You should know this before choosing Next.js
Hot sauce if you're wrong · web dev trivia for staff engineers (video)


Something that interested me this week

This week was a slower one for me, so much so that this section of the newsletter took the longest for me to write, heh. Did a whole lot of staring off into space.

I did some reflecting on my blog about how I'm trying to be more efficient and say no to more things, while also finishing as much as I can before baby #2 comes. It's a tough balance! But, I think it's good to have this... forcing function (for lack of a better phrase) to slow down and reset a bit. While also keeping humans alive. No pressure.


Sponsor

Parents have been asking, “Where can my kid access engaging, educational content without running into ads or random, nasty surprises?”

That's why we created Lingokids.

Lingokids is the fun, safe, educational app that parents trust and kids love. It's packed with thousands of hours of shows, songs, interactive games and more, all created by educators so your kid can play and learn on their own.

5 reasons the Lingokids app is guilt-free:

  1. It’s made by parents and educators
  2. It’s loved by kids
  3. It’s kidSAFE® certified. And we don’t do ads. Ever.
  4. It’s won more than 30 awards
  5. It has over 2000 activities. All fun, all educational.

Oh, and did we mention it’s free?

Download now


Interview question of the week

Last week, I had you find streaks in an array! Great job Debopam, Tom, Marco, Ten, Miguel, Amine, Jeremias, John, Saleh, Max, Chase, Mazen, Andrea, Tim, Muhammad, Sreetam, Jesper, Leo, Kyle, Levi, Joe, Neha, Elke, Sean, Murtala, Jan-Magnus!

This week's question:
Write a function that takes an array of timestamps (HH:MM) from the same day and returns the longest gap in minutes between consecutive timestamps.

Examples:

findLongestTimeGap(['12:00'])
0

findLongestTimeGap(['09:00', '11:00'])
120

findLongestTimeGap(['14:00', '09:00', '15:00', '10:30'])
210

findLongestTimeGap(['08:00', '10:00', '10:00', '14:00'])
240

(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)


Cool things from around the internet

I Am Obsessed With this Tomb Raider Pen
Twilight Memeboard
E. Svetlanov's "Prelude 10" played by V. Aretinskaya & S. Gudelev (video)
You Can Still Read NASA’s Deleted "First Woman" Graphic Novels


Joke

What has ears but can't hear?
A field of corn!


That's all for now, folks! Have a great week. Be safe, make good choices, and scroll less!

Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!

cassidoo

website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon

📟 "This present moment was once the unimaginable future." - Stewart Brand

2025-03-24 13:13:25

Hey friends!

I hope your week was a good one! Mine was productive and I did not sleep enough, but I had some good meals, so those make up for it... right? Onwards!

Was this forwarded to you? You can subscribe here!


Web links of the week

Grid First, Flex Third
A Deep Dive into the Inline Background Overlap Problem
Self Gap
Open Source Friday with Astro Docs (video)


Something that interested me this week

I had a productive week! At work, I shipped a short Markdown checklists tutorial as well as an episode of The Download, and a short video about how GitHub Copilot works!

Outside of work, I wrote about making an HTML dialog on image click (which I made for my blog), and dabbled with some Clash of Clans-style buttons on CodePen! I'm trying to make more time in the day to do more fun, small projects, and it's slowly but surely working.


Sponsor

Sometimes for a major project, you’ve got to bring in the experts. Amazon Q Developer is built to handle your most ambitious efforts, so that you can go on being your visionary self. It’s an AI code assistant that writes, tests and reviews code fast, freeing you to focus on world domination or whatever it is you’re working on these days.

Amazon Q Developer will:

  • Ship large projects with AI agents. Use the /dev agent to put in new features, document code or refactor your projects. Cute!
  • Have a conversation with your code. Chit-chat with your project and get to know its deepest secrets, like its auth flows and its service dependencies.
  • Do your dirty work. Meaning your README files and your dataflow diagrams, of course. Somebody’s gotta do it.

Get started for free!


Interview question of the week

Last week, I had you score a cribbage hand! This one was sneakily challenging. Good job pushing through Jesper, Ten, A.D., Neha, and Levi!

This week's question:
Write a function that finds the longest streak of consecutive true values in a boolean array that meets or exceeds a given streak goal. Return 0 if no such streak exists.

Examples:

findLongestStreak([true, true, false, true, true, true], 3)
3

findLongestStreak([true, true, true, false, true], 4)
0

findLongestStreak([true, true, true, true], 2)
4

(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)


Cool things from around the internet

Lazydesigners Duo with SW Foundation keycaps
Pushing side projects forward with almost no free time
Buy the Overpriced Tourist Photos
Research project Ambsheets: Spreadsheets for exploring scenarios


Joke

Did you hear about the cow with weird hearing organs?
Sound goes in one ear, and out the udder!


That's all for now, folks! Have a great week. Be safe, make good choices, and hone your craft!

Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!

cassidoo

website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon

⚽ "Take your victories, whatever they may be, cherish them, use them, but don't settle for them." - Mia Hamm

2025-03-17 13:38:33

Hey friends!

I hope you had a good week! It was a fun Pi Day and river dyeing weekend over here in Chicago.

Let's learn!

Was this forwarded to you? You can subscribe here!


Web links of the week

Let the stagger experiments begin
The URL is a great place to store state in React
Make a ski game with LittleJS
Learn Zod So You Can Trust Your Data and Your Types


Something that interested me this week

This was a long week for me, y'all. I had a ton to do at work (got some videos and blogs publishing soon, keep an eye out on GitHub's channels!) and I admit I was fighting off "pregnancy brain" with a lot of ups and downs. I'm at that point where I'm nervous about having a second kiddo, but also VERY ready to not be pregnant anymore. I wrote about that in more detail, and also about how I think we should be introducing more friction into our lives, rather than trying to smooth out everything forever.


Sponsor

Sometimes for a major project, you’ve got to bring in the experts. Amazon Q Developer is built to handle your most ambitious efforts, so that you can go on being your visionary self. It’s an AI code assistant that writes, tests and reviews code fast, freeing you to focus on world domination or whatever it is you’re working on these days.

Amazon Q Developer will:

  • Ship large projects with AI agents. Use the /dev agent to put in new features, document code or refactor your projects. Cute!
  • Have a conversation with your code. Chit-chat with your project and get to know its deepest secrets, like its auth flows and its service dependencies.
  • Do your dirty work. Meaning your README files and your dataflow diagrams, of course. Somebody’s gotta do it.

Get started for free!


Interview question of the week

Last week, I had you get piano key intervals! Awesome job Jesper, Ten, Muhammad, Neha, Ian, Murtala, and Ricardo!

This week's question:
Write a function scoreHand(cards) that calculates the total score of a Cribbage hand. The input is an array of 5 card strings (including the starter card), where each card is represented as rank+suit (e.g., "AH", "10D", "KS"). Here are the scoring rules:

  • 15s: 2 points for each combination of cards summing to 15
  • Pairs: 2 points for each pair of same-rank cards
  • Runs: 1 point per card in a run of 3 or more consecutive ranks

Example:

> scoreHand(["7H", "8C", "9D", "JH", "KS"])
> 5

> scoreHand(["AH", "2C", "3D", "4S", "5H"])
> 7

(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)


Cool things from around the internet

“Wait, not like that”: Free and open access in the age of generative AI
Protagonist 60 Copper-PC with GMK Dandy Green keycaps
The teacher lies sometimes
A New Sudoku Layout With 81 Uniquely Shaped Cells


Joke

What do you call a gorilla wearing headphones?

Anything you'd like, it can't hear you.


That's all for now, folks! Have a great week. Be safe, make good choices, and think about new perspectives!

Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!

cassidoo

website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon

🚏 "If you're going to go for a thing, there's no point unless you're going all the way." - Cynthia Erivo

2025-03-10 17:59:17

Hola hola!

I hope you had a wonderful week! I had a good one seeing friends and family, which is always refreshing. Let's boogie!

Was this forwarded to you? You can subscribe here!


Web links of the week

Styling the HTML details and summary elements
Node just added TypeScript support. What does that mean for Deno?
Tips on extensible and maintainable components
Why we ditched Next.js and never looked back


Something that interested me this week

I gotta say, Daylight Savings Time in the US this weekend fully messed up my brain, especially with a toddler in tow. Whew, whew!

But besides that (literal) rude awakening, it was a good and busy week. I worked a bunch on side projects (which I'm hoping I can share with you/release relatively soon), and played in a whole lot of forts at home with our new Nugget couch (not an ad, but honestly it's been so great with the family, I would totally advertise for them).


Sponsor

💻📲 Let’s go web to native with React

Expo is sponsoring this week, but I’m taking over the ad cause I’m actually building a mobile app with Expo right now, and I genuinely love it. (More on that soon.)

Expo is a React Native framework for building cross platform apps (Bluesky, for example, is built with Expo). Here’s why it’s clicking for me:

  • Your React skills transfer: Nearly all your app code is just JavaScript (or TypeScript).
  • It's really native: React Native maps to real native components, so the UI looks and feels right.
  • Multi-platform from one codebase: With Expo, you can build for iOS, Android, and the web at the same time. They even have hosting, so you can build, ship, and deploy all in one place.

If you’ve been thinking about building for mobile, try it with me: expo.dev


Interview question of the week

Last week, I had you determine prices based on store closing discounts! Ca-ching Ricardo, Jesper, Muhammad, Cat, Amine, Stephen, Sreetam, Tim, Neha, Shreya, Ten, Murtala, Saravana, Saleh, and Abhishek!

This week's question:
Write a function that takes a list of piano keys played in sequence and returns the largest interval (in semitones) between any two consecutive keys. Assume the lowest note is A0, and the highest is C8.

Examples:

> findLargestInterval(['A0', 'C1', 'G1', 'C2'])
> 7

> findLargestInterval(['C4', 'G4', 'C5', 'G3'])
> 17

> findLargestInterval(['E2', 'C3', 'G3', 'C8'])
> 53

(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)


Cool things from around the internet

Growth at all costs is destroying the internet
We broke the coast to coast record (video)
Revenge Font
Moeetech Glitter R2 with Ducky Boba Dye-Sub PBT


Joke

Never, ever shout into a colander.
You'll strain your voice!


That's all for now, folks! Have a great week. Be safe, make good choices, and be a weirdo with your weirdo friends!

Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!

cassidoo

website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon