Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Detect JS Framework used in a Website
// Paste these lines into website's console (Win/Linux: Ctrl + Shift + I / Mac: Cmd + Alt + I)
if(!!window.React ||
!!document.querySelector('[data-reactroot], [data-reactid]'))
console.log('React.js');
if(!!document.querySelector('script[id=__NEXT_DATA__]'))
console.log('Next.js');
if(!!document.querySelector('[id=___gatsby]'))
console.log('Gatsby.js');
if(!!window.angular ||
!!document.querySelector('.ng-binding, [ng-app], [data-ng-app], [ng-controller], [data-ng-controller], [ng-repeat], [data-ng-repeat]') ||
!!document.querySelector('script[src*="angular.js"], script[src*="angular.min.js"]'))
console.log('Angular.js');
if (!!window.getAllAngularRootElements ||
!!window.ng?.coreTokens?.NgZone)
console.log('Angular 2+');
if(!!window.Backbone) console.log('Backbone.js');
if(!!window.Ember) console.log('Ember.js');
if(!!window.Vue) console.log('Vue.js');
if(!!window.Meteor) console.log('Meteor.js');
if(!!window.Zepto) console.log('Zepto.js');
if(!!window.jQuery) console.log('jQuery.js');
@rambabusaravanan
Copy link
Author

rambabusaravanan commented Mar 15, 2017

Flipkart - React.js
LinkedIn - Ember.js & jQuery
Firebase - Angular.js & jQuery

angularjs.org - Angular.js & jQuery
emberjs.com - Ember.js & jQuery
meteor.com - Meteor.js & jQuery
vuejs.org - Vue.js & Zepto.js

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Mar 16, 2017

GoDaddy (dcc.godaddy.com) - Angular.js & jQuery
Wikipedia - jQuery

laravel.com - Vue.js & jQuery

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Mar 22, 2017

Atlassian products (Jira, Confluence, Bitbucket) - Backbone.js & jQuery.js
https://yourcompany.atlassian.net/

Assembla (app.assembla.com) - React.js & jQuery.js

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Mar 23, 2017

Zoho Mail - React.js, Backbone.js, jQuery.js

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Mar 28, 2017

Airbnb - React.js, Backbone.js, jQuery.js

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Apr 3, 2017

zomato.com/chennai - React.js & jQuery.js
swiggy.com - Angular.js & jQuery.js

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Apr 24, 2017

Slack - jQuery.js & React.js

@thiyagesh6m
Copy link

thiyagesh6m commented Aug 10, 2017

good work babu :)

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Sep 2, 2017

Amazon Web Services
AWS Console Home (https://console.aws.amazon.com/console/home) - React.js
AWS Support Center (https://console.aws.amazon.com/support/home) - Angular.js, jQuery.js
AWS Signin Page (https://signin.aws.amazon.com/signin) - Zepto.js, jQuery.js

@neoweezy
Copy link

neoweezy commented Jan 3, 2018

Hip-Hop Africa Home page: http://hiphopAfrica.co - Angular.js, jQuery.js
South African Hiphop Page & category: http://hiphopafrica.co/south-africa/ - Angular.js, Zepto.js

@Fluchaaa
Copy link

Fluchaaa commented Mar 5, 2018

Spotify - React.js

@hamzahamidi
Copy link

hamzahamidi commented Jun 29, 2019

Azure DevOps React.Js

@hamzahamidi
Copy link

hamzahamidi commented Jun 29, 2019

Firebase console Angular.js

@tarasshpek
Copy link

tarasshpek commented Sep 19, 2019

To check if website uses Angular 2+:
if (!!window.getAllAngularRootElements) console.log('Angular 2+');

@nonopolarity
Copy link

nonopolarity commented Feb 19, 2020

@nagayev
Copy link

nagayev commented May 25, 2020

@shimscharf
Copy link

shimscharf commented Jun 15, 2020

One distinction is to determine which framework is currently using the $ (dollar) variable.

I use:
if($ === window.jQuery) console.log ('using jQuery');

This allows my modules to know which interface to implement for my variables at run time

@gercamjr
Copy link

gercamjr commented Jul 9, 2021

If an undefined is printed would that mean custom js?

@websolutions-hamburg
Copy link

websolutions-hamburg commented Jul 13, 2021

If an undefined is printed would that mean custom js?

@gercamjr not to 100%. It says that we can not detect a framework on normal way.

For example, you can write a code like this:

(function() {
  const $ = window.jQuery;
  window.jQuery = undefined;
})()

if(!!window.jQuery) console.log('jQuery.js'); will output nothing, but jQuery is used.

@anhtuta
Copy link

anhtuta commented Aug 21, 2021

This doesn't work, I tried on Spotify, Facebook... and it print undefined

@shubhankar5
Copy link

shubhankar5 commented Apr 10, 2022

@rambabusaravanan Hey is there any way to make it work in 2022. It seems like the window object no more has these properties for most of the frameworks. Hope to see a solution for this!

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Apr 11, 2022

Spotify landing page (https://www.spotify.com/) -> Next.js
Apple Store (https://www.apple.com/store) -> React.js

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Apr 11, 2022

@shubhankar5 as you mentioned, the latest react has changed the way of rendering and is hard to detect. For example, as @anhtuta mentioned Spotify, its Web Player is built using react but couldn't detect by navigating through dom. I will check on this ..

@rambabusaravanan
Copy link
Author

rambabusaravanan commented Apr 11, 2022

Angular (https://angular.io/) -> Angular 2+
Delta (https://www.delta.com/) -> Angular 2+, jQuery
Freelancer (https://www.freelancer.com/) -> Angular 2+

UpWork (https://www.upwork.com/) -> Vue.js

Hulu (https://www.hulu.com/welcome) -> Next.js
Netflix Jobs (https://jobs.netflix.com/) -> Next.js
AT & T (https://www.att.com/) -> Next.js

Singtel Shop (https://shop.singtel.com/) -> Gatsby.js
Apollo GraphQL (https://www.apollographql.com/) -> Gatsby.js
National Geography (https://www.nationalgeographic.co.uk/) -> Gatsby.js
React developer docs (https://reactjs.org/) -> Gatsby.js
TypeScript developer docs (https://www.typescriptlang.org/) -> Gatsby.js
Figma (https://www.figma.com/) -> Gatsby.js

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment