<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: frontend</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/frontend.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2025-05-31T14:23:35+00:00</updated><author><name>Simon Willison</name></author><entry><title>No build frontend is so much more fun</title><link href="https://simonwillison.net/2025/May/31/no-build/#atom-tag" rel="alternate"/><published>2025-05-31T14:23:35+00:00</published><updated>2025-05-31T14:23:35+00:00</updated><id>https://simonwillison.net/2025/May/31/no-build/#atom-tag</id><summary type="html">
    &lt;p&gt;If you've found web development frustrating over the past 5-10 years, here's something that has worked worked great for me: give yourself permission to avoid any form of frontend build system (so no npm / React / TypeScript / JSX / Babel / Vite / Tailwind etc) and code in HTML and JavaScript like it's 2009.&lt;/p&gt;
&lt;p&gt;The joy came flooding back to me! It turns out browser APIs are really good now.&lt;/p&gt;
&lt;p&gt;You don't even need jQuery to paper over the gaps any more - use &lt;code&gt;document.querySelectorAll()&lt;/code&gt; and &lt;code&gt;fetch()&lt;/code&gt; directly and see how much value you can build with a few dozen lines of code.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="html"/><category term="javascript"/><category term="web-development"/><category term="frontend"/></entry><entry><title>Quoting Marco Rogers</title><link href="https://simonwillison.net/2024/Jul/5/marco-rogers/#atom-tag" rel="alternate"/><published>2024-07-05T18:19:26+00:00</published><updated>2024-07-05T18:19:26+00:00</updated><id>https://simonwillison.net/2024/Jul/5/marco-rogers/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://polotek.net/posts/the-frontend-treadmill/"&gt;&lt;p&gt;Product teams that are smart are getting off the treadmill. Whatever framework you currently have, start investing in getting to know it deeply. Learn the tools until they are not an impediment to your progress. That’s the only option. Replacing it with a shiny new tool is a trap. [...]&lt;/p&gt;
&lt;p&gt;Companies that want to reduce the cost of their frontend tech becoming obsoleted so often should be looking to get back to fundamentals. Your teams should be working closer to the web platform with a lot less complex abstractions. We need to relearn what the web is capable of and go back to that.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://polotek.net/posts/the-frontend-treadmill/"&gt;Marco Rogers&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="frontend"/></entry><entry><title>Skew protection in Vercel</title><link href="https://simonwillison.net/2024/Mar/20/skew-protection-in-vercel/#atom-tag" rel="alternate"/><published>2024-03-20T14:06:38+00:00</published><updated>2024-03-20T14:06:38+00:00</updated><id>https://simonwillison.net/2024/Mar/20/skew-protection-in-vercel/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://vercel.com/docs/deployments/skew-protection"&gt;Skew protection in Vercel&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Version skew is a name for the bug that occurs when your user loads a web application and then unintentionally keeps that browser tab open across a deployment of a new version of the app. If you’re unlucky this can lead to broken behaviour, where a client makes a call to a backend endpoint that has changed in an incompatible way.&lt;/p&gt;

&lt;p&gt;Vercel have an ingenious solution to this problem. Their platform already makes it easy to deploy many different instances of an application. You can now turn on “skew protection” for a number of hours which will keep older versions of your backend deployed.&lt;/p&gt;

&lt;p&gt;The application itself can then include its desired deployment ID in a x-deployment-id header, a __vdpl cookie or a ?dpl= query string parameter.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/vercel_changes/status/1770280131250286851"&gt;Vercel changes&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/zero-downtime"&gt;zero-downtime&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/vercel"&gt;vercel&lt;/a&gt;&lt;/p&gt;



