56,966 blogs · [ { "id": "01a08784-df1f-71d0-94a0-e32fd9184ae2", "title": "Breaking changes in email clients rendering", "url": "https://hussein-alhammad.com/blog/2026/09/breaking-changes-email-clients/", "published_at": "2026-09-03T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fd9282ec5", "title": "Check your SMS spam folder", "url": "https://hussein-alhammad.com/blog/2026/07/sms-spam/", "published_at": "2026-07-02T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fd99335e2", "title": "Gmail Annotations is no longer opt-in", "url": "https://hussein-alhammad.com/blog/2026/05/gmail-annotations-control/", "published_at": "2026-05-12T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fd9f0c344", "title": "AI vs Accessibility", "url": "https://hussein-alhammad.com/blog/2026/01/ai-vs-accessibility/", "published_at": "2026-01-30T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdae73cdc", "title": "Expired email click tracking? There is a more resilient solution.", "url": "https://hussein-alhammad.com/blog/2026/01/salesforce-expired-click-tracking/", "published_at": "2026-01-26T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdb40f94f", "title": "Mid Air", "url": "https://hussein-alhammad.com/blog/2025/05/mid-air/", "published_at": "2025-05-25T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdba4de69", "title": "Deep Consumption", "url": "https://hussein-alhammad.com/blog/2025/03/deep-consumption/", "published_at": "2025-03-02T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdc510686", "title": "Whose user is it anyway?", "url": "https://hussein-alhammad.com/blog/2024/06/whose-user-is-it-anyway/", "published_at": "2024-06-30T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdcc93986", "title": "Render a Blade template from a Jigsaw event listener", "url": "https://hussein-alhammad.com/blog/2024/06/render-blade-template-jigsaw-event/", "published_at": "2024-06-10T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdd69438a", "title": "Using Alpine.js without setting directives", "url": "https://hussein-alhammad.com/blog/2024/03/alpine-without-directives/", "published_at": "2024-03-19T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdd7aa4a2", "title": "Use Statamic Blueprint to validate Collection Entry data", "url": "https://hussein-alhammad.com/blog/2024/01/statamic-validate-with-blueprint/", "published_at": "2024-01-13T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdde9630f", "title": "Cascade Entry content into a routed Statamic Antlers view", "url": "https://hussein-alhammad.com/blog/2024/01/cascade-content-routed-statamic-view/", "published_at": "2024-01-06T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdebabcbb", "title": "Minimal Jigsaw site", "url": "https://hussein-alhammad.com/blog/2023/04/minimal-php-jigsaw/", "published_at": "2023-04-08T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdf09b1db", "title": "Slide up/down animation with AlpineJS", "url": "https://hussein-alhammad.com/blog/2023/03/alpine-slide-up-down-animation/", "published_at": "2023-03-30T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fdfe467d6", "title": "Reverse orphan word with CSS", "url": "https://hussein-alhammad.com/blog/2023/03/reverse-orphan-word-css/", "published_at": "2023-03-08T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe03f42db", "title": "Readable inlined CSS", "url": "https://hussein-alhammad.com/blog/2022/07/readable-inlined-css/", "published_at": "2022-07-12T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe068bf01", "title": "Implicitly using the aspect-ratio CSS property on images in HTML emails", "url": "https://hussein-alhammad.com/blog/2021/10/aspect-ratio-html-email/", "published_at": "2021-10-29T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe0999cfe", "title": "The one-button interface", "url": "https://hussein-alhammad.com/blog/2021/10/one-button-interface/", "published_at": "2021-10-22T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe0c7b62a", "title": "Wait.. Am I the third party?", "url": "https://hussein-alhammad.com/blog/2021/10/am-i-third-party/", "published_at": "2021-10-21T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe16cb615", "title": "Is your HTML email translatable?", "url": "https://hussein-alhammad.com/blog/2021/10/translatable-html-email/", "published_at": "2021-10-03T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe2601ad0", "title": "What to consider when testing CSS features in email", "url": "https://hussein-alhammad.com/blog/2021/10/test-css-email-clients/", "published_at": "2021-10-01T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe3173a83", "title": "Arabic script on the Web", "url": "https://hussein-alhammad.com/blog/2021/08/arabic-script/", "published_at": "2021-08-21T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe3fb5ef2", "title": "The privacy concerns of the noscript land", "url": "https://hussein-alhammad.com/blog/2021/02/privacy-concerns-of-noscript-land/", "published_at": "2021-02-20T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe46694ca", "title": "Add RTL formatting to GitHub markdown", "url": "https://hussein-alhammad.com/blog/2021/02/rtl-github-markdown/", "published_at": "2021-02-16T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe4b2fde3", "title": "Native horizontal scrolling", "url": "https://hussein-alhammad.com/blog/2021/01/browser-native-horizontal-scrolling/", "published_at": "2021-01-16T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe59dcf61", "title": "Internationalised Domain Names", "url": "https://hussein-alhammad.com/blog/2020/12/internationalised-domain-names/", "published_at": "2020-12-01T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe5d64aab", "title": "The lang Attribute and Fonts", "url": "https://hussein-alhammad.com/blog/2020/10/lang-attribute-and-fonts/", "published_at": "2020-10-30T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe6d4146d", "title": "Dark Mode Images", "url": "https://hussein-alhammad.com/blog/2020/10/dark-mode-bitmap-images/", "published_at": "2020-10-29T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe70967a8", "title": "RTL support lands in Bootrstrap and Bulma", "url": "https://hussein-alhammad.com/blog/2020/07/rtl-support-lands-in-bootrstrap-and-bulma/", "published_at": "2020-07-18T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe7460708", "title": "FontAwesomeSVG-PHP v1.2: Duetone support", "url": "https://hussein-alhammad.com/blog/2020/06/fontawesomesvg-php-v1-2-duetone-support/", "published_at": "2020-06-26T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe7ff60ba", "title": "Alpine.js: responsive x-cloak", "url": "https://hussein-alhammad.com/blog/2020/04/alpinejs-responsive-x-cloak/", "published_at": "2020-04-02T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe84f9f4f", "title": "Podcast Notes: Should We Be Setting Annual Goals? (The Art of Product #116)", "url": "https://hussein-alhammad.com/blog/2019/12/podcast-notes-should-we-be-setting-annual-goals-the-art-of-product-116/", "published_at": "2019-12-30T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe8d50042", "title": "FontAwesomeSVG-PHP v1.1: improved accessibility", "url": "https://hussein-alhammad.com/blog/2019/12/fontawesomesvg-php-v1-1-improved-accessibility/", "published_at": "2019-12-30T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fe9c3006c", "title": "Podcast Notes: Goal Setting (Synatx #67)", "url": "https://hussein-alhammad.com/blog/2019/12/podcast-notes-goal-setting-synatx-67/", "published_at": "2019-12-16T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fea0a219a", "title": "Podcast Notes: Staying Small (Full Stack Radio #102)", "url": "https://hussein-alhammad.com/blog/2019/12/podcast-notes-staying-small-full-stack-radio-102/", "published_at": "2019-12-01T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fea1d15d0", "title": "Bidirectional horizontal rules in CSS", "url": "https://hussein-alhammad.com/blog/2019/10/bidirectional-horizontal-rules-in-css/", "published_at": "2019-10-22T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fea64d2e5", "title": "Propertybase API - IN filter: empty option", "url": "https://hussein-alhammad.com/blog/2019/09/propertybase-api-in-filter-empty-option/", "published_at": "2019-09-25T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fea73a3b3", "title": "Every developer builds a CMS!", "url": "https://hussein-alhammad.com/blog/2019/09/every-developer-builds-a-cms/", "published_at": "2019-09-25T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32feb6450df", "title": "I have updated my site", "url": "https://hussein-alhammad.com/blog/2019/07/i-have-updated-my-site/", "published_at": "2019-07-19T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fec25dea4", "title": "Adding Font Awesome SVG icons with PHP", "url": "https://hussein-alhammad.com/blog/2018/05/adding-font-awesome-svg-icons-with-php/", "published_at": "2018-05-18T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fecca15f6", "title": "Announcing Pipits for Perch", "url": "https://hussein-alhammad.com/blog/2017/12/announcing-pipits-for-perch/", "published_at": "2017-12-04T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fed7bf5f6", "title": "Users Are Forgetful, but Not Amnesic", "url": "https://hussein-alhammad.com/blog/2017/05/users-are-forgetful-but-not-amnesic/", "published_at": "2017-05-30T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fee3c9ce3", "title": "Maintainable Perch Templates", "url": "https://hussein-alhammad.com/blog/2017/04/maintainable-perch-templates/", "published_at": "2017-04-26T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fee7b4825", "title": "Toggle Table Data with CSS", "url": "https://hussein-alhammad.com/blog/2017/02/toggle-table-data-with-css/", "published_at": "2017-02-22T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fef108098", "title": "Create a Discreet \"Dropdown\" Menu", "url": "https://hussein-alhammad.com/blog/2016/08/create-a-discreet-dropdown-menu/", "published_at": "2016-08-05T00:00:00+00:00" }, { "id": "01a08784-df1f-71d0-94a0-e32fef8a6c45", "title": "Smooth Scrolling with Just 1.1KB", "url": "https://hussein-alhammad.com/blog/2016/07/smooth-scrolling-with-just-1-1kb/", "published_at": "2016-07-24T00:00:00+00:00" } ] posts Claim your blog
Back to hussein-alhammad.com
Blog · corpus.blog/blogs/hussein-alhammad.com/posts

hussein-alhammad.com

hussein-alhammad.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016