41554 blogs · [ { "id": "01a0b68b-4cd5-70a9-a07a-93d47f217e4a", "title": "David Darnes", "url": "https://darn.es", "published_at": "2026-09-07T05:20:44+00:00" }, { "id": "01a08768-230b-719d-a3f8-0542ed66b025", "title": "ShopTalk Show: Web Components and Design Systems", "url": "https://shoptalkshow.com/657/", "published_at": "2025-03-24T11:11:08+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa083897b76", "title": "Is 2025 the Year of the ‘Design Engineer’?", "url": "https://zeroheight.com/blog/design-engineer/", "published_at": "2025-01-13T12:09:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08462e3f7", "title": "Add Design System Releases to Any Website with zeroheight", "url": "https://zeroheight.com/blog/zeroheight-api-tutorial-add-design-system-releases-to-any-website/", "published_at": "2024-12-18T11:08:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0846f11eb", "title": "bluesky-replies Web Component", "url": "https://darn.es/bluesky-replies-web-component/", "published_at": "2024-12-06T17:33:58+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa084b4fcf8", "title": "You’re Not Creating Enough Prototypes", "url": "https://zeroheight.com/blog/prototypes-with-design-systems/", "published_at": "2024-11-29T11:07:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa085248847", "title": "duration-property Web Component", "url": "https://darn.es/duration-property-web-component/", "published_at": "2024-11-13T00:59:30+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa085568e23", "title": "The Lowdown on Dropdowns in HTML & CSS", "url": "https://zeroheight.com/blog/the-lowdown-on-dropdowns-in-html-css/", "published_at": "2024-11-07T11:05:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa085b9c8d9", "title": "bluesky-post Web Component", "url": "https://darn.es/bluesky-post-web-component/", "published_at": "2024-10-29T16:49:45+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0863565be", "title": "What WordPress Can Teach Us About Open-Source in Design Systems", "url": "https://zeroheight.com/blog/open-source-in-design-systems/", "published_at": "2024-10-28T11:05:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa086425fc4", "title": "Adoption Tracking With GitHub Actions", "url": "https://zeroheight.com/blog/action-design-system-adoption/", "published_at": "2024-10-17T11:30:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0870305b6", "title": "WordPress Alternatives", "url": "https://darn.es/wordpress-alternatives/", "published_at": "2024-10-09T10:11:01+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0874bc32d", "title": "Web Components: Little Bits", "url": "https://darn.es/web-components-little-bits/", "published_at": "2024-10-07T15:03:04+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0877c0f4b", "title": "A Desk of Stickers", "url": "https://darn.es/a-desk-of-stickers/", "published_at": "2024-08-28T08:34:55+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa087bd5175", "title": "How to Track Adoption in Your Design System", "url": "https://zeroheight.com/blog/how-to-track-adoption-in-your-design-system/", "published_at": "2024-08-22T11:28:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0888f7286", "title": "heading-anchors Web Component", "url": "https://darn.es/heading-anchors-web-component/", "published_at": "2024-08-19T09:18:46+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa088d01818", "title": "live-filter Web Component", "url": "https://darn.es/live-filter-web-component/", "published_at": "2024-08-16T10:22:20+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08959a757", "title": "Awesome Standalones", "url": "https://darn.es/awesome-standalones/", "published_at": "2024-07-31T11:09:46+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa089ba36eb", "title": "Lightning talk at All Day Hey!", "url": "https://darn.es/lightning-talk-at-all-day-hey/", "published_at": "2024-07-29T09:30:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08ab57de3", "title": "zeroheight x Storybook: Design system workflow tips", "url": "https://zeroheight.com/webinars/zeroheight-x-storybook-design-system-workflow-tips/", "published_at": "2024-07-02T14:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08af9e08c", "title": "Live Code Examples in Your Design System With StackBlitz", "url": "https://zeroheight.com/blog/live-code-examples-in-your-design-system-with-stackblitz/", "published_at": "2024-06-26T10:53:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08be757a8", "title": "Pixel Pioneers 2024 Highlights", "url": "https://zeroheight.com/blog/pixel-pioneers-2024-highlights/", "published_at": "2024-06-24T11:42:43+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08ce728b2", "title": "The Case for Web Components", "url": "https://darn.es/the-case-for-web-components/", "published_at": "2024-06-19T11:33:10+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08d00d9f9", "title": "code-pen Web Component", "url": "https://darn.es/code-pen-web-component/", "published_at": "2024-06-18T09:28:49+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08d83bd3e", "title": "From Design to Code (and Back Again) with zeroheight and StackBlitz", "url": "https://www.crowdcast.io/c/stackblitz-zeroheight", "published_at": "2024-06-11T18:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08dae03ee", "title": "Color contrast with Web Components", "url": "https://zeroheight.com/blog/color-contrast-with-web-components/", "published_at": "2024-06-05T14:46:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08e563bc3", "title": "contrast-details Web Component", "url": "https://darn.es/contrast-details-web-component/", "published_at": "2024-06-05T10:33:59+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08eeb7818", "title": "Blogroll", "url": "https://darn.es/blogroll/", "published_at": "2024-05-17T08:09:21+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa08fd88253", "title": "random-source Web Component", "url": "https://darn.es/random-source-web-component/", "published_at": "2024-05-15T17:44:27+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0903f9248", "title": "For the Design System Developers out there", "url": "https://darn.es/zeroheight-developer-early-access/", "published_at": "2024-05-14T12:27:02+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa091105ae1", "title": "Use zeroheight design tokens directly in your codebase", "url": "https://zeroheight.com/blog/use-zeroheight-design-tokens-directly-in-your-codebase/", "published_at": "2024-05-13T17:08:43+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa091d71f49", "title": "My travel coffee brewer", "url": "https://darn.es/my-travel-coffee-brewer/", "published_at": "2024-05-11T18:28:11+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09218e733", "title": "Ideas for my dream CMS", "url": "https://darn.es/ideas-for-my-dream-cms/", "published_at": "2024-04-29T09:27:21+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa092c3f66a", "title": "Date pickers are hard, whodathunk it", "url": "https://darn.es/date-pickers-are-hard/", "published_at": "2024-04-25T11:11:08+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09380c852", "title": "link-peek Web Component", "url": "https://darn.es/link-peek-web-component/", "published_at": "2024-04-15T13:30:09+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa093b5abc9", "title": "A crude way to find and follow Thread users from Mastodon", "url": "https://darn.es/find-thread-users-from-mastodon/", "published_at": "2024-04-05T11:36:28+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09489cf71", "title": "mastodon-post Web Component", "url": "https://darn.es/mastodon-post-web-component/", "published_at": "2024-02-19T15:48:18+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0956292f8", "title": "sample-input Web Component", "url": "https://darn.es/sample-input-web-component/", "published_at": "2024-01-08T15:33:23+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa096011824", "title": "play-button Web Component", "url": "https://darn.es/play-button-web-component/", "published_at": "2024-01-04T13:08:50+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0961f6208", "title": "What I did in 2023", "url": "https://darn.es/what-i-did-in-2023/", "published_at": "2023-12-31T16:21:22+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0965e5fe5", "title": "storage-form Web Component", "url": "https://darn.es/storage-form-web-component/", "published_at": "2023-12-22T15:50:54+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa097039fef", "title": "is-playing Web Component", "url": "https://darn.es/is-playing-web-component/", "published_at": "2023-12-19T11:58:52+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa097ac803d", "title": "Web Component GitHub starter template", "url": "https://darn.es/web-component-github-starter-template/", "published_at": "2023-12-15T16:43:07+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0981f032d", "title": "share-button Web Component", "url": "https://darn.es/share-button-web-component/", "published_at": "2023-12-12T21:09:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa098e38af9", "title": "Design Systems & Web Components: what works & what doesn't", "url": "https://nldesignsystem.nl/events/design-systems-week-2023/programma/#design-systems-&-web-components:-what-works-&-what-doesn’t", "published_at": "2023-10-05T09:36:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0990b9acf", "title": "Post previews with Ghost, Eleventy & Netlify", "url": "https://darn.es/post-previews-with-ghost-eleventy-netlify/", "published_at": "2023-01-18T09:53:34+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0993f07e6", "title": "How Nordhealth uses Custom Properties in Web Components", "url": "https://web.dev/custom-properties-web-components/", "published_at": "2022-08-17T13:11:23+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0996a2f8f", "title": "Web Components & Lit", "url": "https://www.youtube.com/watch?v=GxDSd8iv__M", "published_at": "2022-07-08T17:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa099daeb77", "title": "You should add a generator tag to your Eleventy site", "url": "https://darn.es/you-should-add-a-generator-tag-to-your-eleventy-site/", "published_at": "2022-06-29T17:27:46+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09aac8155", "title": "Building tabs in Web Components", "url": "https://darn.es/building-tabs-in-web-components/", "published_at": "2022-06-29T12:21:59+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09adcfaae", "title": "Using Display-P3 colour", "url": "https://darn.es/using-display-p3-colour/", "published_at": "2022-06-15T12:38:03+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09bb8f2d3", "title": "Using a GitHub repo directory as an npm package", "url": "https://darn.es/github-directory-as-npm-package/", "published_at": "2022-01-12T18:20:42+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09c4bee0a", "title": "First monthly update for Nord Design System", "url": "https://nordhealth.design/updates/december-2021/", "published_at": "2021-12-20T10:50:00+00:00" }, { "id": "01a0e2c2-97c9-7391-b10d-66fa14dd985d", "title": "darn.es", "url": "https://darn.es/", "published_at": "2021-09-26T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09d18c55f", "title": "My home desk setup", "url": "https://setups.co/posts/david-darnes", "published_at": "2021-08-11T14:27:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09d29ed53", "title": "How to use Schema.org Markup for Your E-Commerce Sites", "url": "https://snipcart.com/blog/schema-markup-ecommerce-website-seo", "published_at": "2021-05-27T14:26:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09dc30432", "title": "Add a Formspree Form to Your Static Sites", "url": "https://webdesign.tutsplus.com/tutorials/quick-tip-add-a-formspree-form-to-your-static-sites--cms-23870", "published_at": "2021-03-09T14:24:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09e56ef69", "title": "Jekyll alternatives: The benefits to JavaScript static site generators", "url": "https://www.takeshape.io/articles/jekyll-alternatives-the-benefits-to-javascript-static-site-generators/", "published_at": "2020-12-29T14:22:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09eb52919", "title": "Blogging on the Jamstack with DropInBlog, Netlify & Eleventy", "url": "https://dropinblog.com/blog/blogging-on-the-jamstack-with-netlify-and-eleventy/", "published_at": "2020-11-24T14:21:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa09f366404", "title": "What is Eleventy?", "url": "https://podcast.smashingmagazine.com/episodes/what-is-eleventy-with-david-darnes", "published_at": "2020-11-03T14:20:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a01f6268", "title": "Switching to Netlify DNS", "url": "https://darn.es/switching-to-netlify-dns/", "published_at": "2020-07-28T14:17:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a06ffde0", "title": "Let’s Learn Ghost on the Jamstack! Livestream Q & A", "url": "https://darn.es/learnwithjason-q-and-a/", "published_at": "2020-04-14T17:31:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a10ae26e", "title": "Building a Netlify Build Plugin", "url": "https://darn.es/building-a-netlify-build-plugin/", "published_at": "2020-03-02T14:34:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a1cec5c3", "title": "Page translations and multi-language selects", "url": "https://darn.es/multi-language-select/", "published_at": "2020-02-23T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a2bd4d24", "title": "Minimum viable analytics", "url": "https://darn.es/minimum-viable-analytics/", "published_at": "2020-02-23T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a3805410", "title": "How to use Ghost with Jekyll", "url": "https://darn.es/use-ghost-with-jekyll/", "published_at": "2019-08-10T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a4293f99", "title": "Eleventy and Ghost", "url": "https://ghost.org/changelog/eleventy/", "published_at": "2019-08-07T15:34:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a42b64be", "title": "Use Eleventy to generate a Ghost blog", "url": "https://darn.es/use-eleventy-to-generate-a-ghost-blog/", "published_at": "2019-05-31T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a514047f", "title": "5 excellent examples of progressive web applications", "url": "https://simpleweb.co.uk/5-excellent-examples-of-progressive-web-applications/", "published_at": "2019-03-15T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a566f7ff", "title": "Experiments in augmented reality with Apple’s ARKit", "url": "https://simpleweb.co.uk/experiments-in-augmented-reality-with-apples-arkit/", "published_at": "2019-01-30T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a5e3c8c1", "title": "Coding a festive puzzle game with modern front-end techniques", "url": "https://simpleweb.co.uk/coding-a-festive-puzzle-game-with-modern-front-end-techniques/", "published_at": "2018-12-12T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a696b5b9", "title": "5 tips for a happier front-end Development Team", "url": "https://simpleweb.co.uk/5-tips-for-a-happier-front-end-development-team/", "published_at": "2018-10-29T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a6beb029", "title": "Dropping the mic on Netlify in 20 minutes", "url": "https://darn.es/dropping-the-mic-on-netlify/", "published_at": "2018-08-15T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a7781151", "title": "Making your first Jekyll theme: Part 2", "url": "https://www.siteleaf.com/blog/making-your-first-jekyll-theme-part-2/", "published_at": "2018-01-16T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a86b6ea7", "title": "Making your first Jekyll theme: Part 1", "url": "https://www.siteleaf.com/blog/making-your-first-jekyll-theme-part-1/", "published_at": "2017-10-02T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a930d4aa", "title": "Adding heading links to your Jekyll blog", "url": "https://darn.es/adding-heading-links-to-your-jekyll-blog/", "published_at": "2017-07-24T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0a9f336c4", "title": "What do we look for in a CMS?", "url": "https://darn.es/what-do-we-look-for-in-a-cms/", "published_at": "2017-03-06T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0aa7c86aa", "title": "My worst job interview", "url": "https://darn.es/my-worst-job-interview/", "published_at": "2017-01-19T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ab3dd012", "title": "How to create a Jekyll theme gem", "url": "https://webdesign.tutsplus.com/tutorials/how-to-create-and-publish-a-jekyll-theme-gem--cms-27475", "published_at": "2016-10-18T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0abf35938", "title": "Adding Siteleaf to a GitHub Pages site", "url": "https://darn.es/adding-siteleaf-to-a-github-pages-site/", "published_at": "2016-08-24T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ac82aa19", "title": "I put CSS in my HTML and nothing exploded", "url": "https://darn.es/css-in-my-html/", "published_at": "2016-08-15T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ad39ac8a", "title": "My domain is my playground", "url": "https://darn.es/my-domain-is-my-playground/", "published_at": "2016-06-05T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ad818122", "title": "Jekyll Conf lightning talk", "url": "https://darn.es/jekyll-conf-lightning-talk/", "published_at": "2016-05-16T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0adf2968d", "title": "How to create an open source portfolio", "url": "https://webdesign.tutsplus.com/tutorials/how-to-create-an-open-source-directory-on-github-pages--cms-26225", "published_at": "2016-03-27T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ae2d1b65", "title": "Could GitHub make a CMS?", "url": "https://darn.es/could-github-make-a-cms/", "published_at": "2016-02-23T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ae2e399f", "title": "Building a site entirely on github.com", "url": "https://darn.es/using-the-github-com-interface/", "published_at": "2016-02-18T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ae8f64f6", "title": "My screencasting setup", "url": "https://darn.es/my-screencasting-setup/", "published_at": "2015-08-15T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0ae9e6794", "title": "GitHub Pages & custom domains", "url": "https://darn.es/github-pages-custom-domains/", "published_at": "2015-07-09T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0aeda2d87", "title": "I listen to too many podcasts", "url": "https://darn.es/too-many-podcasts/", "published_at": "2015-04-07T23:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0aee54f86", "title": "How to implement cross-browser SVG Sprites", "url": "https://webdesign.tutsplus.com/tutorials/how-to-implement-cross-browser-svg-sprites--cms-22427", "published_at": "2014-10-28T00:00:00+00:00" }, { "id": "01a08768-230c-728d-a45f-ffa0afe53e39", "title": "5 ways to be a better front-end web developer", "url": "https://www.creativebloq.com/web-design/better-frontend-web-developer-81412739", "published_at": "2014-08-28T23:00:00+00:00" } ] posts Claim your blog
Back to David Darnes - Designer, Front-end Developer & Writer specialising in Design Systems, Eleventy, Ghost & Jamstack
Blog · corpus.blog/blogs/darn.es/posts

David Darnes - Designer, Front-end Developer & Writer specialising in Design Systems, Eleventy, Ghost & Jamstack

darn.es

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014