DEV Community

Iain Freestone
Iain Freestone

Posted on

πŸš€10 Trending projects on GitHub for web developers - 14th January 2022

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

1. PptxGenJS

Create PowerPoint presentations with a powerful, concise JavaScript API.

GitHub logo gitbrent / PptxGenJS

Create PowerPoint presentations with a powerful, concise JavaScript API.

PptxGenJS

Create JavaScript PowerPoint Presentations

PptxGenJS Sample Slides

Known Vulnerabilities npm downloads jsdelivr downloads typescripts definitions

Table of Contents

Introduction

This library creates Open Office XML (OOXML) Presentations which are compatible with Microsoft PowerPoint, Apple Keynote, and other applications.

Features

Works Everywhere

  • Every modern desktop and mobile browser is supported
  • Integrates with Node, Angular, React, and Electron
  • Compatible with PowerPoint, Keynote, and more

Full Featured

  • All major object types are available (charts, shapes, tables, etc.)
  • Master Slides for academic/corporate branding
  • SVG images, animated gifs, YouTube videos, RTL text, and Asian fonts

Simple and Powerful

  • The absolute easiest PowerPoint library to use
  • Learn as you code will full typescript definitions included
  • …

2. antfu/p

Toolkit for managing multiple promises.

GitHub logo antfu / p

Toolkit for managing multiple promises

DEPRECATED, now it's part of @antfu/utils


@antfu/p

NPM version

Toolkit for managing multiple promises.

Without
const items = [1, 2, 3, 4, 5]

(await Promise.all(items
  .map(async i => {
    const v = await multiply(i, 3)
    const even = await isEven(v)
    return [even, v]
  })))
    .filter(x => x[0])
    .map(x => x[1])
Enter fullscreen mode Exit fullscreen mode
import P from '@antfu/p'

const items = [1, 2, 3, 4, 5]

await P(items)
  .map(async i => await multiply(i, 3))
  .filter(async i => await isEven(i))
