The past week has been overshadowed by the tragic earthquakes in Turkey and Syria, which have so far killed well over 30,000 people and left many more injured and homeless. Our team member Ahmet and his family are safe and far away from the affected regions, but he is helping his city council organize donations - food, heaters and clothes - for the victims.
The least we as a company could do was donate, and we would like to encourage you to do the same - any small amount counts.
Two weeks ago, we released Kirby 3.9.1, which brings some enhancements that allow you to disable deprecation warnings granularly. We also updated some translations, and fixed some issues.
Kirby in the wild
Ever wondered what content representations are and what you can use them for? Always thought it was all too complicated and beyond you? Fear no more and check out Basti's brand new Kirby video about them. 15 minutes, well invested!
Generate Storybook stories from snippets and templates with the Kirby Storybook plugin.
Brave new world: Stop writing yourself, let AI do it for you right in Kirby, with the OpenAI Textgenerator field.
Inherit field values of parent pages if a page field is empty with the Kirby Inherit field method.
Index and search your Kirby site with Algolia DocSearch. All you need is an Algolia account on the free plan.
The Kirby Theme Picker plugin allows you to select a set of styles coming from a blueprint or a structure field.
James Steel contributes another headless recipe: Headless kiosk application with Kirby and 11ty, which includes creating desktop and mobile apps.
DoIt brings versioning to database tables. It's a SQL database that you can fork, clone, branch, merge, push and pull like a Git repository.
The clamp calculator is a useful little tool for calculating viewport-based clamped values.
JSON Crack visualizes your JSON data as graphs you can download as.png or.svg images, embed via API etc. A VS Code extension is also available.
Parsel is a tiny CSS selector parser & specificity calculator.
The PHP Sandbox lets you execute PHP code online to test across 400+ PHP versions. Great for compatibility checks but also just to quickly test if your piece of code renders the desired result.
While this video tutorial is already a few years old, it has valuable tips how to use PHP on the command line, including use of the interactive shell and the built-in server.
The gotcha with @property: when animating registered custom properties, they prevent hardware acceleration for properties that rely on them.
The truth about CSS selector performance argues that rather than following selector rules blindly, we should use the measurement tools present in our browsers. Focuses on Edge browser, but valid for other browsers as well.
Over the years, CSS has evolved into a conditional design language that works similar to if statements in (other) programming languages.
:has can help solve vertical spacing problems in long form text.
This & that
beyond tellerrand, the place where creativity meets technology, takes place in Düsselsdorf, Germany on the 17th and 18th of April. Get your tickets before the price rises…
Chris Heilmann shows how do get all the video thumbnails from a YouTube video via code. For one-off purposes, you can do this via an online-tool.
Glyphs is a dynamic design system for building and managing large icon sets in Figma and packaging them for the web.
Brent Roose makes the case why curly braces should always go on a new line (I couldn't agree more).
Learn images is a new in-depth course on images for the web, and delves into image formats, responsive images, performance issues and high-performance workflows.
Trigger.dev is an open-source platform that makes it easy for developers to create event-driven background tasks directly in their code.
Are you one of these people who are doing a good job, but suffer from that feeling of being an imposter? Here are some tips to fight imposter syndrome.
When does clever code start to be harmful to the point of making it hard to understand, particularly for junior developers? Where are the boundaries between simple and complex, or how can the complex parts be separated from the simple?