Notes from #lwsprogid

Modern Progressive Enhancement

  • PE!=without JS
  • ‘user’=browser + device + human
  • different experiences for different users, based on their capabilities
  • features depend on ‘user’s
  • browsers / devices / people have loads of different capabilities
  • separation: core vs enhancement
    • define core functionality
    • derive core dependencies
    • compare to your target market
    • everything else is an enhancement - accept that not everyone else can experience these things
  • Enhancements
    • define each enhancement
    • derive their dependencies
    • decide:
      • deliver to only enabled devices
      • polyfill / fallback
      • implement another way (cop-out)
    • first option is best for performance - purer
    • apply enhancement fully, or not at all
    • http://github.com/stucox/require-modernizr
    • lots of micro-enhancements don’t need detection, usually CSS3frills
    • RWD and Mobile-First are Progressive Enhancement
    • graceful degradation ~ atomic enhancements
  • for SEOand JavaScript as a core dependency, you can consider robot as a ‘user’

Online Identity

  • Do we always want to use the same identity online?
  • Authentication vs Authorisation
  • 91% of users use passwords from the top 1000
  • 45% of users leave instead of resetting their password
  • OpenID and OAuth are a PITA
  • OpenID Connect + OAuth2.0 could be the solutuion
  • 66% of users think social sign-in is a desirable alternative
  • ‘social’ vs ‘concrete’ Identity
  • ‘social’ is anonymous, or who you want people to think you are
  • banks &payment providers are more ‘concrete’
  • PayPal provide a developer API
    • login and seamless checkout.
    • can know who a user actually is.
  • well used authorization can improve the user experience
  • don’t throw up artificial barriers just for the sake of it - login can scare people away