openskills.info
← Full-Stack Engineer career guide

Software development

Full-Stack Engineer timeline

How the field of a Full-Stack Engineer got here: the sourced milestones from every published course of this career, on one axis.

1951 to 2025

259 milestones across 27 courses

  • Core
  • Supporting
  • Specialization

The axis stretches toward recent years, where most milestones fall. Bars count milestones per year; dots are single milestones.

Before 1990

14 milestones

  1. 1951 Dec 15

    Kleene introduces regular expressions

    The RAND memorandum "Representation of Events in Nerve Nets and Finite Automata" defined regular sets and regular expressions as a model for finite automata. Regular expressions began as mathematics, not a programming tool.

  2. 1968 Jun

    Thompson publishes a linear-time matching algorithm

    "Programming Techniques: Regular expression search algorithm" in Communications of the ACM showed how to compile a regular expression into machine instructions and match in linear time. The algorithm is the ancestor of every modern automata engine.

  3. 1973

    grep appears in Unix

    Ken Thompson created grep by extracting the global-regular-expression-print command from the ed editor. Regex search entered everyday use as a command-line primitive.

  4. 1974

    IBM documents System R

    IBM documented System R as a relational approach to database management. Its work helped establish the practical path from relational theory to DBMS implementation and SQL.

  5. 1977

    awk is created at Bell Labs

    Alfred Aho, Peter Weinberger, and Brian Kernighan built awk, a pattern-scanning language that combined regex matching with fields and actions. The name comes from the three authors' initials.

  6. 1979

    Oracle V2 commercializes SQL

    Relational Software, Inc. released Oracle V2 as a commercial SQL-based relational database. SQL moved from research systems into a product category that competing database vendors adopted.

  7. 1986

    ANSI publishes SQL-86

    ANSI published the first SQL standard. A standard core gave database products a common reference point even as their dialects continued to differ.

  8. 1986

    POSTGRES implementation begins

    The Berkeley POSTGRES project began implementation. It became a long-running research and production lineage for object-relational database work.

  9. 1987

    ISO publishes ISO/IEC 9075

    ISO adopted SQL as ISO/IEC 9075. The paired ANSI and ISO work made SQL an international database-language standard.

  10. 1987

    POSTGRES first demonstration operates

    POSTGRES demoware became operational in 1987 and was demonstrated at SIGMOD in 1988. The project moved from design papers into a working system.

  11. 1987 Dec 18

    Perl 1.0 is released

    Perl 1.0 shipped, and the language soon became the main carrier of an extended pattern language whose features influenced every later engine. Perl and Perl-derived flavors popularized lazy quantifiers and lookarounds.

  12. 1989 Mar

    The World Wide Web is proposed

    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.

  13. 1989 Jun

    POSTGRES Version 1 reaches external users

    Version 1 was released to a small group of external users. The release marked an early step from academic prototype toward use outside its original project.

1990s

23 milestones

  1. 1990 Dec

    The first browser and server run

    The first Web server and the WorldWideWeb browser were running at CERN. Developers now had a working client, server, URL, HTTP, and HTML system.

  2. 1991

    POSTGRES Version 3 improves its executor

    Version 3 added multiple storage managers, an improved query executor, and a rewritten rule system. Those changes emphasized DBMS behavior beyond the table abstraction.

  3. 1991 Aug

    Web software reaches the internet

    Berners-Lee announced the WWW software on internet newsgroups after releasing browser, server, and library code. Development spread beyond CERN.

  4. 1992

    POSIX.2 standardizes BRE and ERE

    IEEE 1003.2 standardized two POSIX dialects, Basic and Extended Regular Expressions, fixing which characters are metacharacters in each. This remains the reference for grep and awk behavior.

  5. 1992

    SQL-92 expands the standard

    ANSI and ISO published the revision commonly called SQL-92. It became a long-lived baseline for the portable syntax developers still recognize.

  6. 1993

    Mosaic broadens browser access

    NCSA released Mosaic for graphical desktop environments. Its availability on common computers helped the Web spread beyond research systems.

  7. 1993 Apr 30

    CERN releases Web code royalty-free

    CERN made WorldWideWeb source code available on a royalty-free basis. Implementers could build on the system without a licensing fee.

  8. 1994

    Postgres95 adds a server-side SQL interpreter

    Postgres95 replaced PostQUEL with SQL and was released to the web as an open-source descendant of Berkeley POSTGRES. SQL became central to this branch of the system.

  9. 1994 Oct

    W3C is founded

    Tim Berners-Lee founded W3C to coordinate interoperable Web standards. Standards work became an organized cross-industry activity.

  10. 1994 Oct 17

    Perl 5.0 is released

    Perl 5.0 shipped with a substantially extended regex engine, cementing the Perl-compatible feature set that PCRE and later engines adopted.

  11. 1995 May

    JavaScript is created at Netscape

    Brendan Eich creates the language for scripting in Netscape's browser. Its initial browser role establishes the lasting language-and-host split.

  12. 1996

    PostgreSQL receives its current name

    The project adopted the PostgreSQL name to mark its SQL capability and began version numbering at 6.0. The rename connected the original POSTGRES work to a continuing database project.

  13. 1996 Dec

    CSS Level 1 becomes a Recommendation

    W3C published CSS1 as a common style-sheet standard. Authors could separate more presentation rules from HTML structure.

  14. 1997

    Philip Hazel writes PCRE

    Philip Hazel wrote PCRE, the Perl Compatible Regular Expressions library, which became the basis for the regex engines in PHP and R and is bundled in products from Excel to Git.

  15. 1997 Dec

    HTML 4 is published

    W3C published the HTML 4 Recommendation. The specification consolidated document structure, scripting, style-sheet, and accessibility-related work for authors and browsers.

  16. 1998 Feb 10

    XML 1.0 became a W3C Recommendation

    XML 1.0 standardized an extensible text syntax for structured documents and data interchange on the Web. Implementations gained shared rules for well-formed documents and character encoding.

  17. 1999

    SQL:1999 adds object and procedural features

    SQL:1999 added features including recursive queries and standardized procedural extensions. It widened SQL beyond basic table queries while retaining the relational core.

  18. 1999 Jan

    TLS 1.0 is specified

    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.

  19. 1999 Dec

    ECMAScript 3 standardizes regex in JavaScript

    ECMAScript 3 specified a regular expression grammar in the language standard, giving JavaScript a regex engine whose syntax follows the Perl tradition.

