1969 Oct
ARPANET sends its first host-to-host message
ARPANET connected its first nodes and demonstrated packet-switched communication between hosts.
Software development
How the field of a Frontend Engineer got here: the sourced milestones from every published course of this career, on one axis.
1969 to 2025
332 milestones across 35 courses
The axis stretches toward recent years, where most milestones fall. Bars count milestones per year; dots are single milestones.
10 milestones
1969 Oct
ARPANET connected its first nodes and demonstrated packet-switched communication between hosts.
1973
Vint Cerf and Bob Kahn described a protocol for interconnecting packet networks, establishing the architecture later divided into TCP and IP.
1976
Glenford Myers published a contrasting view that developers should not test their own code. The later TDD practice restored developer-written tests as part of programming.
1983 Jan
The ARPANET transition to TCP/IP established the protocol suite as the common basis for internetworking.
1984
The Domain Name System replaced a single host table approach with a distributed, hierarchical naming system.
1984 Jan
Macintosh established a personal-computer platform centered on graphical user-interface software. Desktop software became a distinct product form with windows, pointer input, and local documents.
1985 Nov
Windows 1.0 brought a graphical environment to IBM-compatible personal computers. It expanded the platform choices desktop developers needed to consider.
1986
NSFNET became a major backbone for research and education networks and accelerated Internet growth.
1989
Tim Berners-Lee proposed a global hypertext system at CERN, with HTML providing linked document markup.
1989 Mar
Tim Berners-Lee wrote the first proposal for a linked hypertext system at CERN. It framed the Web as a way to share information across institutions.
49 milestones
1990
The first Web server and browser were running at CERN by the end of 1990. A browser became the client for navigating linked hypertext documents.
1990 Dec
The first Web server and the WorldWideWeb browser were running at CERN. Developers now had a working client, server, URL, HTTP, and HTML system.
1991
A testing framework created at Taligent had strong similarities to the later SUnit design. Framework support made repeatable developer tests practical.
1991
The Web added a hypertext application on the Internet, reinforcing the distinction between the underlying network and a service that uses it.
1991 Aug
Berners-Lee announced the WWW software on internet newsgroups after releasing browser, server, and library code. Development spread beyond CERN.
1991 Aug
CERN released WWW software that included the line-mode browser and announced it on Internet newsgroups. The browser could now run beyond the original NeXT environment.
1991 Sep
The WWW-talk mailing list opened HTML design discussion to an Internet community beyond CERN.
1991 Oct
The first published version established the Unicode character repertoire and implementation guidance. It provided a common character-code model before the later alignment with ISO/IEC 10646.
1991 Oct
The first Unicode Standard release established a universal character encoding foundation. Software could begin moving away from market-specific character-set assumptions.
1991 Oct
Unicode and the ISO draft standard were changed into one numerical character encoding. The agreement led to the synchronized Unicode 1.1 and ISO/IEC 10646-1 work.
1993
NCSA released Mosaic for graphical desktop environments. Its availability on common computers helped the Web spread beyond research systems.
1993
NCSA released an early Mosaic browser for the X Window System and then for PC and Macintosh systems. User-friendly clients on common platforms accelerated Web adoption.
1993
Unicode 1.1 documented the merged repertoire and aligned encoded characters and names with ISO/IEC 10646-1:1993. Implementers gained a shared code-point assignment across the two standards.
1993 Apr 30
CERN made the WorldWideWeb source code available on a royalty-free basis. Implementations could build on a freely available Web foundation.
1993 Apr 30
CERN made WorldWideWeb source code available on a royalty-free basis. Implementers could build on the system without a licensing fee.
1994
Beck wrote SUnit for a Smalltalk consulting client. The framework supplied the xUnit-style mechanics used in his emerging test-first practice.
1994
Tim Berners-Lee founded the World Wide Web Consortium at MIT. The Web's browser-facing technologies gained a venue for shared standards work.
1994 Oct
Tim Berners-Lee founded W3C to coordinate interoperable Web standards. Standards work became an organized cross-industry activity.
1995 Mar
RFC 1766 specified tags for identifying languages. It gave Internet content and software a standardized way to label language information.
1995 Apr
Internet backbone traffic shifted toward commercial providers and interconnected networks rather than a single federally funded backbone.
1995 May
Brendan Eich creates the language for scripting in Netscape's browser. Its initial browser role establishes the lasting language-and-host split.
1995 May
Brendan Eich designed and implemented the browser language that became JavaScript. Web pages gained a widely deployed scripting layer.
1995 May
Qt introduced a toolkit that could target more than one desktop environment from a shared framework. Cross-platform desktop development became a practical architectural option.
1995 Oct
Beck demonstrated the practice for Ward Cunningham at the OOPSLA conference in Austin. This bounds his rediscovery of TDD between the 1994 SUnit work and the demonstration.
1995 Nov
The IETF specification documented the language's established interoperable practice, including document structure, links, images, and forms.
1996 Jul
Unicode 2.0 synchronized with ISO/IEC 10646 amendments and established the post-merger standard for implementers. Its July release marks the move beyond the early 16-bit-only version.
1996 Jul
Unicode 2.0.0 was released with data files associated with the standard. Implementations gained a more operational basis for interoperable text processing.
1996 Nov
Ecma's TC39 begins work from Netscape's submitted language. Browser implementations gain a shared specification target.
1996 Dec
CSS 1 became a W3C Recommendation. Browsers now had a common specification for separating style rules from document markup.
1996 Dec
W3C published CSS1 as a common style-sheet standard. Authors could separate more presentation rules from HTML structure.
1996 Dec 17
CSS established a standard way to separate document structure from presentation. Its device-independent model gave later responsive techniques a common styling foundation.
1997
JUnit 0 uses TestCase subclasses and test-prefixed methods. It gives Java developers a repeatable test framework built around executable checks.
1997 Jan
HTML 3.2 consolidated widely deployed features such as tables, applets, and text flow around images into a common specification.
1997 Jun
The first ECMAScript standard defines a vendor-neutral language core. JavaScript practice can now distinguish standardized semantics from browser APIs.
1997 Aug
GNOME created a free desktop environment and application ecosystem around the Linux desktop. Desktop integration and distribution expectations became part of Linux application work.
1997 Dec
W3C published the HTML 4 Recommendation. The specification consolidated document structure, scripting, style-sheet, and accessibility-related work for authors and browsers.
1997 Dec
HTML 4 expanded internationalization, accessibility, scripting, and style-sheet support while encouraging separation of structure from presentation.
1998
An early Extreme Programming article described writing the test before implementation. Test-first programming became part of the method's development rhythm.
1998
The Mozilla project began with release of the Netscape browser-suite source code. Open development became a durable part of the browser-engine landscape.
1998
Practitioners developed the idea through discussion on the C2 Wiki. The emphasis expanded from test order toward tests guiding design and implementation.
1998 Feb
W3C created the Internationalization Working Group and Interest Group. Internationalization work became a continuing part of web standards development.
1998 May 12
CSS2 let authors tailor presentation for media such as screens, print, speech, and handheld devices. This made presentation conditions part of standardized CSS.
1998 Sep
ICANN began coordinating Internet unique identifiers, including the DNS and IP address allocation functions.
1998 Dec
IPv6 defined a 128-bit addressing protocol to extend Internet addressing beyond IPv4.
1999 Jan
RFC 2246 defined TLS 1.0 as a protocol for protecting client-server communications. HTTPS could then rely on an IETF protocol rather than SSL alone.
1999 May 5
W3C published fourteen guidelines with checkpoints and priority levels for accessible web content. Authors gained a common reference for alternatives, structure, navigation, and presentation.
1999 Sep
Unicode 3.0 was released in September 1999 and aligned with the second edition of ISO/IEC 10646-1. The standard continued its synchronized expansion rather than creating a separate character space.
1999 Dec
The third edition consolidates the language used through the next decade and becomes the baseline for broad browser implementation work.
1999 Dec
HTML 4.01 corrected and refined HTML 4 while retaining its document, form, scripting, accessibility, and internationalization model.
39 milestones
2000
Mock Objects emerged among the techniques developed around test-first work. They made collaborator interactions controllable and verifiable inside a focused test.
2000 Jan
XHTML 1.0 reformulated HTML 4 as an XML application, requiring authors to follow XML serialization rules.
2001 Jan
RFC 3066 replaced RFC 1766 for language identification. Language-tag processing remained a defined interoperability concern rather than an application-local convention.
2001 Mar
Unicode 3.1 synchronized with ISO/IEC 10646-2:2001, which added supplementary characters. UTF-16 implementations now had to handle surrogate pairs for characters outside the Basic Multilingual Plane.
2001 Apr 4
The Media Queries draft extended CSS media handling with expressions about output-device features. Width and other conditions could now select styles without changing document content.
2001 Dec
The OWASP Foundation launched in 2001 to improve software security through community projects and guidance. It became a durable public home for application-security practice.
2002
JUnit 3 becomes the next major Java baseline. The framework family becomes a familiar way to organize automated component checks.
2003
Fit and FitNesse helped acceptance test-driven development become an accepted practice. Examples moved toward collaboration among customer, development, and testing perspectives.
2003
OWASP published the original Top Ten in 2003. The list made recurring web application risks easier to discuss and prioritize.
2003
OWASP published the first Top 10 list, establishing a shared awareness document for web application security risks.
2003
Kent Beck's book presented the method through worked examples and named patterns. It became the central long-form reference for the red-green-refactor discipline.
2003 Jan 7
Apple unveiled the Safari public beta for Mac OS X. Safari established a distinct browser and engine family in the desktop market.
2003 Apr
Unicode 4.0 aligned with ISO/IEC 10646:2003, the edition that merged the former two ISO parts into one standard. The synchronization kept code-point assignments consistent across specifications.
2004
Firefox 1.0 was released in 2004. Browser choice and cross-browser testing again became routine web-development concerns.
2004
OWASP updated the original list, beginning a recurring cycle of revisiting the web application risks practitioners use for awareness.
2004
The py project renames std.utest to py.test and establishes collection concepts that remain in pytest. Python testing moves toward plain assertions and detailed failure output.
2004
Jason Huggins created JavaScriptTestRunner for an internal application, and the work became the open-source Selenium project. Browser-driven checks gained a reusable project and community.
2004
Browser vendors formed WHATWG to continue evolving interoperable Web application technologies. HTML development shifted toward a continuously maintained standard.
2004 Jun
CLDR 1.1 made common locale data and LDML artifacts available as a release. Applications gained a shared data source for locale-sensitive behavior beyond character encoding.
2006
JUnit 4 uses Java 5 annotations such as Test. Test authors no longer depend on the earlier naming convention to mark test methods.
2006
Simon Stewart began a browser-control approach that used native browser capabilities instead of injecting all control through page JavaScript. This created a second automation architecture alongside Selenium Remote Control.
2006 Jul
Unicode 5.0.0 was released on July 14, 2006 and synchronized with amendments to ISO/IEC 10646:2003. The release shows the standards' continuing coordinated repertoire growth.
2006 Sep
Dan North published an account of behavior-driven development as a response to difficulties teaching TDD. The approach emphasized behavior language and examples that connect stakeholders and developers.
2006 Sep
RFC 4646 updated language-tag structure and RFC 4647 specified matching. Products could distinguish identifying language information from selecting the best supported locale.
2007
The 2007 update continued the list as a maintained reference rather than a one-time catalog of vulnerabilities.
2007 Jan
Martin Fowler separates state verification with stubs from behavior verification with mocks. The distinction sharpens decisions about when an interaction is part of a test contract.
2008
OWASP's project history records the start of ASVS work in 2008. Verification requirements began to complement awareness lists with testable controls.
2008
The two projects combined their communities and roadmaps. The merger set the direction for WebDriver APIs to replace the original Selenium Remote Control approach.
2008
Patrick Meenan created WebPageTest as a browser-based performance test. Repeatable waterfalls and visual results became available outside a local profiler.
2008 Jan
iPhone OS 1.1.3 let users add website icons to the Home Screen. Web applications gained a direct launch surface before the PWA term and manifest standard existed.
2008 Jan
The draft specified a broader web-application platform and defined browser processing behavior alongside authoring rules.
2008 Sep 2
V8 launches as an open-source JavaScript engine with Chrome. The engine later becomes embeddable in hosts beyond the browser.
2008 Dec 11
WCAG moved to technology-neutral principles and testable success criteria at three conformance levels. Web teams could apply one requirement model across changing web technologies.
2009
The first Node.js release embeds V8 in a server-side host. JavaScript programs gain a major runtime whose files and networking APIs are not part of ECMAScript.
2009 Apr 23
W3C published the first standalone Server-Sent Events Working Draft, defining an HTTP connection that delivers server notifications as DOM events.
2009 Jul 23
The Flexbox draft introduced a layout model for distributing and aligning items along an axis. Flexible item sizing later became a core responsive-layout tool.
2009 Aug
py 1.0 introduces funcargs, fixtures, and a plugin architecture. These features make reusable setup and controlled test environments part of the Python testing workflow.
2009 Sep
RFC 5646 replaced RFC 4646 as part of BCP 47. It preserved language tags as a maintained standard used across software boundaries.
2009 Dec
The fifth edition completes the post-ES3 standardization reset. Its strict mode and object facilities provide a firmer base for larger programs.
132 milestones
2010
The 2010 edition refreshed the risk categories for the changing web application landscape.
2010
The W3C chartered a group to standardize browser APIs for measuring application performance. The work established a common platform surface for client-side timing.
2010 May 25
Ethan Marcotte joined fluid grids, flexible images, and media queries under the term responsive web design. The article framed adaptation as one flexible experience rather than device-specific pages by default.
2010 Aug
The group began adding standardized timing information to the web platform. Pages could move beyond load-event duration toward browser phase data.
2010 Oct
AngularJS introduced its client-side templating and data-binding approach. It established the v1.x line later distinguished from modern Angular.
2010 Oct
Unicode 6.0 was released on October 11, 2010. It synchronized with the second edition of ISO/IEC 10646's third version and included additions such as the Indian rupee sign.
2010 Oct
Unicode 6.0.0 extended the evolving standard and its associated data. Internationalized products had to keep text and locale-data dependencies current as coverage changed.
2010 Nov
pytest 2.0 is released as a package separate from py. The tool gains its own distribution path while retaining its test-running role.
2011 Apr 7
The Grid draft began standardizing two-dimensional page layout in CSS. Grid tracks and intrinsic sizing later reduced dependence on rigid framework grids.
2011 Jul 8
Selenium 2.0 delivered stable WebDriver APIs for several languages while retaining compatibility with Selenium 1. The merged architecture became available as a mainstream release.
2011 Dec
The IETF defined the HTTP opening handshake, two-way message framing, masking, control frames, and the origin-based browser security model.
2011 Dec 8
W3C invited implementations of the browser API that lets web pages use the WebSocket protocol for two-way communication.
2012 May 22
The W3C published an introduction that brought templates, custom elements, shadow DOM, and imports into one proposed component model.
2012 Jun
The first stable AngularJS release made the v1.x framework available for production use. Its API generation remains a separate migration concern from modern Angular.
2012 Jun
Participating networks, websites, and access providers enabled IPv6 permanently, moving deployment from testing toward routine operation.
2012 Jun 19
Media query syntax and common features reached Recommendation status. Width-based breakpoints became a standardized foundation for responsive stylesheets.
2012 Jul
The CSP 1.0 draft described a policy language that lets a web resource restrict the sources from which a browser loads content. It established a browser-enforced defense-in-depth control for content injection risk.
2012 Oct
TypeScript 0.8 makes an optional static type system for JavaScript publicly available. The language begins with the compile-to-JavaScript model that still separates type checking from runtime behavior.
2012 Dec
Navigation Timing standardized document-navigation measurements. It gave browser code a structured view of the path from navigation to document load.
2012 Dec 11
The EventSource API and event-stream format entered an implementation-testing stage with a published interoperability report.
2012 Dec 17
Navigation phases received a standard browser interface. Tooling could derive document-level network and load timings from consistent entry fields.
2013
Atom Shell began as the framework for the Atom editor. It combined web rendering with installed-application capabilities and established the architecture later known as Electron.
2013
The 2013 edition revised the list and broadened some category scopes, affecting how teams mapped findings to risk categories.
2013
W3C started standardizing a JSON manifest for web-app behavior. This separated installed-app presentation metadata from page markup.
2013 Feb 14
The template element received a dedicated Working Draft covering inert parsed content and later instantiation.
2013 Mar
A strict, statically-typeable subset of JavaScript that let browsers apply ahead-of-time optimizations to compiled C/C++ output. It proved a browser could run cross-compiled native code fast, and set up the problem WebAssembly's binary format was designed to solve more directly.
2013 May
Meta introduced React publicly at JSConf and described composable components, JavaScript-based views, and reconciliation as its core approach.
2013 May 14
The draft specified custom-element constructors and the machinery for associating element names with custom behavior.
2013 May 14
The draft formalized shadow trees and their relationship to rendering and tree composition.
2013 Dec
Performance Timeline provided a common entry model for performance data. Later timing APIs could expose their measurements through the same browser timeline.
2013 Dec
User Timing standardized application-defined marks and measures. Teams could then place high-precision measurements around their own operations.
2013 Dec 12
Performance entries gained a common retrieval model, while applications gained high-resolution marks and measures for product-specific work.
2014
Resource Timing made per-resource client-side timing practical for images, scripts, stylesheets, and other fetched assets. Waterfall analysis could move from server logs into browser-collected evidence.
2014 Feb 25
The early public release established Vue's declarative view layer and reactive data binding as a standalone project.
2014 Mar 11
HTML Imports represented the early packaging part of the Web Components effort, although the feature was later retired.
2014 Mar 20
WAI-ARIA standardized roles, states, and properties for interface semantics that host languages could not express. Custom web controls gained a shared vocabulary for accessibility APIs.
2014 Apr
TypeScript 1.0 marks the language's first major release and opens the project to community contributions. The release establishes a stable baseline for large-scale JavaScript development.
2014 May
The first public Service Workers draft introduced an event-driven worker for navigation and other events. It established the programmable response boundary used for offline behavior.
2014 Jun
Work that became Cypress began with an initial commit on 5 June 2014, starting a private path toward in-browser test automation.
2014 Jun
Google presented Material Design as a new consistent design approach for Android. It established a widely visible model for shared visual and interaction decisions across products.
2014 Jun
Unicode 7.0 was released on June 16, 2014. Release dates became a practical compatibility boundary for libraries, fonts, and applications that need newly encoded characters.
2014 Jun 5
Development of Cypress began with a first commit. The project pursued an in-browser runner aimed at modern web application testing.
2014 Jul 10
The methodology defined a repeatable process for scoping, exploring, sampling, evaluating, and reporting on websites. Teams gained a structured bridge from page checks to site-level evaluation.
2014 Oct
HTML5 standardized new semantics, media, graphics, forms, and application-facing features used across modern web documents.
2014 Nov
Browser support for Web Application Manifests began. Developers could increasingly declare installed-app identity and launch preferences in a shared format.
2015 Jan
TypeScript 1.4 adds union types, type guards, and aliases. These features make it practical to model values that may have several valid shapes and then narrow them in code.
2015 Feb 3
The standalone specification completed the W3C Recommendation process for HTTP server push through DOM events.
2015 Apr
The project adopted the Electron name. Its main-process and renderer-process model became a path for teams bringing web user interfaces to desktop distribution.
2015 Apr
Microsoft announced that Project Spartan would be called Microsoft Edge for Windows 10. The new browser entered the market with a web-platform and developer-tools focus.
2015 Apr 23
GitHub renamed the application shell built for Atom and gave the cross-platform framework its own Electron identity and website.
2015 May
HTTP/2 standardized a new framing layer for HTTP semantics. Delivery investigations gained multiplexed streams and header compression as factors in transfer behavior.
2015 Jun
The sixth edition adds major language structures including block-scoped declarations, classes, modules, arrow functions, promises, maps, and sets.
2015 Jun
Ecma published the sixth ECMAScript edition and TC39 adopted yearly specification editions. JavaScript language evolution gained a regular cadence.
2015 Jun
ECMAScript 2015 defines import and export syntax. Standard module syntax gives browser tooling a shared dependency representation.
2015 Jun
Mozilla, Google, Microsoft, and Apple simultaneously published coordinated blog posts announcing a joint WebAssembly effort under the W3C WebAssembly Community Group, moving the project from a single-vendor prototype to a shared, multi-browser standard from day one.
2015 Aug
Salesforce introduced Lightning with the Lightning Design System, components, and an application builder. The release connected a shared visual language to implementation assets for enterprise applications.
2015 Oct
Chrome documentation grouped manifest, service-worker, and app-like presentation techniques under Progressive Web Apps. The term gave the layered approach a practical implementation path.
2015 Oct 7
The release split host-independent component APIs from the DOM renderer and introduced stateless function components.
2015 Oct 26
Vue reached its first stable major release and formalized the component and directive model used by early production applications.
2015 Oct 26
WebKit announced nightly support for the revised slot-based model, making slots the composition mechanism between light DOM and shadow DOM.
2015 Dec
Let's Encrypt opened its public beta in December 2015 and made certificate requests available without an invitation. Automated certificate management helped make HTTPS deployment more practical.
2015 Dec
The IETF standardized extension negotiation for compressing WebSocket messages, including the permessage-deflate extension.
2016 Apr
Kadira released React Storybook as an open-source component workshop with a commercial hosted offering planned beside it.
2016 Apr 7
React 15 moved directly from 0.14 to a stable major version and changed DOM mounting to create elements instead of relying on inner HTML.
2016 May 11
Version 1.0 marked API stability and maturity, accompanied by revised documentation and tools for learning and debugging Electron applications.
2016 Jun
The seventh edition follows the year-based naming used after ECMAScript 2015. Smaller annual editions replace long gaps between major standards.
2016 Jul
The IETF updated the WebSocket subprotocol registry procedure so new application protocols had clearer registration rules.
2016 Sep
Angular 2 established the modern framework line with a new component and TypeScript-oriented platform. Documentation and release policy treat AngularJS v1.x separately.
2016 Sep
The 2.0 release emphasized documentation, extensibility, and a paid hosted service while usage grew beyond the first React wave.
2016 Sep
TypeScript 2.0 introduces `strictNullChecks` and control-flow-based type analysis. Programs can require explicit handling for null and undefined rather than treating them as compatible with every type.
2016 Sep 30
Vue 2 adopted a virtual DOM renderer and server-side rendering support, changing how larger Vue applications were built and delivered.
2016 Oct 25
The project begins as a zero-configuration framework for server-rendered React applications.
2016 Nov 18
WebKit announced the version-one registration and lifecycle API in Safari Technology Preview 18.
2016 Nov 26
The first stable release presented components compiled into standalone JavaScript modules. This established compilation as Svelte's defining approach to interface updates.
2016 Dec
The original commercial steward closed, and Storybook maintenance stalled even though teams continued to depend on the tool.
2017
By the end of 2017, Firefox, Chrome, Edge, and Safari all shipped working WebAssembly support, making it usable in production across the mainstream browser market for the first time.
2017
CrUX made aggregated real-user Chrome experience data available for eligible public origins. Performance programs could compare lab evidence with field distributions.
2017
JUnit 5 sets a Java 8 baseline and supports lambda-based dynamic tests. The platform separates test engines from the tools that discover and run tests.
2017
The 2017 edition documented categories including injection, broken authentication, and sensitive data exposure.
2017 Jan 18
The United States Access Board refreshed federal information and communication technology requirements and aligned web requirements with WCAG. Federal web delivery adopted a standards-based accessibility baseline.
2017 Mar
Firefox became the first major browser to ship a working WebAssembly implementation, ahead of the other three vendors finishing their own.
2017 Mar 27
Safari 10.1 made the custom-element registration and reaction model available in a stable Safari release.
2017 Apr
Shopify made the Polaris style guide, component library, and user-interface kit available to partners. The system gave partner applications a shared set of product-interface assets and guidance.
2017 May
Volunteers shipped the first community-driven major release after the project moved to collective maintenance, including a monorepo restructure and Webpack 2 support.
2017 Jun
Unicode 10.0 was released on June 20, 2017. The continuing versioned release process means a system's Unicode data version is part of its text-processing behavior.
2017 Jun 1
Electron began shipping definitions for its complete API in the npm package, keeping editor types aligned with structured API documentation.
2017 Sep 7
Tooling gained a proposed interface for detecting main-thread tasks that block timely input handling and other critical work.
2017 Sep 26
React 16 introduced a rewritten core while preserving the component API, and added error boundaries, fragments, and additional render return types.
2017 Oct
Cypress 1.0.0 opened the project from private beta, open-sourced the runner stack, and lifted prior access restrictions for local use.
2017 Oct 10
Cypress opened its source and public beta after years of private development. Its runner, desktop application, reporter, and supporting adapters became available to the wider community.
2017 Nov
Representatives from the major browser engines agreed that the design of the initial WebAssembly API and binary format was complete, fixing the format's core shape before wider adoption.
2017 Dec 14
Grid's mature track sizing and placement model gave authors a standard two-dimensional layout system. Responsive layouts could increasingly let available space determine tracks.
2018 Jan
The specification extended the well-known URI mechanism to the ws and wss schemes for protocol discovery conventions.
2018 Feb 5
Universal Webpack runs the build pipeline for server and client code and expands the plugin model.
2018 Mar
Safari adopted manifest support with iOS 11.4. Manifest-based installed-web-app metadata became relevant across another major browser platform.
2018 Mar
TypeScript 2.8 adds conditional types and the built-in utility types `Exclude`, `Extract`, `NonNullable`, `ReturnType`, and `InstanceType`. Library authors can express more relationships between input and output types.
2018 Apr
The April Working Draft documented manifest members for names, icons, launch URLs, display modes, and scope. These members became the design surface for installed-app presentation.
2018 Apr 18
Version 2 adopted single-curly template expressions, changed lifecycle and component APIs, and emitted modern JavaScript. An upgrade tool supported the breaking transition.
2018 May
Angular 6 continued the modern major-release line. Regular major upgrades became part of the practical maintenance model for Angular applications.
2018 May
Google introduced Material Theming and open-source Material Components. Teams could customize color, shape, and type while using coded components across product interfaces.
2018 May 2
Major versions became the home for Chromium, Node.js, and breaking Electron changes, while patch releases were limited to fixes.
2018 May 2
Lighthouse adopted simulated throttling through its Lantern engine and revised run completion behavior. CI-oriented lab comparisons became faster and less variable.
2018 May 16
Static export gains automatic route mapping, while the application extension point and early TypeScript plugin support broaden project structure.
2018 Jun
Government Digital Service made the GOV.UK Design System ready for government teams. It gathered styles, components, patterns, and contribution work that had been spread across separate resources.
2018 Jun 5
The update added success criteria addressing mobile use, low vision, and cognitive and learning disabilities. Existing WCAG 2.0 practices could extend into these additional needs.
2018 Jun 5
W3C standardized platform-neutral and language-neutral interfaces and a wire protocol for remote browser control. Tool and browser implementations gained a common standards target.
2018 Jul
TypeScript 3.0 adds project references and build mode for larger codebases. Teams can express project boundaries and build dependencies instead of treating every source file as one compiler project.
2018 Aug
RFC 8446 specified TLS 1.3 and obsoleted earlier TLS specifications. It updated the secure transport baseline used by web applications.
2018 Aug 10
The CLI introduced a plugin-based project system and a graphical management interface for standardized Vue build configuration.
2018 Sep
Extended CONNECT allowed one HTTP/2 stream to carry a WebSocket connection without the HTTP/1.1 connection-wide Upgrade mechanism.
2018 Sep 19
Webpack 4, Babel 7, incremental compilation, and standardized dynamic imports improve build behavior and code splitting.
2018 Sep 20
Cypress declared its test runner generally available and retained the runner as free, open-source software. The accompanying service added hosted recording and parallel execution features.
2018 Oct
Cypress launched commercially, pairing the open-source runner with a paid service path for teams adopting it beyond local experimentation.
2018 Oct 23
Firefox enabled both APIs by default, reducing the need for browser-specific fallbacks around the core component model.
2019 Feb 4
The release introduced a unified slot syntax and prepared application code for component patterns that continued into Vue 3.
2019 Feb 6
Hooks made state and other React features available to function components and enabled stateful logic to be reused without changing the component hierarchy.
2019 Mar
The WebAssembly System Interface extended WebAssembly's target beyond the browser tab, giving standalone modules a standardized, capability-based way to request access to files, sockets, and other system resources.
2019 Mar 18
Formal groups took responsibility for releases, security, upgrades, documentation and tooling, outreach, the website, and community safety.
2019 Apr 22
Version 3 replaced the earlier object-style component API with assignment-based reactivity and a lower-boilerplate component model. The project also moved its main site to svelte.dev.
2019 May
The organizations agreed that HTML and DOM would be developed principally through the WHATWG Living Standard process to avoid specification divergence.
2019 May 13
Electron moved to a 12-week major cadence beginning with Electron 6 to reduce delay behind Chromium releases and make upgrades predictable.
2019 May 13
The v1 release establishes a stable major-version foundation for utility-based styling. Its release notes document the initial compatibility boundary.
2019 Jun 14
Lighthouse command-line runs could consume a budget file covering timings, resource sizes, and resource counts, then surface the results in reports.
2019 Jul
The W3C Design Tokens Community Group launched to develop standards that products and design tools could use to share stylistic pieces of a design system at scale.
2019 Jul
WebAssembly's threads proposal depended on SharedArrayBuffer, which every browser vendor had disabled after the Spectre and Meltdown side-channel disclosures; Chrome alone had re-enabled it through site isolation, leaving threaded Wasm usable in one browser for the time being.
2019 Jul 8
File-based dynamic segments, built-in TypeScript, automatic static optimization, and API Routes reduce the need for a custom server.
2019 Jul 29
Storybook 5.2 introduced CSF as an ES-module authoring standard so stories could stay portable outside Storybook's internal APIs.
2019 Sep 17
Official Docs support landed so teams could generate living component documentation from the same stories used in development.
2019 Oct 31
The format standardized how accessibility test rules document applicability, expectations, assumptions, and examples. Tool and methodology authors gained a common structure for comparable checks.
2019 Nov
The updated timing foundation defined a monotonic time origin for performance measurements. This supported consistent high-resolution timestamps across modern performance APIs.
2019 Nov
W3C published a Candidate Recommendation Snapshot for Service Workers. The lifecycle and fetch-interception model had become a mature web-platform specification.
2019 Dec
The Core Specification became an official W3C Recommendation, giving WebAssembly the same standards-track status as HTML, CSS, and JavaScript.
102 milestones
2020 Jan 15
Microsoft released the rebuilt Edge for download on Windows and macOS. A major browser product moved to the Chromium open-source project while retaining separate product integration.
2020 Jan 15
Microsoft released Edge 79 as its first stable Chromium-based Edge, bringing Chromium's Web Components implementation to the current Edge line.
2020 Feb
Angular 9 made the Ivy compiler and runtime the default. Application builds and library compatibility thereafter centered on the Ivy-based platform.
2020 Mar 9
getStaticProps and getStaticPaths give Pages Router applications explicit build-time data and route generation APIs.
2020 May
Core Web Vitals grouped loading, interactivity, and visual stability into a user-experience measurement program. LCP, FID, and CLS became a shared vocabulary for field outcomes.
2020 May
Lighthouse reports incorporated loading and visual-stability metrics aligned with the new Core Web Vitals program, alongside Lighthouse CI and budget updates.
2020 May 4
Google introduced a shared program of user-centric quality signals and a smaller Core Web Vitals set intended for broad measurement across pages.
2020 May 6
Playwright reached its first stable major release with bundled Chromium, Firefox, and WebKit builds. One automation API could target the three browser engines.
2020 May 11
Static output can be regenerated after deployment instead of requiring a complete rebuild for every content change.
2020 Jun 23
Electron graduated from OpenJS Foundation incubation to Impact Project status after joining the foundation in 2019.
2020 Jul 2
The first Nuxt 3 commit starts a full TypeScript rewrite that becomes the basis of the current framework architecture.
2020 Jul 17
The Svelte organization consolidated compiler, language-server, editor, and checking support for TypeScript in components. The `svelte-check` command provided project diagnostics.
2020 Aug
TypeScript 4.0 adds variadic tuple types and labeled tuple elements. Function APIs can preserve richer relationships among rest parameters and tuple positions.
2020 Aug 25
Electron 10 changed the remote module default to disabled as part of its deprecation, pushing applications toward explicit IPC boundaries.
2020 Sep 18
Vue 3 introduced Composition API, a rewritten renderer and reactivity system, fragments, Teleport, and stronger TypeScript support.
2020 Oct 7
The official playground brings utility and configuration experiments into a browser-based editing environment.
2020 Oct 10
Webpack 5 introduces persistent caching and Module Federation. Build caching and independently composed module systems become explicit pipeline choices.
2020 Oct 20
React 17 focused on making it safer to run multiple React versions on one page so applications could upgrade in stages.
2020 Oct 27
Framework-managed images and locale routing extend the set of production concerns handled through Next.js conventions.
2020 Nov
Cypress 6.0 introduced cy.intercept as generally available network stubbing and spying, covering fetch and navigations beyond the older XHR-focused cy.route model, and deprecated cy.server and cy.route.
2020 Nov 2
Initial work starts on the portable server engine that later owns Nuxt server routes and production output.
2020 Nov 5
The project announced a new application framework with one recommended project path, server rendering, routing, and deployment adapters. Sapper would not proceed to a 1.0 release.
2020 Nov 18
Version 2 adds dark-mode support and ring utilities, expanding the conditional styling vocabulary for application interfaces.
2021
OWASP introduced new categories and naming changes that emphasized root causes over symptoms, using a formalized data-collection process.
2021
OWASP released the 2021 Top Ten to mark its twentieth year. The project continued its periodic revision of the web application risk categories.
2021
Vitest starts as a test runner designed for Vite projects. JavaScript and TypeScript teams gain a runner aligned with their build environment.
2021 Jan 22
Initial Vite support establishes the faster development and build path that ships with the Nuxt 3 rewrite.
2021 Feb 16
The first stable release delegates framework-specific behavior to plugins and adopts esbuild dependency pre-bundling.
2021 Mar 2
Electron 12 enabled context isolation by default, separating preload code from the renderer page's JavaScript context.
2021 Mar 15
An experimental compiler generates styles on demand from source usage, including arbitrary values. This changes how developers manage the available utility surface.
2021 Mar 23
The public beta opened the SvelteKit repository and documentation for broader use. It adopted Vite and made adapters the boundary between application builds and deployment platforms.
2021 Apr
The group shared its first Editor’s Draft with design-tool vendors. The draft moved token interchange from common practice toward a coordinated specification effort.
2021 Apr 26
Chrome 90 introduced parser-created shadow roots, giving server output a path to include shadow content before component upgrade.
2021 May
RFC 9000 standardized QUIC transport, enabling HTTP/3 to carry HTTP semantics over QUIC streams.
2021 Jul
CSF 3 cut story boilerplate and improved reuse of story objects, preparing the format Storybook 7 later made the default.
2021 Aug
Cypress documented experimental session caching so suites could restore cookies and web storage instead of repeating full UI logins every test.
2021 Aug 5
Script setup and style state bindings became stable, making Composition API Single-File Components more concise in production projects.
2021 Sep 5
Nuxt Bridge brings parts of the new Nuxt 3 architecture to Nuxt 2 projects and creates an incremental migration path.
2021 Oct 11
The open beta exposes the Vue 3, Vite, Nitro, native ESM, auto-import, and composable foundation for community testing.
2021 Oct 13
Selenium 4 rebuilt Grid for standalone and distributed operation and added browser-facing capabilities while preserving stable public APIs. End-to-end suites gained a modernized remote execution layer.
2021 Oct 26
The SWC-based compiler becomes the default, while Middleware and early React Server Component support preview new request and rendering boundaries.
2021 Dec 9
Version 3 adopts the just-in-time engine as the normal build path. Developers use arbitrary values without configuring a separate experimental mode.
2022 Feb
Flutter made Windows desktop support generally available. A shared Dart application model could then target a mainstream desktop operating system as a supported release path.
2022 Feb 7
Package tags, documentation, and official ecosystem guidance moved to Vue 3 as the standard starting point for new work.
2022 Mar
Safari 15.4 updated Web App Manifest and ServiceWorker behavior for websites and Home Screen web apps. Platform-specific support remained an implementation detail to test rather than assume.
2022 Mar 29
React 18 added automatic batching, transitions, new client root APIs, and streaming server rendering improvements built on the concurrent renderer.
2022 May
Cypress 10 rebuilt the App UX and integrated component testing into the same launcher as end-to-end, with cy.mount scaffolding and framework-aware setup.
2022 May
Tauri 1.0 established a production release for a desktop framework that uses web frontend assets with a native backend boundary. It widened web-shell runtime and security tradeoffs.
2022 Jun
The HTTP/2 Extended CONNECT approach was adapted so a WebSocket connection could run over an HTTP/3 stream.
2022 Jun 7
Version 3.1 introduces arbitrary variants, allowing one-off selector conditions alongside built-in variants.
2022 Jul 1
The final Vue 2 minor line backported Composition API and script setup features to support staged migration toward Vue 3.
2022 Jul 23
Vite 3 improves WebSocket connection handling behind proxies. This addresses HMR communication in proxied development setups.
2022 Aug 2
Electron 20 sandboxed renderers by default unless Node.js integration was enabled or sandboxing was explicitly disabled.
2022 Sep
Unicode 15.0.0 continued the standard's versioned release cycle. Text support remains a maintained dependency rather than a one-time encoding decision.
2022 Oct
Windows App SDK 1.0 provided a stable release for modern Windows application APIs outside the operating-system release cadence. It gave applications a path to current Windows features.
2022 Oct 19
Version 3.2 introduces an official container-query plugin, enabling component styling based on available container width.
2022 Oct 25
The app directory brings nested layouts, React Server Components, streaming, and component-level data fetching into a new router.
2022 Nov
Angular 15 made standalone APIs stable, allowing applications to compose template dependencies directly without requiring NgModules for new code.
2022 Nov
Cypress 11 promoted component testing to GA for React, Next.js, Angular, and Vue, stabilizing mount APIs after the beta period.
2022 Nov 16
Nuxt 3.0 establishes a production-ready API around Vue 3, Vite, Nitro, TypeScript, filesystem conventions, and Nuxt Kit modules.
2022 Dec
Cypress 12 made session caching and cy.origin generally available for end-to-end tests and introduced testIsolation defaults for clean browser context between tests.
2022 Dec 9
The production bundler moves to Rollup 3, aligning build customization with a new bundler major.
2022 Dec 14
SvelteKit became the recommended application framework for Svelte projects. Its stable contract covered routing, server and client rendering, data operations, and adapter-based deployment.
2023 Feb
iOS and iPadOS 16.4 added Web Push support for Home Screen web apps. Push capability now depended on the app being added to the Home Screen and on a user-triggered permission request.
2023 Feb 14
Container size queries became available across the major browser engines. Components could respond to their local container instead of relying only on viewport breakpoints.
2023 Mar
TypeScript 5.0 implements the new ECMAScript decorators proposal and adds improvements including const type parameters. The release continues the language's approach of aligning static syntax with JavaScript runtime proposals.
2023 Mar 16
The new documentation began teaching function components and Hooks from the start, while the previous documentation moved to the legacy site.
2023 Mar 27
Safari added parser-created shadow roots and form and accessibility integration through ElementInternals in the same release.
2023 Mar 28
Version 3.3 adds logical property utilities that support left-to-right and right-to-left layouts with a shared vocabulary.
2023 Apr
Storybook 7 shipped first-class Vite support, a Frameworks API for Next.js and SvelteKit, MDX2 docs changes, and CSF 3 as the default authoring format.
2023 Apr 20
The development resolver receives hot-path and cache improvements. Repeated package and configuration lookup becomes a focus of development performance work.
2023 May
Angular 16 introduced signals as a new reactive primitive. The model gave applications a current-value form of reactivity alongside observable streams.
2023 May 4
The App Router becomes stable, establishing it as the supported path for layouts, Server Components, and streaming applications.
2023 Jun
Figma introduced variables and Dev Mode. Variables provided reusable values, aliases, modes, and APIs that design-system teams could use for themes and token-oriented workflows.
2023 Jun 22
Version 4 raised dependency and browser baselines, reduced package size, and improved authoring and migration behavior. It prepared the ecosystem for the next reactivity design.
2023 Sep 20
The project introduced runes as explicit compiler syntax for reactive state, derived values, effects, and props. The design extended reactivity beyond component files and reduced differences between component and module logic.
2023 Oct
Chrome enabled WebAssembly Garbage Collection by default, adding struct and array heap types that let the host engine's own garbage collector manage memory for languages like Java, Kotlin, and Dart, without those languages bundling their own collector.
2023 Oct
WCAG 2.2 became a W3C Recommendation with additional success criteria. Design-system component contracts need to account for the resulting focus, target-size, and accessible-authentication requirements where applicable.
2023 Oct 5
WCAG 2.2 added nine success criteria concerning visual, physical, and cognitive accessibility. The conformance model retained the four WCAG 2 principles while expanding current requirements.
2023 Oct 26
Server Actions become stable and integrate mutations with forms, caching, revalidation, and redirects.
2023 Nov
Angular 17 introduced modern template control flow and deferrable views. These features changed how templates express conditional, repeated, and deferred content.
2023 Nov 13
The development inspector becomes generally available for examining pages, components, imports, modules, assets, and application behavior.
2023 Nov 16
Rollup 4 becomes the production bundler, and the CommonJS Node API is deprecated. Integrations must account for build-engine and API changes.
2023 Dec 19
Version 3.4 adds dynamic viewport units, has variants, and subgrid utilities to the layout vocabulary.
2023 Dec 31
Official Vue 2 feature, fix, and security maintenance ended, making Vue 3 the maintained foundation for new and migrated applications.
2024 Jan
Cypress Cloud messaging centered on Test Replay, flake detection, and CI optimization features that turn recorded runs into failure diagnosis rather than pass/fail alone.
2024 Jan
WASI Preview 2 shipped built on the WebAssembly Component Model, giving standalone modules a stable, composable system interface and letting independently compiled components share high-level types across a defined boundary.
2024 Feb 8
An experimental Runtime API separates transformed code execution from the development server. Framework authors can control communication with execution environments.
2024 Feb 20
Firefox enabled the shadowrootmode template attribute, completing support for declarative shadow DOM across the major browser engines.
2024 Mar
Storybook 8 brought the Visual Tests addon, Vitest-oriented testing packages, faster test builds, and broader framework polishing across React, Vue, Angular, Svelte, and Web Components.
2024 Mar 12
Interaction to Next Paint became the stable responsiveness metric and replaced First Input Delay. Investigation shifted toward the full interaction path through the next visual update.
2024 May
Angular 18 continued the transition by stabilizing built-in control flow and deferrable views, while Angular documented migrations for existing applications.
2024 Jun 30
Official Nuxt 2 maintenance ends, making migration to the Nuxt 3 architecture the supported path for security and browser compatibility updates.
2024 Sep 1
Vue 3.5 revised the reactivity internals and added reactive prop destructuring, watcher cleanup, and hydration improvements without a breaking major release.
2024 Oct 21
The release changes request and router caching behavior, adds React 19 support, and stabilizes Turbopack for development.
2024 Oct 22
Svelte 5 made runes, snippets, event properties, and the function-based component API stable. Legacy syntax remained supported to permit gradual migration.
2024 Nov 26
An experimental Environment API supplies building blocks for multiple execution environments. Framework authors can model more than a single browser target.
2024 Dec 5
React 19 added Actions for asynchronous transitions, new form integration, the use API, and stable support for React Server Components in compatible frameworks.
2025
The 2025 edition updated the ten-category map, including software supply chain failures and mishandling of exceptional conditions.
2025 Jan 21
Version 4 introduces CSS-first configuration, automatic source detection, and dedicated build integrations. Shared tokens become CSS theme variables.
2025 Jun 24
The default build target moves to Baseline Widely Available. Default syntax compatibility follows an explicitly dated browser capability baseline.
2025 Jul 15
Nuxt 4 formalizes the app directory structure, improves data-fetching behavior and type safety, and carries tested compatibility changes into a new major version.