DEV Community

Iain Freestone
Iain Freestone

Posted on

🚀10 Trending projects on GitHub for web developers - 21st May 2021

Trending Projects is available as a weekly newsletter please sign up at www.iainfreestone.com to ensure you never miss an issue.

1. Docz

Docz makes it easy to write and publish beautiful interactive documentation for your code. Create MDX files showcasing your code and Docz turns them into a live-reloading, production-ready site.

GitHub logo doczjs / docz

✍ It has never been so easy to document your things!

⚠️ WARNING

This is an OUTDATED version of Docz, if you are going to use it, be aware that you may possibly find bugs due to the outdated dependencies. Mainly because of all this time without updates, became almost impossible to follow with the decision of keep the same stack and update things.

So, we're working in a new version that will include an entire core refactoring/rewritting by adding Astro behind the scenes as bundler and another cools feature.

Since we really want to don't have so much breakings changes - and try to bring back the spot and quality Docz deserves - this can take a while to be done, please be patient and if you want to help, just send me a message on my Twitter!

Issues related to this old version, also won't be answered, ok? 😅

Thank you 🙏

Docz

Docz makes it easy to…





2. mo · js

The motion graphics toolbelt for the web. mo · js is a javascript motion graphics library that is a fast, retina ready, modular and open source.

GitHub logo mojs / mojs

The motion graphics toolbelt for the web

mo · js – npm ci Coverage Status Slack

The motion graphics toolbelt for the web.

mo · js

Intro

mo · js is a javascript motion graphics library that is a fast, retina ready, modular and open source. In comparison to other libraries, it has a different syntax and code animation structure approach. The declarative API provides you a complete control over the animation, making it customizable with ease.

The library provides built-in components to start animating from scratch like html, shape, swirl, burst and stagger, but also bring you tools to help craft your animation in a most natural way. Using mojs on your site will enhance the user experience, enrich your content visually and create delightful animations precisely.

Install

Use with a bundler

Mojs is published on the NPM registry, so you can install it through the command line interpreter using your favorite package manager. This is the best way to install the…


3. Twitter API Client

A user-friendly Node.js / JavaScript client library for interacting with the Twitter API.

GitHub logo FeedHive / twitter-api-client

A user-friendly Node.js / JavaScript client library for interacting with the Twitter API.

Twitter API Client

Node.js client for Twitter API

NPM Version Build Status

⚠️ Important notice

Twitter now has an official TypeScript SDK.
We recommend using that instead of this client.

This project will be maintained, but will not be developed any further.

To all contributors who added to this project: Thank you 🧡

Table of content

Features

☑️ Includes 90% of the official Twitter API endpoints.
☑️ Promise-based! No ugly callbacks.
☑️ Fully typed! Both for query parameters and responses.
☑️ Inbuilt in-memory cache for rate-limit friendly usage.

Getting Started

Get your Twitter credentials

You will need to create a set of Twitter developer credentials from your Twitter Developer account.
If you don't have one already, apply for a developer account here.
It takes about 5 minutes.

Install

npm i twitter-api-client
Enter fullscreen mode Exit fullscreen mode

Usage

import { TwitterClient } from 'twitter-api-client';
const twitterClient = new TwitterClient
Enter fullscreen mode Exit fullscreen mode

4. web3.js

The Ethereum JavaScript API which connects to the Generic JSON-RPC spec.

GitHub logo web3 / web3.js

Collection of comprehensive TypeScript libraries for Interaction with the Ethereum JSON RPC API and utility functions.

web3.js

Web3.js

Dependency Status Unit Test Coverage Commit Activity Contributors

ES Version Node Version

Web3.js is a TypeScript implementation of the Ethereum JSON RPC API and related tooling maintained by ChainSafe Systems.

Installation

You can install the package either using NPM or using Yarn

If you wanna checkout latest bugfix or feature, use npm install web3@dev

Using NPM

npm install web3
Enter fullscreen mode Exit fullscreen mode

Using Yarn

yarn add web3
Enter fullscreen mode Exit fullscreen mode

Getting Started

Prerequisites

Migration Guide

Useful links

Architecture Overview


5. renature

A physics-based animation library for React focused on modeling natural world forces.

GitHub logo FormidableLabs / renature

A physics-based animation library for React focused on modeling natural world forces.

renature

A physics-based animation library for React inspired by the natural world

Maintenance Status NPM Version Test Status Minified gzip size

renature

renature is a physics-based animation library for React focused on modeling natural world forces like gravity, friction, and fluid dynamics, exposed as a set of React hooks.

✨Features

  • 🎣 A small set of declarative React hooks for animating with ease.
  • 🌌 Support for non-traditional physics-based animations using gravity, friction, fluid resistance, and more.
  • 🧮 Mathematically accurate and type-safe physics, powered by ReScript.
  • 🔁 Start, stop, delay, and loop animations with our Controller API.
  • 0️⃣ A tiny animation library with zero dependencies!

📃Documentation

renature's documentation lives on our docs site. Notice something inaccurate or confusing? Feel free to open an issue or make a pull request to help improve the documentation for everyone! The source for our docs site lives in this repo in the docs folder.

Maintenance Status

Archived: This project is no longer maintained…


6. use-gesture

use-gesture is a library that let you bind richer mouse and touch events to any component or view. With the data you receive, it becomes trivial to set up gestures, and often takes no more than a few lines of code.

GitHub logo pmndrs / use-gesture

👇Bread n butter utility for component-tied mouse/touch gestures in React and Vanilla Javascript.

@use-gesture