2000s

28 milestones

  1. 2000

    Neo4j begins property-graph development

    Neo4j records the invention of its property-graph model in 2000. This represented a data model in which nodes and relationships are central rather than only tabular joins.

  2. 2000

    REST dissertation

    Roy Fielding’s dissertation documented REST as an architectural style, including the uniform interface, resources, representations, and stateless interaction. It gave HTTP API designers a vocabulary for resource-oriented contracts.

  3. 2000 May

    SOAP 1.1 published

    W3C published SOAP 1.1 as a Note for XML-based message exchange. Contract-first web services commonly paired these messages with explicit service descriptions.

  4. 2001 Dec

    OWASP launches

    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.

  5. 2003

    First OWASP Top Ten is published

    OWASP published the original Top Ten in 2003. The list made recurring web application risks easier to discuss and prioritize.

  6. 2003

    Original OWASP Top 10 published

    OWASP published the first Top 10 list, establishing a shared awareness document for web application security risks.

  7. 2003

    SQL:2003 standardizes window functions

    SQL:2003 added window functions and SQL/XML work. Window functions made ranking and calculations across related result rows part of standard SQL practice.

  8. 2004

    First Top 10 update

    OWASP updated the original list, beginning a recurring cycle of revisiting the web application risks practitioners use for awareness.

  9. 2004

    Selenium begins at ThoughtWorks

    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.

  10. 2004

    WHATWG begins living HTML work

    Browser vendors formed WHATWG to continue evolving interoperable Web application technologies. HTML development shifted toward a continuously maintained standard.

  11. 2004 Jan 29

    YAML 1.0 final draft published

    The YAML 1.0 final draft described a human-oriented, cross-language Unicode serialization language. It separated representation, serialization, presentation, parsing, composition, and construction stages.

  12. 2005 Nov 16

    Django 0.90 released

    Django 0.90 became the first packaged public release. It moved the framework from revision-control-only development to an installable distribution.

  13. 2005 Dec 13

    Rails 1.0 establishes a stable release

    Rails 1.0 marked the first stable major release of the integrated Ruby web framework. Its conventions made MVC, database persistence, routing, and rendering part of one application structure.

  14. 2006

    WebDriver development starts

    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.

  15. 2006 Jul

    RFC 4627 specified JSON

    RFC 4627 documented JSON as a text format for serializing structured data and registered its media type. It gave Internet applications a compact common object and array syntax.

  16. 2007

    Third Top 10 edition

    The 2007 update continued the list as a maintained reference rather than a one-time catalog of vulnerabilities.

  17. 2007 Jan

    Cox publishes "Regular Expression Matching Can Be Simple and Fast"

    Russ Cox's article demonstrated Thompson's NFA simulation in practice and showed how backtracking engines can take exponential time. It became the standard reference for why linear-time engines matter.

  18. 2007 Jun

    WSDL 2.0 becomes a W3C Recommendation

    WSDL 2.0 standardized service descriptions with HTTP and SOAP support. It kept operations, messages, and bindings explicit and separate from service implementation.

  19. 2007 Dec 7

    Rails 2.0 expands resource-oriented routing

    Rails 2.0 strengthened resource routing, added route inspection, and enabled request-forgery protection in new applications. Resource controllers made HTTP method and path conventions more central to everyday Rails design.

  20. 2008

    OWASP ASVS work begins

    OWASP's project history records the start of ASVS work in 2008. Verification requirements began to complement awareness lists with testable controls.

  21. 2008

    Protocol Buffers released as open source

    Google released Protocol Buffers for external use. Developers outside Google could use its schema language, generated bindings, and numbered-field wire format.

  22. 2008

    Selenium and WebDriver merge

    The two projects combined their communities and roadmaps. The merger set the direction for WebDriver APIs to replace the original Selenium Remote Control approach.

  23. 2008 Sep 2

    V8 ships with Google Chrome

    V8 launches as an open-source JavaScript engine with Chrome. The engine later becomes embeddable in hosts beyond the browser.

  24. 2008 Sep 3

    Django 1.0 released

    Django 1.0 established a compatibility milestone after more than three years of open-source development. Stable upgrade expectations became part of operating Django applications.

  25. 2009

    Node.js embeds V8

    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.

  26. 2009

    Node.js project begins

    The project began in 2009 with release assets stored in a public object-storage bucket. It established server-side JavaScript around V8 and asynchronous I/O.

  27. 2009 Oct

    YAML 1.2 aligned its core model with JSON

    YAML 1.2 made JSON an official subset and revised the recommended schemas. Parser schema selection became a central interoperability decision for human-authored YAML.

2010s

