Node.JS
made by https://0x3d.site
GitHub - jsdom/jsdom: A JavaScript implementation of various web standards, for use with Node.jsA JavaScript implementation of various web standards, for use with Node.js - jsdom/jsdom
Visit Site
GitHub - jsdom/jsdom: A JavaScript implementation of various web standards, for use with Node.js
jsdom is a pure-JavaScript implementation of many web standards, notably the WHATWG DOM and HTML Standards, for use with Node.js. In general, the goal of the project is to emulate enough of a subset of a web browser to be useful for testing and scraping real-world web applications.
The latest versions of jsdom require Node.js v18 or newer. (Versions of jsdom below v23 still work with previous Node.js versions, but are unsupported.)
Basic usage
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
To use jsdom, you will primarily use the JSDOM
constructor, which is a named export of the jsdom main module. Pass the constructor a string. You will get back a JSDOM
object, which has a number of useful properties, notably window
:
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
console.log(dom.window.document.querySelector("p").textContent); // "Hello world"
(Note that jsdom will parse the HTML you pass it just like a browser does, including implied <html>
, <head>
, and <body>
tags.)
The resulting object is an instance of the JSDOM
class, which contains a number of useful properties and methods besides window
. In general, it can be used to act on the jsdom from the "outside," doing things that are not possible with the normal DOM APIs. For simple cases, where you don't need any of this functionality, we recommend a coding pattern like
const { window } = new JSDOM(`...`);
// or even
const { document } = (new JSDOM(`...`)).window;
Full documentation on everything you can do with the JSDOM
class is below, in the section "JSDOM
Object API".
Customizing jsdom
The JSDOM
constructor accepts a second parameter which can be used to customize your jsdom in the following ways.
Simple options
const dom = new JSDOM(``, {
url: "https://example.org/",
referrer: "https://example.com/",
contentType: "text/html",
includeNodeLocations: true,
storageQuota: 10000000
});
url
sets the value returned bywindow.location
,document.URL
, anddocument.documentURI
, and affects things like resolution of relative URLs within the document and the same-origin restrictions and referrer used while fetching subresources. It defaults to"about:blank"
.referrer
just affects the value read fromdocument.referrer
. It defaults to no referrer (which reflects as the empty string).contentType
affects the value read fromdocument.contentType
, as well as how the document is parsed: as HTML or as XML. Values that are not a HTML MIME type or an XML MIME type will throw. It defaults to"text/html"
. If acharset
parameter is present, it can affect binary data processing.includeNodeLocations
preserves the location info produced by the HTML parser, allowing you to retrieve it with thenodeLocation()
method (described below). It also ensures that line numbers reported in exception stack traces for code running inside<script>
elements are correct. It defaults tofalse
to give the best performance, and cannot be used with an XML content type since our XML parser does not support location info.storageQuota
is the maximum size in code units for the separate storage areas used bylocalStorage
andsessionStorage
. Attempts to store data larger than this limit will cause aDOMException
to be thrown. By default, it is set to 5,000,000 code units per origin, as inspired by the HTML specification.
Note that both url
and referrer
are canonicalized before they're used, so e.g. if you pass in "https:example.com"
, jsdom will interpret that as if you had given "https://example.com/"
. If you pass an unparseable URL, the call will throw. (URLs are parsed and serialized according to the URL Standard.)
Executing scripts
jsdom's most powerful ability is that it can execute scripts inside the jsdom. These scripts can modify the content of the page and access all the web platform APIs jsdom implements.
However, this is also highly dangerous when dealing with untrusted content. The jsdom sandbox is not foolproof, and code running inside the DOM's <script>
s can, if it tries hard enough, get access to the Node.js environment, and thus to your machine. As such, the ability to execute scripts embedded in the HTML is disabled by default:
const dom = new JSDOM(`<body>
<div id="content"></div>
<script>document.getElementById("content").append(document.createElement("hr"));</script>
</body>`);
// The script will not be executed, by default:
console.log(dom.window.document.getElementById("content").children.length); // 0
To enable executing scripts inside the page, you can use the runScripts: "dangerously"
option:
const dom = new JSDOM(`<body>
<div id="content"></div>
<script>document.getElementById("content").append(document.createElement("hr"));</script>
</body>`, { runScripts: "dangerously" });
// The script will be executed and modify the DOM:
console.log(dom.window.document.getElementById("content").children.length); // 1
Again we emphasize to only use this when feeding jsdom code you know is safe. If you use it on arbitrary user-supplied code, or code from the Internet, you are effectively running untrusted Node.js code, and your machine could be compromised.
If you want to execute external scripts, included via <script src="">
, you'll also need to ensure that they load them. To do this, add the option resources: "usable"
as described below. (You'll likely also want to set the url
option, for the reasons discussed there.)
Event handler attributes, like <div onclick="">
, are also governed by this setting; they will not function unless runScripts
is set to "dangerously"
. (However, event handler properties, like div.onclick = ...
, will function regardless of runScripts
.)
If you are simply trying to execute script "from the outside", instead of letting <script>
elements and event handlers attributes run "from the inside", you can use the runScripts: "outside-only"
option, which enables fresh copies of all the JavaScript spec-provided globals to be installed on window
. This includes things like window.Array
, window.Promise
, etc. It also, notably, includes window.eval
, which allows running scripts, but with the jsdom window
as the global:
const dom = new JSDOM(`<body>
<div id="content"></div>
<script>document.getElementById("content").append(document.createElement("hr"));</script>
</body>`, { runScripts: "outside-only" });
// run a script outside of JSDOM:
dom.window.eval('document.getElementById("content").append(document.createElement("p"));');
console.log(dom.window.document.getElementById("content").children.length); // 1
console.log(dom.window.document.getElementsByTagName("hr").length); // 0
console.log(dom.window.document.getElementsByTagName("p").length); // 1
This is turned off by default for performance reasons, but is safe to enable.
Note that in the default configuration, without setting runScripts
, the values of window.Array
, window.eval
, etc. will be the same as those provided by the outer Node.js environment. That is, window.eval === eval
will hold, so window.eval
will not run scripts in a useful way.
We strongly advise against trying to "execute scripts" by mashing together the jsdom and Node global environments (e.g. by doing global.window = dom.window
), and then executing scripts or test code inside the Node global environment. Instead, you should treat jsdom like you would a browser, and run all scripts and tests that need access to a DOM inside the jsdom environment, using window.eval
or runScripts: "dangerously"
. This might require, for example, creating a browserify bundle to execute as a <script>
element—just like you would in a browser.
Finally, for advanced use cases you can use the dom.getInternalVMContext()
method, documented below.
Pretending to be a visual browser
jsdom does not have the capability to render visual content, and will act like a headless browser by default. It provides hints to web pages through APIs such as document.hidden
that their content is not visible.
When the pretendToBeVisual
option is set to true
, jsdom will pretend that it is rendering and displaying content. It does this by:
- Changing
document.hidden
to returnfalse
instead oftrue
- Changing
document.visibilityState
to return"visible"
instead of"prerender"
- Enabling
window.requestAnimationFrame()
andwindow.cancelAnimationFrame()
methods, which otherwise do not exist
const window = (new JSDOM(``, { pretendToBeVisual: true })).window;
window.requestAnimationFrame(timestamp => {
console.log(timestamp > 0);
});
Note that jsdom still does not do any layout or rendering, so this is really just about pretending to be visual, not about implementing the parts of the platform a real, visual web browser would implement.
Loading subresources
Basic options
By default, jsdom will not load any subresources such as scripts, stylesheets, images, or iframes. If you'd like jsdom to load such resources, you can pass the resources: "usable"
option, which will load all usable resources. Those are:
- Frames and iframes, via
<frame>
and<iframe>
- Stylesheets, via
<link rel="stylesheet">
- Scripts, via
<script>
, but only ifrunScripts: "dangerously"
is also set - Images, via
<img>
, but only if thecanvas
npm package is also installed (see "Canvas Support" below)
When attempting to load resources, recall that the default value for the url
option is "about:blank"
, which means that any resources included via relative URLs will fail to load. (The result of trying to parse the URL /something
against the URL about:blank
is an error.) So, you'll likely want to set a non-default value for the url
option in those cases, or use one of the convenience APIs that do so automatically.
Advanced configuration
To more fully customize jsdom's resource-loading behavior, you can pass an instance of the ResourceLoader
class as the resources
option value:
const resourceLoader = new jsdom.ResourceLoader({
proxy: "http://127.0.0.1:9001",
strictSSL: false,
userAgent: "Mellblomenator/9000",
});
const dom = new JSDOM(``, { resources: resourceLoader });
The three options to the ResourceLoader
constructor are:
proxy
is the address of an HTTP proxy to be used.strictSSL
can be set to false to disable the requirement that SSL certificates be valid.userAgent
affects theUser-Agent
header sent, and thus the resulting value fornavigator.userAgent
. It defaults to `Mozilla/5.0 (${process.platform || "unknown OS"}) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/${jsdomVersion}`.
You can further customize resource fetching by subclassing ResourceLoader
and overriding the fetch()
method. For example, here is a version that overrides the response provided for a specific URL:
class CustomResourceLoader extends jsdom.ResourceLoader {
fetch(url, options) {
// Override the contents of this script to do something unusual.
if (url === "https://example.com/some-specific-script.js") {
return Promise.resolve(Buffer.from("window.someGlobal = 5;"));
}
return super.fetch(url, options);
}
}
jsdom will call your custom resource loader's fetch()
method whenever it encounters a "usable" resource, per the above section. The method takes a URL string, as well as a few options which you should pass through unmodified if calling super.fetch()
. It must return a promise for a Node.js Buffer
object, or return null
if the resource is intentionally not to be loaded. In general, most cases will want to delegate to super.fetch()
, as shown.
One of the options you will receive in fetch()
will be the element (if applicable) that is fetching a resource.
class CustomResourceLoader extends jsdom.ResourceLoader {
fetch(url, options) {
if (options.element) {
console.log(`Element ${options.element.localName} is requesting the url ${url}`);
}
return super.fetch(url, options);
}
}
Virtual consoles
Like web browsers, jsdom has the concept of a "console". This records both information directly sent from the page, via scripts executing inside the document, as well as information from the jsdom implementation itself. We call the user-controllable console a "virtual console", to distinguish it from the Node.js console
API and from the inside-the-page window.console
API.
By default, the JSDOM
constructor will return an instance with a virtual console that forwards all its output to the Node.js console. To create your own virtual console and pass it to jsdom, you can override this default by doing
const virtualConsole = new jsdom.VirtualConsole();
const dom = new JSDOM(``, { virtualConsole });
Code like this will create a virtual console with no behavior. You can give it behavior by adding event listeners for all the possible console methods:
virtualConsole.on("error", () => { ... });
virtualConsole.on("warn", () => { ... });
virtualConsole.on("info", () => { ... });
virtualConsole.on("dir", () => { ... });
// ... etc. See https://console.spec.whatwg.org/#logging
(Note that it is probably best to set up these event listeners before calling new JSDOM()
, since errors or console-invoking script might occur during parsing.)
If you simply want to redirect the virtual console output to another console, like the default Node.js one, you can do
virtualConsole.sendTo(console);
There is also a special event, "jsdomError"
, which will fire with error objects to report errors from jsdom itself. This is similar to how error messages often show up in web browser consoles, even if they are not initiated by console.error
. So far, the following errors are output this way:
- Errors loading or parsing subresources (scripts, stylesheets, frames, and iframes)
- Script execution errors that are not handled by a window
onerror
event handler that returnstrue
or callsevent.preventDefault()
- Not-implemented errors resulting from calls to methods, like
window.alert
, which jsdom does not implement, but installs anyway for web compatibility
If you're using sendTo(c)
to send errors to c
, by default it will call c.error(errorStack[, errorDetail])
with information from "jsdomError"
events. If you'd prefer to maintain a strict one-to-one mapping of events to method calls, and perhaps handle "jsdomError"
s yourself, then you can do
virtualConsole.sendTo(c, { omitJSDOMErrors: true });
Cookie jars
Like web browsers, jsdom has the concept of a cookie jar, storing HTTP cookies. Cookies that have a URL on the same domain as the document, and are not marked HTTP-only, are accessible via the document.cookie
API. Additionally, all cookies in the cookie jar will impact the fetching of subresources.
By default, the JSDOM
constructor will return an instance with an empty cookie jar. To create your own cookie jar and pass it to jsdom, you can override this default by doing
const cookieJar = new jsdom.CookieJar(store, options);
const dom = new JSDOM(``, { cookieJar });
This is mostly useful if you want to share the same cookie jar among multiple jsdoms, or prime the cookie jar with certain values ahead of time.
Cookie jars are provided by the tough-cookie package. The jsdom.CookieJar
constructor is a subclass of the tough-cookie cookie jar which by default sets the looseMode: true
option, since that matches better how browsers behave. If you want to use tough-cookie's utilities and classes yourself, you can use the jsdom.toughCookie
module export to get access to the tough-cookie module instance packaged with jsdom.
Intervening before parsing
jsdom allows you to intervene in the creation of a jsdom very early: after the Window
and Document
objects are created, but before any HTML is parsed to populate the document with nodes:
const dom = new JSDOM(`<p>Hello</p>`, {
beforeParse(window) {
window.document.childNodes.length === 0;
window.someCoolAPI = () => { /* ... */ };
}
});
This is especially useful if you are wanting to modify the environment in some way, for example adding shims for web platform APIs jsdom does not support.
JSDOM
object API
Once you have constructed a JSDOM
object, it will have the following useful capabilities:
Properties
The property window
retrieves the Window
object that was created for you.
The properties virtualConsole
and cookieJar
reflect the options you pass in, or the defaults created for you if nothing was passed in for those options.
Serializing the document with serialize()
The serialize()
method will return the HTML serialization of the document, including the doctype:
const dom = new JSDOM(`<!DOCTYPE html>hello`);
dom.serialize() === "<!DOCTYPE html><html><head></head><body>hello</body></html>";
// Contrast with:
dom.window.document.documentElement.outerHTML === "<html><head></head><body>hello</body></html>";
Getting the source location of a node with nodeLocation(node)
The nodeLocation()
method will find where a DOM node is within the source document, returning the parse5 location info for the node:
const dom = new JSDOM(
`<p>Hello
<img src="foo.jpg">
</p>`,
{ includeNodeLocations: true }
);
const document = dom.window.document;
const bodyEl = document.body; // implicitly created
const pEl = document.querySelector("p");
const textNode = pEl.firstChild;
const imgEl = document.querySelector("img");
console.log(dom.nodeLocation(bodyEl)); // null; it's not in the source
console.log(dom.nodeLocation(pEl)); // { startOffset: 0, endOffset: 39, startTag: ..., endTag: ... }
console.log(dom.nodeLocation(textNode)); // { startOffset: 3, endOffset: 13 }
console.log(dom.nodeLocation(imgEl)); // { startOffset: 13, endOffset: 32 }
Note that this feature only works if you have set the includeNodeLocations
option; node locations are off by default for performance reasons.
Interfacing with the Node.js vm
module using getInternalVMContext()
The built-in vm
module of Node.js is what underpins jsdom's script-running magic. Some advanced use cases, like pre-compiling a script and then running it multiple times, benefit from using the vm
module directly with a jsdom-created Window
.
To get access to the contextified global object, suitable for use with the vm
APIs, you can use the getInternalVMContext()
method:
const { Script } = require("vm");
const dom = new JSDOM(``, { runScripts: "outside-only" });
const script = new Script(`
if (!this.ran) {
this.ran = 0;
}
++this.ran;
`);
const vmContext = dom.getInternalVMContext();
script.runInContext(vmContext);
script.runInContext(vmContext);
script.runInContext(vmContext);
console.assert(dom.window.ran === 3);
This is somewhat-advanced functionality, and we advise sticking to normal DOM APIs (such as window.eval()
or document.createElement("script")
) unless you have very specific needs.
Note that this method will throw an exception if the JSDOM
instance was created without runScripts
set, or if you are using jsdom in a web browser.
Reconfiguring the jsdom with reconfigure(settings)
The top
property on window
is marked [Unforgeable]
in the spec, meaning it is a non-configurable own property and thus cannot be overridden or shadowed by normal code running inside the jsdom, even using Object.defineProperty
.
Similarly, at present jsdom does not handle navigation (such as setting window.location.href = "https://example.com/"
); doing so will cause the virtual console to emit a "jsdomError"
explaining that this feature is not implemented, and nothing will change: there will be no new Window
or Document
object, and the existing window
's location
object will still have all the same property values.
However, if you're acting from outside the window, e.g. in some test framework that creates jsdoms, you can override one or both of these using the special reconfigure()
method:
const dom = new JSDOM();
dom.window.top === dom.window;
dom.window.location.href === "about:blank";
dom.reconfigure({ windowTop: myFakeTopForTesting, url: "https://example.com/" });
dom.window.top === myFakeTopForTesting;
dom.window.location.href === "https://example.com/";
Note that changing the jsdom's URL will impact all APIs that return the current document URL, such as window.location
, document.URL
, and document.documentURI
, as well as the resolution of relative URLs within the document, and the same-origin checks and referrer used while fetching subresources. It will not, however, perform navigation to the contents of that URL; the contents of the DOM will remain unchanged, and no new instances of Window
, Document
, etc. will be created.
Convenience APIs
fromURL()
In addition to the JSDOM
constructor itself, jsdom provides a promise-returning factory method for constructing a jsdom from a URL:
JSDOM.fromURL("https://example.com/", options).then(dom => {
console.log(dom.serialize());
});
The returned promise will fulfill with a JSDOM
instance if the URL is valid and the request is successful. Any redirects will be followed to their ultimate destination.
The options provided to fromURL()
are similar to those provided to the JSDOM
constructor, with the following additional restrictions and consequences:
- The
url
andcontentType
options cannot be provided. - The
referrer
option is used as the HTTPReferer
request header of the initial request. - The
resources
option also affects the initial request; this is useful if you want to, for example, configure a proxy (see above). - The resulting jsdom's URL, content type, and referrer are determined from the response.
- Any cookies set via HTTP
Set-Cookie
response headers are stored in the jsdom's cookie jar. Similarly, any cookies already in a supplied cookie jar are sent as HTTPCookie
request headers.
fromFile()
Similar to fromURL()
, jsdom also provides a fromFile()
factory method for constructing a jsdom from a filename:
JSDOM.fromFile("stuff.html", options).then(dom => {
console.log(dom.serialize());
});
The returned promise will fulfill with a JSDOM
instance if the given file can be opened. As usual in Node.js APIs, the filename is given relative to the current working directory.
The options provided to fromFile()
are similar to those provided to the JSDOM
constructor, with the following additional defaults:
- The
url
option will default to a file URL corresponding to the given filename, instead of to"about:blank"
. - The
contentType
option will default to"application/xhtml+xml"
if the given filename ends in.xht
,.xhtml
, or.xml
; otherwise it will continue to default to"text/html"
.
fragment()
For the very simplest of cases, you might not need a whole JSDOM
instance with all its associated power. You might not even need a Window
or Document
! Instead, you just need to parse some HTML, and get a DOM object you can manipulate. For that, we have fragment()
, which creates a DocumentFragment
from a given string:
const frag = JSDOM.fragment(`<p>Hello</p><p><strong>Hi!</strong>`);
frag.childNodes.length === 2;
frag.querySelector("strong").textContent === "Hi!";
// etc.
Here frag
is a DocumentFragment
instance, whose contents are created by parsing the provided string. The parsing is done using a <template>
element, so you can include any element there (including ones with weird parsing rules like <td>
). It's also important to note that the resulting DocumentFragment
will not have an associated browsing context: that is, elements' ownerDocument
will have a null defaultView
property, resources will not load, etc.
All invocations of the fragment()
factory result in DocumentFragment
s that share the same template owner Document
. This allows many calls to fragment()
with no extra overhead. But it also means that calls to fragment()
cannot be customized with any options.
Note that serialization is not as easy with DocumentFragment
s as it is with full JSDOM
objects. If you need to serialize your DOM, you should probably use the JSDOM
constructor more directly. But for the special case of a fragment containing a single element, it's pretty easy to do through normal means:
const frag = JSDOM.fragment(`<p>Hello</p>`);
console.log(frag.firstChild.outerHTML); // logs "<p>Hello</p>"
Other noteworthy features
Canvas support
jsdom includes support for using the canvas
package to extend any <canvas>
elements with the canvas API. To make this work, you need to include canvas
as a dependency in your project, as a peer of jsdom
. If jsdom can find the canvas
package, it will use it, but if it's not present, then <canvas>
elements will behave like <div>
s. Since jsdom v13, version 2.x of canvas
is required; version 1.x is no longer supported.
Encoding sniffing
In addition to supplying a string, the JSDOM
constructor can also be supplied binary data, in the form of a Node.js Buffer
or a standard JavaScript binary data type like ArrayBuffer
, Uint8Array
, DataView
, etc. When this is done, jsdom will sniff the encoding from the supplied bytes, scanning for <meta charset>
tags just like a browser does.
If the supplied contentType
option contains a charset
parameter, that encoding will override the sniffed encoding—unless a UTF-8 or UTF-16 BOM is present, in which case those take precedence. (Again, this is just like a browser.)
This encoding sniffing also applies to JSDOM.fromFile()
and JSDOM.fromURL()
. In the latter case, any Content-Type
headers sent with the response will take priority, in the same fashion as the constructor's contentType
option.
Note that in many cases supplying bytes in this fashion can be better than supplying a string. For example, if you attempt to use Node.js's buffer.toString("utf-8")
API, Node.js will not strip any leading BOMs. If you then give this string to jsdom, it will interpret it verbatim, leaving the BOM intact. But jsdom's binary data decoding code will strip leading BOMs, just like a browser; in such cases, supplying buffer
directly will give the desired result.
Closing down a jsdom
Timers in the jsdom (set by window.setTimeout()
or window.setInterval()
) will, by definition, execute code in the future in the context of the window. Since there is no way to execute code in the future without keeping the process alive, outstanding jsdom timers will keep your Node.js process alive. Similarly, since there is no way to execute code in the context of an object without keeping that object alive, outstanding jsdom timers will prevent garbage collection of the window on which they are scheduled.
If you want to be sure to shut down a jsdom window, use window.close()
, which will terminate all running timers (and also remove any event listeners on the window and document).
Debugging the DOM using Chrome DevTools
In Node.js you can debug programs using Chrome DevTools. See the official documentation for how to get started.
By default jsdom elements are formatted as plain old JS objects in the console. To make it easier to debug, you can use jsdom-devtools-formatter, which lets you inspect them like real DOM elements.
Caveats
Asynchronous script loading
People often have trouble with asynchronous script loading when using jsdom. Many pages load scripts asynchronously, but there is no way to tell when they're done doing so, and thus when it's a good time to run your code and inspect the resulting DOM structure. This is a fundamental limitation; we cannot predict what scripts on the web page will do, and so cannot tell you when they are done loading more scripts.
This can be worked around in a few ways. The best way, if you control the page in question, is to use whatever mechanisms are given by the script loader to detect when loading is done. For example, if you're using a module loader like RequireJS, the code could look like:
// On the Node.js side:
const window = (new JSDOM(...)).window;
window.onModulesLoaded = () => {
console.log("ready to roll!");
};
<!-- Inside the HTML you supply to jsdom -->
<script>
requirejs(["entry-module"], () => {
window.onModulesLoaded();
});
</script>
If you do not control the page, you could try workarounds such as polling for the presence of a specific element.
For more details, see the discussion in #640, especially @matthewkastor's insightful comment.
Unimplemented parts of the web platform
Although we enjoy adding new features to jsdom and keeping it up to date with the latest web specs, it has many missing APIs. Please feel free to file an issue for anything missing, but we're a small and busy team, so a pull request might work even better.
Some features of jsdom are provided by our dependencies. Notable documentation in that regard includes the list of supported CSS selectors for our CSS selector engine, nwsapi
.
Beyond just features that we haven't gotten to yet, there are two major features that are currently outside the scope of jsdom. These are:
- Navigation: the ability to change the global object, and all other objects, when clicking a link or assigning
location.href
or similar. - Layout: the ability to calculate where elements will be visually laid out as a result of CSS, which impacts methods like
getBoundingClientRects()
or properties likeoffsetTop
.
Currently jsdom has dummy behaviors for some aspects of these features, such as sending a "not implemented" "jsdomError"
to the virtual console for navigation, or returning zeros for many layout-related properties. Often you can work around these limitations in your code, e.g. by creating new JSDOM
instances for each page you "navigate" to during a crawl, or using Object.defineProperty()
to change what various layout-related getters and methods return.
Note that other tools in the same space, such as PhantomJS, do support these features. On the wiki, we have a more complete writeup about jsdom vs. PhantomJS.
Supporting jsdom
jsdom is a community-driven project maintained by a team of volunteers. You could support jsdom by:
- Getting professional support for jsdom as part of a Tidelift subscription. Tidelift helps making open source sustainable for us while giving teams assurances for maintenance, licensing, and security.
- Contributing directly to the project.
Getting help
If you need help with jsdom, please feel free to use any of the following venues:
- The mailing list (best for "how do I" questions)
- The issue tracker (best for bug reports)
- The Matrix room: #jsdom:matrix.org
Articlesto learn more about the nodejs concepts.
- 1Beginner's Guide to Node.js with Setting Up Your First Project
- 2Top 10 Node.js Frameworks: Which One Should You Use?
- 3An Detailed Tutorial on Building a RESTful API with Node.js and Express
- 4Which is Better for Web Development? Node.js or Python!!
- 510 Common Mistakes Node.js Developers Make and How to Avoid Them
- 6Node.js and Microservices: A Match Made in Heaven?
- 7Node.js Best Practices for Writing Clean and Maintainable Code
- 8Automated Testing in Node.js with Tools and Techniques
- 9Building Command-Line Tools with Node.js
- 10Scaling Node.js Applications with Strategies for Handling High Traffic
Resourceswhich are currently available to browse on.
mail [email protected] to add your project or resources here 🔥.
- 1Check NPM package licenses
https://github.com/davglass/license-checker
Check NPM package licenses. Contribute to davglass/license-checker development by creating an account on GitHub.
- 2Build software better, together
https://github.com/apps/guardrails
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 3CodeSandbox
https://codesandbox.io/s/node-http-server-node
CodeSandbox is an online editor tailored for web applications.
- 4Node.js Design Patterns Third Edition by Mario Casciaro and Luciano Mammino
https://www.nodejsdesignpatterns.com
A book to learn how to design and implement production-grade Node.js applications using proven patterns and techniques
- 5Simple Node.JS stream (streams2) Transform that runs the transform functions concurrently (with a set max concurrency)
https://github.com/almost/through2-concurrent
Simple Node.JS stream (streams2) Transform that runs the transform functions concurrently (with a set max concurrency) - almost/through2-concurrent
- 6Follow the Yellow Brick Road to JavaScript Performance
https://www.youtube.com/watch?v=VhpdsjBUS3g
John Mccutchan Take advantage of the lessons learned by the developers of Find Your Way to Oz. Getting that last ounce of performance from your application t...
- 7babel/packages/babel-parser at master · babel/babel
https://github.com/babel/babel/tree/master/packages/babel-parser
🐠 Babel is a compiler for writing next generation JavaScript. - babel/babel
- 8📗 SheetJS Spreadsheet Data Toolkit -- New home https://git.sheetjs.com/SheetJS/sheetjs
https://github.com/SheetJS/sheetjs
📗 SheetJS Spreadsheet Data Toolkit -- New home https://git.sheetjs.com/SheetJS/sheetjs - SheetJS/sheetjs
- 9Colored symbols for various log levels
https://github.com/sindresorhus/log-symbols
Colored symbols for various log levels. Contribute to sindresorhus/log-symbols development by creating an account on GitHub.
- 10:heavy_check_mark: Mock data for your prototypes and demos. Remote deployments to Zeit now.
https://github.com/Raathigesh/Atmo
:heavy_check_mark: Mock data for your prototypes and demos. Remote deployments to Zeit now. - Raathigesh/atmo
- 11A simple development http server with live reload capability.
https://github.com/tapio/live-server
A simple development http server with live reload capability. - tapio/live-server
- 12Translations with speech synthesis in your terminal as a node package
https://github.com/pawurb/normit
Translations with speech synthesis in your terminal as a node package - pawurb/normit
- 13A modern JavaScript utility library delivering modularity, performance, & extras.
https://github.com/lodash/lodash
A modern JavaScript utility library delivering modularity, performance, & extras. - lodash/lodash
- 14Node JS Internal Architecture | Ignition, Turbofan, Libuv
https://www.youtube.com/watch?v=OCjvhCFFPTw
What are node.js main parts under the hood? how do they collaborate? common misconceptions. This video is a summary of a lot of talks I've watched recently o...
- 15🖍 Terminal string styling done right
https://github.com/chalk/chalk
🖍 Terminal string styling done right. Contribute to chalk/chalk development by creating an account on GitHub.
- 16Awesome Observable related stuff - An Observable is a collection that arrives over time.
https://github.com/sindresorhus/awesome-observables
Awesome Observable related stuff - An Observable is a collection that arrives over time. - sindresorhus/awesome-observables
- 17FTP client for Node.js, supports FTPS over TLS, passive mode over IPv6, async/await, and Typescript.
https://github.com/patrickjuchli/basic-ftp
FTP client for Node.js, supports FTPS over TLS, passive mode over IPv6, async/await, and Typescript. - patrickjuchli/basic-ftp
- 18Supercharged End 2 End Testing Framework for NodeJS
https://github.com/codeceptjs/CodeceptJS
Supercharged End 2 End Testing Framework for NodeJS - codeceptjs/CodeceptJS
- 19Newest 'node.js' Questions
https://stackoverflow.com/questions/tagged/node.js
Stack Overflow | The World’s Largest Online Community for Developers
- 20You Don't Know Node - ForwardJS San Francisco
https://www.youtube.com/watch?v=oPo4EQmkjvY
"Before you bury yourself in packages, learn the NodeJS runtime itself. This talk will challenge the very limits of your NodeJS knowledge,"Samer BunaPresente...
- 21Node.js in Action, Second Edition
https://www.manning.com/books/node-js-in-action-second-edition
Node.js in Action, Second Edition</i> is a thoroughly revised book based on the best-selling first edition. It starts at square one and guides you through all the features, techniques, and concepts you'll need to build production-quality Node applications. </p>
- 22..High Performance JavaScript Engine
https://www.youtube.com/watch?v=FrufJFBSoQY
Google I/O 2009 - V8: Building a High Performance JavaScript EngineMads AgerV8 is Google's high-performance JavaScript engine used in Google Chrome. V8 is o...
- 23stackgl
https://github.com/stackgl
Modular WebGL components. stackgl has 60 repositories available. Follow their code on GitHub.
- 24Wow such top. So stats. More better than regular top.
https://github.com/MrRio/vtop
Wow such top. So stats. More better than regular top. - MrRio/vtop
- 25Native UI testing / controlling with node
https://github.com/nut-tree/nut.js
Native UI testing / controlling with node. Contribute to nut-tree/nut.js development by creating an account on GitHub.
- 26Combine an array of streams into a single duplex stream using pump and duplexify
https://github.com/mafintosh/pumpify
Combine an array of streams into a single duplex stream using pump and duplexify - mafintosh/pumpify
- 27Toggle the CLI cursor
https://github.com/sindresorhus/cli-cursor
Toggle the CLI cursor. Contribute to sindresorhus/cli-cursor development by creating an account on GitHub.
- 28Fabulously kill processes. Cross-platform.
https://github.com/sindresorhus/fkill-cli
Fabulously kill processes. Cross-platform. Contribute to sindresorhus/fkill-cli development by creating an account on GitHub.
- 29natural language processor powered by plugins part of the @unifiedjs collective
https://github.com/retextjs/retext
natural language processor powered by plugins part of the @unifiedjs collective - retextjs/retext
- 30Move files and directories to the trash
https://github.com/sindresorhus/trash
Move files and directories to the trash. Contribute to sindresorhus/trash development by creating an account on GitHub.
- 31Run code inside a browser from the command line
https://github.com/juliangruber/browser-run
Run code inside a browser from the command line. Contribute to juliangruber/browser-run development by creating an account on GitHub.
- 32Delay a promise a specified amount of time
https://github.com/sindresorhus/delay
Delay a promise a specified amount of time. Contribute to sindresorhus/delay development by creating an account on GitHub.
- 33A better `npm publish`
https://github.com/sindresorhus/np
A better `npm publish`. Contribute to sindresorhus/np development by creating an account on GitHub.
- 34🚦 Your own mini Travis CI to run tests locally
https://github.com/vadimdemedes/trevor
🚦 Your own mini Travis CI to run tests locally. Contribute to vadimdemedes/trevor development by creating an account on GitHub.
- 35Get, set, or delete a property from a nested object using a dot path
https://github.com/sindresorhus/dot-prop
Get, set, or delete a property from a nested object using a dot path - sindresorhus/dot-prop
- 36Teach Yourself Node.js in 10 Steps
https://ponyfoo.com/articles/teach-yourself-nodejs-in-10-steps
I’m not sure anyone needs convincing that Node.js is freaking awesome, little has been said otherwise. Many of the people reading this blog are already …
- 37All about the course
https://frameworkless.js.org/course
Build an app with almost no frameworks.
- 38Simple, secure & standards compliant web server for the most demanding of applications
https://github.com/uNetworking/uWebSockets
Simple, secure & standards compliant web server for the most demanding of applications - uNetworking/uWebSockets
- 39tar-stream is a streaming tar parser and generator.
https://github.com/mafintosh/tar-stream
tar-stream is a streaming tar parser and generator. - mafintosh/tar-stream
- 40Node.js 8 the Right Way
https://pragprog.com/book/jwnode2/node-js-8-the-right-way/
This fast-paced book gets you up to speed on server-side programming with Node.js 8 quickly, as you develop real programs that are small, fast, low-profile, and useful.
- 41Get Programming with Node.js
https://www.manning.com/books/get-programming-with-node-js
Get Programming with Node.js</i> Get Programming with Node.js teaches you to write server-side code in JavaScript using Node.js. In 37 fast-paced, fun, and practical lessons, you'll discover how to extend your existing JavaScript skills to write back-end code for your web applications.</p>
- 42Express in Action
https://www.manning.com/books/express-in-action
Express in Action</i> is a carefully designed tutorial that teaches you how to build web applications using Node and Express.</p>
- 4310 Things I Regret About Node.js - Ryan Dahl - JSConf EU
https://www.youtube.com/watch?v=M3BM9TB-8yA
See also https://github.com/ry/denoJSConf EU is coming back in 2019 https://2019.jsconf.eu/
- 44Copy/paste detector for programming source code.
https://github.com/kucherenko/jscpd
Copy/paste detector for programming source code. Contribute to kucherenko/jscpd development by creating an account on GitHub.
- 45⚡️ An opinionated, zero-config static site generator.
https://github.com/brandonweiss/charge
⚡️ An opinionated, zero-config static site generator. - brandonweiss/charge
- 46A node.js version management utility for Windows. Ironically written in Go.
https://github.com/coreybutler/nvm-windows
A node.js version management utility for Windows. Ironically written in Go. - coreybutler/nvm-windows
- 47A simple high-performance Redis message queue for Node.js.
https://github.com/weyoss/redis-smq
A simple high-performance Redis message queue for Node.js. - weyoss/redis-smq
- 48Delete files and directories
https://github.com/sindresorhus/del
Delete files and directories. Contribute to sindresorhus/del development by creating an account on GitHub.
- 49:ram: Practical functional Javascript
https://github.com/ramda/ramda
:ram: Practical functional Javascript. Contribute to ramda/ramda development by creating an account on GitHub.
- 50Strip UTF-8 byte order mark (BOM) from a string
https://github.com/sindresorhus/strip-bom
Strip UTF-8 byte order mark (BOM) from a string. Contribute to sindresorhus/strip-bom development by creating an account on GitHub.
- 51Scaffold out a node module
https://github.com/sindresorhus/generator-nm
Scaffold out a node module. Contribute to sindresorhus/generator-nm development by creating an account on GitHub.
- 52Line-by-line Stream reader for node.js
https://github.com/jahewson/node-byline
Line-by-line Stream reader for node.js. Contribute to jahewson/node-byline development by creating an account on GitHub.
- 53✉️ Send e-mails with Node.JS – easy as cake!
https://github.com/nodemailer/nodemailer
✉️ Send e-mails with Node.JS – easy as cake! Contribute to nodemailer/nodemailer development by creating an account on GitHub.
- 54Build software better, together
https://github.com/lukechilds/cacheable-request
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 55About npm | npm Docs
https://docs.npmjs.com/about-npm
Documentation for the npm registry, website, and command-line interface
- 56libuv Cross platform asynchronous i/o
https://www.youtube.com/watch?v=kCJ3PFU8Ke8
by Saúl Ibarra CorretgéAt: FOSDEM 2017libuv is the platform abstraction layer used in Node, Julia, NeoVim and manyother projects. It features an event loop, ...
- 57Build software better, together
https://github.com/sindresorhus/got.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 58Test your internet connection speed and ping using speedtest.net from the CLI
https://github.com/sindresorhus/speed-test
Test your internet connection speed and ping using speedtest.net from the CLI - sindresorhus/speed-test
- 59Node is running but you don't know why? why-is-node-running is here to help you.
https://github.com/mafintosh/why-is-node-running
Node is running but you don't know why? why-is-node-running is here to help you. - mafintosh/why-is-node-running
- 60Transform the first chunk in a stream
https://github.com/sindresorhus/first-chunk-stream
Transform the first chunk in a stream. Contribute to sindresorhus/first-chunk-stream development by creating an account on GitHub.
- 61Get a random temporary file or directory path
https://github.com/sindresorhus/tempy
Get a random temporary file or directory path. Contribute to sindresorhus/tempy development by creating an account on GitHub.
- 62a simple zero-configuration command-line http server
https://github.com/http-party/http-server
a simple zero-configuration command-line http server - http-party/http-server
- 63🐛 Memory leak testing for node.
https://github.com/andywer/leakage
🐛 Memory leak testing for node. Contribute to andywer/leakage development by creating an account on GitHub.
- 64NodeJS Task List derived from the best! Create beautiful CLI interfaces via easy and logical to implement task lists that feel alive and interactive.
https://github.com/listr2/listr2
NodeJS Task List derived from the best! Create beautiful CLI interfaces via easy and logical to implement task lists that feel alive and interactive. - listr2/listr2
- 65A simple and composable way to validate data in JavaScript (and TypeScript).
https://github.com/ianstormtaylor/superstruct
A simple and composable way to validate data in JavaScript (and TypeScript). - ianstormtaylor/superstruct
- 66Streaming torrent client for node.js
https://github.com/mafintosh/peerflix
Streaming torrent client for node.js. Contribute to mafintosh/peerflix development by creating an account on GitHub.
- 67PostgreSQL client for node.js.
https://github.com/brianc/node-postgres
PostgreSQL client for node.js. Contribute to brianc/node-postgres development by creating an account on GitHub.
- 68Design patterns and best practices for building scaleable, maintainable and beautiful Node.js applications. Now with website! -->
https://github.com/FredKSchott/the-node-way
Design patterns and best practices for building scaleable, maintainable and beautiful Node.js applications. Now with website! --> - FredKSchott/the-node-way
- 69Home page | Yarn
https://yarnpkg.com
Yarn, the modern JavaScript package manager
- 70What's a Unicorn Velociraptor? - Colin Ihrig, Joyent
https://www.youtube.com/watch?v=_c51fcXRLGw
libuv is what gives Node.js its event loop and cross-platform asynchronous I/O capabilities. This talk explains what libuv is all about, and how it's used by...
- 71Embedded JavaScript templates -- http://ejs.co
https://github.com/mde/ejs
Embedded JavaScript templates -- http://ejs.co. Contribute to mde/ejs development by creating an account on GitHub.
- 72🐈 CLI app helper
https://github.com/sindresorhus/meow
🐈 CLI app helper. Contribute to sindresorhus/meow development by creating an account on GitHub.
- 73Vanilla Node.js REST API | No Framework
https://www.youtube.com/watch?v=_1xa8Bsho6A
Let's create a REST API using Node.js only, without ExpressCode: https://github.com/bradtraversy/vanilla-node-rest-api💖 Support The Channel!http://www.patr...
- 74Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
https://github.com/cossacklabs/themis
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms. - cossacklabs/themis
- 75Open the npm page, Yarn page, or GitHub repo of a package
https://github.com/sindresorhus/npm-home
Open the npm page, Yarn page, or GitHub repo of a package - sindresorhus/npm-home
- 76Simple pub/sub messaging for the web
https://github.com/faye/faye
Simple pub/sub messaging for the web. Contribute to faye/faye development by creating an account on GitHub.
- 77A full stack for bitcoin and blockchain-based applications
https://github.com/bitpay/bitcore
A full stack for bitcoin and blockchain-based applications - bitpay/bitcore
- 78CLI for generating, building, and releasing oclif CLIs. Built by Salesforce.
https://github.com/oclif/oclif
CLI for generating, building, and releasing oclif CLIs. Built by Salesforce. - oclif/oclif
- 79Pretty diff to html javascript cli (diff2html-cli)
https://github.com/rtfpessoa/diff2html-cli
Pretty diff to html javascript cli (diff2html-cli) - rtfpessoa/diff2html-cli
- 80Drawing in terminal with unicode braille characters
https://github.com/madbence/node-drawille
Drawing in terminal with unicode braille characters - madbence/node-drawille
- 81A simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js
https://github.com/bookshelf/bookshelf
A simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js - bookshelf/bookshelf
- 82Safely serialize a value to JSON without unintended loss of data or going into an infinite loop due to circular references.
https://github.com/pigulla/json-strictify
Safely serialize a value to JSON without unintended loss of data or going into an infinite loop due to circular references. - pigulla/json-strictify
- 83Let's learn these things together
https://github.com/stephenplusplus/stream-faqs
Let's learn these things together. Contribute to stephenplusplus/stream-faqs development by creating an account on GitHub.
- 84Fast, disk space efficient package manager | pnpm
https://pnpm.io
Fast, disk space efficient package manager
- 85A GraphQL & Node.js Server Built with Express in No Time
https://snipcart.com/blog/graphql-nodejs-express-tutorial
GraphQL & Node.js can be used to craft more performant and maintainable servers. In this tutorial, we use Node.js Express to show you how to do this, fast.
- 86Build software better, together
https://github.com/linuxenko/lessmd
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 87A modular geospatial engine written in JavaScript and TypeScript
https://github.com/Turfjs/turf
A modular geospatial engine written in JavaScript and TypeScript - Turfjs/turf
- 88Introduction to Node.js with Ryan Dahl
https://www.youtube.com/watch?v=jo_B4LTHi3I
Node.js is a system for building network services for Google's V8 JavaScript engine. In this presentation Ryan Dahl, the man behind Node.js will introduce yo...
- 89List any node_modules 📦 dir in your system and how heavy they are. You can then select which ones you want to erase to free up space 🧹
https://github.com/voidcosmos/npkill
List any node_modules 📦 dir in your system and how heavy they are. You can then select which ones you want to erase to free up space 🧹 - voidcosmos/npkill
- 90Need a JavaScript module or looking for ideas? Welcome ✨
https://github.com/sindresorhus/project-ideas
Need a JavaScript module or looking for ideas? Welcome ✨ - sindresorhus/project-ideas
- 91A JavaScript PDF generation library for Node and the browser
https://github.com/foliojs/pdfkit
A JavaScript PDF generation library for Node and the browser - foliojs/pdfkit
- 92🔥🔥🔥 The Only Production-Ready AI-Powered Backend Code Generation
https://github.com/amplication/amplication
🔥🔥🔥 The Only Production-Ready AI-Powered Backend Code Generation - amplication/amplication
- 93(Public Release Summer 2024) Personal Marketing Platform. A powerful platform for your online identity.
https://github.com/FactorJS/factor
(Public Release Summer 2024) Personal Marketing Platform. A powerful platform for your online identity. - fictionco/fiction
- 94A JavaScript implementation of Git.
https://github.com/creationix/js-git
A JavaScript implementation of Git. Contribute to creationix/js-git development by creating an account on GitHub.
- 95Graph theory (network) library for visualisation and analysis
https://github.com/cytoscape/cytoscape.js
Graph theory (network) library for visualisation and analysis - cytoscape/cytoscape.js
- 96Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB (v6), DB2 and DB2 for IBM i.
https://github.com/sequelize/sequelize
Feature-rich ORM for modern Node.js and TypeScript, it supports PostgreSQL (with JSON and JSONB support), MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle DB (v6), DB2 and DB2 for IBM i. - ...
- 97yargs the modern, pirate-themed successor to optimist.
https://github.com/yargs/yargs
yargs the modern, pirate-themed successor to optimist. - yargs/yargs
- 98Use Ky in both Node.js and browsers
https://github.com/sindresorhus/ky-universal
Use Ky in both Node.js and browsers. Contribute to sindresorhus/ky-universal development by creating an account on GitHub.
- 99Natural language detection
https://github.com/wooorm/franc
Natural language detection. Contribute to wooorm/franc development by creating an account on GitHub.
- 100Zero-To-Hero
https://www.manning.com/livevideo/mastering-rest-apis-in-nodejs
Mastering REST APIs in Node.js: Zero To Hero</i> is a fast-paced primer covering everything you ever wanted to know about REST APIs. Expert instructor Tamas Piros answers your questions about how REST APIs work, how to create them, and how to keep them secure with token-based authentication. You’ll even dive into the GraphQL query language, cutting through the hype to learn how it can help you build more reliable APIs.<br/><br/> <br/>Distributed by Manning Publications</font></b><br/><br/> This course was created independently by Tamas Piros</b> and is distributed by Manning through our exclusive liveVideo platform.<br/><br/></p>
- 101RunJS - JavaScript Playground for macOS, Windows and Linux
https://runjs.app
Write and run code with live feedback and access to Node.js and browser APIs. RunJS is an easy-to-use sandbox app for learning and prototyping.
- 102Learn and Understand Node JS
https://www.udemy.com/course/understand-nodejs/
Dive deep under the hood of NodeJS. Learn V8, Express, the MEAN stack, core Javascript concepts, and more.
- 103NodeSchool
https://github.com/nodeschool
Open source workshops that teach web software skills - NodeSchool
- 104ANSI escape codes for manipulating the terminal
https://github.com/sindresorhus/ansi-escapes
ANSI escape codes for manipulating the terminal. Contribute to sindresorhus/ansi-escapes development by creating an account on GitHub.
- 105Check if the internet connection is up
https://github.com/sindresorhus/is-online
Check if the internet connection is up. Contribute to sindresorhus/is-online development by creating an account on GitHub.
- 106A javascript Bitcoin library for node.js and browsers.
https://github.com/bitcoinjs/bitcoinjs-lib
A javascript Bitcoin library for node.js and browsers. - bitcoinjs/bitcoinjs-lib
- 107Copy files
https://github.com/sindresorhus/cpy
Copy files. Contribute to sindresorhus/cpy development by creating an account on GitHub.
- 108cheatsheets/express4 at master · azat-co/cheatsheets
https://github.com/azat-co/cheatsheets/tree/master/express4
JavaScript and Node.js cheatsheets. Contribute to azat-co/cheatsheets development by creating an account on GitHub.
- 109expose yourself
https://github.com/localtunnel/localtunnel
expose yourself. Contribute to localtunnel/localtunnel development by creating an account on GitHub.
- 110Browser compilation library – an asset pipeline for applications that run in the browser
https://github.com/broccolijs/broccoli
Browser compilation library – an asset pipeline for applications that run in the browser - broccolijs/broccoli
- 111Generate sparklines ▁▂▃▅▂▇
https://github.com/sindresorhus/sparkly
Generate sparklines ▁▂▃▅▂▇. Contribute to sindresorhus/sparkly development by creating an account on GitHub.
- 112API Observability. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices.
https://github.com/slanatech/swagger-stats
API Observability. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices. - slanatech/swagger-stats
- 113Virtual environment for Node.js & integrator with virtualenv
https://github.com/ekalinin/nodeenv
Virtual environment for Node.js & integrator with virtualenv - ekalinin/nodeenv
- 114Unicode symbols with fallbacks for older terminals
https://github.com/sindresorhus/figures
Unicode symbols with fallbacks for older terminals - sindresorhus/figures
- 115Hands-on Experience Tips - Sematext
https://sematext.com/blog/node-js-error-handling/
Learn what is Node.js error handling and why do you need it. From using middleware to catching uncaught exceptions, discover the best ways to fix errors!
- 116Real-time Web with Node.js
https://www.pluralsight.com/courses/code-school-real-time-web-with-nodejs
Learn about builiding server-side applications that are lightweight, real-time, and scalable applications with Node.js in this Pluralsight online course.
- 117Elegant terminal spinner
https://github.com/sindresorhus/ora
Elegant terminal spinner. Contribute to sindresorhus/ora development by creating an account on GitHub.
- 118Google I/O 2012 - Breaking the JavaScript Speed Limit with V8
https://www.youtube.com/watch?v=UJPdhx5zTaw
Daniel CliffordAre you are interested in making JavaScript run blazingly fast in Chrome? This talk takes a look under the hood in V8 to help you identify ho...
- 119Share terminal sessions via SVG and CSS
https://github.com/marionebl/svg-term-cli
Share terminal sessions via SVG and CSS. Contribute to marionebl/svg-term-cli development by creating an account on GitHub.
- 120The most simple logger imaginable
https://github.com/watson/console-log-level
The most simple logger imaginable. Contribute to watson/console-log-level development by creating an account on GitHub.
- 121:sparkles: Make your JSON look AWESOME
https://github.com/Javascipt/Jsome
:sparkles: Make your JSON look AWESOME. Contribute to Javascipt/Jsome development by creating an account on GitHub.
- 122Ensure a function is only called once
https://github.com/sindresorhus/onetime
Ensure a function is only called once. Contribute to sindresorhus/onetime development by creating an account on GitHub.
- 123🔥 single-command flamegraph profiling 🔥
https://github.com/davidmarkclements/0x
🔥 single-command flamegraph profiling 🔥. Contribute to davidmarkclements/0x development by creating an account on GitHub.
- 124#nodejs on Hashnode
https://hashnode.com/n/nodejs
Node.js (201.1K followers · 12.0K articles) - Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- 125rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects)
https://github.com/dominictarr/JSONStream
rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects) - dominictarr/JSONStream
- 126Node.js test runner that lets you develop with confidence 🚀
https://github.com/avajs/ava
Node.js test runner that lets you develop with confidence 🚀 - avajs/ava
- 127Barebone MQTT broker that can run on any stream server, the node way
https://github.com/moscajs/aedes
Barebone MQTT broker that can run on any stream server, the node way - moscajs/aedes
- 128Detect the image type of a Buffer/Uint8Array
https://github.com/sindresorhus/image-type
Detect the image type of a Buffer/Uint8Array. Contribute to sindresorhus/image-type development by creating an account on GitHub.
- 129An API documentation generator for JavaScript.
https://github.com/jsdoc/jsdoc
An API documentation generator for JavaScript. Contribute to jsdoc/jsdoc development by creating an account on GitHub.
- 130Open stuff like URLs, files, executables. Cross-platform.
https://github.com/sindresorhus/open
Open stuff like URLs, files, executables. Cross-platform. - sindresorhus/open
- 131thetool is a CLI tool to capture different cpu, memory and other profiles for your node app in Chrome DevTools friendly format
https://github.com/sfninja/thetool
thetool is a CLI tool to capture different cpu, memory and other profiles for your node app in Chrome DevTools friendly format - sfninja/thetool
- 132A pure JavaScript implemetation of MODBUS-RTU (and TCP) for NodeJS
https://github.com/yaacov/node-modbus-serial
A pure JavaScript implemetation of MODBUS-RTU (and TCP) for NodeJS - yaacov/node-modbus-serial
- 133Strip comments from JSON. Lets you use comments in your JSON files!
https://github.com/sindresorhus/strip-json-comments
Strip comments from JSON. Lets you use comments in your JSON files! - sindresorhus/strip-json-comments
- 134Pretty unicode tables for the command line
https://github.com/cli-table/cli-table3
Pretty unicode tables for the command line. Contribute to cli-table/cli-table3 development by creating an account on GitHub.
- 135Display images in the terminal
https://github.com/sindresorhus/terminal-image
Display images in the terminal. Contribute to sindresorhus/terminal-image development by creating an account on GitHub.
- 136Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline to make your code more readable and less error-prone. ⭐️ Star to support our work!
https://github.com/tsedio/tsed
:triangular_ruler: Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline to make your cod...
- 137Web framework built on Web Standards
https://github.com/honojs/hono
Web framework built on Web Standards. Contribute to honojs/hono development by creating an account on GitHub.
- 138A blazing fast js bundler/loader with a comprehensive API :fire:
https://github.com/fuse-box/fuse-box
A blazing fast js bundler/loader with a comprehensive API :fire: - fuse-box/fuse-box
- 139TypeScript clients for databases that prevent SQL Injection
https://github.com/ForbesLindesay/atdatabases
TypeScript clients for databases that prevent SQL Injection - ForbesLindesay/atdatabases
- 140📗 How to write cross-platform Node.js code
https://github.com/ehmicky/cross-platform-node-guide
📗 How to write cross-platform Node.js code. Contribute to ehmicky/cross-platform-node-guide development by creating an account on GitHub.
- 141A tool for writing better scripts
https://github.com/google/zx
A tool for writing better scripts. Contribute to google/zx development by creating an account on GitHub.
- 142SSH tunnels – in any way you want it
https://github.com/markelog/adit
SSH tunnels – in any way you want it. Contribute to markelog/adit development by creating an account on GitHub.
- 143Truncate a string to a specific width in the terminal
https://github.com/sindresorhus/cli-truncate
Truncate a string to a specific width in the terminal - sindresorhus/cli-truncate
- 144An adapter-based ORM for Node.js with support for mysql, mongo, postgres, mssql (SQL Server), and more
https://github.com/balderdashy/waterline
An adapter-based ORM for Node.js with support for mysql, mongo, postgres, mssql (SQL Server), and more - balderdashy/waterline
- 145⏱️ Notes and resources related to v8 and thus Node.js performance
https://github.com/thlorenz/v8-perf
⏱️ Notes and resources related to v8 and thus Node.js performance - thlorenz/v8-perf
- 146torrent-stream + chromecast
https://github.com/mafintosh/peercast
torrent-stream + chromecast. Contribute to mafintosh/peercast development by creating an account on GitHub.
- 147:rainbow: Beautiful color gradients in terminal output
https://github.com/bokub/gradient-string
:rainbow: Beautiful color gradients in terminal output - bokub/gradient-string
- 148Node.js based forum software built for the modern web
https://github.com/NodeBB/NodeBB
Node.js based forum software built for the modern web - NodeBB/NodeBB
- 149A tiny JavaScript debugging utility modelled after Node.js core's debugging technique. Works in Node.js and web browsers
https://github.com/debug-js/debug
A tiny JavaScript debugging utility modelled after Node.js core's debugging technique. Works in Node.js and web browsers - debug-js/debug
- 150System monitoring dashboard for terminal
https://github.com/aksakalli/gtop
System monitoring dashboard for terminal. Contribute to aksakalli/gtop development by creating an account on GitHub.
- 151Generate random numbers that are consecutively unique
https://github.com/sindresorhus/unique-random
Generate random numbers that are consecutively unique - sindresorhus/unique-random
- 152Turn Buffer instances into "pointers"
https://github.com/TooTallNate/ref
Turn Buffer instances into "pointers". Contribute to TooTallNate/ref development by creating an account on GitHub.
- 153💰💰 Convert currency rates directly from your terminal!
https://github.com/xxczaki/cash-cli
💰💰 Convert currency rates directly from your terminal! - xxczaki/cash-cli
- 154Get superhero names
https://github.com/sindresorhus/superheroes
Get superhero names. Contribute to sindresorhus/superheroes development by creating an account on GitHub.
- 155Minimal and efficient cross-platform file watching library
https://github.com/paulmillr/chokidar
Minimal and efficient cross-platform file watching library - paulmillr/chokidar
- 156Package your Node.js project into an executable
https://github.com/vercel/pkg
Package your Node.js project into an executable. Contribute to vercel/pkg development by creating an account on GitHub.
- 157Literate Programming can be Quick and Dirty.
https://github.com/jashkenas/docco
Literate Programming can be Quick and Dirty. Contribute to jashkenas/docco development by creating an account on GitHub.
- 158Boilerplate to kickstart creating a Node.js module
https://github.com/sindresorhus/node-module-boilerplate
Boilerplate to kickstart creating a Node.js module - sindresorhus/node-module-boilerplate
- 159A stream that emits multiple other streams one after another (streams3)
https://github.com/feross/multistream
A stream that emits multiple other streams one after another (streams3) - feross/multistream
- 160₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ” cat faces!
https://github.com/melaniecebula/cat-ascii-faces
₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ” cat faces! Contribute to melaniecebula/cat-ascii-faces development by creating an account on GitHub.
- 161Hashing made simple. Get the hash of a buffer/string/stream/file.
https://github.com/sindresorhus/hasha
Hashing made simple. Get the hash of a buffer/string/stream/file. - sindresorhus/hasha
- 162Get stdin as a string or buffer
https://github.com/sindresorhus/get-stdin
Get stdin as a string or buffer. Contribute to sindresorhus/get-stdin development by creating an account on GitHub.
- 163All-in-one development toolkit for creating node modules with Jest, Prettier, ESLint, and Standard
https://github.com/sheerun/modern-node
All-in-one development toolkit for creating node modules with Jest, Prettier, ESLint, and Standard - sheerun/modern-node
- 164Next-gen browser and mobile automation test framework for Node.js
https://github.com/webdriverio/webdriverio
Next-gen browser and mobile automation test framework for Node.js - webdriverio/webdriverio
- 165The API and real-time application framework
https://github.com/feathersjs/feathers
The API and real-time application framework. Contribute to feathersjs/feathers development by creating an account on GitHub.
- 166Testcontainers is a NodeJS library that supports tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
https://github.com/testcontainers/testcontainers-node
Testcontainers is a NodeJS library that supports tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. -...
- 167Like `fs.createWriteStream(...)`, but atomic.
https://github.com/npm/fs-write-stream-atomic
Like `fs.createWriteStream(...)`, but atomic. Contribute to npm/fs-write-stream-atomic development by creating an account on GitHub.
- 168all of wikipedia on bittorrent
https://github.com/mafintosh/peerwiki
all of wikipedia on bittorrent. Contribute to mafintosh/peerwiki development by creating an account on GitHub.
- 169❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults
https://github.com/xojs/xo
❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults - xojs/xo
- 170OpenCV Bindings for node.js
https://github.com/peterbraden/node-opencv
OpenCV Bindings for node.js. Contribute to peterbraden/node-opencv development by creating an account on GitHub.
- 171♻️ Get, set, or delete nested properties of process.env using a dot path
https://github.com/simonepri/env-dot-prop
♻️ Get, set, or delete nested properties of process.env using a dot path - simonepri/env-dot-prop
- 172Find the root directory of a Node.js project or npm package
https://github.com/sindresorhus/pkg-dir
Find the root directory of a Node.js project or npm package - sindresorhus/pkg-dir
- 173Node.js module that tells you when your package npm dependencies are out of date.
https://github.com/alanshaw/david
:eyeglasses: Node.js module that tells you when your package npm dependencies are out of date. - GitHub - alanshaw/david: Node.js module that tells you when your package npm dependencies are out o...
- 174Ansi charts for nodejs
https://github.com/jstrace/chart
Ansi charts for nodejs. Contribute to jstrace/chart development by creating an account on GitHub.
- 175Escape RegExp special characters
https://github.com/sindresorhus/escape-string-regexp
Escape RegExp special characters. Contribute to sindresorhus/escape-string-regexp development by creating an account on GitHub.
- 176Convert a string/promise/array/iterable/asynciterable/buffer/typedarray/arraybuffer/object into a stream
https://github.com/sindresorhus/into-stream
Convert a string/promise/array/iterable/asynciterable/buffer/typedarray/arraybuffer/object into a stream - sindresorhus/into-stream
- 177A fast and robust web server and application server for Ruby, Python and Node.js
https://github.com/phusion/passenger
A fast and robust web server and application server for Ruby, Python and Node.js - phusion/passenger
- 178means completeness and balancing, from the Arabic word الجبر
https://github.com/fibo/algebra
means completeness and balancing, from the Arabic word الجبر - fibo/algebra
- 179Tiny millisecond conversion utility
https://github.com/vercel/ms
Tiny millisecond conversion utility. Contribute to vercel/ms development by creating an account on GitHub.
- 180Mad science p2p pipe across the web using webrtc that uses your Github private/public key for authentication and a signalhub for discovery
https://github.com/mafintosh/webcat
Mad science p2p pipe across the web using webrtc that uses your Github private/public key for authentication and a signalhub for discovery - mafintosh/webcat
- 181Next-generation ES module bundler
https://github.com/rollup/rollup
Next-generation ES module bundler. Contribute to rollup/rollup development by creating an account on GitHub.
- 182☕️ simple, flexible, fun javascript test framework for node.js & the browser
https://github.com/mochajs/mocha
☕️ simple, flexible, fun javascript test framework for node.js & the browser - mochajs/mocha
- 183Slick, declarative command line video editing & API
https://github.com/mifi/editly
Slick, declarative command line video editing & API - mifi/editly
- 184Parse yes/no like values
https://github.com/sindresorhus/yn
Parse yes/no like values. Contribute to sindresorhus/yn development by creating an account on GitHub.
- 185Transform stream that lets you peek the first line before deciding how to parse it
https://github.com/mafintosh/peek-stream
Transform stream that lets you peek the first line before deciding how to parse it - mafintosh/peek-stream
- 186Test Anything Protocol tools for node
https://github.com/tapjs/node-tap
Test Anything Protocol tools for node. Contribute to tapjs/tapjs development by creating an account on GitHub.
- 187Measure the difference between two strings with the fastest JS implementation of the Levenshtein distance algorithm
https://github.com/sindresorhus/leven
Measure the difference between two strings with the fastest JS implementation of the Levenshtein distance algorithm - sindresorhus/leven
- 188Parse JSON with more helpful errors
https://github.com/sindresorhus/parse-json
Parse JSON with more helpful errors. Contribute to sindresorhus/parse-json development by creating an account on GitHub.
- 189NodeJS Framework for Interactive CLIs
https://github.com/drew-y/cliffy
NodeJS Framework for Interactive CLIs. Contribute to drew-y/cliffy development by creating an account on GitHub.
- 190The fast, flexible, and elegant library for parsing and manipulating HTML and XML.
https://github.com/cheeriojs/cheerio
The fast, flexible, and elegant library for parsing and manipulating HTML and XML. - cheeriojs/cheerio
- 191A build system for development of composable software.
https://github.com/teambit/bit
A build system for development of composable software. - teambit/bit
- 192Multiple, simultaneous, individually controllable spinners for concurrent tasks in Node.js CLI programs
https://github.com/codekirei/node-multispinner
Multiple, simultaneous, individually controllable spinners for concurrent tasks in Node.js CLI programs - codekirei/node-multispinner
- 193Node.js: extra methods for the fs object like copy(), remove(), mkdirs()
https://github.com/jprichardson/node-fs-extra
Node.js: extra methods for the fs object like copy(), remove(), mkdirs() - jprichardson/node-fs-extra
- 194Parser Building Toolkit for JavaScript
https://github.com/Chevrotain/chevrotain
Parser Building Toolkit for JavaScript. Contribute to Chevrotain/chevrotain development by creating an account on GitHub.
- 195An in memory postgres DB instance for your unit tests
https://github.com/oguimbal/pg-mem
An in memory postgres DB instance for your unit tests - oguimbal/pg-mem
- 196A declarative, HTML-based language that makes building web apps fun
https://github.com/marko-js/marko
A declarative, HTML-based language that makes building web apps fun - marko-js/marko
- 197A full-featured, open-source content management framework built with Node.js that empowers organizations by combining in-context editing and headless architecture in a full-stack JS environment.
https://github.com/apostrophecms/apostrophe
A full-featured, open-source content management framework built with Node.js that empowers organizations by combining in-context editing and headless architecture in a full-stack JS environment. - ...
- 198🦄 0-legacy, tiny & fast web framework as a replacement of Express
https://github.com/tinyhttp/tinyhttp
🦄 0-legacy, tiny & fast web framework as a replacement of Express - tinyhttp/tinyhttp
- 199Format a date with timezone
https://github.com/samverschueren/tz-format
Format a date with timezone. Contribute to SamVerschueren/tz-format development by creating an account on GitHub.
- 200Round a number to a specific number of decimal places: 1.234 → 1.2
https://github.com/sindresorhus/round-to
Round a number to a specific number of decimal places: 1.234 → 1.2 - sindresorhus/round-to
- 201Loads environment variables from .env for nodejs projects.
https://github.com/motdotla/dotenv
Loads environment variables from .env for nodejs projects. - motdotla/dotenv
- 202Modular JavaScript Utilities
https://github.com/mout/mout
Modular JavaScript Utilities. Contribute to mout/mout development by creating an account on GitHub.
- 203Strip leading whitespace from each line in a string
https://github.com/sindresorhus/strip-indent
Strip leading whitespace from each line in a string - sindresorhus/strip-indent
- 204Convert character encodings in pure javascript.
https://github.com/ashtuchkin/iconv-lite
Convert character encodings in pure javascript. Contribute to ashtuchkin/iconv-lite development by creating an account on GitHub.
- 205Jose-Simple allows the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
https://github.com/davesag/jose-simple
Jose-Simple allows the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard. - davesag/jose-simple
- 206An inter-process and inter-machine lockfile utility that works on a local or network file system.
https://github.com/moxystudio/node-proper-lockfile
An inter-process and inter-machine lockfile utility that works on a local or network file system. - moxystudio/node-proper-lockfile
- 207Strip comments from CSS
https://github.com/sindresorhus/strip-css-comments
Strip comments from CSS. Contribute to sindresorhus/strip-css-comments development by creating an account on GitHub.
- 208Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax. Built for @ladjs, @forwardemail, @spamscanner, @cabinjs.
https://github.com/breejs/bree
Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax. Built for @ladjs, @forwardemail, @spamscanner, @cabinjs. - breejs/bree
- 209Manage the desktop wallpaper
https://github.com/sindresorhus/wallpaper
Manage the desktop wallpaper. Contribute to sindresorhus/wallpaper development by creating an account on GitHub.
- 210Capture website screenshots
https://github.com/sindresorhus/pageres
Capture website screenshots. Contribute to sindresorhus/pageres development by creating an account on GitHub.
- 211JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript
https://github.com/elpheria/rpc-websockets
JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript - elpheria/rpc-websockets
- 212Short links expander for node.js
https://github.com/nodeca/url-unshort
Short links expander for node.js. Contribute to nodeca/url-unshort development by creating an account on GitHub.
- 213Redis-backed task queue engine with advanced task control and eventual consistency
https://github.com/nodeca/idoit
Redis-backed task queue engine with advanced task control and eventual consistency - nodeca/idoit
- 214Integrated end-to-end testing framework written in Node.js and using W3C Webdriver API. Developed at @browserstack
https://github.com/nightwatchjs/nightwatch
Integrated end-to-end testing framework written in Node.js and using W3C Webdriver API. Developed at @browserstack - nightwatchjs/nightwatch
- 215A next-generation code testing stack for JavaScript.
https://github.com/theintern/intern
A next-generation code testing stack for JavaScript. - theintern/intern
- 216[Unmaintained] Minify images seamlessly
https://github.com/imagemin/imagemin
[Unmaintained] Minify images seamlessly. Contribute to imagemin/imagemin development by creating an account on GitHub.
- 217Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks
https://github.com/actionhero/actionhero
Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks - actionhero/actionhero
- 218🐨 Elegant Console Logger for Node.js and Browser
https://github.com/unjs/consola
🐨 Elegant Console Logger for Node.js and Browser . Contribute to unjs/consola development by creating an account on GitHub.
- 219Streaming csv parser inspired by binary-csv that aims to be faster than everyone else
https://github.com/mafintosh/csv-parser
Streaming csv parser inspired by binary-csv that aims to be faster than everyone else - mafintosh/csv-parser
- 220Create native background daemons on Linux systems.
https://github.com/coreybutler/node-linux
Create native background daemons on Linux systems. - coreybutler/node-linux
- 221Simple key-value storage with support for multiple backends
https://github.com/jaredwray/keyv
Simple key-value storage with support for multiple backends - jaredwray/keyv
- 222Atomic counters and rate limiting tools. Limit resource access at any scale.
https://github.com/animir/node-rate-limiter-flexible
Atomic counters and rate limiting tools. Limit resource access at any scale. - animir/node-rate-limiter-flexible
- 223Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅
https://github.com/drizzle-team/drizzle-orm
Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅 - drizzle-team/drizzle-orm
- 224Omelette is a simple, template based autocompletion tool for Node and Deno projects with super easy API. (For Bash, Zsh and Fish)
https://github.com/f/omelette
Omelette is a simple, template based autocompletion tool for Node and Deno projects with super easy API. (For Bash, Zsh and Fish) - f/omelette
- 225qr code generator
https://github.com/soldair/node-qrcode
qr code generator. Contribute to soldair/node-qrcode development by creating an account on GitHub.
- 226Compile C# solution into single-file ES module with auto-generated JavaScript bindings and type definitions
https://github.com/Elringus/DotNetJS
Compile C# solution into single-file ES module with auto-generated JavaScript bindings and type definitions - elringus/bootsharp
- 227Well-formatted and improved trace system calls and signals (when the debugger does not help)
https://github.com/automation-stack/ctrace
Well-formatted and improved trace system calls and signals (when the debugger does not help) - automation-stack/ctrace
- 228:fork_and_knife: Web applications made easy. Since 2011.
https://github.com/brunch/brunch
:fork_and_knife: Web applications made easy. Since 2011. - brunch/brunch
- 229We need a better Markdown previewer.
https://github.com/hatashiro/pen
We need a better Markdown previewer. Contribute to hatashiro/pen development by creating an account on GitHub.
- 230Promisify a callback-style function
https://github.com/sindresorhus/pify
Promisify a callback-style function. Contribute to sindresorhus/pify development by creating an account on GitHub.
- 231Convert an Observable to a Promise
https://github.com/sindresorhus/observable-to-promise
Convert an Observable to a Promise. Contribute to sindresorhus/observable-to-promise development by creating an account on GitHub.
- 232Indent each line in a string
https://github.com/sindresorhus/indent-string
Indent each line in a string. Contribute to sindresorhus/indent-string development by creating an account on GitHub.
- 233Independent technology for modern publishing, memberships, subscriptions and newsletters.
https://github.com/TryGhost/Ghost
Independent technology for modern publishing, memberships, subscriptions and newsletters. - TryGhost/Ghost
- 234Mobile icon generator
https://github.com/samverschueren/mobicon-cli
Mobile icon generator. Contribute to SamVerschueren/mobicon-cli development by creating an account on GitHub.
- 235Create clickable links in the terminal
https://github.com/sindresorhus/terminal-link
Create clickable links in the terminal. Contribute to sindresorhus/terminal-link development by creating an account on GitHub.
- 236Get the mac address of the current machine you are on via Node.js
https://github.com/bevry/getmac
Get the mac address of the current machine you are on via Node.js - bevry/getmac
- 237Javascript URL mutation library
https://github.com/medialize/URI.js
Javascript URL mutation library. Contribute to medialize/URI.js development by creating an account on GitHub.
- 238Find a file or directory by walking up parent directories
https://github.com/sindresorhus/find-up
Find a file or directory by walking up parent directories - sindresorhus/find-up
- 239⚡️ A simple, easy way to deploy static websites to Amazon S3.
https://github.com/brandonweiss/discharge
⚡️ A simple, easy way to deploy static websites to Amazon S3. - brandonweiss/discharge
- 240MJML: the only framework that makes responsive-email easy
https://github.com/mjmlio/mjml
MJML: the only framework that makes responsive-email easy - mjmlio/mjml
- 241Links recognition library with full unicode support
https://github.com/markdown-it/linkify-it
Links recognition library with full unicode support - markdown-it/linkify-it
- 242GraphicsMagick for node
https://github.com/aheckmann/gm
GraphicsMagick for node. Contribute to aheckmann/gm development by creating an account on GitHub.
- 243Manage multiple NodeJS versions.
https://github.com/nodenv/nodenv
Manage multiple NodeJS versions. Contribute to nodenv/nodenv development by creating an account on GitHub.
- 244ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
https://github.com/typeorm/typeorm
ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms. -...
- 245Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input
https://github.com/sindresorhus/mem
Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input - sindresorhus/memoize
- 246Tasks, boards & notes for the command-line habitat
https://github.com/klaussinani/taskbook
Tasks, boards & notes for the command-line habitat - klaudiosinani/taskbook
- 247Get your public IP address - very fast!
https://github.com/sindresorhus/public-ip
Get your public IP address - very fast! Contribute to sindresorhus/public-ip development by creating an account on GitHub.
- 248A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired)
https://github.com/mozilla/nunjucks
A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired) - mozilla/nunjucks
- 249Yet another Linux distribution for voice-enabled IoT and embrace Web standards
https://github.com/yodaos-project/yodaos
Yet another Linux distribution for voice-enabled IoT and embrace Web standards - yodaos-project/yodaos
- 250Promise packages, patterns, chat, and tutorials
https://github.com/sindresorhus/promise-fun
Promise packages, patterns, chat, and tutorials. Contribute to sindresorhus/promise-fun development by creating an account on GitHub.
- 251The Browser / Node.js Client for deepstream.io
https://github.com/deepstreamIO/deepstream.io-client-js
The Browser / Node.js Client for deepstream.io. Contribute to deepstreamIO/deepstream.io-client-js development by creating an account on GitHub.
- 252Access the system clipboard (copy/paste)
https://github.com/sindresorhus/clipboard-cli
Access the system clipboard (copy/paste). Contribute to sindresorhus/clipboard-cli development by creating an account on GitHub.
- 253A query builder for PostgreSQL, MySQL, CockroachDB, SQL Server, SQLite3 and Oracle, designed to be flexible, portable, and fun to use.
https://github.com/knex/knex
A query builder for PostgreSQL, MySQL, CockroachDB, SQL Server, SQLite3 and Oracle, designed to be flexible, portable, and fun to use. - knex/knex
- 254Locus is a debugging module for node.js
https://github.com/alidavut/locus
Locus is a debugging module for node.js. Contribute to alidavut/locus development by creating an account on GitHub.
- 255Highly scalable realtime pub/sub and RPC framework
https://github.com/SocketCluster/socketcluster
Highly scalable realtime pub/sub and RPC framework - SocketCluster/socketcluster
- 256Pipeable javascript. Quickly filter, map, and reduce from the terminal
https://github.com/danielstjules/pjs
Pipeable javascript. Quickly filter, map, and reduce from the terminal - danielstjules/pjs
- 257JavaScript YAML parser and dumper. Very fast.
https://github.com/nodeca/js-yaml
JavaScript YAML parser and dumper. Very fast. Contribute to nodeca/js-yaml development by creating an account on GitHub.
- 258A benchmarking library. As used on jsPerf.com.
https://github.com/bestiejs/benchmark.js
A benchmarking library. As used on jsPerf.com. Contribute to bestiejs/benchmark.js development by creating an account on GitHub.
- 259Node-core streams for userland
https://github.com/nodejs/readable-stream
Node-core streams for userland. Contribute to nodejs/readable-stream development by creating an account on GitHub.
- 260Next generation frontend tooling. It's fast!
https://github.com/vitejs/vite
Next generation frontend tooling. It's fast! Contribute to vitejs/vite development by creating an account on GitHub.
- 261Clamp a number
https://github.com/sindresorhus/math-clamp
Clamp a number. Contribute to sindresorhus/math-clamp development by creating an account on GitHub.
- 262HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant.
https://github.com/inikulin/parse5
HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant. - inikulin/parse5
- 263🎨 themer takes a set of colors and generates themes for your apps (editors, terminals, wallpapers, and more).
https://github.com/themerdev/themer
🎨 themer takes a set of colors and generates themes for your apps (editors, terminals, wallpapers, and more). - themerdev/themer
- 264Meteor, the JavaScript App Platform
https://github.com/meteor/meteor
Meteor, the JavaScript App Platform. Contribute to meteor/meteor development by creating an account on GitHub.
- 265:cow: ASCII cows
https://github.com/sindresorhus/cows
:cow: ASCII cows. Contribute to sindresorhus/cows development by creating an account on GitHub.
- 266🔀 Cross platform setting of environment scripts
https://github.com/kentcdodds/cross-env
🔀 Cross platform setting of environment scripts. Contribute to kentcdodds/cross-env development by creating an account on GitHub.
- 267SPI serial bus access with Node.js
https://github.com/fivdi/spi-device
SPI serial bus access with Node.js. Contribute to fivdi/spi-device development by creating an account on GitHub.
- 268The Intuitive Vue Framework.
https://github.com/nuxt/nuxt.js
The Intuitive Vue Framework. Contribute to nuxt/nuxt development by creating an account on GitHub.
- 269The socket manager
https://github.com/kalm/kalm.js
The socket manager. Contribute to kalm/kalm.js development by creating an account on GitHub.
- 270Common Database Interface for Node
https://github.com/mlaanderson/database-js
Common Database Interface for Node. Contribute to mlaanderson/database-js development by creating an account on GitHub.
- 271Get an available TCP port
https://github.com/sindresorhus/get-port
Get an available TCP port. Contribute to sindresorhus/get-port development by creating an account on GitHub.
- 272:dash: Simple yet powerful file-based mock server with recording abilities
https://github.com/sinedied/smoke
:dash: Simple yet powerful file-based mock server with recording abilities - sinedied/smoke
- 273An NLP library for building bots, with entity extraction, sentiment analysis, automatic language identify, and so more
https://github.com/axa-group/nlp.js
An NLP library for building bots, with entity extraction, sentiment analysis, automatic language identify, and so more - axa-group/nlp.js
- 274The React Framework
https://github.com/vercel/next.js
The React Framework. Contribute to vercel/next.js development by creating an account on GitHub.
- 275Simple, unobtrusive authentication for Node.js.
https://github.com/jaredhanson/passport
Simple, unobtrusive authentication for Node.js. Contribute to jaredhanson/passport development by creating an account on GitHub.
- 276A Reactive Programming library for JavaScript
https://github.com/kefirjs/kefir
A Reactive Programming library for JavaScript. Contribute to kefirjs/kefir development by creating an account on GitHub.
- 277Tips, tricks, and resources for working with Node.js, and the start of an ongoing conversation on how we can improve the Node.js experience on Microsoft platforms.
https://github.com/Microsoft/nodejs-guidelines
Tips, tricks, and resources for working with Node.js, and the start of an ongoing conversation on how we can improve the Node.js experience on Microsoft platforms. - microsoft/nodejs-guidelines
- 278🔒Unified API for password hashing algorithms
https://github.com/simonepri/upash
🔒Unified API for password hashing algorithms. Contribute to simonepri/upash development by creating an account on GitHub.
- 279End-to-end, hierarchical, real-time, colorful logs and stories
https://github.com/guigrpa/storyboard
End-to-end, hierarchical, real-time, colorful logs and stories - guigrpa/storyboard
- 280Lightweight Web Worker API implementation with native threads
https://github.com/audreyt/node-webworker-threads
Lightweight Web Worker API implementation with native threads - audreyt/node-webworker-threads
- 281A framework for building compiled Node.js add-ons in Rust via Node-API
https://github.com/napi-rs/napi-rs
A framework for building compiled Node.js add-ons in Rust via Node-API - napi-rs/napi-rs
- 282Machine learning platform for Web developers
https://github.com/alibaba/pipcook
Machine learning platform for Web developers. Contribute to alibaba/pipcook development by creating an account on GitHub.
- 283tap-producing test harness for node and browsers
https://github.com/substack/tape
tap-producing test harness for node and browsers. Contribute to tape-testing/tape development by creating an account on GitHub.
- 284:snowflake: a short introduction to node.js
https://github.com/maxogden/art-of-node/#the-art-of-node
:snowflake: a short introduction to node.js. Contribute to max-mapper/art-of-node development by creating an account on GitHub.
- 285Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input
https://github.com/mafintosh/duplexify
Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input - mafintosh/duplexify
- 286Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2"
https://github.com/hughsk/from2
Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2" - hughsk/from2
- 287Open the GitHub page of the given or current directory repo
https://github.com/sindresorhus/gh-home
Open the GitHub page of the given or current directory repo - sindresorhus/gh-home
- 288A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀
https://github.com/nestjs/nest
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀 - nestjs/nest
- 289Check whether a website is up or down
https://github.com/sindresorhus/is-up
Check whether a website is up or down. Contribute to sindresorhus/is-up development by creating an account on GitHub.
- 290➰ It's never been easier to try nodejs modules!
https://github.com/victorb/trymodule
➰ It's never been easier to try nodejs modules! Contribute to victorb/trymodule development by creating an account on GitHub.
- 291Memoize promise-returning functions. Includes cache expire and prefetch.
https://github.com/nodeca/promise-memoize
Memoize promise-returning functions. Includes cache expire and prefetch. - nodeca/promise-memoize
- 292:two_men_holding_hands: A curated list of awesome developer tools for writing cross-platform Node.js code
https://github.com/bcoe/awesome-cross-platform-nodejs
:two_men_holding_hands: A curated list of awesome developer tools for writing cross-platform Node.js code - bcoe/awesome-cross-platform-nodejs
- 293🃏 A magical documentation site generator.
https://github.com/docsifyjs/docsify
🃏 A magical documentation site generator. Contribute to docsifyjs/docsify development by creating an account on GitHub.
- 294An authorization library that supports access control models like ACL, RBAC, ABAC in Node.js and Browser
https://github.com/casbin/node-casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Node.js and Browser - casbin/node-casbin
- 295Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!
https://github.com/serialport/node-serialport
Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them! - serialport/node-serialport
- 296AdonisJS is a TypeScript-first web framework for building web apps and API servers. It comes with support for testing, modern tooling, an ecosystem of official packages, and more.
https://github.com/adonisjs/core
AdonisJS is a TypeScript-first web framework for building web apps and API servers. It comes with support for testing, modern tooling, an ecosystem of official packages, and more. - adonisjs/core
- 297Fast CSV parser
https://github.com/sindresorhus/neat-csv
Fast CSV parser. Contribute to sindresorhus/neat-csv development by creating an account on GitHub.
- 298Humanize a URL: https://sindresorhus.com → sindresorhus.com
https://github.com/sindresorhus/humanize-url
Humanize a URL: https://sindresorhus.com → sindresorhus.com - sindresorhus/humanize-url
- 299Windows support for Node.JS scripts (daemons, eventlog, UAC, etc).
https://github.com/coreybutler/node-windows
Windows support for Node.JS scripts (daemons, eventlog, UAC, etc). - coreybutler/node-windows
- 300A pipe to browser utility
https://github.com/kessler/node-bcat
A pipe to browser utility. Contribute to kessler/node-bcat development by creating an account on GitHub.
- 301Stringify and write JSON to a file atomically
https://github.com/sindresorhus/write-json-file
Stringify and write JSON to a file atomically. Contribute to sindresorhus/write-json-file development by creating an account on GitHub.
- 302Get supervillain names
https://github.com/sindresorhus/supervillains
Get supervillain names. Contribute to sindresorhus/supervillains development by creating an account on GitHub.
- 303Runs a load test on the selected URL. Fast and easy to use. Can be integrated in your own workflow using the API.
https://github.com/alexfernandez/loadtest
Runs a load test on the selected URL. Fast and easy to use. Can be integrated in your own workflow using the API. - alexfernandez/loadtest
- 304Find out which of your dependencies are slowing you down 🐢
https://github.com/siddharthkp/cost-of-modules
Find out which of your dependencies are slowing you down 🐢 - siddharthkp/cost-of-modules
- 305Read and parse a JSON file
https://github.com/sindresorhus/load-json-file
Read and parse a JSON file. Contribute to sindresorhus/load-json-file development by creating an account on GitHub.
- 306:book: documentation for modern JavaScript
https://github.com/documentationjs/documentation
:book: documentation for modern JavaScript. Contribute to documentationjs/documentation development by creating an account on GitHub.
- 307🌲 super fast, all natural json logger
https://github.com/pinojs/pino
🌲 super fast, all natural json logger. Contribute to pinojs/pino development by creating an account on GitHub.
- 308html emails and attachments to any smtp server with nodejs
https://github.com/eleith/emailjs
html emails and attachments to any smtp server with nodejs - eleith/emailjs
- 309Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
https://github.com/micromata/http-fake-backend
Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes. - micromata/http-fake-backend
- 310Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s`
https://github.com/sindresorhus/pretty-ms
Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s` - sindresorhus/pretty-ms
- 311Get superb like words
https://github.com/sindresorhus/superb
Get superb like words. Contribute to sindresorhus/superb development by creating an account on GitHub.
- 312Hook and modify stdout and stderr
https://github.com/sindresorhus/hook-std
Hook and modify stdout and stderr. Contribute to sindresorhus/hook-std development by creating an account on GitHub.
- 313A JSONSchema validator that uses code generation to be extremely fast
https://github.com/mafintosh/is-my-json-valid
A JSONSchema validator that uses code generation to be extremely fast - mafintosh/is-my-json-valid
- 314the Istanbul command line interface
https://github.com/istanbuljs/nyc
the Istanbul command line interface. Contribute to istanbuljs/nyc development by creating an account on GitHub.
- 315Simple config handling for your app or module
https://github.com/sindresorhus/conf
Simple config handling for your app or module. Contribute to sindresorhus/conf development by creating an account on GitHub.
- 316An lldb plugin for Node.js and V8, which enables inspection of JavaScript states for insights into Node.js processes and their core dumps.
https://github.com/nodejs/llnode
An lldb plugin for Node.js and V8, which enables inspection of JavaScript states for insights into Node.js processes and their core dumps. - nodejs/llnode
- 317markdown processor powered by plugins part of the @unifiedjs collective
https://github.com/remarkjs/remark
markdown processor powered by plugins part of the @unifiedjs collective - remarkjs/remark
- 318Node.js Production Process Manager with a built-in Load Balancer.
https://github.com/Unitech/pm2
Node.js Production Process Manager with a built-in Load Balancer. - Unitech/pm2
- 319easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.
https://github.com/snd/url-pattern
easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings. - snd/url-pattern
- 320Determine if a filename and/or buffer is text or binary. Smarter detection than the other solutions.
https://github.com/bevry/istextorbinary
Determine if a filename and/or buffer is text or binary. Smarter detection than the other solutions. - bevry/istextorbinary
- 321Asynchronous HTTP microservices
https://github.com/vercel/micro
Asynchronous HTTP microservices. Contribute to vercel/micro development by creating an account on GitHub.
- 322The most powerful data validation library for JS
https://github.com/sideway/joi
The most powerful data validation library for JS. Contribute to hapijs/joi development by creating an account on GitHub.
- 323An extremely fast CSS parser, transformer, bundler, and minifier written in Rust.
https://github.com/parcel-bundler/parcel-css
An extremely fast CSS parser, transformer, bundler, and minifier written in Rust. - parcel-bundler/lightningcss
- 324Delightful JavaScript Testing.
https://github.com/facebook/jest
Delightful JavaScript Testing. Contribute to jestjs/jest development by creating an account on GitHub.
- 325ᕙ༼ຈل͜ຈ༽ᕗ
https://github.com/maxogden/cool-ascii-faces
ᕙ༼ຈل͜ຈ༽ᕗ. Contribute to max-mapper/cool-ascii-faces development by creating an account on GitHub.
- 326Control the macOS dark mode from the command-line
https://github.com/sindresorhus/dark-mode
Control the macOS dark mode from the command-line. Contribute to sindresorhus/dark-mode development by creating an account on GitHub.
- 327Node.js Video Library / MP4 & FLV parser / MP4 builder / HLS muxer
https://github.com/gkozlenko/node-video-lib
Node.js Video Library / MP4 & FLV parser / MP4 builder / HLS muxer - gkozlenko/node-video-lib
- 328Extract a value from a buffer of json without parsing the whole thing
https://github.com/juliangruber/binary-extract
Extract a value from a buffer of json without parsing the whole thing - juliangruber/binary-extract
- 329Replace all homoglyphs with base characters. Useful to detect similar strings.
https://github.com/nodeca/unhomoglyph
Replace all homoglyphs with base characters. Useful to detect similar strings. - nodeca/unhomoglyph
- 330instrumented streams
https://github.com/joyent/node-vstream
instrumented streams. Contribute to TritonDataCenter/node-vstream development by creating an account on GitHub.
- 331Reliably get the terminal window size
https://github.com/sindresorhus/terminal-size
Reliably get the terminal window size. Contribute to sindresorhus/terminal-size development by creating an account on GitHub.
- 332Modern CSS to all browsers
https://github.com/stylecow/stylecow
Modern CSS to all browsers. Contribute to stylecow/stylecow development by creating an account on GitHub.
- 333Get your public IP address
https://github.com/sindresorhus/ipify
Get your public IP address. Contribute to sindresorhus/ipify development by creating an account on GitHub.
- 334Normalize a URL
https://github.com/sindresorhus/normalize-url
Normalize a URL. Contribute to sindresorhus/normalize-url development by creating an account on GitHub.
- 335Lightweight operating system using Node.js as userspace
https://github.com/NodeOS/NodeOS
Lightweight operating system using Node.js as userspace - NodeOS/NodeOS
- 336Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.
https://github.com/marblejs/marble
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS. - marblejs/marble
- 337Useful utilities for working with Uint8Array (and Buffer)
https://github.com/sindresorhus/uint8array-extras
Useful utilities for working with Uint8Array (and Buffer) - sindresorhus/uint8array-extras
- 338Fix broken node modules instantly 🏃🏽♀️💨
https://github.com/ds300/patch-package
Fix broken node modules instantly 🏃🏽♀️💨. Contribute to ds300/patch-package development by creating an account on GitHub.
- 339Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.
https://github.com/sindresorhus/log-update
Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc. - sindresorhus/log-update
- 340Move a file - Even works across devices
https://github.com/sindresorhus/move-file
Move a file - Even works across devices. Contribute to sindresorhus/move-file development by creating an account on GitHub.
- 341Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
https://github.com/markdown-it/markdown-it
Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed - markdown-it/markdown-it
- 342general natural language facilities for node
https://github.com/NaturalNode/natural
general natural language facilities for node. Contribute to NaturalNode/natural development by creating an account on GitHub.
- 343WebAssembly wrapper to simplify fast math coding
https://github.com/nodeca/multimath
WebAssembly wrapper to simplify fast math coding. Contribute to nodeca/multimath development by creating an account on GitHub.
- 344i18next: learn once - translate everywhere
https://github.com/i18next/i18next
i18next: learn once - translate everywhere. Contribute to i18next/i18next development by creating an account on GitHub.
- 345Tiny hashing module that uses the native crypto API in Node.js and the browser
https://github.com/sindresorhus/crypto-hash
Tiny hashing module that uses the native crypto API in Node.js and the browser - sindresorhus/crypto-hash
- 346⚡️ Fast parsing, formatting and timezone manipulations for dates
https://github.com/floatdrop/node-cctz
⚡️ Fast parsing, formatting and timezone manipulations for dates - floatdrop/node-cctz
- 347:dog: Get popular dog names
https://github.com/sindresorhus/dog-names
:dog: Get popular dog names. Contribute to sindresorhus/dog-names development by creating an account on GitHub.
- 348Simple client testing from your scripts
https://github.com/nodeca/navit
Simple client testing from your scripts. Contribute to nodeca/navit development by creating an account on GitHub.
- 349Accessibility engine for automated Web UI testing
https://github.com/dequelabs/axe-core
Accessibility engine for automated Web UI testing. Contribute to dequelabs/axe-core development by creating an account on GitHub.
- 350🌱 The ultimate solution for populating your MongoDB database.
https://github.com/pkosiec/mongo-seeding
🌱 The ultimate solution for populating your MongoDB database. - pkosiec/mongo-seeding
- 351Better Queue for NodeJS
https://github.com/diamondio/better-queue
Better Queue for NodeJS. Contribute to diamondio/better-queue development by creating an account on GitHub.
- 352Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes
https://github.com/sindresorhus/string-length
Get the real length of a string - by correctly counting astral symbols and ignoring ansi escape codes - sindresorhus/string-length
- 353Check whether a package or organization name is available on npm
https://github.com/sindresorhus/npm-name
Check whether a package or organization name is available on npm - sindresorhus/npm-name
- 354REST API Client Library
https://github.com/simov/purest
REST API Client Library. Contribute to simov/purest development by creating an account on GitHub.
- 355:cat2: Get popular cat names
https://github.com/sindresorhus/cat-names
:cat2: Get popular cat names. Contribute to sindresorhus/cat-names development by creating an account on GitHub.
- 356PEG.js: Parser generator for JavaScript
https://github.com/pegjs/pegjs
PEG.js: Parser generator for JavaScript. Contribute to pegjs/pegjs development by creating an account on GitHub.
- 357An SQL-friendly ORM for Node.js
https://github.com/Vincit/objection.js
An SQL-friendly ORM for Node.js. Contribute to Vincit/objection.js development by creating an account on GitHub.
- 358An implementation of IPFS in JavaScript
https://github.com/ipfs/helia
An implementation of IPFS in JavaScript. Contribute to ipfs/helia development by creating an account on GitHub.
- 359Create boxes in the terminal
https://github.com/sindresorhus/boxen
Create boxes in the terminal. Contribute to sindresorhus/boxen development by creating an account on GitHub.
- 360Make ORMs great again!
https://github.com/PhilWaldmann/openrecord
Make ORMs great again! Contribute to PhilWaldmann/openrecord development by creating an account on GitHub.
- 361Easy to maintain open source documentation websites.
https://github.com/facebook/docusaurus
Easy to maintain open source documentation websites. - facebook/docusaurus
- 362Pug – robust, elegant, feature rich template engine for Node.js
https://github.com/pugjs/pug
Pug – robust, elegant, feature rich template engine for Node.js - pugjs/pug
- 363petruisfan/node-supervisor
https://github.com/petruisfan/node-supervisor
Contribute to petruisfan/node-supervisor development by creating an account on GitHub.
- 364Minimal templating on steroids.
https://github.com/handlebars-lang/handlebars.js
Minimal templating on steroids. Contribute to handlebars-lang/handlebars.js development by creating an account on GitHub.
- 365LoopBack makes it easy to build modern API applications that require complex integrations.
https://github.com/loopbackio/loopback-next
LoopBack makes it easy to build modern API applications that require complex integrations. - loopbackio/loopback-next
- 366⏳ Modern JavaScript date utility library ⌛️
https://github.com/date-fns/date-fns
⏳ Modern JavaScript date utility library ⌛️. Contribute to date-fns/date-fns development by creating an account on GitHub.
- 367:shell: Portable Unix shell commands for Node.js
https://github.com/shelljs/shelljs
:shell: Portable Unix shell commands for Node.js. Contribute to shelljs/shelljs development by creating an account on GitHub.
- 368Streamline Your Node.js Debugging Workflow with Chromium (Chrome, Edge, More) DevTools.
https://github.com/june07/nim
Streamline Your Node.js Debugging Workflow with Chromium (Chrome, Edge, More) DevTools. - june07/NiM
- 369The superpowered headless CMS for Node.js — built with GraphQL and React
https://github.com/keystonejs/keystone
The superpowered headless CMS for Node.js — built with GraphQL and React - keystonejs/keystone
- 370Rust bindings for writing safe and fast native Node.js modules.
https://github.com/neon-bindings/neon
Rust bindings for writing safe and fast native Node.js modules. - neon-bindings/neon
- 371Turn multiple data sources into a single GraphQL API
https://github.com/exogee-technology/graphweaver
Turn multiple data sources into a single GraphQL API - exogee-technology/graphweaver
- 372He is like Batman, but for Node.js stack traces
https://github.com/watson/stackman
He is like Batman, but for Node.js stack traces. Contribute to watson/stackman development by creating an account on GitHub.
- 373AdminJS is an admin panel for apps written in node.js
https://github.com/SoftwareBrothers/adminjs
AdminJS is an admin panel for apps written in node.js - SoftwareBrothers/adminjs
- 374High-level streams library for Node.js and the browser
https://github.com/caolan/highland
High-level streams library for Node.js and the browser - caolan/highland
- 375Empower your website frontends with layouts, meta-data, pre-processors (markdown, jade, coffeescript, etc.), partials, skeletons, file watching, querying, and an amazing plugin system. DocPad will streamline your web development process allowing you to craft powerful static sites quicker than ever before.
https://github.com/docpad/docpad
Empower your website frontends with layouts, meta-data, pre-processors (markdown, jade, coffeescript, etc.), partials, skeletons, file watching, querying, and an amazing plugin system. DocPad will ...
- 376📈 Minimalistic zero-dependencies statsd client for Node.js
https://github.com/immobiliare/dats
📈 Minimalistic zero-dependencies statsd client for Node.js - GitHub - immobiliare/dats: 📈 Minimalistic zero-dependencies statsd client for Node.js
- 377yet another zip library for node
https://github.com/thejoshwolfe/yazl
yet another zip library for node. Contribute to thejoshwolfe/yazl development by creating an account on GitHub.
- 378A JavaScript implementation of various web standards, for use with Node.js
https://github.com/jsdom/jsdom
A JavaScript implementation of various web standards, for use with Node.js - jsdom/jsdom
- 379Node version management
https://github.com/tj/n
Node version management. Contribute to tj/n development by creating an account on GitHub.
- 380Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
https://github.com/prisma/prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB - prisma/prisma
- 381GPIO access and interrupt detection with Node.js
https://github.com/fivdi/onoff
GPIO access and interrupt detection with Node.js. Contribute to fivdi/onoff development by creating an account on GitHub.
- 382A Node.js tool to automate end-to-end web testing.
https://github.com/DevExpress/testcafe
A Node.js tool to automate end-to-end web testing. - DevExpress/testcafe
- 383a fast newline (or any delimiter) splitter stream - like require('split') but specific for binary data
https://github.com/maxogden/binary-split
a fast newline (or any delimiter) splitter stream - like require('split') but specific for binary data - max-mapper/binary-split
- 384A NMEA parser and GPS utility library
https://github.com/infusion/GPS.js
A NMEA parser and GPS utility library. Contribute to infusion/GPS.js development by creating an account on GitHub.
- 385An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.
https://github.com/oliver-moran/jimp
An image processing library written entirely in JavaScript for Node, with zero external or native dependencies. - jimp-dev/jimp
- 386:books: some best practices for JS modules
https://github.com/mattdesl/module-best-practices
:books: some best practices for JS modules. Contribute to mattdesl/module-best-practices development by creating an account on GitHub.
- 387Mobile app splash screen generator
https://github.com/samverschueren/mobisplash-cli
Mobile app splash screen generator. Contribute to SamVerschueren/mobisplash-cli development by creating an account on GitHub.
- 388Native Node bindings to Git.
https://github.com/nodegit/nodegit
Native Node bindings to Git. Contribute to nodegit/nodegit development by creating an account on GitHub.
- 389A fast, simple & powerful blog framework, powered by Node.js.
https://github.com/hexojs/hexo
A fast, simple & powerful blog framework, powered by Node.js. - hexojs/hexo
- 390Use full ES2015+ features to develop Node.js applications, Support TypeScript.
https://github.com/thinkjs/thinkjs
Use full ES2015+ features to develop Node.js applications, Support TypeScript. - thinkjs/thinkjs
- 391Block users from running your app with root permissions
https://github.com/sindresorhus/sudo-block
Block users from running your app with root permissions - sindresorhus/sudo-block
- 392The next web scraper. See through the <html> noise.
https://github.com/matthewmueller/x-ray
The next web scraper. See through the <html> noise. - matthewmueller/x-ray
- 393Daemon for easy but powerful stats aggregation
https://github.com/statsd/statsd
Daemon for easy but powerful stats aggregation. Contribute to statsd/statsd development by creating an account on GitHub.
- 394Test spies, stubs and mocks for JavaScript.
https://github.com/sinonjs/sinon
Test spies, stubs and mocks for JavaScript. Contribute to sinonjs/sinon development by creating an account on GitHub.
- 395The future of Node.js REST development
https://github.com/restify/node-restify
The future of Node.js REST development. Contribute to restify/node-restify development by creating an account on GitHub.
- 396Convert a string to a valid safe filename
https://github.com/sindresorhus/filenamify
Convert a string to a valid safe filename. Contribute to sindresorhus/filenamify development by creating an account on GitHub.
- 397human friendly i18n for javascript (node.js + browser)
https://github.com/nodeca/babelfish
human friendly i18n for javascript (node.js + browser) - nodeca/babelfish
- 398Convert bytes to a human readable string: 1337 → 1.34 kB
https://github.com/sindresorhus/pretty-bytes
Convert bytes to a human readable string: 1337 → 1.34 kB - sindresorhus/pretty-bytes
- 399Awesome npm resources and tips
https://github.com/sindresorhus/awesome-npm
Awesome npm resources and tips. Contribute to sindresorhus/awesome-npm development by creating an account on GitHub.
- 400User-friendly glob matching
https://github.com/sindresorhus/globby
User-friendly glob matching. Contribute to sindresorhus/globby development by creating an account on GitHub.
- 401Couchbase Node.js Client Library (Official)
https://github.com/couchbase/couchnode
Couchbase Node.js Client Library (Official). Contribute to couchbase/couchnode development by creating an account on GitHub.
- 402A tiny (124 bytes), secure, URL-friendly, unique string ID generator for JavaScript
https://github.com/ai/nanoid
A tiny (124 bytes), secure, URL-friendly, unique string ID generator for JavaScript - ai/nanoid
- 403Map over promises concurrently
https://github.com/sindresorhus/p-map
Map over promises concurrently. Contribute to sindresorhus/p-map development by creating an account on GitHub.
- 404:rocket: Progressive microservices framework for Node.js
https://github.com/moleculerjs/moleculer
:rocket: Progressive microservices framework for Node.js - moleculerjs/moleculer
- 405A light-weight module that brings the Fetch API to Node.js
https://github.com/node-fetch/node-fetch
A light-weight module that brings the Fetch API to Node.js - node-fetch/node-fetch
- 406The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927)
https://github.com/ajv-validator/ajv
The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927) - ajv-validator/ajv
- 407☕️ TDD with Browserify, Mocha, Headless Chrome and WebDriver
https://github.com/mantoni/mochify.js
☕️ TDD with Browserify, Mocha, Headless Chrome and WebDriver - mantoni/mochify.js
- 408Minimize HTML
https://github.com/Swaagie/minimize
Minimize HTML. Contribute to Swaagie/minimize development by creating an account on GitHub.
- 409🤠 Object property paths with wildcards and regexps 🌵
https://github.com/ehmicky/wild-wild-path
🤠 Object property paths with wildcards and regexps 🌵 - ehmicky/wild-wild-path
- 410A curated, community driven list of awesome Meteor packages, libraries, resources and shiny things
https://github.com/Urigo/awesome-meteor
A curated, community driven list of awesome Meteor packages, libraries, resources and shiny things - Urigo/awesome-meteor
- 411Node.js Desktop Automation.
https://github.com/octalmage/robotjs
Node.js Desktop Automation. . Contribute to octalmage/robotjs development by creating an account on GitHub.
- 412Run any command on specific Node.js versions
https://github.com/ehmicky/nve
Run any command on specific Node.js versions. Contribute to ehmicky/nve development by creating an account on GitHub.
- 413💸 Lightweight currency conversion library, successor of money.js
https://github.com/xxczaki/cashify
💸 Lightweight currency conversion library, successor of money.js - parsify-dev/cashify
- 414Install dependencies as you code ⚡️
https://github.com/siddharthkp/auto-install
Install dependencies as you code ⚡️. Contribute to siddharthkp/auto-install development by creating an account on GitHub.
- 415Add stdin support to any CLI app that accepts file input
https://github.com/sindresorhus/tmpin
Add stdin support to any CLI app that accepts file input - sindresorhus/tmpin
- 416Scrape/Crawl article from any site automatically. Make any web page readable, no matter Chinese or English.
https://github.com/Tjatse/node-readability
Scrape/Crawl article from any site automatically. Make any web page readable, no matter Chinese or English. - Tjatse/node-readability
- 417:heavy_check_mark: Run tests for multiple versions of Node.js in local env.
https://github.com/egoist/testen
:heavy_check_mark: Run tests for multiple versions of Node.js in local env. - egoist/testen
- 418The Simple, Secure Framework Developers Trust
https://github.com/hapijs/hapi
The Simple, Secure Framework Developers Trust. Contribute to hapijs/hapi development by creating an account on GitHub.
- 419Remove or replace part of a string like Array#splice
https://github.com/sindresorhus/splice-string
Remove or replace part of a string like Array#splice - sindresorhus/splice-string
- 420Get the visual width of a string - the number of columns required to display it
https://github.com/sindresorhus/string-width
Get the visual width of a string - the number of columns required to display it - sindresorhus/string-width
- 421A reactive programming library for JavaScript
https://github.com/ReactiveX/RxJS
A reactive programming library for JavaScript. Contribute to ReactiveX/rxjs development by creating an account on GitHub.
- 422Empty the trash
https://github.com/sindresorhus/empty-trash
Empty the trash. Contribute to sindresorhus/empty-trash development by creating an account on GitHub.
- 423⏰ Day.js 2kB immutable date-time library alternative to Moment.js with the same modern API
https://github.com/iamkun/dayjs
⏰ Day.js 2kB immutable date-time library alternative to Moment.js with the same modern API - iamkun/dayjs
- 424Process execution for humans
https://github.com/sindresorhus/execa
Process execution for humans. Contribute to sindresorhus/execa development by creating an account on GitHub.
- 425Limit the execution rate of a function
https://github.com/lpinca/valvelet
Limit the execution rate of a function. Contribute to lpinca/valvelet development by creating an account on GitHub.
- 426Generate a random float
https://github.com/sindresorhus/random-float
Generate a random float. Contribute to sindresorhus/random-float development by creating an account on GitHub.
- 427Schema based serialization made easy
https://github.com/compactr/compactr.js
Schema based serialization made easy. Contribute to compactr/compactr.js development by creating an account on GitHub.
- 428Generate a random integer
https://github.com/sindresorhus/random-int
Generate a random integer. Contribute to sindresorhus/random-int development by creating an account on GitHub.
- 429Power Assert in JavaScript. Provides descriptive assertion messages through standard assert interface. No API is the best API.
https://github.com/power-assert-js/power-assert
Power Assert in JavaScript. Provides descriptive assertion messages through standard assert interface. No API is the best API. - power-assert-js/power-assert
- 430A node.js package for Steven Levithan's excellent dateFormat() function.
https://github.com/felixge/node-dateformat
A node.js package for Steven Levithan's excellent dateFormat() function. - felixge/node-dateformat
- 431Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar
https://github.com/sindresorhus/camelcase
Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar - sindresorhus/camelcase
- 432⏱ A library for working with dates and times in JS
https://github.com/moment/luxon
⏱ A library for working with dates and times in JS - moment/luxon
- 433The API after every nerd's heart...
https://github.com/SkyHacks/nerds
The API after every nerd's heart... Contribute to SkyHacks/nerds development by creating an account on GitHub.
- 434A reactive programming library for JavaScript
https://github.com/reactivex/rxjs
A reactive programming library for JavaScript. Contribute to ReactiveX/rxjs development by creating an account on GitHub.
- 435A small, fast, JavaScript-based JavaScript parser
https://github.com/acornjs/acorn
A small, fast, JavaScript-based JavaScript parser. Contribute to acornjs/acorn development by creating an account on GitHub.
- 436Flexible ascii progress bar for nodejs
https://github.com/visionmedia/node-progress
Flexible ascii progress bar for nodejs. Contribute to visionmedia/node-progress development by creating an account on GitHub.
- 437Global HTTP/HTTPS proxy agent configurable using environment variables.
https://github.com/gajus/global-agent
Global HTTP/HTTPS proxy agent configurable using environment variables. - gajus/global-agent
- 438DEPRECATED - please use https://github.com/Brooooooklyn/snappy. Nodejs bindings to Google's Snappy compression library
https://github.com/kesla/node-snappy
DEPRECATED - please use https://github.com/Brooooooklyn/snappy. Nodejs bindings to Google's Snappy compression library - kesla/node-snappy
- 439A toolkit to automate & enhance your workflow
https://github.com/gulpjs/gulp
A toolkit to automate & enhance your workflow. Contribute to gulpjs/gulp development by creating an account on GitHub.
- 440Build Amazon Simple Queue Service (SQS) based applications without the boilerplate
https://github.com/bbc/sqs-consumer
Build Amazon Simple Queue Service (SQS) based applications without the boilerplate - bbc/sqs-consumer
- 441Node.js — Blog
https://nodejs.org/en/blog/
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
FAQ'sto know more about the topic.
mail [email protected] to add your project or resources here 🔥.
- 1Why should I use Node.js for my web application?
- 2Why is Node.js considered non-blocking?
- 3Why is Node.js popular for building APIs?
- 4Why does Node.js use JavaScript?
- 5Why is Node.js considered lightweight?
- 6Why is Node.js good for real-time applications?
- 7Why is Node.js suitable for microservices architecture?
- 8Why does Node.js have a large community?
- 9Why should I learn Node.js?
- 10Why is Node.js great for handling asynchronous tasks?
- 11Why is Node.js ideal for single-page applications (SPAs)?
- 12Why is Node.js often used for building RESTful APIs?
- 13Why does Node.js support cross-platform development?
- 14Why should businesses consider using Node.js?
- 15Why is Node.js a good choice for data-intensive applications?
- 16Why is Node.js good for microservices architecture?
- 17Why is Node.js popular among developers?
- 18Why is Node.js effective for building real-time applications?
- 19Why is Node.js suitable for serverless architecture?
- 20Why is Node.js preferred for developing CLI tools?
- 21Why is Node.js ideal for handling concurrent requests?
- 22Why is Node.js beneficial for API development?
- 23Why is Node.js a good choice for building single-page applications (SPAs)?
- 24Why is Node.js a great choice for Internet of Things (IoT) applications?
- 25How does Node.js facilitate microservices architecture?
- 26What makes Node.js suitable for real-time applications?
- 27What advantages does Node.js offer for developing scalable applications?
- 28How does Node.js manage asynchronous operations?
- 29What is the role of middleware in Node.js applications?
- 30How does Node.js handle file uploads?
- 31What are the differences between Node.js and traditional server-side languages?
- 32What are the advantages of using Node.js for API development?
- 33What are some best practices for securing Node.js applications?
- 34How to implement logging in a Node.js application?
- 35How to manage Node.js application configurations?
- 36How to handle file uploads in Node.js?
- 37How to deploy a Node.js application?
- 38Why is Node.js preferred for building microservices?
- 39Why is asynchronous programming important in Node.js?
- 40Why should I use Express with Node.js?
- 41Why is Node.js good for real-time applications?
- 42Why is Node.js preferred for building REST APIs?
- 43Why is Node.js suitable for data-intensive applications?
- 44What are the advantages of using Node.js for building microservices?
- 45Why is Node.js a good choice for RESTful APIs?
- 46Why should I use Node.js for server-side rendering?
- 47Why is Node.js suitable for real-time applications?
- 48Why is Node.js often used in microservices architecture?
- 49Why is Node.js popular for building web applications?
- 50What is Node.js used for?
- 51How does Node.js handle asynchronous programming?
- 52What are the benefits of using Node.js for REST APIs?
- 53How can you optimize Node.js application performance?
- 54What is the role of middleware in Node.js?
- 55How do you handle errors in a Node.js application?
- 56What are the best practices for writing tests in Node.js?
- 57How does Node.js handle asynchronous operations?
- 58What are some popular frameworks for building applications with Node.js?
- 59How can I optimize the performance of my Node.js application?
- 60How does Node.js support real-time applications?
- 61How to create a RESTful API using Node.js?
- 62How to handle file uploads in a Node.js application?
- 63How to implement JWT authentication in a Node.js application?
- 64How to connect MongoDB with a Node.js application?
- 65How to create RESTful APIs with Node.js and Express?
- 66How to use environment variables in a Node.js application?
- 67How to implement authentication in Node.js applications?
- 68How to set up a Node.js development environment?
- 69How to deploy a Node.js application?
- 70How to handle errors in Node.js applications?
- 71How to create a REST API with Node.js?
- 72How to use middleware in Node.js?
- 73How to connect Node.js to a MongoDB database?
- 74How to handle asynchronous code in Node.js?
- 75How to create a REST API using Node.js?
- 76How to manage packages in Node.js?
- 77How to use middleware in Express?
- 78How to set up a WebSocket server in Node.js?
- 79How to deploy a Node.js application?
- 80How to secure a Node.js application?
- 81How to integrate a database with Node.js?
- 82How to debug a Node.js application?
- 83How to optimize a Node.js application?
- 84What should I do if my Node.js application crashes unexpectedly?
- 85Why does my Node.js application run slowly?
- 86What are the steps to debug a memory leak in a Node.js application?
- 87How can I troubleshoot dependency issues in my Node.js project?
- 88What is the best way to manage environment variables in a Node.js application?
- 89How can I handle uncaught exceptions in a Node.js application?
- 90What are some strategies for logging in a Node.js application?
- 91How do I fix a 'Cannot find module' error in Node.js?
- 92What should I do if my Node.js server is not responding?
- 93How do I resolve CORS issues in my Node.js application?
- 94Why is my Node.js application running slow?
- 95How do I handle unexpected errors in Node.js?
- 96What should I do if my Node.js application crashes frequently?
- 97How do I set up logging in my Node.js application?
- 98What are some best practices for structuring a Node.js project?
- 99How can I improve the performance of my Node.js application?
- 100What are common security vulnerabilities in Node.js applications?
Queriesor most google FAQ's about NodeJS.
mail [email protected] to add more queries here 🔍.
- 1
what is a node js
- 2
what is nodemailer
- 3
what exactly is node js
- 4
is node js good for backend
- 5
is node js good
- 6
how to use node js
- 7
what can i do with node js
- 8
what is stream in nodejs
- 9
why nodejs is used
- 10
how node js event loop works
- 11
how nodejs works under the hood
- 12
is node js safe
- 13
what is event loop in nodejs
- 14
how does node js work
- 15
is node js backend
- 16
how to do pagination in nodejs
- 17
should i learn node js in 2024
- 18
what node js used for
- 19
why nodejs is so popular
- 20
is node js worth learning 2024
- 21
what node js developer do
- 22
should i learn node js in 2023
- 23
is node js worth learning 2023
- 24
what node js can do
- 25
how work node js
- 26
how nodejs handle multiple requests
- 27
how nodejs works
- 28
what can node js do
- 29
which node js to download
- 30
what is difference between nodejs and reactjs
- 31
is node js multithreading
- 32
why nodejs is better than other
- 33
how nodejs handle concurrency
- 34
how node js works internally
- 35
is node js a framework
- 36
where to deploy nodejs app
- 37
what is difference between nodejs and express js
- 38
why nodejs is single threaded
- 39
how to do node js
- 40
- 41
why we need node js
- 42
is node js easy to learn
- 43
how nodejs works in hindi
- 44
how nodejs is single threaded and asynchronous
- 46
should i learn node js
- 47
why nodejs is single threaded in hindi
- 48
how nodejs works in tamil
- 49
what does node js do
- 50
why nodejs is better than php
- 51
how to create an api in nodejs
- 52
how nodejs works behind the scenes
- 53
is node js single threaded
More Sitesto check out once you're finished browsing here.
https://www.0x3d.site/
0x3d is designed for aggregating information.
https://nodejs.0x3d.site/
NodeJS Online Directory
https://cross-platform.0x3d.site/
Cross Platform Online Directory
https://open-source.0x3d.site/
Open Source Online Directory
https://analytics.0x3d.site/
Analytics Online Directory
https://javascript.0x3d.site/
JavaScript Online Directory
https://golang.0x3d.site/
GoLang Online Directory
https://python.0x3d.site/
Python Online Directory
https://swift.0x3d.site/
Swift Online Directory
https://rust.0x3d.site/
Rust Online Directory
https://scala.0x3d.site/
Scala Online Directory
https://ruby.0x3d.site/
Ruby Online Directory
https://clojure.0x3d.site/
Clojure Online Directory
https://elixir.0x3d.site/
Elixir Online Directory
https://elm.0x3d.site/
Elm Online Directory
https://lua.0x3d.site/
Lua Online Directory
https://c-programming.0x3d.site/
C Programming Online Directory
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
https://r-programming.0x3d.site/
R Programming Online Directory
https://perl.0x3d.site/
Perl Online Directory
https://java.0x3d.site/
Java Online Directory
https://kotlin.0x3d.site/
Kotlin Online Directory
https://php.0x3d.site/
PHP Online Directory
https://react.0x3d.site/
React JS Online Directory
https://angular.0x3d.site/
Angular JS Online Directory