56,966 blogs · [ { "id": "01a0d4f9-4bdc-7102-a64c-d2c10a5b4fc1", "title": "Copying a File Path in Finder", "url": "https://www.abeautifulsite.net/posts/copying-a-file-path-in-finder/", "published_at": "2026-09-23T00:00:00+00:00" }, { "id": "01a0d4f9-4bdc-7102-a64c-d2c10b0d4ec8", "title": "Named Breakpoints Without Sass", "url": "https://www.abeautifulsite.net/posts/named-breakpoints-without-sass/", "published_at": "2026-09-22T00:00:00+00:00" }, { "id": "01a0d4f9-4bdc-7102-a64c-d2c10b8dacf5", "title": "I'd Rather Review Specs", "url": "https://www.abeautifulsite.net/posts/id-rather-review-specs/", "published_at": "2026-09-16T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43134b68137", "title": "Most Software Was Already Slop", "url": "https://www.abeautifulsite.net/posts/most-software-was-already-slop/", "published_at": "2026-09-04T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431351fc78b", "title": "FOUCE Should Be the Browser's Problem", "url": "https://www.abeautifulsite.net/posts/fouce-should-be-the-browsers-problem/", "published_at": "2026-08-20T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431355eb8bb", "title": "Contextual Styling With CSS Nesting", "url": "https://www.abeautifulsite.net/posts/contextual-styling-with-css-nesting/", "published_at": "2026-08-12T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43135a55b10", "title": "I'm pulling ColorCopy from the macOS App Store", "url": "https://www.abeautifulsite.net/posts/im-pulling-colorcopy-from-the-macos-app-store/", "published_at": "2026-08-07T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43135ce9325", "title": "Software Has Changed", "url": "https://www.abeautifulsite.net/posts/software-has-changed/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43136877eec", "title": "I Mostly Stopped Typing", "url": "https://www.abeautifulsite.net/posts/i-mostly-stopped-typing/", "published_at": "2026-06-25T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43136b50c3e", "title": "Introducing ColorCopy", "url": "https://www.abeautifulsite.net/posts/introducing-colorcopy/", "published_at": "2026-05-18T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43136d18af0", "title": "Introducing TongueType", "url": "https://www.abeautifulsite.net/posts/introducing-tonguetype/", "published_at": "2026-05-14T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431370acc20", "title": "My Stance on AI in Software Development", "url": "https://www.abeautifulsite.net/posts/my-stance-on-ai-in-software-development/", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431374dc165", "title": "How I Use GitHub Issues", "url": "https://www.abeautifulsite.net/posts/how-i-use-git-hub-issues/", "published_at": "2025-08-04T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43137d0006d", "title": "Revisiting FOUCE", "url": "https://www.abeautifulsite.net/posts/revisiting-fouce/", "published_at": "2024-12-23T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43138b049eb", "title": "Web Components Are Not the Future — They’re the Present", "url": "https://www.abeautifulsite.net/posts/web-components-are-not-the-future-they-re-the-present/", "published_at": "2024-09-27T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43138cecea7", "title": "Component Machines", "url": "https://www.abeautifulsite.net/posts/component-machines/", "published_at": "2024-09-05T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43139a0e88a", "title": "Styling Custom Elements Without Reflecting Attributes", "url": "https://www.abeautifulsite.net/posts/styling-custom-elements-without-reflecting-attributes/", "published_at": "2024-06-12T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313a7678ef", "title": "Reflection and Custom States in Web Components", "url": "https://www.abeautifulsite.net/posts/reflection-and-custom-states-in-web-components/", "published_at": "2024-06-05T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313ac0073a", "title": "Anchoring Software to Major Versions", "url": "https://www.abeautifulsite.net/posts/anchoring-software-to-major-versions/", "published_at": "2024-05-24T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313b799ae3", "title": "Building Custom Elements With a Library", "url": "https://www.abeautifulsite.net/posts/building-custom-elements-with-a-library/", "published_at": "2024-03-28T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313c27cb8c", "title": "Design Systems Are An Investment", "url": "https://www.abeautifulsite.net/posts/design-systems-are-an-investment/", "published_at": "2023-11-28T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313cf4277f", "title": "How to File a Bug Report", "url": "https://www.abeautifulsite.net/posts/how-to-file-a-bug-report/", "published_at": "2023-11-21T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313da22966", "title": "Thoughts on Framework Churn", "url": "https://www.abeautifulsite.net/posts/thoughts-on-framework-churn/", "published_at": "2023-11-16T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313e020de8", "title": "Better Buttons with color-mix() and Custom Properties", "url": "https://www.abeautifulsite.net/posts/better-buttons-with-color-mix-and-custom-properties/", "published_at": "2023-08-23T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313e5ba681", "title": "Dynamic Slots", "url": "https://www.abeautifulsite.net/posts/dynamic-slots/", "published_at": "2023-07-19T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313f15edba", "title": "My Commitment to Accessibility", "url": "https://www.abeautifulsite.net/posts/my-commitment-to-accessibility/", "published_at": "2023-06-02T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313f379d19", "title": "Converting a URL Object to a Plain Object in JavaScript", "url": "https://www.abeautifulsite.net/posts/converting-a-url-object-to-a-plain-object-in-java-script/", "published_at": "2023-03-22T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313f3ca41d", "title": "The Term \"Headless Component\" is a Misnomer", "url": "https://www.abeautifulsite.net/posts/the-term-headless-component-is-a-misnomer/", "published_at": "2023-01-25T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4313fe1c355", "title": "Shoelace 2.0", "url": "https://www.abeautifulsite.net/posts/shoelace-2/", "published_at": "2023-01-24T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431404877ed", "title": "Installing Shoelace in a React App", "url": "https://www.abeautifulsite.net/posts/installing-shoelace-in-a-react-app/", "published_at": "2022-12-15T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43140b613e8", "title": "Why You Should Prefix Custom Events", "url": "https://www.abeautifulsite.net/posts/why-you-should-prefix-custom-events/", "published_at": "2022-12-12T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43140bda296", "title": "Custom Event Names and the Bubbling Problem", "url": "https://www.abeautifulsite.net/posts/custom-event-names-and-the-bubbling-problem/", "published_at": "2022-12-12T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43140d07986", "title": "The Future of Shoelace", "url": "https://www.abeautifulsite.net/posts/the-future-of-shoelace/", "published_at": "2022-10-17T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431410c5be2", "title": "A Web Component Story", "url": "https://www.abeautifulsite.net/posts/a-web-component-story/", "published_at": "2022-09-30T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43141409892", "title": "Not Everything Can Be Feature Detected", "url": "https://www.abeautifulsite.net/posts/not-everything-can-be-feature-detected/", "published_at": "2022-08-15T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43141ee49ee", "title": "Buttons and Cursors", "url": "https://www.abeautifulsite.net/posts/buttons-and-cursors/", "published_at": "2022-07-27T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43142ce01ea", "title": "My Stance on AI-generated Code", "url": "https://www.abeautifulsite.net/posts/my-stance-on-ai-generated-code/", "published_at": "2022-07-08T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431433aceac", "title": "Design Systems Aren't Cheap", "url": "https://www.abeautifulsite.net/posts/design-systems-arent-cheap/", "published_at": "2022-03-21T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314365c83d", "title": "CSS Parts Inspired by BEM", "url": "https://www.abeautifulsite.net/posts/css-parts-inspired-by-bem/", "published_at": "2022-03-10T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431443d25bf", "title": "When To Create CSS Parts", "url": "https://www.abeautifulsite.net/posts/when-to-create-css-parts/", "published_at": "2022-02-21T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43144b568c7", "title": "Valid Names for CSS Parts", "url": "https://www.abeautifulsite.net/posts/valid-names-for-css-parts/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43144dcc7e0", "title": "Complacency on the Front End", "url": "https://www.abeautifulsite.net/posts/complacency-on-the-front-end/", "published_at": "2022-02-14T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314502e1e2", "title": "A Web Components Primer", "url": "https://www.abeautifulsite.net/posts/a-web-components-primer/", "published_at": "2022-02-04T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314578f175", "title": "Success Requires Luck", "url": "https://www.abeautifulsite.net/posts/success-requires-luck/", "published_at": "2022-01-14T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314601d553", "title": "Flash of Undefined Custom Elements (FOUCE)", "url": "https://www.abeautifulsite.net/posts/flash-of-undefined-custom-elements/", "published_at": "2021-12-29T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43146d08dbd", "title": "Bulletproof Components", "url": "https://www.abeautifulsite.net/posts/bulletproof-components/", "published_at": "2021-12-08T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314761f2f9", "title": "Empowering Design System Users", "url": "https://www.abeautifulsite.net/posts/empowering-design-system-users/", "published_at": "2021-11-01T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431485ca0c6", "title": "Exploring the EyeDropper API", "url": "https://www.abeautifulsite.net/posts/exploring-the-eyedropper-api/", "published_at": "2021-10-26T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431490d444f", "title": "The Future of Frameworks", "url": "https://www.abeautifulsite.net/posts/the-future-of-frameworks/", "published_at": "2021-10-25T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314939a70b", "title": "Superpowers", "url": "https://www.abeautifulsite.net/posts/superpowers/", "published_at": "2021-10-12T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314967c5c0", "title": "Know When To Draw The Line", "url": "https://www.abeautifulsite.net/posts/know-when-to-draw-the-line/", "published_at": "2021-10-11T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314a2240d2", "title": "Don't Do Magic", "url": "https://www.abeautifulsite.net/posts/dont-do-magic/", "published_at": "2021-10-11T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314a83f078", "title": "On Buttons and Links", "url": "https://www.abeautifulsite.net/posts/on-buttons-and-links/", "published_at": "2021-10-06T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314a8eeefd", "title": "On Using Web Component Libraries", "url": "https://www.abeautifulsite.net/posts/on-using-web-component-libraries/", "published_at": "2021-09-20T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314a987a44", "title": "Finding the Closest Element Through Shadow Roots", "url": "https://www.abeautifulsite.net/posts/finding-the-closest-element-through-shadow-roots/", "published_at": "2021-09-13T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314ac3ca51", "title": "Testing Support for :focus-visible", "url": "https://www.abeautifulsite.net/posts/testing-support-for-focus-visible/", "published_at": "2021-08-24T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314b9946f2", "title": "Querying through shadow roots", "url": "https://www.abeautifulsite.net/posts/querying-through-shadow-roots/", "published_at": "2021-08-04T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314c0905ce", "title": "Prefers Reduced Motion", "url": "https://www.abeautifulsite.net/posts/prefers-reduced-motion/", "published_at": "2021-05-19T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314c690fab", "title": "Finding the active element in a shadow root", "url": "https://www.abeautifulsite.net/posts/finding-the-active-element-in-a-shadow-root/", "published_at": "2021-03-22T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314d38d002", "title": "Moving from Stencil to LitElement", "url": "https://www.abeautifulsite.net/posts/moving-from-stencil-to-lit-element/", "published_at": "2021-03-02T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314da5814c", "title": "SVG Repo", "url": "https://www.abeautifulsite.net/posts/svg-repo/", "published_at": "2021-02-15T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314db66984", "title": "Archiving Postleaf", "url": "https://www.abeautifulsite.net/posts/archiving-postleaf/", "published_at": "2021-02-03T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314dda4bc7", "title": "Getting localized month and day names in the browser", "url": "https://www.abeautifulsite.net/posts/getting-localized-month-and-day-names-in-the-browser/", "published_at": "2020-11-25T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314e729515", "title": "Shoelace 2.0: a forward-thinking library of web components", "url": "https://www.abeautifulsite.net/posts/shoelace-a-forward-thinking-library-of-web-components/", "published_at": "2020-07-24T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314f157694", "title": "Cory's amazing dot paper", "url": "https://www.abeautifulsite.net/posts/corys-amazing-dot-paper/", "published_at": "2019-06-03T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4314fe96944", "title": "A free HTML, CSS, and JavaScript beautifier", "url": "https://www.abeautifulsite.net/posts/a-free-html-css-and-js-beautifier/", "published_at": "2019-05-22T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43150012dc0", "title": "Let's Encrypt renews but browsers still seeing old/expired SSL certificate", "url": "https://www.abeautifulsite.net/posts/lets-encrypt-renews-but-browsers-still-seeing-oldexpired-ssl-certificate/", "published_at": "2019-05-10T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43150f008ad", "title": "Introducing Surreal CMS 7", "url": "https://www.abeautifulsite.net/posts/introducing-surreal-cms-7/", "published_at": "2019-04-26T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431515b4729", "title": "Getting duplicate ids in an HTML document", "url": "https://www.abeautifulsite.net/posts/getting-duplicate-ids-in-an-html-document/", "published_at": "2019-04-05T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43152033222", "title": "A clever way to style the element", "url": "https://www.abeautifulsite.net/posts/a-clever-way-to-style-the-mark-element/", "published_at": "2019-02-01T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43152881936", "title": "Opening a new window after an async operation", "url": "https://www.abeautifulsite.net/posts/opening-a-new-window-after-an-async-operation/", "published_at": "2018-08-28T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43153444209", "title": "Zipping multiple folders into separate zip files", "url": "https://www.abeautifulsite.net/posts/zipping-multiple-folders-into-separate-zip-files/", "published_at": "2017-07-31T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431543d0b88", "title": "Shoelace.style — A back to the basics CSS starter kit", "url": "https://www.abeautifulsite.net/posts/shoelacecss-a-back-to-the-basics-css-starter-kit/", "published_at": "2017-07-27T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43154dd85de", "title": "Downloading a list of URLs automatically", "url": "https://www.abeautifulsite.net/posts/downloading-a-list-of-urls-automatically/", "published_at": "2017-07-21T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43155224b4b", "title": "Surreal CMS acquires PageLime", "url": "https://www.abeautifulsite.net/posts/surreal-cms-acquires-pagelime/", "published_at": "2017-07-14T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43156019125", "title": "Rebuilding your Spotlight index in macOS", "url": "https://www.abeautifulsite.net/posts/rebuilding-your-spotlight-index-in-macos/", "published_at": "2017-07-14T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43156c0ae18", "title": "Thoughts on AMP", "url": "https://www.abeautifulsite.net/posts/thoughts-on-amp/", "published_at": "2017-05-23T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431578bb9ba", "title": "JSON Feed", "url": "https://www.abeautifulsite.net/posts/json-feed/", "published_at": "2017-05-23T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43157f12b44", "title": "Postleaf: reimagined", "url": "https://www.abeautifulsite.net/posts/postleaf-reimagined/", "published_at": "2017-04-26T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43158509313", "title": "Thoughts on uploads", "url": "https://www.abeautifulsite.net/posts/thoughts-on-uploads/", "published_at": "2017-03-21T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43158aac822", "title": "Importing plain CSS files with Sass", "url": "https://www.abeautifulsite.net/posts/importing-plain-css-files-with-sass/", "published_at": "2017-02-10T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c431594e9200", "title": "Determining your app's base directory in Node.js", "url": "https://www.abeautifulsite.net/posts/determining-your-apps-base-directory-in-nodejs/", "published_at": "2017-02-09T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315a227213", "title": "Hashing Passwords with Node.js and bcrypt", "url": "https://www.abeautifulsite.net/posts/hashing-passwords-with-nodejs-and-bcrypt/", "published_at": "2017-02-08T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315a7acf66", "title": "Using an ORM", "url": "https://www.abeautifulsite.net/posts/using-an-orm/", "published_at": "2017-02-06T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315b102cc9", "title": "Solving the search problem", "url": "https://www.abeautifulsite.net/posts/solving-the-search-problem/", "published_at": "2017-02-06T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315bd4f030", "title": "Moving to Node.js", "url": "https://www.abeautifulsite.net/posts/moving-to-nodejs/", "published_at": "2017-02-06T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315c2409e7", "title": "SSH failing on macOS Sierra", "url": "https://www.abeautifulsite.net/posts/ssh-failing-on-macos-sierra/", "published_at": "2017-01-15T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315c3aff42", "title": "Getting it right", "url": "https://www.abeautifulsite.net/posts/getting-it-right/", "published_at": "2017-01-14T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315c3f6242", "title": "SimpleImage 3.0", "url": "https://www.abeautifulsite.net/posts/simpleimage-3/", "published_at": "2017-01-10T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315c7cff33", "title": "Don't hate on PHP", "url": "https://www.abeautifulsite.net/posts/dont-hate-on-php/", "published_at": "2016-11-22T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315d06c370", "title": "Thoughts on comments", "url": "https://www.abeautifulsite.net/posts/thoughts-on-comments/", "published_at": "2016-06-12T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315d66c842", "title": "Code can change", "url": "https://www.abeautifulsite.net/posts/code-can-change/", "published_at": "2016-05-10T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315d927585", "title": "A better way to write config files in PHP", "url": "https://www.abeautifulsite.net/posts/a-better-way-to-write-config-files-in-php/", "published_at": "2016-05-02T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315e71bb9d", "title": "How to upgrade or downgrade Node.js using npm", "url": "https://www.abeautifulsite.net/posts/how-to-upgrade-or-downgrade-nodejs-using-npm/", "published_at": "2016-04-05T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315ee0e584", "title": "Adding and removing virtual hosts on Ubuntu 14.04", "url": "https://www.abeautifulsite.net/posts/adding-and-removing-virtual-hosts-on-ubuntu-1404/", "published_at": "2016-03-29T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315f35a3e3", "title": "Lessons from a failed Kickstarter", "url": "https://www.abeautifulsite.net/posts/lessons-from-a-failed-kickstarter/", "published_at": "2016-03-28T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c4315fb43657", "title": "Democratizing publishing", "url": "https://www.abeautifulsite.net/posts/democratizing-publishing/", "published_at": "2016-03-28T00:00:00+00:00" }, { "id": "01a0871e-ab62-7365-a40e-c43160395dcd", "title": "Animated CSS hamburger icons", "url": "https://www.abeautifulsite.net/posts/animated-css-hamburger-icons/", "published_at": "2016-03-07T00:00:00+00:00" }, { "id": "01a0871e-ab63-7360-8072-96218cf072ff", "title": "Flushing DNS cache on macOS", "url": "https://www.abeautifulsite.net/posts/flush-dns-cache-on-os-x/", "published_at": "2016-03-02T00:00:00+00:00" }, { "id": "01a0871e-ab63-7360-8072-96218d33f49e", "title": "A clean fade-in effect for webpages", "url": "https://www.abeautifulsite.net/posts/a-clean-fade-in-effect-for-webpages/", "published_at": "2015-09-23T00:00:00+00:00" } ] posts Claim your blog
Back to abeautifulsite.net
Blog · corpus.blog/blogs/abeautifulsite.net/posts

abeautifulsite.net

abeautifulsite.net

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015