During our heated panel at EdgeConf 2015 on progressive enhancement Jeremy points out that by trying to anticipate your users' needs, you're making assumptions, and you know what they say about assumptions.
Although he didn't say so explicitly, there was certainly an undertone that it was something we should admit to ourselves. I'd like to add: for better or worse.
The wider impact of assumptions about your user (for example that they're viewing on a desktop device) is the exclusion of others.
Jeremy argued, rightly, that you should aim to develop for the absolute lowest technological solution as possible to suit your all your visitors basic needs: known and unknown.
I'll say it now: I make all kinds of assumptions about my users. A couple of the most common assumption I make is that they can read English, and that they're visiting using a browser that's capable of rendering HTML correctly.
Then my base level assumption changes depending on the application and adjusts over time depending on feedback.
Lee Byron, working for Facebook, was a fellow panellist brought up an excellent case study that users in Japan, unbeknownst to Facebook had such oddball (but popular) devices that HTML and CSS wasn't rendering as expected leaving the site in an unusable (or very difficult to use) state.
How low do you go? The real answer is you can never go too low because there's always going to be a case that isn't catered for because you can't test for it.
I believe, that progressive enhancing should be part of your workflow. Common HTML elements, delivering baseline functionality to all users, and then enhancing. All does not mean it has to work with cURL. That's my take. You have to decide for yourself.
Don't be ashamed. Just own those assumptions.
Also, thank you to Jeremy for running his eyes over this post.
MY WORKSHOPMaster Next.js
Everything you need to master universal React with Next.js in a single intense master class. Includes full pass to ffconf, the web developer conf.