// [6, 12]
Enter fullscreen mode Exit fullscreen mode
import P from '@antfu/p'
const p = P(
…
Enter fullscreen mode Exit fullscreen mode

3. fx

Command-line tool and terminal JSON viewer

GitHub logo antonmedv / fx

Terminal JSON viewer & processor

f(x)

fx preview

Special thanks to:

Warp

Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.

Visit warp.dev to learn more.

Install

brew install fx
Enter fullscreen mode Exit fullscreen mode

Documentation

See full documentation at fx.wtf.

License

MIT


4. http-server

A simple zero-configuration command-line HTTP server. It is powerful enough for production usage, but it's simple and hackable enough to be used for testing, local development and learning.

GitHub logo http-party / http-server

a simple zero-configuration command-line http server

GitHub Workflow Status (master) npm homebrew npm downloads license

http-server: a simple static HTTP server

http-server is a simple, zero-configuration command-line static HTTP server. It is powerful enough for production usage, but it's simple and hackable enough to be used for testing, local development and learning.

Example of running http-server

Installation:

Running on-demand:

Using npx you can run the script without installing it first:

npx http-server [path] [options]

Globally via npm

npm install --global http-server

This will install http-server globally so that it may be run from the command line anywhere.

Globally via Homebrew

brew install http-server

As a dependency in your npm package:

npm install http-server

Using Docker

Note: a public image is not provided currently, but you can build one yourself with the provided Dockerfile.

  1. Create an image
    docker build -t my-image
    
  2. Run a container
    docker run -p 8080:8080 -v "${pwd}:/public" my-image
    
    In the example above we're serving the directory ./ (working directory) If you wanted to serve ./test you'd…

5. color

JavaScript library for immutable color conversion and manipulation with support for CSS color strings.

GitHub logo Qix- / color

🌈 Javascript color conversion and manipulation library

color

JavaScript library for immutable color conversion and manipulation with support for CSS color strings.

const color = Color('#7743CE').alpha(0.5).lighten(0.5);
console.log(color.hsl().string());  // 'hsla(262, 59%, 81%, 0.5)'

console.log(color.cmyk().round().array());  // [ 16, 25, 0, 8, 0.5 ]

console.log(color.ansi256().object());  // { ansi256: 183, alpha: 0.5 }
Enter fullscreen mode Exit fullscreen mode

Install

$ npm install color
Enter fullscreen mode Exit fullscreen mode

Usage

const Color = require('color');
Enter fullscreen mode Exit fullscreen mode

Constructors

// string constructor
const color = Color('rgb(255, 255, 255)')                       // { model: 'rgb', color: [ 255, 255, 255 ], valpha: 1 }
const color = Color('hsl(194, 53%, 79%)'
…
Enter fullscreen mode Exit fullscreen mode

6. perfect-cursors

Perfect interpolation for animated multiplayer cursors.

GitHub logo steveruizok / perfect-cursors

Perfect interpolation for multiplayer cursors.

perfect-cursors

Perfect interpolation for animated multiplayer cursors. Used in tldraw.

πŸ’• Love this library? Consider becoming a sponsor.

Edit perfect-cursors-demo

Installation

yarn add perfect-cursors
# or
npm i perfect-cursors
Enter fullscreen mode Exit fullscreen mode

Introduction

You can use this library to smoothly animate a cursor based on limited information.

Kapture 2022-01-08 at 09 25 50

Above: We are updating the red cursor's position once every 80 milliseconds. The perfect-cursors library is being used to correctly animate between these positions.

Animating between points

When implementing a multiplayer app, you will most likely be displaying each user's cursor location based on the information you receive from a multiplayer service such as Pusher, Liveblocks.

In a perfect world, these updates would occur "in real time": that is, arriving with zero latency and arriving at the same rate as the user's monitor.

Kapture 2022-01-08 at 09 35 34

Above: Updating the cursor instantly.

In the real world, however, services often "throttle" their updates to roughly one update every 50-80…


7. Passport

Simple, unobtrusive authentication for Node.js. Passport's sole purpose is to authenticate requests, which it does through an extensible set of plugins known as strategies.

GitHub logo jaredhanson / passport

Simple, unobtrusive authentication for Node.js.

passport banner

Passport

Passport is Express-compatible authentication middleware for Node.js.

Passport's sole purpose is to authenticate requests, which it does through an extensible set of plugins known as strategies. Passport does not mount routes or assume any particular database schema, which maximizes flexibility and allows application-level decisions to be made by the developer. The API is simple: you provide Passport a request to authenticate, and Passport provides hooks for controlling what occurs when authentication succeeds or fails.


Sponsors

Simple Authentication
Make login our problem. Not yours

Auth0 by Okta provides a simple and customizable login page to authenticate your users. You can dynamically add new capabilities to it - including social login, multi-factor authentication, or passkeys - without making changes to your app’s code.

We help protect your app and your users from attacks - defending your application from bot attacks and detecting runtime anomalies based on suspicious IPs…


8. oclif

Framework for building CLIs in Node.js. This framework was built out of the Heroku CLI but generalized to build any custom CLI. It's designed both for single-file CLIs with a few flag options, or for very complex CLIs that have subcommands (like git or heroku).

GitHub logo oclif / oclif

CLI for generating, building, and releasing oclif CLIs. Built by Salesforce.

oclif CLI

Version Downloads/week License

πŸ—’ Description

This is the oclif CLI for the Open CLI Framework, that supports the development of oclif plugins and CLIs.

See the docs for more information.

πŸš€ Getting Started Tutorial

The Getting Started tutorial is a step-by-step guide to introduce you to oclif. If you have not developed anything in a command line before, this tutorial is a great place to get started.

See Usage below for an overview of the oclif CLI.

πŸ“Œ Requirements

Currently, Node 18+ is supported. We support the LTS versions of Node. You can add the node package to your CLI to ensure users are running a specific version of Node.

πŸ“Œ Migrating from V1

If you have been using…





9. Meteor

Meteor is an ultra-simple environment for building modern web applications.

GitHub logo meteor / meteor

Meteor, the JavaScript App Platform


Travis CI Status CircleCI Status built with Meteor node-current Discord Twitter Follow


Meteor is an ultra-simple environment for building modern web applications.



πŸ“š Create your applications using modern JavaScript

Benefit from the latest technology updates to rapidly prototype and develop your applications.


✨ Integrate technologies you already use

Use popular frameworks and tools right out-of-the-box. Focus on building features instead of configuring disparate components yourself.


πŸ’» Build apps for any device

Use the same code whether you’re developing for web, iOS, Android, or desktop for a seamless update experience for your users.


πŸ”₯ Getting Started

How about trying a tutorial to get started with your favorite technology?

Next, read the documentation and get some examples.

πŸš€ Quick Start

On your platform, use this line:

> npm install -g meteor
Enter fullscreen mode Exit fullscreen mode

πŸš€ To create a project:

> meteor create my-app
Enter fullscreen mode Exit fullscreen mode

β˜„οΈ Run it:

cd my-app
meteor
Enter fullscreen mode Exit fullscreen mode

🧱 Developer Resources

Building an application with Meteor?

  • Deploy…

10. ReactPlayer

A React component for playing a variety of URLs, including file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia and DailyMotion

GitHub logo cookpete / react-player

A React component for playing a variety of URLs, including file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia and DailyMotion

ReactPlayer

Latest npm version Test Coverage Become a sponsor on Patreon

A React component for playing a variety of URLs, including file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia, Mixcloud, DailyMotion and Kaltura. Not using React? No problem.


Using Next.js and need to handle video upload/processing? Check out next-video.

✨ The future of ReactPlayer

Maintenance of ReactPlayer is being taken over by Mux. Mux is a video api for developers. The team at Mux have worked on many highly respected projects and are committed to improving video tooling for developers.

ReactPlayer will remain open source, but with a higher rate of fixes and releases over time. Thanks to everyone in the community for your ongoing support.

Usage

npm install react-player # or yarn add react-player
Enter fullscreen mode Exit fullscreen mode
import React from 'react'
import ReactPlayer from 'react-player'

// Render a YouTube video player
<ReactPlayer url='https://www.youtube.com/watch?v=LXb3EKWsInQ' />
Enter fullscreen mode Exit fullscreen mode

By default, ReactPlayer supports many different types of url. If…


Stargazing πŸ“ˆ

Top risers over last 7 daysπŸ”—

  1. 30 Days Of JavaScript +1,929 stars
  2. Iconoir +885 stars
  3. Tauri +842 stars
  4. faker.js +812 stars
  5. Awesome +710 stars

Top growth(%) over last 7 daysπŸ”—

  1. faker.js +178%
  2. Iconoir +93%
  3. Amplify UI +36%
  4. Fuite +27%
  5. 30 Days Of JavaScript +16%

Top risers over last 30 daysπŸ”—

  1. Awesome +4,538 stars
  2. Tabby +4,249 stars
  3. Awesome Self Hosted +3,583 stars
  4. Free Programming Books +3,387 stars
  5. JavaScript Algorithms +2,956 stars

Top growth(%) over last 30 daysπŸ”—

  1. Pico +202%
  2. Rakkas +144%
  3. md-block +107%
  4. Iconoir +98%
  5. Basic Computer Games +92%

For all for the latest rankings please checkout Stargazing.dev


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

If you enjoyed this article you can follow me on Twitter where I regularly post about HTML, CSS and JavaScript.

Top comments (5)

Collapse
 
gktim profile image
gkTim

Just crazy how much really good projects @antfu creates and maintains.

Really appreciate his work!

Just browse through his projects and you will find a few gems.

Also thx to all other maintainers of OSS which mainly use there free time to provide great software.

Collapse
 
gleisser profile image
Gleisser

I love this lists, thanks for making that every week, it helps me to keep update with what's is going on in the industry.

Collapse
 
iainfreestone profile image
Iain Freestone

Thank you

Collapse
 
chiroro_jr profile image
Dennis

This series is amazing

Collapse
 
hunzaboy profile image
Aslam Shah

codedmails.com is also an awesome resource for email templates.