All articles by order of date published:
This is a list of all articles published on this blog, in order of date published. Click here to see articles by subject.
Waiting for an Element to appear in the DOM or shadow DOM with an Intersection Observer
An asynchronous solution which waits for elements to appear in the document. Covers both a normal Document and the Shadow DOM.
Building a Multitenant Kubernetes System
I recently decided to delve a little deeper into Kubernetes by building my own multitenant platform using Capsule.
Should I move from WordPress to code?
I'm getting asked this question a lot lately, so I made a few charts that I hope explains the choices people face when they are thinking about switching, and the effort that might take.
Start and end with the people
Professional software development at an enterprise scale is inherently, and at every level, social. How does comprehension of this fact help teams to perform better?
The WordPress 'Implosion'
Many years ago I moved away from building things with WordPress. But it's time I tried to help people understand what I think the current situation means for people still in the ecosystem.
Implementing a carousel with classes only.
Last year I built a carousel project and showcased it here. I've just updated the code I used so that you can implement a carousel by only adding the class name to the parent element. Here's a breakdown.
Better Type Safety with JSDoc
This is a follow-up article to one I wrote a few months ago, and which quickly became the most popular article on my blog. I've learned a few more tricks, including how to ensure that types in events are respected.
Observing Element Changes in the Shadow DOM
DOM content isn't always loaded in top-to-bottom. Custom elements sometimes need to wait for API calls, and sometimes you might instantiate some of the DOM elements via JavaScript. Here's a handy function to observe those changes
Using a moka pot on an induction hob
This is a trick that wasn't on any of the articles I found using the old search engines. So I'm posting it here. It's about how you can use an aluminium coffee moka pot on an induction hob.
Testing Web Components
I've been taking a deep dive into Web Components recently: building a complex application. I have really enjoyed it. However, as with any project I want to deliver something that is proven to work by means of static, unit and end-to-end tests. I've run in to some issues with existing test suites.
Comments are now live
A system to allow visitors to comment on my blog posts has just gone live.
Alliteration in Poetry
I've slowly begun to realise something about my taste in poetry, and I wonder how much this is because of my Welsh heritage. As a result, I'm diving more into traditional Welsh poetry, and really enjoying what I find.
How I'm doing
I very rarely write personal articles on this blog. But with the demise of social media I've decided to share a little more of my personal thoughts here.
Sending Emails via SendGrid with Cloudflare Functions
SendGrid remains a popular tool for routing emails in today's applications. But it isn't without pitfalls. Here's my setup.
Selecting parents of a nested element with the css :has selector
I was playing around with the :has selector recently and noticed it's got a pretty awesome feature: relative selectors.
Managing Quality across Different Codebases
Having a structured plan for the codebases in your project will help keep them in good shape. I've written this document as a guideline of sorts, feel free to adopt it, adapt it or use it as a basis your own.
Tracking video plays
The scope of this project was to track how much of a video has been watched periodically, send the data to an API at regular intervals. Here's how I achieved that in a developer-friendly way.
Tailwind progressively collapsing menu.
When I first saw this method of being able to progressively hide individual navigation items instead of all of them, and to do so without the use of JavaScript, I was impressed with the idea. Here's a remix using Tailwind.
Iterate.
A few times during the past year I've caught myself advocating for iterative changes. Both in software and in terms of our processes I've found that I far prefer smaller, incremental improvements over stressful, complicated and far-reaching changes that may or may not improve fulfilment, delivery and other metrics.
A Collection of Tailwind UI Loading States
I made a collection of loading states for Tailwind. It was relatively easy exercise, and I'm surprised I didn't find anything like it out there already.
2023 Site Rebuild
Sorry to those people who subscribe to my RSS feed, I had a bug which I couldn't fix before I re-launched deliciousreverie.co.uk, but which I've resolved now. Yes, I've rebuilt my site again. This is the fifth iteration. Here's why.
Deploying Nx monorepos to Netlify in 2023
Monorepos with Nx on Netlify has been my stack of choice over the past few years. I really enjoy using both tools to publish an ever-growing series of websites for my hobbies. But there have been a few changes to both Nx and Netlify in that time. This article updates one on the Netlify blog that's a little out of date.
Is JSDoc Better Than TypeScript? A Real World Example
I've become an avid fan of TypeScript in recent years as it's improved my output, tightened up my appreciation for JavaScript's type coercion, and generally reduced my anxiety levels at work. However recently I've come into a place of work where JavaScript is written and often maintained by software engineers for whom JavaScript isn't their speciality. Not wanting to go back to the wild west of plain JavaScript, I adopted JSDoc. Here's how it went.
Let's build a carousel!
Carousels are a staple of web development life. And thankfully, there are a lot of good off-the-shelf ones ready to build into your project. But it's a good challenge to see if you can build one yourself.
Publishing Poetry with Webiny CMS and Astro
I've wanted to have the ability on my blog to render poetry in a way that was conducive to reading, and I think I've finally managed to achieve that with my current tech stack, and some repurposing of tools I already use.
Fun with Callbacks
I had the opportunity to integrate a callback function with a module I was building recently. But what is a callback? How do you use them? Let's take a closer look.
Polymorphic Elements in Astro
I'm building a component library in Astro, and one of the things I needed to do was to build a component that could render as either a button or an anchor tag. Here's how I achieved that.
Poems about Time
Time is a funny thing. Whilst modern science has helped us to see it's not as constant as we might have imagined, we still rarely are able to see it and our experiences within it from different perspectives. Although I really enjoy these few poems that seem to be able to step outside of the flow in one way or another.
Reset Webiny State Without Redeploying
This post was written for Webiny's technical documentation portal. Learn how to roll back the data in your Webiny project by restoring from DynamoDB backups and Elastic Search / OpenSearch snapshots.
Testing Packages Locally Using Lerna & Verdaccio
Originally published on the Webiny blog. We want to provide the easiest way for developers to get started when building a new Webiny project. So we have a create-webiny-project command line interface (CLI) that creates a new user project with their chosen AWS region and some other preferences they need.
Introducing Webiny Enterprise CMS+
Originally published for the Webiny community and Product Hunt launch. It introduces a new marketing term that was conjured up to provoke discussions about what value Webiny brings to organizations apart from the CMS aspect, and because of it's serverless nature.
Should I Use Gatsby or Next.js For My Next Project?
Originally written for the Webiny blog and was written at a time when Gatsby was experiencing a bit of a resurgence. By writing it, I was hoping to tap into this renewed interest and provide value by highlighting the differences and advantages to each tool.
20MinJS: Serverless JavaScript: What, Where and Why
I appeared on the podcast 20 Min JS with Fernando Doglio to talk about Serverless as a concept, and how developers can maximize their time and ship deliverables faster by adopting serverless.
Alternatives to Heroku’s Free Tier
Originally written for the Webiny blog. Heroku announced that it's extremely popular free tier plans were being phased out and I saw an opportunity to provide some high value content that could capture the audience and attract them to Webiny as a product.
Serverless as a Competitive Advantage for your Business
I gave a talk at Moar Serverless Conf 2022. If you’re still wondering what Serverless is, or if you’ve got friends and colleagues who are asking you, this talk will highlight some of the benefits.
Is Gatsby in decline?
I'm sure I was one of the earliest users of Gatsby. But is it in decline? The title is a bit click-baity because I don't really feel that it is. Rather, I think it's well on it's way to finding it's niche.
My Recipe for Crispy Beef
I've tried several recipes for crispy beef, and have finally gained confidence enough to make it on my own terms. Here's a simplified version that I now follow. It's quite rough, and it's meant to be adapted.
I launched a YouTube channel
I opened a YouTube channel! It was originally made to teach some kids coding schools, but I think it might prove to be a useful resource I'll be using more often.
First 2 weeks at Webiny
I've been at Webiny two weeks now. I have had the most fun I've had in a long time career wise. Here's what I've learned and what my objectives are going to be for the coming few weeks.
Building a Frontend With NextJS
This was originally published for Webiny's documentation portal and teaches readers how build a frontend for Webiny Headless CMS with NextJS.
Building a Frontend With GatsbyJS
This article was originally published for Webiny's technical documentation portal and takes readers through how to build a frontend for Webiny Headless CMS with Gatsby.
Testing with Apollo Client mock provider
Apollo's MockProvider is a great tool for testing mutations, however it's a little bit magical, making errors a little difficult to find. If your testing your error state, this might come in handy.
2021 Review / 2022 Aims
2021 continued the trend of being more challenging than any period before it, in terms of maintaining some sort of normality to our lives. However there have been some really good things too. Here's a review of what I set out to achieve and what I want to achieve this year
On digital estates
I recently heard the term 'Digital estate' to mean the technical property of an organisation. This, and the associations the term provides, have got me thinking about how we contribute to the success of organisations over time...
Coder Career: Ben Read on Becoming a Senior Engineer
Ben Read is a Senior Software Engineer at PurpleBricks, specializing in JavaScript development. Ben joins TCC to discuss his journey from junior to senior, accidentally starting a web development agency, and the early days of the internet.
6 reasons why we chose Nx as our monorepo management tool
Nx is a modular build framework for architecting and maintaining code projects. Using it means you configure once, then just focus on build your tools and apps. Nx can effectively manage the configuration around APIs, micro frontends and libraries of tools, so you don’t have to consciously think of this step each time it comes to building a new project. This is an article I wrote for the Purple Bricks tech blog on the subject.
Introspection: comparing myself to others, glorifying the past
This post is a little bit of introspection for me. I've recently been given a bit of time to think about certain things, and I'd like a make a note of them for my own personal growth.
How to resolve Jest issues: tests passing, but code coverage fails!
Today I'm continuing with my trend of making silly mistakes so you don't have to. The subject today is asynchronous tests in Jest. I've spent too much time on this one, and I don't want you to have the same trouble!
What should I use to build my new project?
There are so many choices when it comes to frameworks, and that's teriffic! But it could be bad news for people who struggle to make decisions. They might feel paralyzed just by the amount of choice that's on offer. So I made this with the aim of helping.
Why Astro matters
Next, Nuxt, Gatsby, SvelteKit ... there's been an explosion of frontend application frameworks lately. It's never been a more delightful experience to spin up a new project. What's the point of difference with this one? Why does it 'matter' so much?
React: data fetching results in type error: object is not a function
Sometimes I get frustrated with React, there can still sometimes be obscure errors that are a result of it's component lifecycle methods. But at least it means I can tell you about how to avoid them ...
monorepos.
I've recently been introduced to the use of monorepos to manage projects and have a few thoughts on the idea.
Lowest tech first
Should I use CSS or JavaScript to perform this task? If you're asking yourself this question, I have an answer for you: use the lowest technology available to you which can complete the task.
First steps with Sveltekit
SvelteKit is great for one reason: performance. And it's this above everything else (except accessibility) that I'm excited about.
Towards better hydration
I came across a tool recently that I'm really excited about ... it's something that I think can solve one of the most pressing concerns in JavaScript development: rehydration.
Should I use ternary or the logical and operator?
Templating with JSX in React is easy ... until it's not. Recently a colleague recommended I use the logical and operator instead of a ternary. However once we'd dug into it a little, we found these operators do very different things ...
Working with styled components: multiple nested properties
Destructuring is a common pattern when it comes to using styled components in complex situations. But it can be hazardous to clearly identify nesting. Here are a few suggestions.
Predictions for GatsbyConf 2021
It's no secret that NextJS is knocked the socks off Gatsby last year in terms of developer adoption. I think the frameworks will keep learning from each other (read: steal features), and it's a good thing for both frameworks. Here's my take on what could be announced at Gatsby's forthcoming conference.
Accessibility and you
I was invited to give a talk at London dev meetup JS Roundabout on the subject of accessibility. I recently discovered the talk has been put online ...
Automated accessibility testing is great, but ...
We recently had a situation using jest-axe in tests, where the landmarks feature wasn't work as expected. This helped me verify why we shouldn't rely solely on automated tools, never mind how good they are.
4 things that I learned from counselling training
When I was younger, I studied a form of Cognitive Behavioural therapy called Counselling. I studied for over 2 years but never took it up as a career. Even so, there are some valuable lessons that continue to help me in my web development career. Here are four of them.
2020 Review / 2021 Aims
2020 has been ... a lot. But I've also learned a ton of stuff. Though I can't ever say I know enough of anything, my objectives for 2021 are going to be quite different from previous years...
The JavaScript CMS Landscape
I've been keenly interested in a specific subset of CMSes since about 2 years ago, when it became clear that Zopa would soon need to invest in one, and that I would be involved in choosing something that would be a good fit for the company. This post is a roundup of some of the great products available, and is the result of some of the research and proofs-of-concept I have made.
Creating my homepage animation
I made the original animation for this site when I was using Hugo, but it's taken some time to refactor to React. Here's the story of how I achieved that.
Three UI Component Conundrums
I really like using React with Styled Components for building effective user interfaces. However I have recently come across three conundrums to solve.
Tools for Production Ready Code
Originally produced for Net print Magazine. Websites are great tools for communication, but it's remarkably easy to take them offline. For those organisations in which there's a huge financial investment and thousands — perhaps millions - of customers, reliability is a huge concern. The strategies and tools we are looking at here cover both prevention and resolution of problems that could occur to any website.
Publishing both JS and non-JS sites
It's always bothered me that the majority of internet users spend a lot of money downloading and running JavaScript, yet I enjoy building things with JavaScript, and want to provide an enhanced experience using JS ... without sacrificing their needs to do so. Now, there's an easier way to do both.
Freelancing: options and suggestions
Many of us dream someday of freelancing and living a ... less restrictive? ... lifestyle. But is it truly the best option? I freelanced for 7 years before the Credit Crunch killed my business. Looking back, here are a few of the questions I've been asked about freelancing.
Don't fear the JAMStack
WordPress has long been the de facto publishing platform for the web. But many developers are hearing more about the JAMStack. Here's why I switched, and my take on where I think things are going to go from here.
The search service landscape
Search is a massive growth market but there is only one market leader and many inadequate contenders. Here's why I think we should be building more search providers to expand the market.
Comparing two redux setups
I recently came across two different examples of setup that used Redux to manage state in a sample app. They were so different that I thought it was worth delving a little deeper into why, and how we can write Redux code so it's a good fit for our needs.
Some of my favourite books
I was asked to list some of my favourite books recently, so I compiled the following list, which is very loose and still might be missing some of my favourites!
Dynamic client side routes in GatsbyJS
Would you use GatsbyJS for a dynamic app? Yes I would. The reason is that I can make good use of Gatsby's great developer experience, as well as do everything I would normally do in a React application. Here's how I recently implemented dynamic routing.
What is Typescript?
What is TypeScript? How can it be useful to a person learning web development? I was asked this question on a Slack dicussion recently, and came up with the following example which seemed to be enough for my friends to grasp it.
How to test JavaScript API Calls
In the January 2020 issue of Net Magazine, we walked through how to use React testing library to write basic unit tests for your React components. In this article I'm going to dive a little deeper and show how to write tests for some code that fetches data from an API.
Learning serverless with Webiny
Webiny is a new CMS in the market, one that seeks to compete with other well-established headless CMS platforms and existing apps. But I've also come to enjoy using it for another reason...
How to scope Typecheck to your project folder
Typecheck should only run against the code you write for your project, but I found it's not that obvious to configure that...
On website longevity
When you build something, how long do you expect it to last? Whilst it might be easy to think about the things we create as our legacy to the world, that might not be the case when it comes to our online creations ...
Unit Test your React apps
Originally published in print for Net Magazine issue 320. Do you want production-ready code without going to production first? This article shows how it's possible with React Testing Library.
A recipe for quick and dirty ramen
I've been slowly perfecting a recipe for ramen that I can quickly make at home for a quick meal. If you too like that sort of thing ... here's my hopefully simple recipe!
Getting Started with TypeScript
TypeScript. You either love it, or hate it ... or are terrified of it. But it could be a valuable tool that benefits your workflow. This article, originally published in Net magazine, shows you how to get started with TypeScript
The Art of Compromise
Working as part of a larger team often involves skills that aren't readily taught as part of a person's development career. But they are essential if you're going to be developing software as part of a team.
Normalizing data using array.prototype.reduce
Normalizing data using array.prototype.reduce
Building an Accordion Component with React Hooks
Originally published in print for Net Magazine issue 320. I wanted to showcase how I have begun using React Hooks, and hilight some best practices to follow for better accessibility.
A Developer's Guide to Professional Development
How do we not get overloaded with what's going on in web development, but not left behind either? Should we try to keep up with latest trends that might fade away into nothing? Here's my take on how (and why) I continue to learn about web development.
Better Performance with the React Context API
Build for complexity and performance in this deep dive into React's Context API. This article was originally published in Net Magazine.
Capture and Minimise Errors in your React Applications
If we we've spent any time developing, specifically with JavaScript, we've seen the White Screen of Death. Nothing renders to the screen, and the only way of investigating the issue we caused is by opening the console and looking at the stack trace.
Both Sides, Now
Many people I respect and admire have voiced conflicting opinions on their blogs and Twitter recently. I wanted to reply in general with reference to a song that pops into my head every time I hear those conflicting opinions being discussed.
I'm Not Proud
I'm not proud of the code I wrote today. In fact, I hated it. But that's okay, it did what it needed to. And I'm going to redo it tomorrow.
2019 Review / 2020 Aims
This year has solidified my JavaScript knowledge, and I think I have also developed more of the holistic skills around the framework of tools and teams that surround me. But there's still a lot more I need to work on...
Reusable Components with Atomic Design
Structuring components in a reusable, discoverable way is a challenge across teams with diverse requirements. It can be difficult for developers unfamiliar with your library. Id like to introduce the idea of Atomic Development using React and styled-components.
2018 Review / 2019 Aims
Wow. 2018 was a real rollercoaster for me. This is a brief review so that I can look back on what I achieved, and set out what I hope I can achieve in web development this year.
React Accessibility
In the recent past, I've heard React being criticised for not being accessible, or for allowing practices that don't help developers think about accessibility. This is an article I wrote for the print magazine Net.
A React performance case study
Part of the way through a project to replace an app with a static site generated by Gatsbyjs, initial tests revealed that we there was a lot we could do to improve the performance. These are the steps we took to cut load times to under 3 seconds.
Three Conversations to Serverless
When Im explaining the idea of Serverless architecture it often takes three conversations before someone understands where I'm coming from, why we put up with the sometimes difficult to understand restrictions it puts on development, and ultimately why it can be extremely useful. In this post, I'm going to document these three conversations that Ive had with many people in the last few months.
Atomic Development
Structuring components in a reusable, discoverable way has been a challenge for some recent projects I've worked on. I've seen different approaches used, but now I think I've found a method that's basically intuitive, avoids duplication of effort and facilitates easy discovery of components.
Content Authoring with StrapiJs
In order for people outside of the development team or community to use your software, care must be given to allow them to write and publish content with the least amount of friction or obstruction as possible. A well crafted interface that allows people to do this isn't easy. I have started to use Strapi as a serverless backend API interface recently and believe it's going to be a very useful solution for a lot of projects.
How Website Forms Work
HTML Forms are one of the most fundamental elements in the web builder's toolbox. It would be a rare website that doesn't use this element to complete any of the most basic tasks someone might want to achieve. But there's a lot that goes on behind the scenes. Here's a bit more of an in-depth look at what happens when you click 'Send' on a form, and why you need some server-side code (somewhere) to handle that process.
More Questions, Better Answers
Working with a large FinTech organisation has taught me a lot about the potential loopholes and considerations around certain technical decisions that I have been asked to contribute to.
Content-Author friendly APIs with Strapi
I've worked in a few different capacities around the web, and can see the value of interfaces that those writing content for the web feel comfortable using. I'm also becoming more comfortable with JavaScript, and want to find alternatives to the PHP tools I've been using. On that journey, I discovered Strapi.
Deserializing Data in GatsbyJS
One of the great strengths in static site generator Gatsbyjs is the node API but it can present a few issues in certain circumstances when content is stored as escaped HTML, such as in WordPress posts and pages. Here's how we recently dealt with this issue when using react-helmet.
Using Pop!_OS for Work
In November last year I switched from using Windows at my place of work to using Pop!_OS by System76, an Ubuntu derivative designed for developers, researchers and scientists. What motivated me to make the switch? What benefits, and disadvantages, has it brought me?
From Wordpress to Developing in React — Starting to See It
I recently decided to dive into learning React with a few courses and some experimentation. I had the aim of building a site in Gatsby.js as a test for building sites entirely in React. This is what I found out. This article was published on the gatsby.js blog.
Borges and I
As a teenager, and on into my twenties, I developed a real affinity for existential philosophy, and really enjoyed reading the works of Kafka, Alain Robbe-Gruillet, Satre, Camus, Samuel Beckett and others. Though these writings aren't what you might call easy reading, they appealed to this somewhat narcissistic, isolated youth who already felt as if he didn't really belong anywhere.
Losing Peter
I found out one of my closest school friends committed suicide recently.
First Steps with Story Animations
For a while now I've really enjoyed tinkering with animations as a way to bring a lot more quality to my projects. But as well as providing interactivity, I was curious to explore another way animations can be used in a project: to tell a story.
Using CSS Grid In Production Today
For me, as well as a lot of others, CSS Grid is the most exciting thing to happen since CSS3 ... possibly even CSS2. But many fear using it in production. This post tackles one common use case where a Flexbox fallback provides support for Internet Explorer and Edge.
Doughnut chart SVG Animation
For a recent project, I was asked to design an animation for a doughnut chart. The data could be dynamically editable by the content author, who could also choose how many animations to display on a given content area.
SVG Animation on Hover with GreenSock
One thing I've tried to do more of is to use animations on frontend projects I've been involved with. GreenSock animation library is a great way of standardising and improving on animations that otherwise wouldn't be available on all browsers.
Continuous Deployment with Netlify and Hugo
Over the past few days, I've moved tech stack entirely for deliciousreverie.co.uk, from reseller hosting using PHP to cloud hosting on AWS by Netlify, and using continuous deployment. This post details some of the hazards and benefits I encountered.
2016 Review / 2017 Aims
2016 as a year was as unconventional as they come. Globally there have been some massive shifts politically, socially and in other ways. My life too has taken some pretty interesting turns. I'm following suit here by posting a quick review of my year and what I hope I can achieve in 2017 from a professional perspective.
How I Created My Home Web Server
I decided to try to build my own web server using my home router, an old PC, and a Linux operating system.
A Journey With Dylan: Halfway Through
A Few weeks ago, I wrote a post about how I was taking a journey through the studio albums of Bob Dylan, starting with his first eponymous album, and discovering new albums and tracks along the way which resonated with me. I'm now about half way through the catalogue, and have encountered a few surprises.
A Journey with Dylan
I've been in & out of love with Bob Dylan for many years. I started listening in my early 20's, bought a compilation album, but I have to say that I just didn't get it. Now, 16 years later, I'm listening to every album he's produced so far.
Poem Review: She Weeps Over Rahoon, James Joyce
A very dear friend introduced me to James Joyce many years ago with his coming-of-age almost-biography, A Portrait of a Young Man, which had a deep impact on me. But it's only now I'm starting to pick up on just what a master of the English language Joyce was—through his poetry.
Using WSL (BASH for Windows)
At a new job I've been tasked with moving to Windows as my main production environment. At first approaching this idea with some trepidation, I have since discovered and been able to install the new Windows Subsystem for Linux on my PC, and it's proven to be a really useful tool.
Switching to BEM Syntax for CSS
Like a lot of things in the web world, CSS is a bit of mess. As the web gets more complicated, the tools and languages we use need to develop with us. This is currently happening as the W3C push forward with new functionality like Grid and Flexbox, but until those come into general use, we can aim to limit the risk of our code becoming unfathomable by other developers.
First Steps with zsh
I'm one of those guys that was terrified of the command line. Literally, terrified. I knew enough that simple commands could irreparably break my computer, and that scared me. But gradually, I've begun to use more command line tools, and recently discovered ways to make my workflow easier by using zsh terminal commands.
From PHP to JavaScript: How I Switched Stacks
I've been working in web development for the past 8 years or so. Traditionally, I have worked at agencies, creating sites that have been designed in Photoshop, and built afterwards with a CMS integration such as Perch, WordPress, or similar, with occasional forays into Laravel.
Book Review: The City & The City, China Mieville
Time is precious for me having a kid and a demanding job, so I'm pleased I've managed to find the time to read The City & The City, China Mieville's (very successful) attempt at the crime thriller genre.
Delaying click event in vanilla JavaScript
I was inspired by Rachel Nabors' site to add a short delay to users' clicking on a link on my website, so that I could add a brief animation that would run before the redirection took place. Here's how I did it.
On Being An Advocate
I've always been interested in psychology but never went further than college with it. Recently a friend introduced me to the Meyers-Briggs Type Indicator Test. It illuminated some important traits of my personality and hilighted the motivation behind the goals I have. I thought I'd go over a few points that interested me here.
Using the Srcset attribute on images
So, I've been using the relatively new (and somewhat confusing) srcset attribute to serve a couple of interesting use cases lately. This spec is really, really useful in certain circumstances, two of which I'd like to share with you here.
Wordpress theming with Backbone.js
You'll notice that there's not a huge amount of posts about JavaScript on my site. That's not an accident, I'm really only beginning to gain my feet with the language. Despite this I took the plunge and decided to build a Wordpress theme that uses Backbone.js to render the posts in a list. Here's a bit about the project.
Let Browsers be Browsers
I've been hearing a lot of different, seemingly contradictory messages from the industry in recent weeks regarding frontend frameworks and progressive enhancement. I got so frustrated that I started a discussion on Web Freelancers Hub about it. I felt the answers that came back were worth documenting.
To Rome, a Poem
I wrote this poem more than 10 years ago, but I've never published it anywhere. I've always been afraid it's not any good or that it's of not enough interest to warrant any merit ... but that seems to matter less now. Anyway, here it is!
Why Atomic Design Makes Sense
Although I've really gotten into the SASS revolution, I haven't yet adopted a method for structuring elements of CSS. I guess it's because none of them strike me as particularly visual, and being a former print designer, I tend to think in those terms. But something about Brad Frost's Atomic Design principles makes sense to me. Here's why.
My Workflow Today
Workflows and tools are constantly changing. The tools we use and the workflow we have means we've simplified our build process and cut out some of the repetitive tasks, so that we can concentrate on simply doing the stuff we love as well as we can. This is my current set up:
Project Documentation Templates
Writing documentation for new team members - or just to provide a referenceable standard - is hard. I've provided these documents with the aim of helping this process.
Improving Performance on Deliciousreverie.co.uk
I can't possibly think I could get away with a post about performance when my own site wasn't as spot-on as I could get. So I've been spending a bit of time investigating how to reduce my load times. This is what I found out and how I implemented it.
Why Performance Matters
Performance seems to be increasingly becoming a battleground for those of us who create websites. How has this situation arisen? How do we cope with these new requirements? How do we ensure our sites and web apps (sorry, Jeremy) don't suffer because of changing landscapes of user — and search engine — requirements.
2015 Year in review
For the past year and a bit, I've worked at Blaze Communication, a marketing agency in Enfield. I've learned so many new things at this company. My knowledge and understanding is far, far different than it was a year ago. Here are some of my observations.
The Future is Headless
If you've been in the industry for any length of time, the chances are that you've been in one of those discussions about CMSes that are never resolved. That is about to change forever ...
Advanced Custom Fields and Bootstrap Tabs
I'm not a huge fan of Advanced Custom Fields, but there was a requirement to use it in a recent project that had Bootstrap as a basis for the UI. The challenge for me was to get Bootstrap nav-tabs to play nice with an ACF repeater field.
Code really is Poetry
I'm not sure if you remember the early days of the web. I can. I remember when my friend and I would sit at home, bored of talking about Babylon 5 (yes, really) and yet not wanting to part company again.
On Having Delusions of Grandeur
I'm not as good at this as I thought I was. This much became apparent to me recently, when I tried to run with some industry leaders and found that my abilities in web development are still comparatively lacking.
First Steps with CSS Animations
CSS Animations are quickly complimenting if not replacing Javascript for generating a little bit of on-page whizz (that's the technical term). This is the first time I've delved into the syntax for CSS Animations that I hope can replace the tired carousels resident on many websites. Here's how I implemented it.
Osip Mandelshtam / Philip Nikolayev
Since reading Boris Pasternak's Doctor Zhivago, I've been deeply moved by his poetry. I've just discovered the wonderful contemporary Russian poet Osip Mandelshtam, who, like Pasternak, evokes some wonderful imagery and delightful reveries.
Things I Learned By Working for Free
Developers sometimes get asked to do stuff for free. If that happens, it generally can be a warning sign that would be right to steer well clear of. It's easy to end up feeling cheated. But I've been fortunate to be involved in two projects that, although I earned no money from, I felt that I benefited greatly.
Deliverables and Trust
It's vitally important to have success before you start a project-perhaps the most critical stage to have success. But how far should we go in order to get our clients on board? Should we try to wow clients into signoff? Here's why that is a bad idea.
Words Fail Me.
I'm a great fan of Virginia Woolf's Stream of Consciousness writing, but that isn't why this post is here.
First Steps with Flexbox
On a recent project for international research machine builder Anton Paar, I used the new flex-box CSS module for the first time. Here's how it went.
Design is Broken
I was getting nowhere. For the previous four years, I had been self employed and had managed the transition from print design to web design. I was enjoying life, but then a desire to build on my success as part of a forward thinking and dynamic team motivated me to submit my CV to a number of local agencies.
Why 'Delicious Reverie'?
I may have confused some of you with titling my personal site. So I'm going to attempt to explain my decision and discuss perhaps the greatest work of fiction ever produced in either French or English...