Using Generative AI to Detect Cat Breeds

Let's be honest, what other use is there for generative AI than working with cats? If you read my previous post on Google's Gemini AI launch, you may have seen my test prompts asking it to identify the kind of cat shown in a picture. I decided to turn this into a proper web appli … | Continue reading


@raymondcamden.com | 4 months ago

Google Gemini and AI Studio Launch

While it feels like just yesterday I first blogged about Google's PaLM APIs and MakerSuite, it was actually over two months ago, and of course, GenAI offerings are iterating and improving at lightning speed. In the past week, Google has announced Gemini, their new generative AI m … | Continue reading


@raymondcamden.com | 4 months ago

An Image Dialog Web Component

A lot of the talk (well, on Mastodon at least) lately concerning web components has been on "HTML Web Components". The idea is that web components can progressively enhance "regular" HTML in the DOM instead of completely blowing it away with the Shadow DOM. (You can find a deeper … | Continue reading


@raymondcamden.com | 5 months ago

Links For You

Welcome to - most likely - my last Links For You post of 2023. Who knows though, I'm off for nearly ten days at the end of the month so I'll probably have the time to keep on blogging. (If I can tear myself away from Assassin's Creed Odyssey.) I absolutely love this particular se … | Continue reading


@raymondcamden.com | 5 months ago

The Twelve (Generative) Days of Christmas

I tend to have a lot of silly ideas. Not useful ideas. Not good ideas. Silly ideas. Randomly yesterday I was thinking about the Twelve Days of Christmas song. If you aren't familiar with it, it starts off with a gift for one day, then repeats and adds a second day, and so on and … | Continue reading


@raymondcamden.com | 5 months ago

Awesome Netlify Updates

For about two months now I've had on my queue to write about some of the incredibly cool updates Netlify has released but I just didn't have the time. I've been hosting this blog on Netlify for a few years now and have been incredibly happy with the platform, but the updates the … | Continue reading


@raymondcamden.com | 5 months ago

Adding Music Previews to My Now Page

About two months or so ago I added a Now page to my site. It shows my current reading list, my last watched movies, my Untappd beer check-ins, and my most recent Spotify tracks. You can see that part here:When I built it, I used a Pipedream workflow to wrap calls to Spotify's API … | Continue reading


@raymondcamden.com | 5 months ago

Using IndexedDB with Alpine.js

A lot of my "x with Alpine" blog posts end up being, well, nothing special. That's a good thing I suppose as it really helps highlight how simple Alpine.js is. (Note, I go back and forth between including the ".js" when referring to Alpine. I should be more consistent I suppose. … | Continue reading


@raymondcamden.com | 5 months ago

Links For You

Good morning, readers. These link posts are typically reserved for the weekend, but my weekend ended up busy as heck with, ok, more than a few hours of Diablo 4, but other stuff including the beginning of Christmas decorating. To say we've got a lot of decorations would be an und … | Continue reading


@raymondcamden.com | 5 months ago

Adding Simple Routing to Cloudflare Workers

I've been "playing" with serverless for years now, but honestly still feel new to it. When it comes to organization in a project that uses serverless functions, I've typically tried to build one function per operation. So for example, if I had a need to get a list of cats, I'd ha … | Continue reading


@raymondcamden.com | 5 months ago

A Tip for Properly Handling Loading States in Web Apps

This isn't something I was going to blog about, but after seeing the same issue a few times recently (although to be fair, last in a mobile game), I thought I'd share it with my audience. I apologize if the title isn't the best as it was a hard issue to describe, so let me begin … | Continue reading


@raymondcamden.com | 5 months ago

Can GenAI help you win in Vegas?

No. Thank you and goodbye.Ok, first off, I apologize for the click-bait style title. Every now and then when I get an idea for a demo, it doesn't work. But sometimes, it doesn't work out in a fun and interesting way, and I figure it's a good idea to share it anyway. (Also, there' … | Continue reading


@raymondcamden.com | 6 months ago

Creating Human-Readable Summaries of Data with Google PaLM Generative AI

Like a lot of folks, I've been spending a lot of time thinking about generative AI, and AI, in general, and oddly (well for me), trying to focus on productive uses for it when working with APIs. A few weeks ago I shared my initial impressions of Google's PaLM 2 API, and today I c … | Continue reading


@raymondcamden.com | 6 months ago

Links For You

Happy Sunday, and as I'm currently watching the Saints lose (to be fair, I'm an hour behind, watching it recorded), I figured why not go ahead and share some links that will be more winning than my poor team. As of now, I'm completely done with presentations and travel for the re … | Continue reading


@raymondcamden.com | 6 months ago

Building a Generic RSS Parser Service with Cloudflare Workers

About once every three months I'll write a quick JavaScript demo and attempt to fetch someone's RSS feed... and then remember that the vast majority of RSS feeds don't specify a CORS header to allow remote scripts to load them. I know this - and yet I still tend to forget. I thou … | Continue reading


@raymondcamden.com | 6 months ago

Using Cloudflare's AI Workers to Add Translations to PDFs

Late last month, Cloudflare announced new AI features in their (already quite stellar)Workers platform. I've been a big fan of their serverless feature (see my earlier posts) so I was quite excited to give this a try myself. Before I begin, I'll repeat what the Cloudflare folks s … | Continue reading


@raymondcamden.com | 6 months ago

Links For You

Hello friends and welcome to another post of links I hope you find interesting. In a few days, I'll be heading out to API World for my last trip of the year and my last in-person event. (I'll be giving the same talk for API World again later this month in their virtual event.) I … | Continue reading


