DEV Community

Iain Freestone
Iain Freestone

Posted on • Originally published at iainfreestone.com

🚀10 Trending projects on GitHub for web developers - 12th February 2021

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

1. Remotion

Create videos programmatically in React. Remotion is a suite of libraries building a fundament for creating videos programmatically using React.

GitHub logo remotion-dev / remotion

🎥 Create videos programmatically in React

Discord Shield NPM Version NPM Downloads Install Size

Remotion is a suite of libraries building a fundament for creating videos programmatically using React.

Why create videos in React?

  • Leverage web technologies: Use all of CSS, Canvas, SVG, WebGL, etc.
  • Leverage programming: Use variables, functions, APIs, math and algorithms to create new effects
  • Leverage React: Reusable components, Powerful composition, Fast Refresh, Package ecosystem

Example videos

  • Remotion Trailer WatchSource code • The announcement video for Remotion was written in Remotion itself!
  • AnySticker Welcome Video WatchSource code • An in-app explainer video for my app AnySticker.
  • Spotify Wrapped Recreated WatchTutorialSource code • A recreation of Spotify Wrapped where you can override all text and images via command line.
  • "Game changer or no game changer" intro WatchSource code • An intro for a quiz show I did with William Candillon.
  • "The X in MDX" talk WatchSource code

2. Evergreen

Evergreen React UI Framework by Segment. Components are built on top of a React UI Primitive for endless composability.

GitHub logo segmentio / evergreen

🌲 Evergreen React UI Framework by Segment

  • Works out of the box. Evergreen contains a set of polished React components that work out of the box.

  • Flexible & composable. Evergreen components are built on top of a React UI Primitive for endless composability.

  • Enterprise-grade. Evergreen features a UI design language for enterprise-grade web applications.

Documentation & Community

Evergreen v5 to v6 Migration guide

Evergreen v5 to v6 migration guide

Install and use components

🌲 Evergreen is made up of multiple components and tools which you can import one by one. All you need to do is install the evergreen-ui package:

$ yarn add evergreen-ui
# or
$ npm install --save evergreen-ui
Enter fullscreen mode Exit fullscreen mode

A working version, assuming you are using something like Create React App, might look like this:

import React from 'react'
import ReactDOM from 'react-dom'
import { Button } from 'evergreen-ui'
ReactDOM.render(<Button>I am using 🌲 Evergreen!
Enter fullscreen mode Exit fullscreen mode

3. CORS Anywhere

CORS Anywhere is a NodeJS reverse proxy which adds CORS headers to the proxied request.

GitHub logo Rob--W / cors-anywhere

CORS Anywhere is a NodeJS reverse proxy which adds CORS headers to the proxied request.

Build Status Coverage Status

CORS Anywhere is a NodeJS proxy which adds CORS headers to the proxied request.

The url to proxy is literally taken from the path, validated and proxied. The protocol part of the proxied URI is optional, and defaults to "http". If port 443 is specified the protocol defaults to "https".

This package does not put any restrictions on the http methods or headers, except for cookies. Requesting user credentials is disallowed The app can be configured to require a header for proxying a request, for example to avoid a direct visit from the browser.

Example

// Listen on a specific host via the HOST environment variable
var host = process.env.HOST || '0.0.0.0';
// Listen on a specific port via the PORT environment variable
var port = process.env.PORT || 8080;
var cors_proxy = require('cors-anywhere');
cors_proxy.createServer
Enter fullscreen mode Exit fullscreen mode

4. Vuetify

Material Component Framework for Vue

GitHub logo vuetifyjs / vuetify

🐉 Material Component Framework for Vue

Vuetify Logo

CI badge Coverage Downloads Downloads
License zenhub Chat
Version CDN

Supporting Vuetify

Vuetify is a MIT licensed project that is developed and maintained full-time by John Leider and Heather Leider; with support from the entire Core Team. Sponsor Vuetify and receive some awesome perks and support Open Source Software at the same time! 🎉

What's the difference between Patreon and OpenCollective

Funds donated via Patreon go directly to support John and Heather's full-time work on Vuetify. Funds donated via Open Collective are managed with transparent expenses and will be used for compensating work and expenses for Core team members. Your name/logo will receive proper recognition and exposure by donating on either platform.

Diamond Sponsors

Platinum Sponsors

Gold


5. Oasis Engine

Oasis Engine is a web-first and mobile-first high-performance real-time development platform.

GitHub logo oasis-engine / engine

Oasis Engine is a web-first and mobile-first high-performance real-time development platform.

Oasis Engine (Ant Graphics Engine)

Oasis logo

npm-size npm-download codecov

Oasis is a web-first and mobile-first high-performance real-time development platform. Use component system design and pursue ease of use and light weight. This repository is the core engine of Oasis. Developers can independently use and write Typescript scripts to develop projects using pure code.

Features

  • 🖥  Platform - Suppport HTML5 and Alipay miniprogram
  • 🔮  Graphics - Advanced 2D + 3D graphics engine
  • 🏃  Animation - Powerful animation system
  • 📑  Scripts - Use TypeScript to write logic efficiently

Usage

// Create engine by passing in the HTMLCanvasElement id and adjust canvas size.
const engine = new WebGLEngine("canvas-id");
engine.canvas.resizeByClientSize();
// Create root entity.
const rootEntity = engine.sceneManager.activeScene.createRootEntity("Root");

// Create light.
const lightEntity = rootEntity.createChild("Light");
const directLight = lightEntity.addComponent
Enter fullscreen mode Exit fullscreen mode

6. ag-Grid

ag-Grid is a fully-featured and highly customizable JavaScript data grid. It delivers outstanding performance, has no third-party dependencies and integrates smoothly with all major JavaScript frameworks.

GitHub logo ag-grid / ag-grid

The best JavaScript Data Table for building Enterprise Applications. Supports React / Angular / Vue / Plain JavaScript.

alt text

CDNJS Github Stars Twitter

Module Info
ag-grid-community npm
Bundle Phobia
Quality Gate Status
ag-grid-enterprise npm
Bundle Phobia
Quality Gate Status

AG Grid

AG Grid is a fully-featured and highly customizable JavaScript data grid It delivers outstanding performance, has no third-party dependencies and integrates smoothly with all major JavaScript frameworks.

Here's how our grid looks with multiple filters and grouping enabled:

alt text

Features

In addition to the standard set of features you'd expect from any grid:

  • Column Interactions (resize, reorder, and pin columns)
  • Pagination
  • Sorting
  • Row Selection

Here are some of the features that make AG Grid stand out:

  • Grouping / Aggregation *
  • Custom Filtering
  • In-place Cell Editing
  • Records Lazy Loading *
  • Server-Side Records Operations *
  • Live Stream Updates
  • Hierarchical Data Support & Tree View *
  • Customizable Appearance
  • Customizable Cell Contents
  • Excel-like Pivoting *
  • State Persistence
  • Keyboard Navigation
  • Data Export to CSV
  • Data Export to Excel *
  • Row Reordering
  • Copy / Paste
  • Column Spanning
  • Pinned Rows
  • Full Width Rows

* The features marked with an asterisk…


7. Fontsource

Self-host Open Source fonts in neatly bundled NPM packages.

GitHub logo fontsource / fontsource

Self-host Open Source fonts in neatly bundled NPM packages.

Fontsource

Generic badge codecov Monthly Downloads Total Downloads License GitHub stars

An updating monorepo full of self-hostable Open Source fonts bundled into individual NPM packages!

Our full documentation and search directory can be found here https://fontsource.org/

Alternatively, you can see the list of supported fonts in Markdown format here.

  • Self-hosting brings significant performance gains as loading fonts from hosted services, such as Google Fonts, lead to an extra (render blocking) network request. To provide perspective, for simple websites it has been seen to double visual load times Benchmarks can be found here and here.

  • Fonts remain version locked. Google often pushes updates to their fonts without notice, which may interfere with your live production projects. Manage your fonts like any other NPM dependency.

  • Commit to privacy. Google does track the usage of their fonts and for those who are extremely privacy concerned, self-hosting is an alternative.

  • Your fonts load offline. On top of…


8. cssnano

cssnano is a modern, modular compression tool written on top of the PostCSS ecosystem, which allows us to use a lot of powerful features in order to compact CSS appropriately.

GitHub logo cssnano / cssnano

A modular minifier, built on top of the PostCSS ecosystem.


cssnano


A modular minifier, built on top of the PostCSS ecosystem.

Backers on Open Collective Sponsors on Open Collective NPM version Build Status codecov Gitter

cssnano is a modern, modular compression tool written on top of the PostCSS ecosystem, which allows us to use a lot of powerful features in order to compact CSS appropriately.

Our preset system allow you to load cssnano in a different configuration depending on your needs; the default preset performs safe transforms, whereas the advanced preset performs more aggressive transforms that are safe only when your site meets the requirements; but regardless of the preset you choose, we handle more than whitespace transforms!

Optimisations range from compressing colors & removing comments, to discarding overridden at-rules, normalising unicode-range descriptors, even mangling gradient parameters for a smaller output value! In addition, where it's made sense for a transform, we've added Browserslist to provide different output depending on the browsers that you support.

For further details check out the website:


9. Objection.js

Objection.js is an ORM for Node.js that aims to stay out of your way and make it as easy as possible to use the full power of SQL and the underlying database engine while still making the common stuff easy and enjoyable.

GitHub logo Vincit / objection.js

An SQL-friendly ORM for Node.js

Build Status Coverage Status Join the chat at https://gitter.im/Vincit/objection.js

Objection.js

Objection.js is an ORM for Node.js that aims to stay out of your way and make it as easy as possible to use the full power of SQL and the underlying database engine while still making the common stuff easy and enjoyable.

Even though ORM is the best commonly known acronym to describe objection, a more accurate description is to call it a relational query builder. You get all the benefits of an SQL query builder but also a powerful set of tools for working with relations.

Objection.js is built on an SQL query builder called knex. All databases supported by knex are supported by objection.js. SQLite3, Postgres and MySQL are thoroughly tested.

What objection.js gives you:


10. Victory

A collection of composable React components for building interactive data visualizations

GitHub logo FormidableLabs / victory

A collection of composable React components for building interactive data visualizations

victory

an ecosystem of composable React components for building interactive data visualizations

weekly downloads current version build status Gzip size Maintenance Status

Victory

Contents

Getting started

  1. Add Victory to your project:
# npm
$ npm i --save victory
# or yarn
$ yarn add victory
Enter fullscreen mode Exit fullscreen mode
  1. Add your first Victory component:
import React from "react";
import { render } from "react-dom";
import { VictoryPie } from "victory";

const PieChart = () => {
  return <VictoryPie />;
};

render(<PieChart />, document.getElementById("app"));
Enter fullscreen mode Exit fullscreen mode
  1. VictoryPie component will be rendered, and you should see:

pie

Requirements

Projects using Victory should also depend on React. Victory works with React version 15 and above. As of victory@34.0.0 Victory requires React version 16.3.0





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 (0)