</summary><category term="frontend"/><category term="zero-downtime"/><category term="vercel"/></entry><entry><title>Defensive CSS</title><link href="https://simonwillison.net/2022/Jul/6/defensive-css/#atom-tag" rel="alternate"/><published>2022-07-06T17:16:30+00:00</published><updated>2022-07-06T17:16:30+00:00</updated><id>https://simonwillison.net/2022/Jul/6/defensive-css/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://defensivecss.dev/"&gt;Defensive CSS&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Fantastic new site by Ahmad Shadeed describing in detail CSS patterns which can help build layouts that adapt well to unexpected content—things like overly long titles or strange aspect ratio images, common when you are designing against UGC.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=31984951"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ahmad-shadeed"&gt;ahmad-shadeed&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="frontend"/><category term="ahmad-shadeed"/></entry><entry><title>The balance has shifted away from SPAs</title><link href="https://simonwillison.net/2022/May/22/the-balance-has-shifted-away-from-spas/#atom-tag" rel="alternate"/><published>2022-05-22T02:47:46+00:00</published><updated>2022-05-22T02:47:46+00:00</updated><id>https://simonwillison.net/2022/May/22/the-balance-has-shifted-away-from-spas/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://nolanlawson.com/2022/05/21/the-balance-has-shifted-away-from-spas/"&gt;The balance has shifted away from SPAs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“There’s a feeling in the air. A zeitgeist. SPAs are no longer the cool kids they once were 10 years ago.” Nolan Lawson offers some opinions on why the pendulum seems to be swinging back in favour of server-side rendering over rendering every page entirely on the client. He argues that paint holding, back-forward caching and service workers have made the benefits of SPAs over MPAs much less apparent. I’m inclined to agree.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://news.ycombinator.com/item?id=31459316"&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/nolan-lawson"&gt;nolan-lawson&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="frontend"/><category term="nolan-lawson"/></entry><entry><title>Frontend in 2017: The important parts</title><link href="https://simonwillison.net/2017/Dec/29/frontend-in-2017-the-important-parts--logrocket/#atom-tag" rel="alternate"/><published>2017-12-29T08:30:53+00:00</published><updated>2017-12-29T08:30:53+00:00</updated><id>https://simonwillison.net/2017/Dec/29/frontend-in-2017-the-important-parts--logrocket/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.logrocket.com/frontend-in-2017-the-important-parts-4548d085977f"&gt;Frontend in 2017: The important parts&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Keeping track of developments in the frontend and JavaScript community is pretty much a full time job here days, so I found this summary of trends and developments over 2017 very useful for trying to catch up.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="javascript"/><category term="frontend"/></entry><entry><title>What are some ways that brought your proficiency of CSS to another level?</title><link href="https://simonwillison.net/2013/Nov/17/what-are-some-ways/#atom-tag" rel="alternate"/><published>2013-11-17T11:37:00+00:00</published><updated>2013-11-17T11:37:00+00:00</updated><id>https://simonwillison.net/2013/Nov/17/what-are-some-ways/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-some-ways-that-brought-your-proficiency-of-CSS-to-another-level/answer/Simon-Willison"&gt;What are some ways that brought your proficiency of CSS to another level?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An exercise I found useful when I first learned CSS was to implement CSS versions of the designs of popular sites. This was back when most sites still used tables for layout.&lt;/p&gt;

&lt;p&gt;If you do this, it's not necessarily a good idea to publish your work (though it may be tempting). It's a great learning exercise though.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="css"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry><entry><title>Should I ever use GIF image format for non animated elements?</title><link href="https://simonwillison.net/2013/Oct/30/should-i-ever-use/#atom-tag" rel="alternate"/><published>2013-10-30T16:46:00+00:00</published><updated>2013-10-30T16:46:00+00:00</updated><id>https://simonwillison.net/2013/Oct/30/should-i-ever-use/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Should-I-ever-use-GIF-image-format-for-non-animated-elements/answer/Simon-Willison"&gt;Should I ever use GIF image format for non animated elements?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These days probably not - anything non-animated that you would use a GIF for is generally better as a PNG.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/gif"&gt;gif&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="gif"/><category term="quora"/><category term="frontend"/></entry><entry><title>What design techniques does Apple use in the introduction page of iPad Air?</title><link href="https://simonwillison.net/2013/Oct/29/what-design-techniques-does/#atom-tag" rel="alternate"/><published>2013-10-29T13:13:00+00:00</published><updated>2013-10-29T13:13:00+00:00</updated><id>https://simonwillison.net/2013/Oct/29/what-design-techniques-does/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-design-techniques-does-Apple-use-in-the-introduction-page-of-iPad-Air/answer/Simon-Willison"&gt;What design techniques does Apple use in the introduction page of iPad Air?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Apple used the same technique on their &lt;span&gt;&lt;a href="http://www.apple.com/mac-pro/"&gt;Apple - Mac Pro&lt;/a&gt;&lt;/span&gt; page. I first saw this trick used on the &lt;span&gt;&lt;a href="http://2011.beercamp.com/"&gt;BeerCamp at SXSW 2011&lt;/a&gt;&lt;/span&gt; page.&lt;/p&gt;

