Building long HTML class attributes with arrays

November 20, 2021

Sometimes class values in our HTML attributes can go on and on. Arrays can help us do it with style.

Setting up all kinds of full-domain redirects in S3 and CloudFront

March 5, 2019

When redirecting an entire domain/subdomain, I've found S3 and CloudFront to be a nice toolset. For most use cases, AWS is cheap, easy, and reliable.

Website privacy practices: lessons learned from a GDPR project

August 15, 2018

Now that the mass hysteria over GDPR is long over, I thought I would take some time to record the lessons that I’ve learned after meeting with several attorneys and reading quite a few articles.

Clear calls to action

July 21, 2017

After redesigning a couple websites recently, I’ve run across a common mistake that I see frequently: missing calls to action on key pages.

Alchemy CMS: great for managing websites integrated with Ruby on Rails

July 13, 2017

After learning Ruby on Rails, I played around a little with a few of the open source content management system options available, and one in particular stood out for what I typically need: Alchemy CMS.

Progressively enhancing your CFWheels form with nested properties and jQuery

December 5, 2016

Want to code a form that contains a "main" record and a collection of "nested" records? This post will cover a fairly standard CFWheels solution using nested properties and a sprinkling of jQuery—progressively enhanced.

Never output anything to a browser without using a formatting filter

May 11, 2016

Cross-site scripting (XSS) vulnerabilities can be quite a serious problem if you’re not careful. And if you’re using a framework like CFWheels, you need to be extra careful to protect your output from rendering malicious content.

Clobber Windows Ruby HTTPS connectivity issues with the new Net::HTTP SSL Fix gem

April 12, 2016

My new little Ruby gem with a fix for HTTP connectivity via the Net::HTTP library.

Building search forms with tableless models in CFWheels

April 7, 2016

In this post, I hope to persuade you that you will rarely ever need the Tag-based form helpers (textFieldTag, selectTag, etc.) in your CFWheels apps ever again.

Forgiveness and creativity

October 22, 2015

It’s been my goal to publish a new blog post approximately every 10 days. 10 days ago, I missed my deadline. No post. Read on to find out how I’m dealing with this issue.

About Chris Peters

With over 20 years of experience, I help plan, execute, and optimize digital experiences.