100 milestones

  1. 2010

    OWASP Top 10:2010 released

    The 2010 edition refreshed the risk categories for the changing web application landscape.

  2. 2010 Mar

    RE2 is released as open source

    Google released RE2, a linear-time engine that deliberately omits backreferences and lookarounds to keep matching time proportional to input length. Safe handling of untrusted patterns became a design goal.

  3. 2010 Apr 16

    Flask 0.1 public preview

    Flask 0.1 was released as the first public preview. It established the project that later grew the WSGI application, routing, context, and extension model covered in this course.

  4. 2010 May 12

    Flask 0.2 adds JSON and view registration changes

    Flask 0.2 integrated JSON support and allowed add_url_rule to register a view function. Those changes strengthened the route-to-view and JSON-response boundaries.

  5. 2010 Jul 6

    Flask 0.5 refines template and package support

    Flask 0.5 limited automatic template escaping to selected markup extensions and added per-package template and static directories. The release made template and package layout choices more explicit.

  6. 2010 Aug 29

    Rails 3.0 unifies major internal changes

    Rails 3 introduced a new router, Bundler dependency management, and a composable Active Record query engine based on Arel. These changes shaped the modern route and relation interfaces used in Rails applications.

  7. 2010 Oct

    AngularJS is publicly introduced

    AngularJS introduced its client-side templating and data-binding approach. It established the v1.x line later distinguished from modern Angular.

  8. 2011

    Neo4j launches Cypher

    Neo4j launched Cypher as a declarative language for property graphs. The milestone illustrates the growth of specialized query languages alongside SQL.

  9. 2011

    SQL:2011 adds temporal features

    SQL:2011 added temporal database features. The standard gained a common way to express time-aware data and queries.

  10. 2011 Jun

    Laravel 1 released

    Taylor Otwell released Laravel as a more complete alternative to CodeIgniter, which did not provide built-in user authentication and authorization. It established the framework's focus on developer ergonomics.

  11. 2011 Jul 8

    Selenium 2.0 ships

    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.

  12. 2011 Aug

    Swagger 1.0 released

    The first Swagger Specification formalized a machine-readable description for HTTP APIs. That description could drive documentation and tooling from a contract rather than prose alone.

  13. 2012

    GraphQL created for Facebook mobile applications

    GraphQL originated in 2012. Its initial use established the client-selected API model before the specification became an open standard.

  14. 2012 Feb 22

    Laravel 3 adds Artisan, migrations, and Bundles

    Laravel 3 introduced the Artisan command-line tool, database migrations, and the Bundles packaging system. Scaffolding and schema management became part of the framework rather than manual work.

  15. 2012 Jun

    AngularJS 1.0 is released

    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.

  16. 2012 Jul

    Content Security Policy 1.0 draft defines browser restrictions

    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.

  17. 2013

    OWASP Top 10:2013 released

    The 2013 edition revised the list and broadened some category scopes, affecting how teams mapped findings to risk categories.

  18. 2013 May 28

    Laravel 4 rebuilds on Composer

    Laravel 4, codenamed Illuminate, was rewritten as a set of Composer packages. Eloquent, the query builder, queues, and migrations became a modular core distributed through PHP's standard package manager.

  19. 2013 Jun 13

    Flask 0.10 changes default session serialization

    Flask 0.10 changed the default session cookie serialization from pickle to JSON to limit impact if the secret key leaks. This anchors the session-integrity and secret-key guidance used in this course.

  20. 2013 Aug 6

    First Spring Boot milestone announced

    Spring introduced Spring Boot as an opinionated path for stand-alone Spring applications. The initial direction centered on reducing setup work while retaining Spring's programming model.

  21. 2013 Oct

    ECMA-404 first edition standardized JSON syntax

    Ecma published a concise definition of valid JSON text syntax. The standard deliberately left data interpretation and language mappings to other specifications.

  22. 2013 Oct

    RFC 7049 introduced CBOR

    RFC 7049 specified a compact binary representation based on an extended JSON data model. It added binary strings, tags, and streaming-friendly encodings for constrained environments.

  23. 2014 Feb 25

    Vue 0.6 released publicly

    The early public release established Vue's declarative view layer and reactive data binding as a standalone project.

  24. 2014 Apr 1

    Spring Boot 1.0 reaches general availability

    The first general-availability release established Spring Boot as a supported project. Teams could adopt its executable-application and starter conventions as a stable baseline.

  25. 2014 Jun 5

    First Cypress commit

    Development of Cypress began with a first commit. The project pursued an in-browser runner aimed at modern web application testing.

  26. 2014 Sep

    Swagger 2.0 released

    Swagger 2.0 expanded the formal API description. It made a portable contract a more practical input to code generation, validation, and reference documentation.

  27. 2014 Sep 2

    Django 1.7 introduced schema migrations

    Django 1.7 added built-in schema migrations and the migrate command. Database schema history became a first-class deployment artifact.

  28. 2014 Dec

    io.js fork begins

    The io.js fork created a separate release line and project infrastructure. Its later reconciliation changed project governance and release practice.

  29. 2015 Feb

    Node.js Foundation announced

    The foundation created a neutral governance home while the Node.js and io.js communities worked toward convergence.

  30. 2015 Feb 4

    Laravel 5.0 reorganizes the application

    Laravel 5.0 changed the application directory structure and added form requests and a service-provider-based bootstrap. The layout that later versions refined was set here.

  31. 2015 Jun 9

    Laravel 5.1 becomes the first LTS release

    Laravel 5.1 was the first release with long-term support, giving teams a version with an extended window of bug fixes to standardize on.

  32. 2015 Jun 17

    DevTools arrives in Spring Boot 1.3

    DevTools added automatic restart, development property defaults, and LiveReload support. The release made local feedback during application changes a first-class concern.

  33. 2015 Sep

    Lumen released for microservices

    Lumen, a stripped-down derivative of Laravel aimed at microservices and APIs, was released. It shared Laravel's components with a lighter bootstrap for latency-sensitive services.

  34. 2015 Oct

    October 2015 specification edition

    A second 2015 edition continued the public specification series that implementers could use as a common reference.

  35. 2015 Oct 7

    React 0.14 separates React from React DOM

    The release split host-independent component APIs from the DOM renderer and introduced stateless function components.

  36. 2015 Oct 26

    Vue 1.0 released

    Vue reached its first stable major release and formalized the component and directive model used by early production applications.

  37. 2015 Dec

    Let's Encrypt enters public beta

    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.

  38. 2015 Dec

    Swagger 2.0 donated to the OpenAPI Initiative

    The Swagger 2.0 specification was donated to the OpenAPI Initiative. The description format then moved under vendor-neutral governance as OpenAPI.

  39. 2016

    SQL:2016 adds JSON support

    SQL:2016 incorporated JSON-related features. Relational databases could standardize some work with semi-structured values without abandoning tables, constraints, and joins.

  40. 2016 Apr

    April 2016 specification edition

    The April 2016 edition extended the stable public reference sequence for language and execution behavior.

  41. 2016 Apr 7

    React 15 adopts major-version numbering

    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.

  42. 2016 Jun 27

    ASP.NET Core 1.0 released

    ASP.NET Core 1.0 introduced the modular, cross-platform web framework with a unified MVC and Web API stack. It established the host and middleware approach that later releases extended.

  43. 2016 Jun 30

    Rails 5.0 adds Action Cable and API mode

    Rails 5 integrated WebSocket connections through Action Cable and added a focused API application mode. The framework could support real-time features and JSON services without abandoning its common conventions.

  44. 2016 Aug

    gRPC 1.0 released

    gRPC 1.0 established a stable protocol and API surface for service contracts, including streaming call forms. API design work could therefore apply contract thinking beyond HTTP resource APIs.

  45. 2016 Sep

    Angular 2.0.0 is released

    Angular 2 established the modern framework line with a new component and TypeScript-oriented platform. Documentation and release policy treat AngularJS v1.x separately.

  46. 2016 Sep 30

    Vue 2.0 released

    Vue 2 adopted a virtual DOM renderer and server-side rendering support, changing how larger Vue applications were built and delivered.

  47. 2016 Oct

    October 2016 specification edition

    The October 2016 edition consolidated the early open-standard work into a later reference point for implementers.

  48. 2016 Nov 26

    Svelte 1.0 introduced

    The first stable release presented components compiled into standalone JavaScript modules. This established compilation as Svelte's defining approach to interface updates.

  49. 2016 Dec 21

    Flask 0.12 advances the command-line interface

    Flask 0.12 made the CLI command respond to the version option and expanded application operational tooling. The command line became a more visible application boundary.

  50. 2017

    OWASP Top 10:2017 released

    The 2017 edition documented categories including injection, broken authentication, and sensitive data exposure.

  51. 2017 Apr 5

    New Gradle plugin announced for Spring Boot 2.0

    The redesigned Gradle plugin introduced the bootJar and bootWar task model. Packaging became more explicitly connected to the build lifecycle.

  52. 2017 May 30

    Node.js 8 introduces async hooks

    Version 8 introduced the async hooks API, giving diagnostics and instrumentation code a way to track asynchronous resources.

  53. 2017 Jul

    OpenAPI 3.0 released

    OpenAPI 3.0 introduced a major revision of the HTTP API description format. Design reviews could use a standard artifact for paths, operations, schemas, responses, and security requirements.

  54. 2017 Aug

    ASP.NET Core 2.0 added Razor Pages

    ASP.NET Core 2.0 added Razor Pages for page-focused server-rendered applications. This gave teams another endpoint model on the same hosting and dependency-injection foundation.

  55. 2017 Aug 30

    Laravel 5.5 adds package auto-discovery

    Laravel 5.5, the next LTS release, added package auto-discovery. Installed packages registered their service providers and facades without manual edits to configuration files.

  56. 2017 Sep 26

    React 16 ships the Fiber core

    React 16 introduced a rewritten core while preserving the component API, and added error boundaries, fragments, and additional render return types.

  57. 2017 Oct 10

    Cypress enters public beta

    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.

  58. 2017 Dec

    RFC 8259 made JSON an Internet Standard

    RFC 8259 resolved specification inconsistencies and added interoperability guidance for JSON. It requires UTF-8 for JSON exchanged between systems outside a closed ecosystem.

  59. 2017 Dec 2

    Django 2.0 introduced path converters

    Django 2.0 added the path function and route syntax with path converters. URL patterns became easier to express without regular expressions for common paths.

  60. 2018 Feb 5

    Next.js 5 unifies the Webpack pipeline

    Universal Webpack runs the build pipeline for server and client code and expands the plugin model.

  61. 2018 Mar 1

    Spring Boot 2.0 becomes generally available

    Spring Boot 2.0 established Spring Framework 5 as its baseline. The major release marked a new generation of the platform's application model.

  62. 2018 Apr 9

    Rails 5.2 adds Active Storage

    Rails 5.2 integrated file attachments through Active Storage and introduced encrypted credentials. File persistence and secret configuration gained standard framework paths.

  63. 2018 Apr 18

    Svelte 2 released

    Version 2 adopted single-curly template expressions, changed lifecycle and component APIs, and emitted modern JavaScript. An upgrade tool supported the breaking transition.

  64. 2018 Apr 24

    Node.js 10 adds promise-based file APIs

    Version 10 introduced an experimental promises interface for file-system operations, extending promise-based application flow into core I/O.

  65. 2018 Apr 26

    Flask 1.0 establishes a major compatibility baseline

    Flask 1.0 dropped Python 2.6 and Python 3.3 support and raised core dependency minimums. Application and extension maintainers had a documented major-version compatibility boundary.

  66. 2018 May

    Angular 6.0.0 is released

    Angular 6 continued the modern major-release line. Regular major upgrades became part of the practical maintenance model for Angular applications.

  67. 2018 May

    ASP.NET Core 2.1 added hosted integration-test support

    ASP.NET Core 2.1 documented integration-test support and expanded the framework's testing story around hosted application behavior. This reinforced testing routes, middleware, and services through the HTTP boundary.

  68. 2018 May 16

    Next.js 6 makes static export a default path

    Static export gains automatic route mapping, while the application extension point and early TypeScript plugin support broaden project structure.

  69. 2018 Jun

    ES2018 adds modern regex features to JavaScript

    ECMAScript 2018 shipped dotAll mode, named capture groups, lookbehind assertions, and Unicode property escapes, closing long-standing gaps with the Perl-compatible feature set.

  70. 2018 Jun

    June 2018 specification edition

    The June 2018 edition marked a later specification release used by the growing ecosystem of GraphQL tools and services.

  71. 2018 Jun 5

    WebDriver becomes a W3C Recommendation

    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.

  72. 2018 Aug

    TLS 1.3 is published

    RFC 8446 specified TLS 1.3 and obsoleted earlier TLS specifications. It updated the secure transport baseline used by web applications.

  73. 2018 Aug 10

    Vue CLI 3.0 released

    The CLI introduced a plugin-based project system and a graphical management interface for standardized Vue build configuration.

  74. 2018 Sep 19

    Next.js 7 modernizes compilation

    Webpack 4, Babel 7, incremental compilation, and standardized dynamic imports improve build behavior and code splitting.

  75. 2018 Sep 20

    Cypress leaves beta

    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.

  76. 2018 Oct

    Limited public beta opens

    GitHub introduced GitHub Actions as a limited public beta. Repository automation became a first-class GitHub capability.

  77. 2019

    GraphQL Foundation and Specification Project established

    The GraphQL Foundation became a neutral focal point for ecosystem support, and the GraphQL Specification Project was established with the Joint Development Foundation.

  78. 2019 Feb 4

    Vue 2.6 released

    The release introduced a unified slot syntax and prepared application code for component patterns that continued into Vue 3.

  79. 2019 Feb 6

    React 16.8 releases Hooks

    Hooks made state and other React features available to function components and enabled stateful logic to be reused without changing the component hierarchy.

  80. 2019 Apr 1

    Django 2.2 became an LTS release

    Django 2.2 added database constraints and began an LTS line. Teams could select a supported baseline while using stronger model-level database constraints.

  81. 2019 Apr 22

    Svelte 3 reworked reactivity

    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.

  82. 2019 May 13

    Stable v1 utility vocabulary

    The v1 release establishes a stable major-version foundation for utility-based styling. Its release notes document the initial compatibility boundary.

  83. 2019 Jul 8

    Next.js 9 adds dynamic routes and API Routes

    File-based dynamic segments, built-in TypeScript, automatic static optimization, and API Routes reduce the need for a custom server.

  84. 2019 Aug

    CI/CD beta adds hosted runners

    The beta added built-in CI/CD with hosted Linux, macOS, and Windows runners. This established the runner model for build and test jobs.

  85. 2019 Aug 15

    Rails 6.0 broadens application infrastructure

    Rails 6 added Action Mailbox, Action Text, multiple-database support, parallel testing, and the Zeitwerk code loader. Incoming email, rich text, database topology, and constant loading moved further into documented framework conventions.

  86. 2019 Sep

    ASP.NET Core 3.0 introduced Endpoint Routing

    Endpoint Routing made endpoint selection and middleware composition explicit in the request pipeline. Authorization, CORS, and Health Checks could use endpoint metadata through this shared mechanism.

  87. 2019 Sep

    AsyncAPI 2.0 released

    AsyncAPI 2.0 provided a specification for asynchronous APIs. Message channels, publishers, subscribers, and message schemas became first-class contract elements.

  88. 2019 Sep 3

    Laravel 6 adopts semantic versioning

    Laravel 6 moved to semantic versioning, so a major version number became a reliable signal that an upgrade could contain breaking changes. Upgrade planning became more predictable.

  89. 2019 Sep 25

    Worker threads become stable

    Node.js 12.11 marked worker threads stable, establishing an in-process mechanism for parallel JavaScript computation.

  90. 2019 Nov

    GitHub Actions reaches general availability

    GitHub Actions became generally available. The platform became available for production repository automation.

  91. 2019 Dec 2

    Django 3.0 added ASGI application support

    Django 3.0 could run as an ASGI application alongside its existing WSGI support. Internal request handling remained synchronous at that point.