@raymondcamden.com | 6 months ago

Using Google PaLM to Gather Sentiment Analysis on a Forum

I've really been enjoying working with Google's PaLM 2 AI API and this week I used it to build a pretty interesting demo I think. What if we could use the generative AI features of PaLM to determine the 'sentiment' or general health of a forum? I was able to do so and I think the … | Continue reading


@raymondcamden.com | 6 months ago

Texting Email Summaries using Google PaLM AI and Twilio

Yesterday I shared my initial impressions of working with Google's PaLM 2 AI API. If you didn't read that article, the tldr is that it's incredibly easy to work with and I was able to get some Node.js code running in minutes. Exactly the kind of experience you want new developers … | Continue reading


@raymondcamden.com | 7 months ago

A Look at Google's PaLM API

Like, I assume, every single developer on the planet, I've been somewhat innudated with GenAI over the past year or so. I find it as fascinating as most folks (ask me about the number of times I've had cat-related conversions with ChatGPT) but while it's fun to play with, I've al … | Continue reading


@raymondcamden.com | 7 months ago

Automating Mastodon Postings with ColdFusion

I've had a lot of fun building Mastodon bots (see my list of super-important business critical bots as an example), typically using the Pipedream platform, and more recently, Cloudflare Workers. The Mastodon API is kinda stupid easy and with "The Other Network" going to hell in a … | Continue reading


@raymondcamden.com | 7 months ago

Links For You

Hello from lovely Las Vegas, where, believe it or not, it is actually cooler (temperature-wise) than where I flew in from. This week I'll be speaking at the Adobe ColdFusion Summit and I can't wait to see some old familiar faces. I've got a speaker dinner in a few minutes so this … | Continue reading


@raymondcamden.com | 7 months ago

Taking a Look at Pipedream's GitHub Integration

It's been a little while since I've blogged about Pipedream. I'm still a very happy user of the service, I just hadn't had anything to write about recently. That changed earlier this month when they announced GitHub support on thier blog. I decided to test it out and here's what … | Continue reading


@raymondcamden.com | 7 months ago

Guess the (Marvel) Decade

Many years ago, I first wrote up my experience working with the Marvel API. I find myself returning to it again and again, and this weekend I built a fun little game I think you may enjoy. It's called "Guess the Decade".Marvel's art style has changed drastically over its long his … | Continue reading


