41554 blogs · [ { "id": "01a0b68b-4ced-700c-85ab-4acdc0846392", "title": "Salma Alam-Naylor", "url": "https://whitep4nth3r.com/", "published_at": "2026-09-07T05:20:44+00:00" }, { "id": "01a0821a-2051-7146-b097-0589164a0296", "title": "Goodbye, forever, probably.", "url": "https://whitep4nth3r.com/blog/goodbye-forever-probably/", "published_at": "2026-07-02T23:00:00+00:00" }, { "id": "01a0821a-2051-7146-b097-05891678ed13", "title": "How I made a 45-video course without wanting to die", "url": "https://whitep4nth3r.com/blog/how-i-made-a-45-video-course/", "published_at": "2026-06-03T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9efb9a8cc", "title": "I released a song for the first time in 15 years", "url": "https://whitep4nth3r.com/blog/new-electronica-music-manchester-uk/", "published_at": "2026-04-23T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f05b3103", "title": "I am in an abusive relationship with the technology industry", "url": "https://whitep4nth3r.com/blog/i-am-in-an-abusive-relationship-with-the-technology-industry/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f129f84a", "title": "How to make your first contribution to an open source project", "url": "https://whitep4nth3r.com/blog/how-to-make-your-first-open-source-contribution/", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f2192efd", "title": "I built a website for drummers", "url": "https://whitep4nth3r.com/blog/website-for-drummers-free-pdf-downloads-transcriptions/", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f28b4cdd", "title": "I tracked everything I wore in 2025. Was it worth it?", "url": "https://whitep4nth3r.com/blog/i-tracked-everything-i-wore-in-2025/", "published_at": "2026-01-11T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f2b52c64", "title": "I redesigned my website (again)", "url": "https://whitep4nth3r.com/blog/website-redesign-2026/", "published_at": "2026-01-09T19:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f326d57c", "title": "This is not a 2025 wrap up post", "url": "https://whitep4nth3r.com/blog/this-is-not-a-2025-wrap-up-post/", "published_at": "2026-01-01T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f34fa9ac", "title": "All good things must come to an end", "url": "https://whitep4nth3r.com/blog/goodbye-twitch/", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f40000e9", "title": "Is the BenQ coding monitor any good?", "url": "https://whitep4nth3r.com/blog/is-the-benq-coding-monitor-any-good-review/", "published_at": "2025-11-25T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f4e116ab", "title": "We all have a choice", "url": "https://whitep4nth3r.com/blog/we-all-have-a-choice/", "published_at": "2025-09-29T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f529d945", "title": "I am 40", "url": "https://whitep4nth3r.com/blog/i-am-40/", "published_at": "2025-09-25T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba338c7a06", "title": "An Introduction to the World Wide Web for Very Senior Programmers", "url": "https://whitep4nth3r.com/talks/an-introduction-to-the-world-wide-web-for-very-senior-programmers/", "published_at": "2025-09-20T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f5725422", "title": "How to delete all squash-merged local git branches with one terminal command", "url": "https://whitep4nth3r.com/blog/how-to-delete-all-squash-merged-local-git-branches-with-one-terminal-command/", "published_at": "2025-09-04T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f6442dcb", "title": "Why is CSS ::first-letter not working?", "url": "https://whitep4nth3r.com/blog/why-is-css-first-letter-not-working/", "published_at": "2025-08-20T01:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f69335ed", "title": "Your Twitch live stream graphics don’t really matter, but they can help", "url": "https://whitep4nth3r.com/blog/create-free-twitch-live-stream-graphics/", "published_at": "2025-08-19T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f6eb0569", "title": "How I set up my Dygma Defy keyboard layers", "url": "https://whitep4nth3r.com/blog/dygma-defy-keyboard-layers/", "published_at": "2025-07-29T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f77a359e", "title": "Put your phone down", "url": "https://whitep4nth3r.com/blog/put-your-phone-down/", "published_at": "2025-07-17T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f80fc2e1", "title": "Why Women in Tech isn't enough", "url": "https://whitep4nth3r.com/blog/why-women-in-tech-isnt-enough/", "published_at": "2025-07-15T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f88916f1", "title": "The promise that wasn’t kept", "url": "https://whitep4nth3r.com/blog/the-promise-that-wasnt-kept/", "published_at": "2025-05-28T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f8d9038f", "title": "The experience is enough", "url": "https://whitep4nth3r.com/blog/the-experience-is-enough/", "published_at": "2025-05-12T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f8e4defc", "title": "It wasn’t the idea that failed: it was the execution", "url": "https://blog.nordcraft.com/it-wasnt-the-idea-that-failed-it-was-the-execution", "published_at": "2025-05-08T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f9076392", "title": "Thrive", "url": "https://whitep4nth3r.com/blog/thrive/", "published_at": "2025-04-28T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f969c829", "title": "Does AI really make you more productive?", "url": "https://blog.nordcraft.com/does-ai-really-make-you-more-productive", "published_at": "2025-03-28T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f9babf1f", "title": "Is this the next step in the evolution of front end dev?", "url": "https://whitep4nth3r.com/blog/the-next-step-in-the-evolution-of-front-end-dev/", "published_at": "2025-03-03T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9f9ffdd05", "title": "You are more than the tools you use: tell your story", "url": "https://whitep4nth3r.com/blog/you-are-more-than-the-tools-you-use/", "published_at": "2025-02-12T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fabb6b7e", "title": "3 reasons you should tour a conference talk", "url": "https://whitep4nth3r.com/blog/3-reasons-you-should-tour-a-conference-talk/", "published_at": "2025-02-11T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fb6cb2bf", "title": "A case for getting dressed every day", "url": "https://whitep4nth3r.com/blog/get-dressed-every-day/", "published_at": "2025-02-07T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fbaa587f", "title": "How I created a newsletter I actually enjoy writing", "url": "https://whitep4nth3r.com/blog/how-to-create-a-newsletter/", "published_at": "2025-02-06T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fbe66dcb", "title": "How I learned to code with my voice", "url": "https://whitep4nth3r.com/blog/how-i-learned-to-code-with-my-voice/", "published_at": "2025-02-04T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fcd3cf63", "title": "How to build a copy code snippet button and why it matters", "url": "https://whitep4nth3r.com/blog/how-to-build-a-copy-code-snippet-button/", "published_at": "2025-01-24T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fd3035e6", "title": "A reluctant roundup of 2024", "url": "https://whitep4nth3r.com/blog/a-reluctant-roundup-of-2024/", "published_at": "2025-01-03T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fd304d67", "title": "It’s OK to have a slow day", "url": "https://whitep4nth3r.com/blog/its-ok-to-have-a-slow-day/", "published_at": "2024-12-17T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fe1c6fb1", "title": "Your live coding stream does not need a bigger audience", "url": "https://whitep4nth3r.com/blog/your-live-coding-stream-does-not-need-a-bigger-audience/", "published_at": "2024-12-11T12:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9fee96e82", "title": "The 4 types of DevRel content", "url": "https://whitep4nth3r.com/blog/stop-writing-seo-first-the-4-types-of-devrel-content-plus-leading-themes/", "published_at": "2024-12-11T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52b9ffb41588", "title": "A story about a coat", "url": "https://whitep4nth3r.com/blog/how-making-an-impulsive-purchase-made-me-realise-i-havent-been-ok-since-my-dad-died/", "published_at": "2024-12-08T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba001fdd2e", "title": "How I reduced an API call from >5 seconds to under 100ms", "url": "https://blog.sentry.io/how-i-reduced-an-api-call-from-greater-than-5-seconds-to-under-100ms/", "published_at": "2024-12-05T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba00d45f41", "title": "Paths to business value in Developer Relations", "url": "https://whitep4nth3r.com/blog/defining-paths-to-business-value-in-developer-relations/", "published_at": "2024-11-26T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0179deb0", "title": "How I show Bluesky likes on my blog posts", "url": "https://whitep4nth3r.com/blog/show-bluesky-likes-on-blog-posts/", "published_at": "2024-11-22T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba33cc8500", "title": "Entertainment as Code: Finale", "url": "https://whitep4nth3r.com/talks/entertainment-as-code-finale/", "published_at": "2024-10-11T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba01d49915", "title": "Sentry can’t fix React hydration errors, but it can really help you debug them", "url": "https://blog.sentry.io/sentry-cant-fix-react-hydration-errors-but-it-can-really-help-you-debug-them/", "published_at": "2024-09-24T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0286f016", "title": "Work is meaningless, and it almost killed my husband", "url": "https://whitep4nth3r.com/blog/work-is-meaningless/", "published_at": "2024-09-22T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba03345817", "title": "How to make your web page faster before it even loads", "url": "https://blog.sentry.io/how-to-make-your-web-page-faster-before-it-even-loads/", "published_at": "2024-08-19T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba03b042e6", "title": "I conducted a community survey and here’s what I learned", "url": "https://whitep4nth3r.com/blog/community-survey-2024/", "published_at": "2024-07-22T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0432be07", "title": "Your bad LCP score might be a backend issue", "url": "https://blog.sentry.io/your-bad-lcp-score-might-be-a-backend-issue/", "published_at": "2024-07-02T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba046c906d", "title": "How To Hack Your Google Lighthouse Scores In 2024", "url": "https://www.smashingmagazine.com/2024/06/how-hack-google-lighthouse-scores-2024/", "published_at": "2024-06-11T11:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba04ec0319", "title": "One does not simply delete cookies", "url": "https://whitep4nth3r.com/blog/cookies-not-deleted/", "published_at": "2024-06-09T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba05cc3c54", "title": "5 easy tips to improve your personal website performance", "url": "https://blog.sentry.io/5-easy-tips-to-improve-your-personal-website-performance/", "published_at": "2024-05-15T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba064c1235", "title": "How to prevent Prettier putting a full stop on a new line after a link", "url": "https://whitep4nth3r.com/blog/prevent-prettier-putting-a-full-stop-on-a-new-line/", "published_at": "2024-05-12T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0681b576", "title": "Why don’t we talk about minifying CSS anymore?", "url": "https://blog.sentry.io/why-dont-we-talk-about-minifying-css/", "published_at": "2024-04-24T04:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba06827752", "title": "Your background images might be causing CLS", "url": "https://blog.sentry.io/your-background-images-might-be-causing-cls/", "published_at": "2024-04-11T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba06dfdc51", "title": "How I fixed my brutal TTFB", "url": "https://blog.sentry.io/how-i-fixed-my-brutal-ttfb/", "published_at": "2024-03-27T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba07528134", "title": "What is INP and why you should care", "url": "https://blog.sentry.io/what-is-inp/", "published_at": "2024-03-11T12:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0802b5ac", "title": "My blog post workflow", "url": "https://whitep4nth3r.com/blog/my-blog-post-workflow/", "published_at": "2024-03-11T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba08edd592", "title": "The future of Jamstack is anti-capitalist", "url": "https://whitep4nth3r.com/blog/the-future-of-jamstack-is-anti-capitalist/", "published_at": "2024-02-21T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba09449008", "title": "Ramblings about JavaScript scope, weird errors and frameworks", "url": "https://whitep4nth3r.com/blog/ramblings-about-javascript-scope-weird-errors-frameworks/", "published_at": "2024-02-20T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba096ed9f6", "title": "How to deal with API rate limits", "url": "https://blog.sentry.io/how-to-deal-with-api-rate-limits/", "published_at": "2024-01-25T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba09e6dbb2", "title": "Twitter ruined your link previews: here’s how Cloudinary can help", "url": "https://cloudinary.com/blog/twitter-ruined-your-link-previews", "published_at": "2023-12-20T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0a2fd905", "title": "How to fix error: invalid character in entity name in RSS feeds", "url": "https://whitep4nth3r.com/blog/how-to-fix-error-invalid-character-in-entity-name-rss-feeds/", "published_at": "2023-12-18T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0b02ff32", "title": "Fallbacks for HTTP 404 images in HTML and JavaScript", "url": "https://blog.sentry.io/fallbacks-for-http-404-images-in-html-and-javascript/", "published_at": "2023-12-14T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0b4c53aa", "title": "Everything I install and set up on a new MacBook as a web developer", "url": "https://whitep4nth3r.com/blog/everything-i-install-and-set-up-on-a-new-macbook-as-a-web-developer/", "published_at": "2023-12-05T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0bc59ff9", "title": "A story about HTTP status codes and why you should read documentation", "url": "https://blog.sentry.io/http-status-codes-and-reading-docs/", "published_at": "2023-11-10T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba34ba3a3a", "title": "Entertainment as Code: Premier", "url": "https://whitep4nth3r.com/talks/entertainment-as-code-premier/", "published_at": "2023-11-10T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0c84bc27", "title": "Using hooks to monitor and error track with Sentry when self-hosting Directus", "url": "https://docs.directus.io/blog/hooks-monitoring-error-tracking-sentry.html", "published_at": "2023-10-11T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0d7c1dee", "title": "How to use jQuery with Astro", "url": "https://whitep4nth3r.com/blog/how-to-use-jquery-with-astro/", "published_at": "2023-09-28T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0e3061f9", "title": "From LCP to CLS: Improve your Core Web Vitals with Image Loading Best Practices", "url": "https://blog.sentry.io/from-lcp-to-cls-improve-your-core-web-vitals-with-image-loading-best/", "published_at": "2023-09-21T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0ed44096", "title": "5 reasons you should hire me as your next developer experience engineer", "url": "https://whitep4nth3r.com/blog/hire-me/", "published_at": "2023-07-16T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0fd2570f", "title": "How I deploy my website using my Apple Watch", "url": "https://whitep4nth3r.com/blog/deploy-website-using-apple-watch/", "published_at": "2023-06-25T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba0fe2392a", "title": "The best light/dark mode theme toggle in JavaScript", "url": "https://whitep4nth3r.com/blog/best-light-dark-mode-theme-toggle-javascript/", "published_at": "2023-06-19T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba10c18475", "title": "A/B test CMS authored content with Netlify Edge Functions", "url": "https://www.netlify.com/blog/a-b-test-cms-authored-content-netlify-edge-functions/", "published_at": "2023-05-18T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba113bdfd2", "title": "How to split traffic and A/B test different page layouts on the same URL", "url": "https://www.netlify.com/blog/how-to-split-traffic-a-b-test-page-layouts-same-url/", "published_at": "2023-05-14T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba11f877c6", "title": "The universal CSS * selector isn't actually universal", "url": "https://whitep4nth3r.com/blog/universal-css-selector-pseudo-elements/", "published_at": "2023-05-03T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1272ea58", "title": "How to hide text in CSS pseudo elements from screen readers", "url": "https://whitep4nth3r.com/blog/hide-text-in-css-pseudo-elements-from-screen-readers/", "published_at": "2023-04-23T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba129f8c4e", "title": "The Acronyms of Rendering on the Web", "url": "https://www.netlify.com/blog/the-acronyms-of-rendering/", "published_at": "2023-04-16T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba12d20a61", "title": "Improve E-commerce Site Performance with Rendering Strategies", "url": "https://www.netlify.com/blog/improve-e-commerce-site-performance-with-rendering-strategies/", "published_at": "2023-04-12T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba13acec73", "title": "Make time", "url": "https://whitep4nth3r.com/blog/make-time/", "published_at": "2023-03-17T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba35247466", "title": "We actually need more JavaScript frameworks", "url": "https://whitep4nth3r.com/talks/we-need-more-javascript-frameworks/", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba13e5c29f", "title": "How do I get started in web development?", "url": "https://whitep4nth3r.com/blog/how-do-i-get-started-in-web-development/", "published_at": "2023-01-06T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba14309874", "title": "2022: what I made, what I learned, and what I didn't do", "url": "https://whitep4nth3r.com/blog/2022-in-review/", "published_at": "2023-01-03T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba14a9d504", "title": "How to get the user’s timezone in JavaScript with Edge Functions", "url": "https://ntl.fyi/3FjEMGX", "published_at": "2022-12-12T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba14aa5b08", "title": "A responsive striped CSS gradient inspired by 80s VHS tapes", "url": "https://whitep4nth3r.com/blog/responsive-striped-css-pattern-80s-vhs-tapes/", "published_at": "2022-11-22T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba14d51638", "title": "Single-page applications, multi-page applications, the history of Twitter tech, and a failed project", "url": "https://whitep4nth3r.com/blog/twitter-tech-history-spa/", "published_at": "2022-11-15T00:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1594147e", "title": "Personalize your static site based on a previous site referral", "url": "https://ntl.fyi/3SBU2DY", "published_at": "2022-10-25T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba160ef3f7", "title": "I changed my mind about writing new JavaScript frameworks", "url": "https://whitep4nth3r.com/blog/write-a-new-javascript-framework/", "published_at": "2022-10-03T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba16b44eb5", "title": "Rewrite your git history in 4 friendly commands", "url": "https://whitep4nth3r.com/blog/rewrite-git-history/", "published_at": "2022-09-05T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba176c6894", "title": "What's the difference between : and :: in CSS?", "url": "https://whitep4nth3r.com/blog/pseudo-classes-and-pseudo-elements/", "published_at": "2022-08-31T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1843e60f", "title": "Rewrite HTML and transform page props in Next.js with Next.js Advanced Middleware", "url": "https://ntl.fyi/nextjs-rewrite-html-at-the-edge", "published_at": "2022-08-24T15:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba191ae184", "title": "Add personalization to static HTML with Netlify Edge Functions — no browser JavaScript required", "url": "https://www.netlify.com/blog/add-personalization-to-static-html-with-edge-functions-no-browser-javascript/", "published_at": "2022-08-11T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba3555ae6f", "title": "We're all living on it. But what exactly is The Edge?", "url": "https://whitep4nth3r.com/talks/were-all-living-on-it-but-what-exactly-is-the-edge/", "published_at": "2022-08-10T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba19ca5de0", "title": "How to view Google Lighthouse scores for your site in Netlify", "url": "https://www.netlify.com/blog/view-google-lighthouse-scores-visualizations/", "published_at": "2022-07-24T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba19e5c719", "title": "Should I write a new JavaScript framework?", "url": "https://whitep4nth3r.com/blog/should-i-write-a-new-javascript-framework/", "published_at": "2022-06-22T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1a548cc6", "title": "How to deploy an Astro site", "url": "https://www.netlify.com/blog/how-to-deploy-astro/", "published_at": "2022-06-12T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1b52a708", "title": "Build a business card CLI tool", "url": "https://whitep4nth3r.com/blog/build-a-business-card-cli-tool/", "published_at": "2022-06-08T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1c2d7458", "title": "Level up your link previews in Slack", "url": "https://whitep4nth3r.com/blog/level-up-your-link-previews-in-slack/", "published_at": "2022-05-29T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1d1e283b", "title": "Light and dark mode in just 14 lines of CSS", "url": "https://whitep4nth3r.com/blog/quick-light-dark-mode-css/", "published_at": "2022-05-11T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1d603fd4", "title": "What is Jamstack?", "url": "https://whitep4nth3r.com/blog/what-is-jamstack/", "published_at": "2022-05-10T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1e287ba4", "title": "We're all living on it. But what exactly is The Edge?", "url": "https://whitep4nth3r.com/blog/what-is-the-edge-serverless-functions/", "published_at": "2022-04-26T23:00:00+00:00" }, { "id": "01a0821a-2052-7342-a9d6-52ba1f054a43", "title": "HTML is all you need to make a website", "url": "https://whitep4nth3r.com/blog/html-is-all-you-need-to-make-a-website/", "published_at": "2022-04-04T23:00:00+00:00" } ] posts Claim your blog
Back to Salma Alam-Naylor
Blog · corpus.blog/blogs/whitep4nth3r.com/posts

Salma Alam-Naylor

whitep4nth3r.com

2026

2025

2024

2023

2022