2020s

94 milestones

  1. 2020 Feb

    Angular 9 makes Ivy the default

    Angular 9 made the Ivy compiler and runtime the default. Application builds and library compatibility thereafter centered on the Ivy-based platform.

  2. 2020 Mar 9

    Next.js 9.3 formalizes static generation

    getStaticProps and getStaticPaths give Pages Router applications explicit build-time data and route generation APIs.

  3. 2020 Apr 21

    Node.js 14 removes the module warning

    Node.js 14 stopped emitting the experimental warning for ECMAScript modules, moving standard module use closer to the normal runtime path.

  4. 2020 May 6

    Playwright 1.0.0 is released

    Playwright reached its first stable major release with bundled Chromium, Firefox, and WebKit builds. One automation API could target the three browser engines.

  5. 2020 May 11

    Next.js 9.4 introduces Incremental Static Regeneration

    Static output can be regenerated after deployment instead of requiring a complete rebuild for every content change.

  6. 2020 May 13

    Deno 1.0 released

    Deno 1.0 established the first stable major release. It made the runtime's integrated TypeScript support and opt-in permissions a supported foundation for application work.

  7. 2020 May 15

    Spring Boot 2.3 adds image and availability features

    Buildpack image tasks, layered JARs, graceful shutdown, and availability probes arrived together. Container delivery and orchestrator-facing health behavior moved closer to the standard toolchain.

  8. 2020 Jul 2

    Nuxt 3 development begins

    The first Nuxt 3 commit starts a full TypeScript rewrite that becomes the basis of the current framework architecture.

  9. 2020 Jul 17

    Official TypeScript support arrived

    The Svelte organization consolidated compiler, language-server, editor, and checking support for TypeScript in components. The `svelte-check` command provided project diagnostics.

  10. 2020 Aug 14

    Spring Boot 2.4 redesigns config-data processing

    Config data gained ordered documents, imports, changed profile handling, and configuration trees. Configuration precedence became a more explicit deployment concern.

  11. 2020 Sep 13

    Deno 1.4 added WebSocket, watch, and coverage features

    Deno 1.4 added a web-standard WebSocket API, `deno run --watch`, and integrated test coverage. These additions expanded the built-in development loop around the runtime.

  12. 2020 Sep 18

    Vue 3.0 released

    Vue 3 introduced Composition API, a rewritten renderer and reactivity system, fragments, Teleport, and stronger TypeScript support.

  13. 2020 Oct 7

    Tailwind Play browser playground

    The official playground brings utility and configuration experiments into a browser-based editing environment.

  14. 2020 Oct 20

    React 17 enables gradual upgrades

    React 17 focused on making it safer to run multiple React versions on one page so applications could upgrade in stages.

  15. 2020 Oct 27

    Next.js 10 adds image optimization and internationalized routing

    Framework-managed images and locale routing extend the set of production concerns handled through Next.js conventions.

  16. 2020 Nov

    ASP.NET Core 5.0 expanded Web API templates

    ASP.NET Core 5.0 Web API templates enabled OpenAPI support by default. The template made an API description and development-time UI part of the starting HTTP API workflow.

  17. 2020 Nov 2

    Nitro work begins

    Initial work starts on the portable server engine that later owns Nuxt server routes and production output.

  18. 2020 Nov 5

    SvelteKit announced as Sapper's successor

    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.

  19. 2020 Nov 18

    Dark mode becomes a supported variant

    Version 2 adds dark-mode support and ring utilities, expanding the conditional styling vocabulary for application interfaces.

  20. 2020 Dec

    Environments add deployment protection rules

    Environments added protection rules and scoped secrets to deployment targets. Deployment approval became workflow configuration.

  21. 2020 Dec

    RFC 8949 advanced CBOR to Internet Standard

    RFC 8949 replaced RFC 7049 with revised encoding rules, deterministic encoding guidance, and operational considerations. It preserved the compact major-type and tag model.

  22. 2020 Dec 8

    Deno 1.6 added compile and language-server support

    Deno 1.6 introduced `deno compile` for standalone executables and a built-in language server. The release extended Deno from direct script execution into editor and distribution workflows.

  23. 2021

    OWASP Top 10:2021 released

    OWASP introduced new categories and naming changes that emphasized root causes over symptoms, using a formalized data-collection process.

  24. 2021

    OWASP Top Ten 2021 is released

    OWASP released the 2021 Top Ten to mark its twentieth year. The project continued its periodic revision of the web application risk categories.

  25. 2021 Jan 22

    Vite support enters Nuxt 3

    Initial Vite support establishes the faster development and build path that ships with the Nuxt 3 rewrite.

  26. 2021 Feb

    OpenAPI 3.1 released

    OpenAPI 3.1 aligned its Schema Object with JSON Schema draft 2020-12 and added webhooks. HTTP API contracts could express schema constraints with closer alignment to the wider JSON Schema ecosystem.

  27. 2021 Mar 15

    Just-in-time engine introduced

    An experimental compiler generates styles on demand from source usage, including arbitrary values. This changes how developers manage the available utility surface.

  28. 2021 Mar 23

    SvelteKit entered public beta

    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.

  29. 2021 Apr

    Workflow and job concurrency controls arrive

    GitHub added concurrency controls for workflow runs and jobs. Teams could cancel or queue overlapping work through YAML.

  30. 2021 May 11

    Flask 2.0 drops Python 2 and Python 3.5

    Flask 2.0 ended support for Python 2 and Python 3.5 and updated Pallets dependency requirements. Deployments and extension stacks needed to align their Python and dependency baselines.

  31. 2021 Jun 23

    Deno Deploy Beta 1 launched

    Deno announced the first beta of Deno Deploy, a hosted JavaScript execution service. It connected the runtime's JavaScript and TypeScript workflow to a managed deployment option.

  32. 2021 Aug 5

    Vue 3.2 released

    Script setup and style state bindings became stable, making Composition API Single-File Components more concise in production projects.

  33. 2021 Sep

    Ephemeral self-hosted runners support autoscaling

    Ephemeral runners and workflow_job webhooks enabled single-job self-hosted runners that autoscalers can manage.

  34. 2021 Sep 5

    Nuxt Bridge work begins

    Nuxt Bridge brings parts of the new Nuxt 3 architecture to Nuxt 2 projects and creates an incremental migration path.

  35. 2021 Oct

    Deno 1.15 previewed Node compatibility

    Deno 1.15 introduced an early compatibility mode for Node.js applications and libraries. Compatibility became a practical migration concern rather than only a runtime-design distinction.

  36. 2021 Oct

    October 2021 specification edition

    The October 2021 edition provided an updated normative reference for the language, type system, validation, and execution rules.

  37. 2021 Oct 1

    YAML 1.2.2 clarified the specification

    YAML 1.2.2 corrected errors and clarified the YAML 1.2 language without normative changes. The revision also moved the specification source to an open Markdown-based process.

  38. 2021 Oct 11

    Nuxt 3 beta becomes public

    The open beta exposes the Vue 3, Vite, Nitro, native ESM, auto-import, and composable foundation for community testing.

  39. 2021 Oct 13

    Selenium 4.0.0 is released

    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.

  40. 2021 Oct 26

    Next.js 12 moves compilation toward Rust

    The SWC-based compiler becomes the default, while Middleware and early React Server Component support preview new request and rendering boundaries.

  41. 2021 Nov

    ASP.NET Core 6 introduced Minimal APIs

    ASP.NET Core 6 added Minimal APIs and the minimal hosting model. Small HTTP services could map handlers directly while retaining the same host, routing, middleware, and dependency-injection services.

  42. 2021 Nov

    Reusable workflows become generally available

    Reusable workflows gained outputs, environment-secret support, and audit-log visibility. Organizations could centralize workflow logic.

  43. 2021 Dec 9

    On-demand compilation becomes the default

    Version 3 adopts the just-in-time engine as the normal build path. Developers use arbitrary values without configuring a separate experimental mode.

  44. 2021 Dec 15

    Rails 7.0 adopts Hotwire and import maps

    Rails 7 paired Turbo and Stimulus with an import-map-based JavaScript default. Server-rendered HTML regained a first-party path to interactive interfaces without requiring a Node-based build step by default.

  45. 2022 Feb 7

    Vue 3 became the default

    Package tags, documentation, and official ecosystem guidance moved to Vue 3 as the standard starting point for new work.

  46. 2022 Mar 29

    React 18 introduces concurrent rendering foundations

    React 18 added automatic batching, transitions, new client root APIs, and streaming server rendering improvements built on the concurrent renderer.

  47. 2022 Jun 7

    Arbitrary variants extend selector conditions

    Version 3.1 introduces arbitrary variants, allowing one-off selector conditions alongside built-in variants.

  48. 2022 Jul 1

    Vue 2.7 released

    The final Vue 2 minor line backported Composition API and script setup features to support staged migration toward Vue 3.

  49. 2022 Aug 1

    Flask 2.2 moves contexts to Python context variables

    Flask 2.2 managed application and request contexts with Python context variables rather than Werkzeug LocalStack. It also introduced the JSON provider customization point used by JSON response behavior.

  50. 2022 Aug 3

    Django 4.1 added asynchronous QuerySet methods

    Django 4.1 added async class-based view handlers and an asynchronous interface for QuerySet data-access operations. The underlying database work remained synchronous.

  51. 2022 Oct 19

    Container queries enter the ecosystem

    Version 3.2 introduces an official container-query plugin, enabling component styling based on available container width.

  52. 2022 Oct 25

    Next.js 13 introduces the App Router in beta

    The app directory brings nested layouts, React Server Components, streaming, and component-level data fetching into a new router.

  53. 2022 Nov

    Angular 15 stabilizes standalone APIs

    Angular 15 made standalone APIs stable, allowing applications to compose template dependencies directly without requiring NgModules for new code.

  54. 2022 Nov 8

    ASP.NET Core in .NET 7 added rate limiting

    The .NET 7 release added built-in rate limiting policies for handled requests. Rate limits could be attached to endpoints as part of the request-pipeline protection boundary.

  55. 2022 Nov 14

    Deno 1.28 stabilized npm compatibility

    Deno 1.28 stabilized npm compatibility and added `npm:` imports. The release made existing package selection part of routine Deno project evaluation.

  56. 2022 Nov 16

    Nuxt 3 reaches stable release

    Nuxt 3.0 establishes a production-ready API around Vue 3, Vite, Nitro, TypeScript, filesystem conventions, and Nuxt Kit modules.

  57. 2022 Nov 24

    Spring Boot 3.0 becomes generally available

    Spring Boot 3.0 raised the Java baseline to 17, moved to Jakarta EE 10, added GraalVM support, and updated observability capabilities. Upgrades now required coordinated review of language, dependency, and API changes.

  58. 2022 Dec 14

    SvelteKit 1.0 released

    SvelteKit became the recommended application framework for Svelte projects. Its stable contract covered routing, server and client rendering, data operations, and adapter-based deployment.

  59. 2023

    ISO publishes the 2023 SQL framework edition

    ISO/IEC 9075-1:2023 published the sixth framework edition and references SQL property graph queries as part of the standard family. SQL continues to grow through coordinated parts rather than one vendor's dialect alone.

  60. 2023 Feb 14

    Laravel 10 released

    Laravel 10 continued the annual cadence and raised the minimum supported PHP version, keeping the framework aligned with current language releases.

  61. 2023 Mar 16

    react.dev becomes the documentation home

    The new documentation began teaching function components and Hooks from the start, while the previous documentation moved to the legacy site.

  62. 2023 Mar 28

    Logical properties support writing directions

    Version 3.3 adds logical property utilities that support left-to-right and right-to-left layouts with a shared vocabulary.

  63. 2023 Apr 25

    Flask 2.3 removes the FLASK_ENV distinction

    Flask 2.3 removed the FLASK_ENV environment variable and app.env property, making debug mode a direct setting. It also made setup methods on blueprints after registration an error.

  64. 2023 May

    Angular 16 introduces signals in developer preview

    Angular 16 introduced signals as a new reactive primitive. The model gave applications a current-value form of reactivity alongside observable streams.

  65. 2023 May 2

    Deno added package.json support

    Deno added support for `package.json` workflows while retaining URL-based imports. Projects could combine Deno-specific configuration with existing Node dependency and script conventions.

  66. 2023 May 4

    Next.js 13.4 stabilizes the App Router

    The App Router becomes stable, establishing it as the supported path for layouts, Server Components, and streaming applications.

  67. 2023 Jun 22

    Svelte 4 released

    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.

  68. 2023 Sep 20

    Runes previewed

    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.

  69. 2023 Sep 30

    Flask 3.0 introduces Sans-IO bases for app and blueprint classes

    Flask 3.0 restructured the Flask application and Blueprint classes around Sans-IO bases and removed previously deprecated code. The release marked a new major compatibility boundary for applications and extensions.

  70. 2023 Oct 26

    Next.js 14 stabilizes Server Actions

    Server Actions become stable and integrate mutations with forms, caching, revalidation, and redirects.

  71. 2023 Nov

    Angular 17 adds built-in control flow and deferrable views

    Angular 17 introduced modern template control flow and deferrable views. These features changed how templates express conditional, repeated, and deferred content.

  72. 2023 Nov 13

    Nuxt DevTools reaches version 1.0

    The development inspector becomes generally available for examining pages, components, imports, modules, assets, and application behavior.

  73. 2023 Nov 14

    .NET 8 brought Native AOT to ASP.NET Core APIs

    .NET 8 added Native AOT support for supported ASP.NET Core application types, including Minimal APIs. The deployment choice made trimming, generated JSON metadata, and incompatible dynamic features explicit design constraints.

  74. 2023 Nov 23

    Spring Boot 3.2 adds virtual-thread support

    Spring Boot 3.2 added virtual-thread support, initial CRaC support, RestClient, and observability improvements. Runtime-concurrency and deployment options continued to expand without changing the core application-context model.

  75. 2023 Dec

    Artifacts v4 becomes generally available

    Artifact v4 made uploaded artifacts job-scoped and immutable. Artifact transfer needed to account for its compatibility boundary with earlier versions.

  76. 2023 Dec 4

    Django 5.0 added database-side defaults

    Django 5.0 added database-computed default values and database-side defaults. Model declarations could represent more database-managed behavior.

  77. 2023 Dec 19

    Viewport and selector capabilities expand

    Version 3.4 adds dynamic viewport units, has variants, and subgrid utilities to the layout vocabulary.

  78. 2023 Dec 31

    Vue 2 reached end of life

    Official Vue 2 feature, fix, and security maintenance ended, making Vue 3 the maintained foundation for new and migrated applications.

  79. 2024 Mar 12

    Laravel 11 slims the application skeleton

    Laravel 11 consolidated middleware and application configuration into bootstrap/app.php, reducing the number of default files, and bundled the first-party Reverb WebSocket server.

  80. 2024 May

    Angular 18 stabilizes modern platform features

    Angular 18 continued the transition by stabilizing built-in control flow and deferrable views, while Angular documented migrations for existing applications.

  81. 2024 Jun 30

    Nuxt 2 reaches end of life

    Official Nuxt 2 maintenance ends, making migration to the Nuxt 3 architecture the supported path for security and browser compatibility updates.

  82. 2024 Sep 1

    Vue 3.5 released

    Vue 3.5 revised the reactivity internals and added reactive prop destructuring, watcher cleanup, and hydration improvements without a breaking major release.

  83. 2024 Oct 9

    Deno 2.0 released

    Deno 2.0 made Node and npm backward compatibility a central release goal while retaining the integrated toolchain, web APIs, and secure-by-default model. Runtime selection increasingly required testing real packages instead of comparing slogans.

  84. 2024 Oct 21

    Next.js 15 revises caching defaults and adopts React 19

    The release changes request and router caching behavior, adds React 19 support, and stabilizes Turbopack for development.

  85. 2024 Oct 22

    Svelte 5 released

    Svelte 5 made runes, snippets, event properties, and the function-based component API stable. Legacy syntax remained supported to permit gradual migration.

  86. 2024 Nov 7

    Rails 8.0 centers database-backed defaults and Kamal

    Rails 8 arrived with Kamal 2, Thruster, Solid Queue, Solid Cache, Solid Cable, Propshaft, and an authentication generator. A new application could use its relational database for more operational roles and follow a built-in container deployment path.

  87. 2024 Nov 13

    Flask 3.1 adds request resource limits and trusted-host configuration

    Flask 3.1 added per-request maximum content length customization, form limits, and trusted-host configuration. These changes made resource and host controls more explicit at the application boundary.

  88. 2024 Dec 5

    React 19 releases Actions and new server APIs

    React 19 added Actions for asynchronous transitions, new form integration, the use API, and stable support for React Server Components in compatible frameworks.

  89. 2025

    OWASP Top 10:2025 released

    The 2025 edition updated the ten-category map, including software supply chain failures and mishandling of exceptional conditions.

  90. 2025 Jan 21

    CSS-first v4 build model

    Version 4 introduces CSS-first configuration, automatic source detection, and dedicated build integrations. Shared tokens become CSS theme variables.

  91. 2025 Feb 24

    Laravel 12 released

    Laravel 12 continued the annual cadence with a deliberate focus on minimal breaking changes, so most applications could upgrade with little code modification.

  92. 2025 Jul 15

    Nuxt 4 reaches stable release

    Nuxt 4 formalizes the app directory structure, improves data-fetching behavior and type safety, and carries tested compatibility changes into a new major version.