&lt;p&gt;It's not that hard to achieve - the basic principle is to attach a JavaScript event handler to the onscroll event.&lt;/p&gt;

&lt;p&gt;There are even a bunch of open source libraries to help you achieve this kind of effect, such as &lt;span&gt;&lt;a href="http://johnpolacek.github.io/scrollorama/"&gt;scrollorama&lt;/a&gt;&lt;/span&gt; and &lt;span&gt;&lt;a href="http://prinzhorn.github.io/skrollr/"&gt;skrollr&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apple"&gt;apple&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design"&gt;design&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ipad"&gt;ipad&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="apple"/><category term="design"/><category term="html5"/><category term="ipad"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry><entry><title>Is there any alternative to devbootcamp.com or hackreactor.com in Europe?</title><link href="https://simonwillison.net/2013/Aug/8/is-there-any-alternative/#atom-tag" rel="alternate"/><published>2013-08-08T14:51:00+00:00</published><updated>2013-08-08T14:51:00+00:00</updated><id>https://simonwillison.net/2013/Aug/8/is-there-any-alternative/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Is-there-any-alternative-to-devbootcamp-com-or-hackreactor-com-in-Europe/answer/Simon-Willison"&gt;Is there any alternative to devbootcamp.com or hackreactor.com in Europe?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;span&gt;&lt;a href="http://www.makersacademy.com/"&gt;http://www.makersacademy.com/&lt;/a&gt;&lt;/span&gt; are running a similar program in the Old Street area of London.
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="javascript"/><category term="programming"/><category term="quora"/><category term="frontend"/></entry><entry><title>Is there an alternative to media queries for responsive design?</title><link href="https://simonwillison.net/2013/Jul/20/is-there-an-alternative/#atom-tag" rel="alternate"/><published>2013-07-20T14:09:00+00:00</published><updated>2013-07-20T14:09:00+00:00</updated><id>https://simonwillison.net/2013/Jul/20/is-there-an-alternative/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Is-there-an-alternative-to-media-queries-for-responsive-design/answer/Simon-Willison"&gt;Is there an alternative to media queries for responsive design?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Yes: use percentage measurements for your layout components. That way you can build a website that works on a much larger range of screen sizes. You can combine this approach with media queries - for example, you could specify that your site has a 25% wide navigation menu and a 75% wide content area on devices that are wider than 400px, but any smaller than that and it collapses to a single column layout with the menu hidden and accessible only through a menu bar icon.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-developers"&gt;web-developers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/responsivedesign"&gt;responsivedesign&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="css"/><category term="web-development"/><category term="quora"/><category term="frontend"/><category term="web-developers"/><category term="responsivedesign"/></entry><entry><title>What are the strategies for a front end developer to keep up to date with the emerging technologies?</title><link href="https://simonwillison.net/2013/Jan/3/what-are-the-strategies/#atom-tag" rel="alternate"/><published>2013-01-03T14:23:00+00:00</published><updated>2013-01-03T14:23:00+00:00</updated><id>https://simonwillison.net/2013/Jan/3/what-are-the-strategies/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-the-strategies-for-a-front-end-developer-to-keep-up-to-date-with-the-emerging-technologies/answer/Simon-Willison"&gt;What are the strategies for a front end developer to keep up to date with the emerging technologies?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Step one: find developers who you respect and subscribe to their blogs, follow them on Twitter/Google+/etc and try to understand what they are talking about and what they think is exciting.&lt;/p&gt;

&lt;p&gt;Step two: find some good dedicated online communities relating to those topics - mailing lists, forums, sub-reddits, Quora topics and so on. Get involved there.&lt;/p&gt;