@raymondcamden.com | 7 months ago

Testing Out the Alpine.js Intersect Plugin

A few weeks ago, I finally got around to looking at the official plugins Alpine.js supports and built a little demo that integrated the Intl spec with the Mask plugin. (You can read the post here: Integrating Intl with Alpine.js Mask). Today I thought I'd take a look at another p … | Continue reading


@raymondcamden.com | 7 months ago

Links For You

Another weekend and another set of links for yall to enjoy. Yesterday my wife and I drove our eldest to NOLA and the airport there as he begins a ten-month excursion teaching in Germany. I'm so incredibly excited for him and I know he is going to do incredible. Meanwhile, we're s … | Continue reading


@raymondcamden.com | 7 months ago

Building a QR Coder Web Component

It's been a hot minute or so since I played with web components, mainly because I've been re-evaluating when I think it best makes sense to use them. One idea I've been chewing over lately is that progressive enhancement could really be the sweet spot for components, something I … | Continue reading


@raymondcamden.com | 8 months ago

Fun With Front Matter: Part 4 - Featured Posts

It's been a few days since my last post in this series. I'd like to blame something in specific but honestly, it's just life. Today's tip will - again - be short and sweet but hopefully helpful. The idea of a "featured" post is that there may be content that, no matter the age or … | Continue reading


@raymondcamden.com | 8 months ago

Integrating Intl with Alpine.js Mask

