My new process for handling downloadable resources


Hi friends 👋🏻

This week, another update on my internal project to overhaul the Blue Hills Digital website. This is the big one – rolling out a new "resource" content type, a library to go with it, and dynamic resource promotion blocks. This is a bit of a nerdy update, but bear with me and you might see how this approach could benefit other websites you're familiar with ...

This is part of a series in which I'm writing about the process of refreshing the Blue Hills Digital website.
I introduced the project in my Digital Landscape email on May 20. You can view all the updates on the project changelog here.

Want links to recent emails or a sign-up link to share? Go to The Digital Landscape sign-up page


📋 New Resources Launched

I checked off another milestone in this slow-moving, build-in-public-style website overhaul last week: I’ve now migrated all the various downloadable checklists and workbooks on the website into a new “Resource” content type 🎉

This comes with several BIG advantages for me as I manage the website and look at developing more resources in 2026:

  • Resources are all managed in one location in the website dashboard, and all have a standard list of data fields. These include two images for each (one for the resource page header, and one cover image), a short blurb about the resource, whether it is free or paid, the cost (if paid), a download link, and a hidden “tag” value that gets applied to the contact record in Kit for anyone that downloads the resource
  • A templatized layout for a “single resource”. This means if I want to update how resources are displayed I can just update that one template rather than having to modify multiple pages.
  • An auto-updating Resource Library page that will display all resources as the collection grows.
  • The opportunity to insert resource promotions into other pages and articles on the website that will update dynamically if I modify information about the resource.

Here’s a quick look at the Resource Library page. This page displays a grid of all published resources (except for a few that are hidden because they’re only available as special offers for specific audiences 😉 ).

Each block on this page pulls data from fields on the Resource content type. If I decided to display a short description of each resource in these boxes, I could do that with one modification to the template that drives this page.

Individual Resource Layouts and Email Gating

The individual resource pages themselves are pretty simple. Here's an example for a free resource – these all have an email gate: drop your email address in the field and you'll receive a download link in your inbox.

The old system – to the extent it even was a system – involved me setting up a new form each time I created a new downloadable resource. Now, all of these resource URLs display the same form, and through some magic that dynamically populates a hidden form field, you'll get sent the correct download link based on the resource you requested.

This means I only have one resource download form to maintain, instead of a number of forms that scales alongside the number of resources I launch. So much easier than having to update ALL THOSE FORMS every time I needed to adjust something!

Resource Promotions across the website

And here’s the part I’m most excited about …

In the past, I would write a guide or article, and if I had a relevant downloadable resource, I’d create a little call-out box part-way through the article with a preview image and a form you could fill out to request the resource.

If I wanted to promote the same resource in another article, I’d copy and paste that section into a second article. And sometimes a third.

That meant that if I needed to update that image or the form, I’d have to dig around the website trying to find all those promotions and make the same updates, several times.

Not scaleable at all, and practically guaranteeing errors when I missed one of the instances.

Not any more.

Now that I have resources stored in a custom post type, with a standardized set of fields, I was able to build a custom block for the WordPress block editor. This means when I’m writing an article and I want to insert a resource promotion, I can add my custom “Resource Promotion” block, select the resource I want to display from a dropdown menu of published resources, and boom 💥 a consistently-styled resource download section will appear within the article.

Here's an example of the output of that block, part-way through an article:

As mentioned above, this resource promotion block uses the same, single form for all resources, and all resource promotion blocks across the site share the same styles.

Once again, this means if I need to update the style or layout of these blocks in every place they show up across the site, I only need to make that edit in one place.

Here’s a preview of the custom “Resource Promotion” block settings in the block editor. Pretty simple, right?!

This whole process is an example of a principal that drives all of my website development projects:

Look for places in your website content workflows where you have to make repetitive edits in multiple places, or where there are barriers to updating content, styles, or layouts.

Approaches like the one I described here can unlock more efficient publishing, and I’m looking forward to reaping the benefits in 2026!

Thanks for following along 🙂


Until next time ✨

— Ed Harris (your digital strategy guide)


🤔 Have a question?

If you have a question about how to optimize your website or get more out of your digital marketing we’ll do our best to help out. Hit reply and send us a message and we’ll get in touch.

🔗 Affiliate Disclosure

Some links to products or services in The Digital Landscape emails and on the Blue Hills Digital website are affiliate links. This means we may receive compensation in return for new customers we refer. We only recommend products and services we use and love, and this helps us fund the creation of educational content for subscribers like you!

Want to stop receiving these emails?

You're receiving this email because you signed up either at the Blue Hills Digital website, or on my personal site at edharris.me.

You can update your preferences or unsubscribe using the links below. No hard feelings!

Unsubscribe · Preferences · 5331 S Macadam Ave, Ste 258 PMB 1090, Portland, OR 97239

Blue Hills Digital

A guide for nonprofit communications professionals & mission-driven marketers. Delivered weekly, by email.

Read more from Blue Hills Digital

Hi friends 👋🏻 Last Thursday I joined a a bunch of other nonprofit communications professionals for an in-person meetup here in Portland OR. (If you're here in Portland, join us next time ComNet PDX hosts a meetup! Get on the mailing list here). Alongside the comms and marketing folks working in-house for organizations and consultants like me, there are always plenty of attendees looking for work, and it's a rough job market out there. Between the funding uncertainty many organizations are...

Hi friends 👋🏻 Last week, I wrote about GoFundMe's ill-advised move to create new donation pages for 1.4 million nonprofit organizations without allowing orgs to opt-in first. View that email here. It was a mess. This week, I want to suggest a lesson we can learn from a week of intense focus on GoFundMe about the importance of brand monitoring. This wasn't the first time nonprofit organizations' data was used in bulk by another entity without consent, and it won't be the last either. It's...

Hi friends 👋🏻 This week, news about an annoying new headache created for nonprofit development and comms teams created by GoFundMe. There's an action item here so please read (and if you're a consultant to nonprofits, please share forward this to your clients). Want links to recent emails or a sign-up link to share? Go to The Digital Landscape sign-up page GoFundMe creates 1.4 million nonprofit donation pages without asking Over the weekend, a news story popped up in one of my feeds reporting...