&lt;p&gt;Step three: figure out the most vibrant conferences around that topic and go to one of them. For JavaScript Full Frontal in the UK or any of the JSconf series are worth a look. If you don't want to splash out for a conference, seek out local meetups and user groups and go to some free evening networking events.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="javascript"/><category term="web-development"/><category term="yui"/><category term="quora"/><category term="frontend"/></entry><entry><title>How does a front end developer avoid getting blamed?</title><link href="https://simonwillison.net/2012/Oct/20/how-does-a-front/#atom-tag" rel="alternate"/><published>2012-10-20T17:14:00+00:00</published><updated>2012-10-20T17:14:00+00:00</updated><id>https://simonwillison.net/2012/Oct/20/how-does-a-front/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/How-does-a-front-end-developer-avoid-getting-blamed/answer/Simon-Willison"&gt;How does a front end developer avoid getting blamed?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It is your fault. Part of being a good front-end engineer is knowing the ways in which a page might break and working with your team to mitigate them.&lt;/p&gt;

&lt;p&gt;This involves a LOT of work: plenty of browser testing, asynchronous loading techniques so external script errors won't kill your site, load testing, monitoring, carefully balancing the trade-offs of things like CDNs or external font services...&lt;/p&gt;

&lt;p&gt;Stuff will still break, and that's your fault for not thinking of everything - but you accept responsibility and take steps to prevent that particular problem from happening again. There should be no shame in making mistakes and learning from them - but seeking excuses rather than taking steps to prevent the problem from reoccurring is bad engineering.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-developers"&gt;web-developers&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="quora"/><category term="frontend"/><category term="web-developers"/></entry><entry><title>Can you mark items on a website as 'unread' without cookies?</title><link href="https://simonwillison.net/2012/Oct/20/can-you-mark-items/#atom-tag" rel="alternate"/><published>2012-10-20T13:44:00+00:00</published><updated>2012-10-20T13:44:00+00:00</updated><id>https://simonwillison.net/2012/Oct/20/can-you-mark-items/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Can-you-mark-items-on-a-website-as-unread-without-cookies/answer/Simon-Willison"&gt;Can you mark items on a website as &amp;#39;unread&amp;#39; without cookies?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It's not very exciting, but CSS will let you set different styles for visited vs unvisited links and the technique has worked reliably since the mid 1990s.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/cookies"&gt;cookies&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javafx"&gt;javafx&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="cookies"/><category term="html5"/><category term="javafx"/><category term="javascript"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry><entry><title>Why weren't the features of Sass originally built into CSS?</title><link href="https://simonwillison.net/2012/Aug/13/why-werent-the-features/#atom-tag" rel="alternate"/><published>2012-08-13T15:53:00+00:00</published><updated>2012-08-13T15:53:00+00:00</updated><id>https://simonwillison.net/2012/Aug/13/why-werent-the-features/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Why-werent-the-features-of-Sass-originally-built-into-CSS/answer/Simon-Willison"&gt;Why weren&amp;#39;t the features of Sass originally built into CSS?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is not a straight-forward issue: CSS has a very long, complicated history. A good starting point for understanding the reluctance of the CSS working group to add variables/constants etc to CSS is this essay by Bert Bos of the W3C (entitled Why “variables” in CSS are harmful) &lt;span&gt;&lt;a href="http://www.w3.org/People/Bos/CSS-variables"&gt;http://www.w3.org/People/Bos/CSS...&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css3"&gt;css3&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sass"&gt;sass&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="css"/><category term="css3"/><category term="web-development"/><category term="quora"/><category term="frontend"/><category term="sass"/></entry><entry><title>Why do tech companies provide MacBooks for software development?</title><link href="https://simonwillison.net/2012/Aug/7/why-do-tech-companies/#atom-tag" rel="alternate"/><published>2012-08-07T10:10:00+00:00</published><updated>2012-08-07T10:10:00+00:00</updated><id>https://simonwillison.net/2012/Aug/7/why-do-tech-companies/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Why-do-tech-companies-provide-MacBooks-for-software-development/answer/Simon-Willison"&gt;Why do tech companies provide MacBooks for software development?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Smart tech companies give their engineers the laptops that they ask for. Engineers are EXPENSIVE, and anything you can do to increase their productivity is worth the money. If they prefer to work on a Mac, buy them a Mac.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/software-engineering"&gt;software-engineering&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="software-engineering"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry><entry><title>How do you know the real size of a web page?</title><link href="https://simonwillison.net/2012/Jun/23/how-do-you-know/#atom-tag" rel="alternate"/><published>2012-06-23T17:56:00+00:00</published><updated>2012-06-23T17:56:00+00:00</updated><id>https://simonwillison.net/2012/Jun/23/how-do-you-know/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/How-do-you-know-the-real-size-of-a-web-page/answer/Simon-Willison"&gt;How do you know the real size of a web page?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Google Chrome developer tools can do this, on the Network tab. Take a look at the bottom blue bar (which says "5 requests | 29.49KB transferred")&lt;/p&gt;

