Recent Articles

  • Making a Web Thing on the ESP8266

    The power of web things comes from their ability to connect the digital world of web pages with the physical world of things. In this Things Framework tutorial-style post, James Hobin walks you through creating a simple Web Thing using an inexpensive off-the-shelf ESP8266 board.

  • Testing Strategies for React and Redux

    When the Firefox Add-ons team ported addons.mozilla.org to a single page app backed by an API, they chose React and Redux for powerful state management, delightful developer tools, and testability. Achieving the testability part wan’t as obvious, since there are competing tools and techniques. This post describes some testing strategies that are working really well.

  • Hello wasm-pack!

    Introducing wasm-pack, a new tool for assembling and packaging Rust crates that target WebAssembly. These packages can be published to the npm Registry and used alongside other packages. This means you can use them side-by-side with JS and other packages, and in many kind of applications.

  • A new video series: Web Demystified

    This post introduces Web Demystified, a new video series targeting web makers -- everyone who builds things for the web: designers, developers, project and team managers, students, hobbyists, and experts. Our goal is to provide basic information for beginners, with subject matter that will also serve as a refresher on web fundamentals - beginning with episodes that describe the web itself, and HTML, its first language.

  • Build your own web things with the Things Framework

    Last year Mozilla started Project Things to help developers connect physical “things” to the web in a safe, secure and interoperable way. Now, with the 0.4 release of the Things Gateway, you can add native web things to your gateway, to control them alongside all your other smart home devices. The advantage of native web things is that they don’t need a custom gateway adapter because they follow a common standard using existing web technologies.

  • Sneak Peek at WebAssembly Studio

    WebAssembly.Studio is an online IDE (integrated development environment) that helps you learn and teach others. It’s also a Swiss Army knife that comes in handy whenever working with WebAssembly (WASM). WebAssembly is a low-level assembly-like language that runs with near-native performance and provides languages such as C/C++/Rust with a compilation target so that they can run on the web. WASM is also designed to run alongside JavaScript.

  • MDN Changelog for March 2018

    Publishing a changelog is a tradition in open source, and a long-time practice on the web. In this changelog, MDN engineers report on what happened in March to the code, data, and tools that support MDN Web Docs, and look ahead to what's on plan for this month. Learn more about the work of the MDN engineering team and their impact, and discover opportunities to participate in building and supporting MDN Web Docs and the open web platform.

  • What Makes a Great Extension?

    We’re in the middle of our Firefox Quantum Extensions Challenge so we’ve been pondering what makes a great extension. Great browser extensions add functionality and fun to Firefox, but there’s more to it than that. They’re easy to use, easy to understand, and easy to find. If you’re building an extension, Dustin Driver offers some simple steps to help it shine. The Quantum Extensions Challenge is running until April 15, 2018. Prizes will be awarded to the top extensions in three categories: Games & Entertainment, Dynamic Themes, and Tab Manager/Organizer. Enter today and keep making awesome extensions!

  • JavaScript to Rust and Back Again: A wasm-bindgen Tale

    Recently we’ve seen how WebAssembly is incredibly fast to compile, speeding up JS libraries, and generating even smaller binaries. We’ve even got a high-level plan for better interoperability between the Rust and JavaScript communities, as well as other web programming languages. The goal of wasm-bindgen is to provide a bridge between the types of JavaScript and Rust. It allows JS to call a Rust API with a string, or a Rust function to catch a JS exception. wasm-bindgen erases the impedance mismatch between WebAssembly and JavaScript, ensuring that JavaScript can invoke WebAssembly functions efficiently and without boilerplate, and that WebAssembly can do the same with JavaScript functions.

  • Hack on MDN: Building useful tools with browser compatibility data

    The MDN team is migrating browser compatibility data into a JSON database to make it more useful and extensible for web developers. On a recent weekend in Paris, a group of Mozillians and friends gathered to work on projects to improve and extend the BCD data. The Hack on MDN event combined unconference and hackathon; participants pitched projects and committed to working on concrete tasks. Check out the brilliant results of their collaboration.

  • ES modules: A cartoon deep-dive

    ES modules bring an official, standardized module system to JavaScript. With the release of Firefox 60 in May, all major browsers will support ES modules, and there is current work to add ES module support to Node.js, as well as ES module integration for WebAssembly. Lin Clark's deep dive illustrates how ES modules work, what problem they solve, and how they are different from modules in other module systems.

Browse All Articles →