Building a Better Web
June 11–12, 2018: Training
June 12–14, 2018: Tutorials & Conference
San Jose, CA


Brian Holt (Microsoft)
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.
Martine Dowden (Andromeda)
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.
Brian Holt (Microsoft), Patrick Higgins (Gremlin)
Join Brian Holt and Patrick Higgins for a hands-on introduction to React, one of the leading JavaScript libraries for building user interfaces. You'll also explore the React ecosystem as you learn how to use Redux for state management, React Router for navigation, and more.
Peggy Rayzis (Meteor Development Group)
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.
Juliana Gomez (Huge)
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.
Luis Vieira (
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.
Crystal Yan (United States Digital Service)
How do leading organizations hire effectively? Crystal Yan explains how she used behavioral science research insights and human-centered design principles to improve the candidate experience and shares best practices from leading technology corporations, startups, and consulting firms.
Joseph Wynn (SpeedCurve)
Taking your first team lead role can be daunting. How do you set yourself up for the role? How do you steer the team direction without micromanaging? How do you look after yourself on top of handling the new responsibility? An engineer who accidentally fell into a team lead role, Joseph Wynn shares advice and best practices to help you feel more comfortable becoming a team lead.
Join us at the San Pedro Square Market to enjoy the best of local food, drink, and entertainment and have a chance to win amazing prizes. Attendees of both Fluent and Velocity are invited, so you'll have the opportunity to network with everyone.
If you’re looking to find like minds and make new professional connections, come to the diversity and inclusion networking lunch on Wednesday.
Destry Saul (Unchained Capital)
Accessing the data and logic stored in a blockchain is significantly different than accessing your own servers. Destry Saul walks you through APIs for the most popular blockchains, outlines dangers to watch out for, and explains which current applications make use of blockchains.
Shubham Katiyar (Amazon Web Services)
Shubham Katiyar walks you through using AWS Lambda@Edge and Amazon CloudFront. Join in to gain experience with the tools you need to deliver a personalized experience to your internet users across the globe—without having to provision servers. Bring your questions.
Bobby Johnson (Extend)
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.
Wade Minter (Custom Communications)
It's easy to get attention in the tech community when you're building slick software to help high-income consumers do new things. But what if you're in North Carolina, building internal software to help people who install satellite dishes work more efficiently? Wade Minter explains how he switched his thinking to deliver great software to these users.
Jeremy Fairbank (Test Double)
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.
Tracy Lee (This Dot)
Open source is awesome. Not only does open source help the developer community, but open source maintainers have the (often as of yet missed) opportunity to help increase diversity in tech. Tracy Lee helps you think differently about how to change the ratio with open source.
Trent Willis (Netflix)
“Move fast and break things,” “Get shit done,” "Disrupt"—these are mantras of the tech and design industry. They praise speed and hard work but overlook a core element: people. Trent Willis explains how to proactively care for your teammates with the same passion you use when caring for your code.
Chat is becoming more integrated in our day-to-day lives, but it can feel convoluted in the office. The growth in popularity and ease of use for conversational UI means it is no longer reserved just for the social user. Meredith Hassett explains how chatbot technology can increase productivity and simplify work streams in the office.
Join us for the closing celebration of Velocity and Fluent. Don’t miss this last chance to mingle.
Closing remarks
Closing remarks
Cory House (Pluralsight | Cox Automotive)
Creating React components is easy. Designing and publishing truly reusable React components is hard. Cory House shares lessons learned from creating a library of reusable React components at Cox Automotive.
Jen Kramer (Harvard University Extension School)
CSS Grid is the brand-new spec available in the latest browsers. Jen Kramer details Grid's basic syntax, using a layout of a Mondrian painting as an example, and explores alternative Grid syntaxes as well as nested and offset grid layouts. Jen concludes by walking you through combining Flexbox and Grid to solve a web page layout problem.
Rachel Krause (Nielsen Norman Group)
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.
David Neal (ReverentGeek)
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.
Tim Kadlec (Independent), Gareth Hughes (Akamai), Michael Gooding (Akamai)
Join Tim Kadlec, Gareth Hughes, and Michael Gooding to learn how to load the progressive web faster and get hands-on experience with the newest performance techniques. You'll cover the foundational browser concepts on the first day, particularly relating to performance and optimization; then, on the second day, you'll learn how to implement and optimize a progressive web app (PWA).
Brian Rinaldi (Progress)
Applications are made up of code that comes from many sources. Understanding what licenses we're using and what they require can prevent opening our companies or ourselves up to potential liabilities. Brian Rinaldi offers an overview of the various types of licenses typically associated with the software and code you may use in a given project, helping you stay aware and navigate the complexities.
Yakov Fain (Farata Systems)
Join expert web development trainer and consultant Yakov Fain to learn best practices for building end-to-end applications with the latest version of Angular. Along the way, you’ll also familiarize yourself with a TypeScript development environment to ensure you make the most of the new features of the framework.
Alexis Menard (Intel)
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.
Tara Z. Manicsic (Progress)
There is a lot of talk about progressive web apps these days, but what apps actually need to be progressive? Maybe users don't need a push notification every time you post a picture of your pet. Tara Manicsic details what kinds of apps really benefit from the advancements of modern web technologies and walks you through spinning one up.
Annie Lau (Trulia)
They say great software is secure software. But who should be responsible for ensuring and maintaining security excellence? Home and neighborhood resource Trulia says, "Everyone." Annie Lau explains how Trulia manages vulnerabilities through its bug bounty program and scales the responsibility of security across engineering, product, and business teams.
Sebastian Golasch (Deutsche Telekom)
Once there was the "video" tag, but content distributors decided it wasn't enough. They wanted more—more power, more protection, more control—so encrypted media extensions were born, and digital rights management appeared in our browsers. Sebastian Golasch walks you through the technical details behind EMEs, CDMs, and DRM by reverse engineering and building a Netflix video player.
Join us for the Expo Hall Reception on Wednesday, June 13, following the afternoon sessions.
Ally Long (Field Intelligence)
Ally Long explains how to design and build products for a different kind of digital landscape than many of us are used to: the billions of people around the world who now have access to connected smartphones but can afford only a few megabytes of data here and there, have cheap, low-powered devices and unreliable electricity, and are learning to use digital interfaces for the first time.
Maggie Pint (Microsoft)
Maggie Pint explains how bad date support in JavaScript took one frontend developer (her) from making HR software in Minneapolis to working as an Azure SRE. It's a story of failures and heartbreaks but also of change, success, and the amazing power of the many people in the open source and standards community.
Looking for dinner plans Tuesday night? Sign up to join a group of fellow attendees for the Fluent Dine-Around.
Thomas Bouldin (Google), Sarah Allen (Google)
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.
Alex Banks (Moon Highway)
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.
Maximiliano Firtman (ITMaster Professional Training)
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.
Rachel Myers (Google), Emily Nakashima (Honeycomb)
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.
Matthew Larson (FamilySearch), Ian James (FamilySearch)
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.
Hassan Djirdeh (Shopify)
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.
Sarah Federman (Adobe)
In a perfect world, every application would be usable by everyone. Unfortunately, it never seems to be that simple. Accessibility is vital to the future of the web, and we all have a part to play. Sarah Federman shares techniques for making accessibility a priority in your org through both top-down and grassroots efforts.
Ivan Jovanovic (nearForm)
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.
Aimee Knight (Built Technologies)
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.
Scott Davis (ThoughtWorks)
What if you could increase your website's SEO, improve your mobile web design, and get a head start on the coming conversational UI revolution through a renewed focus on accessibility? And what if you increased your user base by making it more accessible to disabled users? Scott Davis explains why accessibility should be just as important to you as a mobile design strategy was 10 years ago.
Kyle Shevlin (Formidable Labs)
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.
Heidi Helfand (Procore Technologies)
Listening is power. By tuning in and applying self-management and directed curiosity, you can help others solve their own problems. Doing this not only leads to greater ownership but also creates more leaders (rather than "order takers") in your organization. Heidi Helfand shares practical communication skills so you can become a more available and empowering coworker, friend, and leader.
Samer Buna (jsComplete)
Join Samer Buna to learn fundamental and advanced React concepts as you build a fun, simple in-browser game.
Alex Banks (Moon Highway), Eve Porcello (Moon Highway)
GraphQL, a query language for your APIs, can make data fetching simpler and more declarative. There’s a lot of hype around the technology, but how do you actually use GraphQL to make your life easier as a developer? Join Alex Banks and Eve Porcello to learn GraphQL from the ground up. You'll explore graph diagrams, GraphQL’s type system, tools like Apollo and Graphcool, and more.
Kyle Simpson (Getify), Brian Douglas (GitHub), Kate Compton (Independent), Sam Richard (IBM)
Join in for three special short talks curated and moderated by program chair Kyle Simpson.
Join other attendees during lunch at Fluent to share ideas, talk about the issues of the day, and maybe solve a few. Not sure which topic to pick? Don’t worry—it's not a long-term commitment. Try two or three and settle on a different topic tomorrow.
Join other attendees during lunch at Fluent to share ideas, talk about the issues of the day, and maybe solve a few. Not sure which topic to pick? Don’t worry—it's not a long-term commitment. Try two or three and settle on a different topic tomorrow.
Scott Davis (ThoughtWorks)
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.
Maximiliano Firtman (ITMaster Professional Training)
Join expert Max Firtman for a hands-on, in-depth exploration of progressive web apps (PWAs). You'll learn how to create PWAs with the modern APIs for mobile and desktop platforms, including app installation and distribution, offline access, push notifications, web performance, and hardware access.
Mark Zeman (SpeedCurve)
There are a wide variety of web performance metrics, but which ones should you focus on and share across your organization? Mark Zeman explains which performance metrics best represent the user experience and walks you through techniques for improving your UX performance metrics and getting the content that users care about the most in front of them as fast as possible.
Cliff Crocker (Akamai)
Cliff Crocker discusses best practices for measuring what matters and applying an understandable methodology that achieves what we are all after: happier users.
Val Head (Adobe), Elaine Chao (Adobe)
The need to work faster and iterate quickly is pressuring teams to connect designers and developers more closely. Val Head and Elaine Chao draw on real-world project experience to demonstrate how the tools you use and the way you communicate can help your teams work more efficiently. You’ll learn how to streamline your process at the critical stage of passing solutions from design to development.
Keerthana Krishnan (Baker Hughes, a GE Company)
Is the large number of JavaScript libraries available making your life difficult? Keerthana Krishnan explains how she was overwhelmed by JavaScript and how she bounced back
Ignite is happening at Fluent on Tuesday, June 12. Join us for a fun, high-energy evening of five-minute talks—all aspiring to live up to the Ignite motto: Enlighten us, but make it quick.
Bradley Holt (IBM)
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.
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.
Nicolas Steenhout (Part of a Whole)
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.
Brendan Eich (Brave Software)
Have you ever wanted to ask Brendan Eich his thoughts on the future of the web, cryptocurrency, browsers, and JavaScript? Don't miss this moderated Q&A session with Brendan.
Have you ever wanted to ask Cory Doctorow his thoughts on the future of the web, privacy, net neutrality, and tech-lash? Don't miss this moderated Q&A session with Cory.
Making your site faster seems so easy in theory, but in practice, diagnosing and fixing performance issues on a large legacy codebase is like being an archaeologist excavating the remains of a lost civilization. Pick up a trowel and join Katie Sylor-Miller to learn real-life lessons on how Etsy uncovered and fixed performance issues in its mobile product page code.
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.
Tracy Lee (This Dot)
Wouldn't it be amazing if you could copy 90% of code between frameworks? You can with reactive programming. Not only can it ameliorate JavaScript fatigue, but concepts remain consistent across frameworks. Learn how to create composable app architecture with RxJS, a DSL on top of JavaScript.
Princiya Sequeira (Zalando)
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.
Natalie Qabazard (Trulia)
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.
Pete Hodgson (Independent)
Join expert Pete Hodgson to get started with React on the right foot. Pete focuses on React fundamentals explained through two big ideas—testability and stateless components—as you learn how to build industrial-grade React apps. You’ll leave with hands-on knowledge of the major moving parts of React along with experience using tools and techniques for testing your React code.
Michael Swieton (Atomic Object)
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.
Brendan Eich (Brave Software)
Brendan Eich asks what it would mean to the web if we actually start building products, apps, and systems that are private by default. Securing our customers' privacy has never been more important—GDPR may require it legally, but ethically, adopting a mission-first focus for your customer is the right thing to do.
Addy Osmani (Google)
Addy Osmani explains how and why JavaScript is the most expensive resource your site uses today—especially on mobile.
Gergely Németh (GoDaddy)
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
Introducing the Fluent/Velocity 5K Fun Run/Walk! You don’t have to be a serious runner. We encourage you to go at your own pace and stop to take in views of San Jose.
Chances are you fell in love with technology the day you took some tool that didn't quite work for you and made it better—better suited to you and your idiosyncratic needs and uses. Then you shared your improvements and made other people's lives better too, and what sweeter feeling is there? Cory Doctorow explains why the right to configure is the signature right of the 21st century.
C J Silverio (npm)
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.
Lin Clark (Mozilla)
The browser needs to get faster. Applications are testing the limits of current browsers, especially on devices like smartphones. Lin Clark explains how the browser works today and what browser vendors need to do over the next few years to ensure their browsers (and the web itself) meet upcoming demands.
Houssein Djirdeh (
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.
O’Reilly Author Book Signings will be held in the O’Reilly booth on Thursday. This is a great opportunity for you to meet O’Reilly authors and speakers.
Laurel Ruma (O'Reilly Media), Kyle Simpson (Getify), Tammy Everts (SpeedCurve)
Conference chairs Laurel Ruma, Kyle Simpson, and Tammy Everts open the second day of Fluent.
Jumpstart your networking at Fluent at Speed Networking in the morning. Bring your business cards and prepare a minute of patter about yourself, your projects, and your interests.
To be announced
Keynotes - To be Announced
To be announced
To be announced
Patrick Hamann (Fastly)
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?
Paul Calvano (Akamai Technologies)
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.
Bryan Hughes (Microsoft)
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.
Kim Crayton (#causeascene)
Kim Crayton explains how to reduce exclusionary practices in your organizations and communities.
Burke Holland (Microsoft)
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.
Benjamin Hong (Politico)
When it comes to learning about a new framework, there's no better way than building things from scratch. Join Benjamin Hong for a hands-on deep dive into Vue.js. You'll start from a bare-bones HTML5 template and build three applications from the ground up. Along the way, you'll explore Vue.js key concepts and learn how it compares to other frameworks like Angular and React.
Dan Shappir (Wix)
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.
Brian Sletten (Bosatsu Consulting)
Join Brian Sletten for an overview of WebAssembly, a new technology standard that will lay the foundation for writing code once and targeting almost all of the platforms of the world both in and out of a web context with near-native speeds, portable, interoperable software modules, and the infrastructure of the web to tie it all together.
O’Reilly Author Book Signings will be held in the O’Reilly booth on Wednesday. This is a great opportunity for you to meet O’Reilly authors and speakers.
Laurel Ruma (O'Reilly Media), Kyle Simpson (Getify), Tammy Everts (SpeedCurve)
Conference chairs Laurel Ruma, Kyle Simpson, and Tammy Everts open the first day of Fluent.
Jumpstart your networking at Fluent at Speed Networking in the morning. Bring your business cards and prepare a minute of patter about yourself, your projects, and your interests.
Sasha Aickin (Self-employed)
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.
Cherie Wong (Amazon)
As a web developer, you want to create beautiful, faster, safer experiences for your customers. Cherie Wong shares common developer pain points and recipes to solve them using AWS.
Stephen Fluin (Google)
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.
Nic Jansma (Akamai), Charles Vazac (Akamai)
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.
Aurelia Moser (Mozilla Science)
Focusing on a mix of artificial, scientific, and environmental sensing data, Aurelia Moser explores fantasy and farcical mapping, teasing out the tough parts of geocoding on real and mythical spatial matrices while delving into the contrived topographies of null island, paper towns, "dumb" cities, and the infinitely curious world of geospeculative design in JavaScript.