41554 blogs · [ { "id": "01a0b68b-4cd1-73b7-a689-f4b900d8a031", "title": "Christopher Bennell", "url": "https://cbennell.com", "published_at": "2026-09-07T05:20:44+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb02c67e62", "title": "A Tangled.org Deploy Script for Cloudflare", "url": "https://cbennell.com/posts/tangled-cloudflare-deploy/", "published_at": "2026-06-02T00:00:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb031a15c9", "title": "\"Every Layout\" Mixins", "url": "https://cbennell.com/posts/every-layout-mixins/", "published_at": "2026-02-04T17:38:38+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb03b45029", "title": "Using Pundit in Phlex Components", "url": "https://cbennell.com/posts/using-pundit-in-phlex-components/", "published_at": "2025-10-31T15:40:41+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb04819d08", "title": "Site Redesign Postmortem", "url": "https://cbennell.com/posts/site-redesign-postmortem/", "published_at": "2025-10-07T04:26:46+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb055c798b", "title": "Phlex Tabs: Multiple Capture Blocks in a Phlex Component", "url": "https://cbennell.com/posts/phlex-tabs/", "published_at": "2025-03-25T16:20:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb065b1a5c", "title": "Honeybadger Deploy Notifications with Kamal Hooks", "url": "https://cbennell.com/posts/honeybadger-kamal-hooks/", "published_at": "2025-03-17T16:17:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb073b701c", "title": "I Tried Three CSS Frameworks So You Don't Have To", "url": "https://cbennell.com/posts/three-css-frameworks/", "published_at": "2024-11-25T17:13:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0803431f", "title": "Bridgetown, TailwindCSS and Kamal: A Tricky Deploy Bug", "url": "https://cbennell.com/posts/bridgetown-tailwind-kamal/", "published_at": "2024-10-27T15:44:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb08ff9e8c", "title": "Migrating from Wordpress to Bridgetown", "url": "https://cbennell.com/posts/migrating-from-wordpress-to-bridgetown/", "published_at": "2024-10-26T04:00:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb09ef2747", "title": "Running WordPress Multisite on Hetzner with Custom Domains", "url": "https://cbennell.com/posts/running-wordpress-multisite-on-hetzner/", "published_at": "2024-10-02T04:00:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0a904620", "title": "Default, Dynamic Slot Content in Rails ViewComponents", "url": "https://cbennell.com/posts/defaults-slot-content-in-rails-viewcomponents/", "published_at": "2024-09-25T15:30:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0a920713", "title": "Filtering by Association Count in Complex Models in Rails", "url": "https://cbennell.com/posts/filtering-by-association-count-in-complex-models-in-rails/", "published_at": "2024-09-12T15:25:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0af90357", "title": "Rails \"Disable-able\" Button ViewComponent / Phlex Component", "url": "https://cbennell.com/posts/rails-disable-able-button-component/", "published_at": "2024-06-13T14:31:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0be53f3f", "title": "Building an LTI DeepLinking Response in Rails", "url": "https://cbennell.com/posts/building-an-lti-deeplinking-response-in-rails/", "published_at": "2024-05-06T14:08:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0c25f191", "title": "Using Ruby Structs to Model API Responses", "url": "https://cbennell.com/posts/using-ruby-structs-to-model-api-responses/", "published_at": "2024-05-05T13:59:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0c63bec5", "title": "Handling LTI Launches in Rails", "url": "https://cbennell.com/posts/handling-lti-launches-in-rails/", "published_at": "2024-05-05T13:26:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0cdc469a", "title": "What's in a Canvas LMS LTI 1.3 JWT?", "url": "https://cbennell.com/posts/whats-in-a-canvas-lms-lti-1-3-jwt/", "published_at": "2024-05-04T04:00:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0d1b8596", "title": "Parameterized Modules in Ruby", "url": "https://cbennell.com/posts/parameterized-modules-in-ruby/", "published_at": "2024-05-01T04:31:00+00:00" }, { "id": "01a0875d-6fc7-73b5-94f9-9edb0d200fe9", "title": "On \"Layered Design for Ruby on Rails Applications\"", "url": "https://cbennell.com/posts/on-layered-design-for-ruby-on-rails-applications/", "published_at": "2024-04-28T02:11:00+00:00" } ] posts Claim your blog
Back to Christopher Bennell
Blog · corpus.blog/blogs/cbennell.com/posts

Christopher Bennell

cbennell.com

2026

2025

2024