I've been using Alpine.js for quite a while now (although I still make silly mistakes, see the p.s. at the end) but haven't yet looked at the "official" plugins. Listed in the docs, those plugins include:Intersect - a simple hook to recognize when an element is visible (I plan on … | Continue reading


@raymondcamden.com | 8 months ago

Links For You

Welcome to another collection of links, and for today, a very "component" flavored set of links. I've been really interested in web components the past few months (you can peruse my articles on the topic) and lately there's been a lot of writing on the topic. That's been tied to … | Continue reading


@raymondcamden.com | 8 months ago

Join Us at The Undefined Show!

On September 11th, Todd Sharp, Scott Stroz, and myself will be launching a new livestream called The Undefined Show. Every Monday at 8 PM EST, we'll be hosting a session on different topics, including development, languages, developer relations, and most likely quite a bit of non … | Continue reading


@raymondcamden.com | 8 months ago

Fun With Front Matter: Part 3 - Handling Edits

I hope by now that folks are getting that the point of this series isn't so much technical but inspirational. I think a lot of people approaching front matter tend to keep it rather simple - title, date, tags or categories, and when I envisioned this series I really wanted to exp … | Continue reading


@raymondcamden.com | 8 months ago

Fun With Front Matter: Part 2 - Follow-ups

Today I'm following up (heh, get it) on the series I started yesterday on interesting use cases for your Jamstack site's front matter. In yesterday's post, I described how to use front matter to define a list of "related posts" to a blog post. Today's post is a natural follow-up … | Continue reading


@raymondcamden.com | 8 months ago

Fun With Frontmatter: Part 1 - Related Posts

I'm kicking off a little series of tips today that's been sitting in my "Blog Ideas" queue for some time. The idea, "Fun with Frontmatter", was based on the idea of taking a look at some of the fun/interesting/hopefully useful things you could include in your Jamstack site's fron … | Continue reading


@raymondcamden.com | 8 months ago

Working with the Storage API

Earlier this year at WWDC, Apple announced a whole set of new features coming to Safari in version 17. While that is not out yet, it's still a pretty large set of updates. I've not been shy about my view that Safari has been holding the web back for a while, but I'm happy for any … | Continue reading


@raymondcamden.com | 8 months ago

Debugging Cloudflare Workers with Logs

As with some of my previous Cloudflare posts, I've got a video version of this content so if you would rather watch that than read, just jump to the bottom. For the rest of you, here's a look at how to do some basic debugging with your Cloudflare Workers.The Worker #Before I get … | Continue reading


@raymondcamden.com | 8 months ago

Links For You

Looks like I was a bit late in doing my links post this month. Like most of the country, my kids went back to school over the past week or so and I think the prep time ahead of that just made the month fly by. Last week was incredibly rough for me. I'm not going to get into why, … | Continue reading


@raymondcamden.com | 8 months ago

ColdFusion Component for Adobe Acrobat Services

Last month, I wrote up a post demonstrating how to use Adobe Acrobat Services with ColdFusion. This week I took some of the code I had written for that post and turned it into a proper GitHub project. You can find the latest code here: https://github.com/cfjedimaster/coldfusion-c … | Continue reading


@raymondcamden.com | 8 months ago

Building a Mastodon Bot with Cloudflare Workers

I can't go a day (or two) without building a bot of some sort, and last week was no exception. I've been a fan of the Marvel API for nearly a decade now and one of my favorite examples of it is my random comic book cover bot. I thought I'd use the Marvel API as a way to build ano … | Continue reading


@raymondcamden.com | 9 months ago

Connecting Cloudflare Workers with Service Bindings

I'll warn you ahead of time and say this post isn't too much more than what you can find in the documentation, but I wanted to see it work for myself so I had to setup a test locally. Cloudflare Service bindings are a way for one Worker to connect to another. That seems simple en … | Continue reading


@raymondcamden.com | 9 months ago

Adding Form Fields Character Counters With Alpine.js

Nearly three years ago I shared a Vue.js tip on adding "counters" to your form fields. The idea is, if you have a max length on a text area, as an example, it would be nice to let the user know as they type exactly how many characters they've already entered. You can read that ol … | Continue reading


@raymondcamden.com | 9 months ago

JavaScript Syntax Sugar for Shorter Stuff

Please forgive the somewhat alliterative title of this post. I promise I wasn't going for clickbait! Recently I was looking at some code from a friend of mine and saw something I had not seen in JavaScript before. It obviously worked (and I confirmed myself of course) but I wante … | Continue reading


@raymondcamden.com | 9 months ago

Adding Caching to a Cloudflare Worker

Last week I blogged about my first experience building a Cloudflare Worker serverless function. In that post, I built a simple serverless function that wrapped calls to the Pirate Weather API, a free and simple-to-use API for getting weather information. For today's post, I thoug … | Continue reading


@raymondcamden.com | 9 months ago

I Know What You Did Last Summer (With Glitch and Cloudflare)

Every now and then I get a dumb little idea, and too often, I turn those dumb ideas into little web toys. About five years ago, I discoveredMarkov chains, which in my limited understanding is a deterministic way to guess what would come after some input. A bit like autocomplete f … | Continue reading


@raymondcamden.com | 9 months ago

Learn about the Photoshop API Next Week

Next week, Tuesday August 8 at 11AM CST, I'll be giving a free, online presentation at CFE.dev on "Automating Image Workflows with Photoshop APIs". Here's more information from the event description:Inarguably, Photoshop dominates the professional image editing software world. Bu … | Continue reading


@raymondcamden.com | 9 months ago

Building a Basic (Pirate) API Wrapper with Cloudflare Workers

I've been playing with Cloudflare Workers the past few weeks, and while I've had a few technical issues here and there, I've been really impressed with the developer experience overall and just how powerful the platform is. I thought I'd share a quick demo of a simple "API wrappe … | Continue reading


@raymondcamden.com | 9 months ago

Update for My Subscribers

Hey folks, forgive the quick note. Today I migrated my newsletter from Mailchimp to Buttondown. As I mentioned here before, I had hit the free tier limit on Mailchimp and while I truly liked their service, this site doesn't really bring in any money so I wanted a cheaper solution … | Continue reading


@raymondcamden.com | 9 months ago

Links For You

A quick links post today as I'm on vacation with my family in Saint Louis. I grew up here but haven't been back in some time. STL is a great city with some really cool things to do. My favorite stop so far has been the Arch. I visited the Arch many times growing up but I forgot h … | Continue reading


@raymondcamden.com | 9 months ago