&lt;div&gt;&lt;img src="https://qph.ec.quoracdn.net/main-qimg-cddae51a3d059aebb7edc35647383ba1" width="779" height="742" style="max-width: 100%" /&gt;&lt;/div&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="css"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry><entry><title>Why are front end developers so high in demand at startups if front end development is relatively easier than other fields of engineering?</title><link href="https://simonwillison.net/2012/Feb/13/why-are-front-end/#atom-tag" rel="alternate"/><published>2012-02-13T16:32:00+00:00</published><updated>2012-02-13T16:32:00+00:00</updated><id>https://simonwillison.net/2012/Feb/13/why-are-front-end/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Why-are-front-end-developers-so-high-in-demand-at-startups-if-front-end-development-is-relatively-easier-than-other-fields-of-engineering/answer/Simon-Willison"&gt;Why are front end developers so high in demand at startups if front end development is relatively easier than other fields of engineering?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You're starting with an invalid assumption. Front end development is absolutely not "easier" than other forms of engineering. &lt;/p&gt;

&lt;p&gt;When you're writing server-side code, you're writing for one language on one operating system with (usually) one database implementation. Write the code, test that it works, go home.&lt;/p&gt;

&lt;p&gt;Front end developers have to write code that works in dozens of different environments. It's not just different browsers (IE/Firefox/Safari/Chrome/Opera) - it's also the different versions of those browsers. IE 6, 7, 8, 9 and 10 all have their own bugs and limitations. Mobile is even worse - hundreds of different browser/OS/device variations, and even Android has bugs and even feature regressions on different browser versions.&lt;/p&gt;

&lt;p&gt;To make things worse, they have to do most of their work in HTML and CSS, which provide extremely limited tools for working around bugs (hence the past decade's obsession with CSS hacks). JavaScript helps a lot here because at least you can use feature detection (though that in itself is controversial due to the performance overhead) - but now you're handling even more code branches and potential areas for bugs to creep in.&lt;/p&gt;

&lt;p&gt;Not to mention that a good frontend engineer will need an understanding of web performance - which incorporates everything from DNS lookup times to HTTP caching behaviour to minification build scripts to CSS layout engine implementation details.&lt;/p&gt;

&lt;p&gt;Oh, and they're on the frontline of web application security, so they need to understand CSRF, XSS, Click Jacking, DNS pinning (that was a fun one), UTF-7 character encoding attacks...&lt;/p&gt;

&lt;p&gt;And these days there's responsive design, media queries, HTML5 AppCache, WebGL, CSS transforms, SVG, Canvas, localStorage, WebSockets and so on to worry about as well - each one introducing exciting new capabilities, and each one introducing brand new browser support challenges to figure out.&lt;/p&gt;

&lt;p&gt;Seriously. Server-side developers have it easy.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recruiting"&gt;recruiting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="programming"/><category term="recruiting"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry><entry><title>What specific skills are most important in a front-end web developer and in a back-end web developer?</title><link href="https://simonwillison.net/2011/Dec/8/what-specific-skills-are/#atom-tag" rel="alternate"/><published>2011-12-08T12:47:00+00:00</published><updated>2011-12-08T12:47:00+00:00</updated><id>https://simonwillison.net/2011/Dec/8/what-specific-skills-are/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-specific-skills-are-most-important-in-a-front-end-web-developer-and-in-a-back-end-web-developer/answer/Simon-Willison"&gt;What specific skills are most important in a front-end web developer and in a back-end web developer?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Understanding of web app security. If they don't know what XSS, CSRF and clickjacking are I'd be worried.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/recruiting"&gt;recruiting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webapps"&gt;webapps&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="recruiting"/><category term="webapps"/><category term="web-development"/><category term="quora"/><category term="frontend"/></entry></feed>