npm (tag) npm bundle size NPM Discord Shield

@use-gesture is a library that lets you bind richer mouse and touch events to any component or view. With the data you receive, it becomes trivial to set up gestures, and often takes no more than a few lines of code.

You can use it stand-alone, but to make the most of it you should combine it with an animation library like react-spring, though you can most certainly use any other.

The demos are real click them!

Installation

React

#Yarn
yarn add @use-gesture/react

#NPM
npm install @use-gesture/react
Enter fullscreen mode Exit fullscreen mode

Vanilla javascript

#Yarn
yarn add @use-gesture/vanilla

#NPM
npm install @use-gesture/vanilla
Enter fullscreen mode Exit fullscreen mode

Simple example


React

import { useSpring, animated } from '@react-spring/web'
import { useDrag } from '@use-gesture/react'
function Example() {
  const [{ x, y }, api] = useSpring(()
Enter fullscreen mode Exit fullscreen mode

7. cheerio

Fast, flexible, and lean implementation of core jQuery designed specifically for the server.

GitHub logo cheeriojs / cheerio

The fast, flexible, and elegant library for parsing and manipulating HTML and XML.

cheerio

The fast, flexible, and elegant library for parsing and manipulating HTML and XML.

中文文档 (Chinese Readme)

import * as cheerio from 'cheerio';
const $ = cheerio.load('<h2 class="title">Hello world</h2>');

$('h2.title').text('Hello there!');
$('h2').addClass('welcome');

$.html();
//=> <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html>
Enter fullscreen mode Exit fullscreen mode

Installation

npm install cheerio

Features

❤ Proven syntax: Cheerio implements a subset of core jQuery. Cheerio removes all the DOM inconsistencies and browser cruft from the jQuery library, revealing its truly gorgeous API.

ϟ Blazingly fast: Cheerio works with a very simple, consistent DOM model. As a result parsing, manipulating, and rendering are incredibly efficient.

❁ Incredibly flexible: Cheerio wraps around parse5 for parsing HTML and can optionally use the forgiving htmlparser2. Cheerio can parse nearly any HTML or XML document…


8. DocToc

Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.

GitHub logo thlorenz / doctoc

📜 Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.

DocToc Node.js CI

Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites via a command line flag.

Table of Contents generated with DocToc

Installation

npm install -g doctoc

Usage

In its simplest usage, you can pass one or more files or folders to the doctoc command. This will update the TOCs of each file specified as well as of each markdown file found by recursively searching each folder. Below are some examples.

Adding toc to all files in


9. Styleguidist

Isolated React component development environment with a living style guide

GitHub logo styleguidist / react-styleguidist

Isolated React component development environment with a living style guide

React Styleguidist

Isolated React component development environment with a living style guide

npm CI status Codecov Join the chat at https://gitter.im/styleguidist/styleguidist Discord Open Source Helpers

React Styleguidist is a component development environment with hot reloaded dev server and a living style guide that you can share with your team. It lists component propTypes and shows live, editable usage examples based on Markdown files. Check out the demo style guide.

React Styleguidist in action

Usage

Advanced documentation

Examples

Showcase

Real projects using React Styleguidist:


10. Pts

A library for visualization and creative-coding

GitHub logo williamngan / pts

A library for visualization and creative-coding

Pts

image

Pts is a typescript/javascript library for visualization and creative-coding.

Get started at ptsjs.org.

Please give it a try, file issues, and send feedbacks to @williamngan. Thank you!


Usage

Option 1
Get the latest pts.js or pts.min.js (in dist folder). Alternatively use a CDN service like cdnjs or jsdelivr or unpkg. Then add it to your html page like this:

<script type="text/javascript" src="path/to/pts.js"></script>
Enter fullscreen mode Exit fullscreen mode

Pts is pretty lightweight. Currently at ~100kb minified and 30kb gzipped.

Option 2:
Install via npm install pts. Then you can choose to import some parts of Pts into your project as needed.

import {CanvasSpace, Pt, Group, Line} from 'pts';
Enter fullscreen mode Exit fullscreen mode

To quickly get started, try download or clone these repos:


Stargazing 📈

Top risers over last 7 days

  1. Front-End Checklist +1,665 stars
  2. Best websites a programmer should visit +1,445 stars
  3. eDEX-UI +1,350 stars
  4. Slidev +1,235 stars
  5. umami +844 stars

Top growth(%) over last 7 days

  1. htmr +27%
  2. useStateMachine +24%
  3. Observable Plot +15%
  4. Elder.js +15%
  5. Slidev +15%

Top risers over last 30 days

  1. Public APIs +6,543 stars
  2. Coding Interview University +5,535 stars
  3. Web Developer Roadmap +5,200 stars
  4. Free Programming Books +4,960 stars
  5. Build your own X +4,350 stars

Top growth(%) over last 30 days

  1. github-elements +132%
  2. superplate +73%
  3. party.js +72%
  4. Fig +72%
  5. Supabase +43%

Trending Projects is available as a weekly newsletter please sign up at www.iainfreestone.com to ensure you never miss an issue.

If you enjoyed this article you can follow me on Twitter where I regularly post bite size tips relating to HTML, CSS and JavaScript.

Top comments (3)

Collapse
 
christyjacob4 profile image
Christy Jacob

Hey you should take a look at appwrite.io

Collapse
 
iainfreestone profile image
Iain Freestone

Check out issue 45 number 2, I am already on the case

Issue 45

Collapse
 
christyjacob4 profile image
Christy Jacob

Oh perfect! I missed that 😊