9:00am–12:30pm Tuesday, June 12, 2018
To create a successful product, you need a solid understanding of your users. The key to success? Collaboration. Rachel Krause walks you through a collaborative process for creating a product users will love, from establishing users to creating a design that can be taken right into development without the need for high-fidelity mockups or detailed documentation.
Read more.
9:00am–12:30pm Tuesday, June 12, 2018
Don't be daunted by web accessibility testing. Nicolas Steenhout outlines an accessibility testing workflow that can be integrated in your day-to-day coding or testing workflows. You'll review automated versus manual testing and learn how to use a variety of testing tools on real-life sites.
Read more.
9:00am–12:30pm Tuesday, June 12, 2018
Performance is at the forefront of many, if not most, web development projects. Fortunately, modern browsers provide a wealth of performance-related information and services, which can be used to optimize page load speed and responsiveness. Dan Shappir offers an overview of the aptly named Web Performance API and shows how to best use it to extract detailed performance information.
Read more.
9:00am–12:30pm Tuesday, June 12, 2018
No runtime exceptions, no "undefined is not a function," no JavaScript fatigue—Elm is a functional programming language for building resilient frontend applications. Join Jeremy Fairbank to get hands-on experience with Elm and quickly learn how to build fast and safe applications with Elm's framework, the Elm Architecture.
Read more.
1:30pm–5:00pm Tuesday, June 12, 2018
Luca Mezzalira walks you through reactive programming using two different frameworks: Vue.js and MobX. You'll start with a basic example that will be extended during the workshop, adding new functionalities and analyzing how the reactive approach helps in your frontend projects.
Read more.
1:30pm–5:00pm Tuesday, June 12, 2018
Your web browser doesn't have a cute name like Alexa, Siri, or Cortana, but it can be just as talkative. Scott Davis explains why your smartphone, with its built-in speaker and microphone, is a perfect device for building a browser-based conversational UI.
Read more.
9:00am–9:40am Wednesday, June 13, 2018
WebAssembly has been hailed in some quarters as the next JavaScript, but the truth is much more complicated. Sasha Aickin outlines what WebAssembly is good for right now in today's shipping browsers. Through the lens of a project ported from JavaScript to WebAssembly, Sasha details when it is practical to use WebAssembly and when it is not.
Read more.
9:00am–9:40am Wednesday, June 13, 2018
Specialization among engineers and increasing levels of abstraction have created a situation in which almost no one has a complete view of how data moves through an entire system, end to end. We’ve all become distributed systems engineers, intentionally or not. Rachel Myers and Emily Nakashima detail tools and skills we can use to get ourselves out of the corner we’ve boxed ourselves into.
Read more.
9:50am–10:30am Wednesday, June 13, 2018
Nic Jansma and Charles Vazac perform an honest audit of several popular third-party libraries to understand their true cost to your site, exploring loading patterns, SPOF avoidance, JavaScript parsing, long tasks, runtime overhead, polyfill headaches, security and privacy concerns, and more. They also share tools to help you decide if a library’s risks and unseen costs are worth it.
Read more.
9:50am–10:30am Wednesday, June 13, 2018
Functional programming is all the rage these days, but with lingo like "lambdas," "functors," and "monads," it can be intimidating to get started. Join Kyle Shevlin to learn just enough functional programming for you and your team to get started without getting lost in the vernacular.
Read more.
9:50am–10:30am Wednesday, June 13, 2018
GraphQL is a new API technology that has exploded in popularity over the past year. But what's all the hype about? Peggy Rayzis details what GraphQL is and explains how integrating it into your application can solve many of the pain points frontend developers face when working with remote data.
Read more.
9:50am–10:30am Wednesday, June 13, 2018
Visual Studio Code is catching fire with JavaScript developers because it can do a lot, from productivity tips to debugging Docker containers on the fly to hacking the editor itself. Join Burke Holland to explore the best features and extensions for VS Code that nobody ever bothered to tell you about.
Read more.
9:50am–10:30am Wednesday, June 13, 2018
Modern backend architectures increasingly stitch together loosely coupled services through event-driven pipelines. Thomas Bouldin and Sarah Allen explain how “stackless” programming can free you to build applications faster that scale more smoothly.
Read more.
9:50am–10:30am Wednesday, June 13, 2018
Alexis Menard offers an overview of the WebXR Device API (formerly known as WebVR 2.0) and explains how to build a VR experience on the web from scratch. You'll get familiar with VR concepts, learn how to use them with the WebXR Device API, and discover how to port your existing WebVR 1.1 experience if you already have one.
Read more.
11:00am–11:40am Wednesday, June 13, 2018
After you understand how important web performance is and have applied basic techniques, what's next? Max Firtman covers extreme web performance techniques that will blow your mind, from new compression algorithms and new image formats to client hints and HTTP/2 push. Join in to learn how to hack web performance.
Read more.
11:00am–11:40am Wednesday, June 13, 2018
We’ve become accustomed to developing complex applications with powerful desktop and laptop machines. Unfortunately, this emphasizes how slow the mobile web is. Houssein Djirdeh offers an overview of the PRPL pattern, explaining what it is and how you can use it to build fast and reliable progressive single-page applications for users on any device.
Read more.
11:00am–11:40am Wednesday, June 13, 2018
Gergely Németh outlines the evolution of a Node.js application from a proof-of-concept implementation to a mature, prospering product that earns revenue and scales to millions of customers
Read more.
11:00am–11:40am Wednesday, June 13, 2018
With over 40 possible values for the display property, it's no wonder that CSS can be tricky, especially for layouts. Martine Dowden offers an overview of the display property and demonstrates how to use it to lay out content.
Read more.
3:35pm–4:15pm Wednesday, June 13, 2018
Have you ever thought about how your site’s performance compares to the web as a whole? Paul Calvano explores how the HTTP Archive works, how people are using this dataset, and some ways that Akamai has leveraged data within the HTTP Archive to help its customers.
Read more.
3:35pm–4:15pm Wednesday, June 13, 2018
Bradley Holt demonstrates how service workers, Apache CouchDB (an open source document database), Hoodie (an open source Node.js backend for offline first apps), and PouchDB (an open source JavaScript database that syncs) can be used to build progressive web apps using an offline-first approach in order to provide fast, zero-latency access to content and data stored directly on the device.
Read more.
3:35pm–4:15pm Wednesday, June 13, 2018
Many popular services employ real-time data to engage users, but traditional web technologies like REST and Ajax were not designed for the real-time web. Matthew Larson and Ian James share an alternative approach to real-time data that is easier to understand and scales well using Redux and WebSockets and demonstrate these principles in action with a real-time multiplayer game.
Read more.
4:25pm–5:05pm Wednesday, June 13, 2018
Your app is bigger and slower than it needs to be. Brian Holt demonstrates how to squeeze more performance out of your code without rewriting it by tweaking webpack and Babel. These tools are immensely powerful, but it’s a delicate dance to get them to play nice. Join in to learn the tips and tricks you need to get there.
Read more.
4:25pm–5:05pm Wednesday, June 13, 2018
For years, developers have relied on browsers to render web pages client side, which often leaves users patiently waiting for web pages to load. This less-than-favorable experience can be changed by writing user interface components in React. Join Natalie Qabazard to explore the pros and cons of rendering a web page server side using React and a serverless resource.
Read more.
9:00am–9:40am Thursday, June 14, 2018
All too often developers are left completely puzzled when the browser renders CSS in ways they didn’t expect. But it’s not dark magic; we know that computers are just parsing our instructions. While many talks discuss how to fix common bugs, Aimee Knight focuses on the reasons behind them, leading a deep dive into browser internals to see how our styles are parsed and rendered.
Read more.
9:00am–9:40am Thursday, June 14, 2018
Until now, JavaScript has not had an official module system defined as part of the language, although it has had several unofficial ones, including Node.js’s CommonJS module system. Join CJ Silverio to explore JavaScript's new module system, ES modules, and learn how your tooling and workflows will need to change in response.
Read more.
9:00am–9:40am Thursday, June 14, 2018
The ability to create Vue.js components as small decoupled units of functionality is necessary for the organization of Vue.js applications, and parent-child and sibling-sibling components must be able to interact and manage information. Hassan Djirdeh explains why it's important to have appropriate state management for the predictability and maintainability of an entire Vue.js application.
Read more.
9:00am–9:40am Thursday, June 14, 2018
Browser extensions built with the WebExtensions APIs are compatible with all modern browsers. Princiya Sequeira shares lessons learned migrating a legacy privacy add-on to a web extension, with performance being the key factor. Along the way, you'll explore all things web tracking.
Read more.
9:50am–10:30am Thursday, June 14, 2018
The dev community is increasingly interested in accessibility (A11y), but now we need the knowledge and tools to actually do it. Juliana Gomez demystifies the trickiest WCAG standards, shares demos of common accessibility nightmares, and explains how to make them accessible in the simplest ways possible using HTML, CSS, and plain JavaScript.
Read more.
9:50am–10:30am Thursday, June 14, 2018
Want to leverage your web skills to build cross-platform desktop applications? David Neal offers an overview of Electron, an open source solution designed to make building great desktop applications easy. Join in to explore Electron's features and learn how to quickly get started.
Read more.
11:00am–11:40am Thursday, June 14, 2018
Interested in TypeScript but aren't sure where to start? Like most modern web development, it can feel like there are too many options and no obvious answers. Join Bryan Hughes to learn best practices for integrating TypeScript into both Node.js and webpack + React/JSX workflows, discover how you can benefit from the features TypeScript offers, and find answers to your TypeScript questions.
Read more.
11:00am–11:40am Thursday, June 14, 2018
Michael Swieton explores how the cryptographic ecosystem—which includes tools such as public key cryptography, signatures, password hashes, key exchange, and stream ciphers—provides security for our applications and explains how these tools come together to enable user-visible functionality like secure sessions, user authentication, and single sign-ons.
Read more.
3:35pm–4:15pm Thursday, June 14, 2018
HTTP/2 server push gives us the ability to proactively send assets to a browser without waiting for them to be requested. Sounds great, but is this new mechanism really a silver bullet? Using new research and real-world examples, Patrick Hamann leads a deep dive into server push and attempts to answer the question we're all asking: Is it ready for production?
Read more.
3:35pm–4:15pm Thursday, June 14, 2018
Instead of allowing our phones to make us oblivious to the world around us, what if we were able to use them to facilitate interactivity in the real world? Alex Banks details (and invites you to participate in) interactive challenges that use the power of GraphQL to create graphable relationships, covering the code that produces each activity and the data produced by the activity itself.
Read more.
3:35pm–4:15pm Thursday, June 14, 2018
Chetan Karande shares the findings from an analysis of over a thousand publicly known Node.js vulnerabilities. With intuitive data visualizations and statistics, Chetan details trends over last five years, explores common security mistakes made by Node.js package authors, and explains how you can prevent these issues in your own code.
Read more.
3:35pm–4:15pm Thursday, June 14, 2018
Nowadays, applications have become incredibly big and complex, and most of the app lives on the client side. It’s becoming very hard to maintain those apps, and we often create more bugs than we fix. Ivan Jovanovic explains why the micro-frontend (a microservice-oriented architecture on the frontend) might just be the solution you need.
Read more.
4:25pm–5:05pm Thursday, June 14, 2018
Luis Vieira offers an overview of the current progressive web app (PWA) landscape and explains how to leverage new APIs such as client hints, service workers, and network information to create PWAs that are highly adaptive to users' devices and contexts and that can offer a tailored and optimized experience that accounts for each device's unique characteristics.
Read more.
4:25pm–5:05pm Thursday, June 14, 2018
The Angular platform has come a long way since its first major release in September 2016. Stephen Fluin shares what the Angular team is doing to make the platform smaller, faster, and easier to use and outlines new efforts from the team to help developers take advantage of the modern web, including Angular Elements, server-side rendering with Universal, and more.
Read more.
4:25pm–5:05pm Thursday, June 14, 2018
Alexa, Amazon's voice-controlled assistant, is incredibly easy to build for. Bobby Johnson walks you through building Alexa skills for the sole purpose of having fun with your kids.
Read more.