DEV Community

Iain Freestone
Iain Freestone

Posted on • Originally published at iainfreestone.com

🚀10 Trending projects on GitHub for web developers - 21st August 2020

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

1. Design resources for developers

Curated list of design and UI resources from stock photos, web templates, CSS frameworks, UI libraries, tools and much more.

GitHub logo bradtraversy / design-resources-for-developers

Curated list of design and UI resources from stock photos, web templates, CSS frameworks, UI libraries, tools and much more

Repository Banner

Please read contributing guidelines before submitting new resources.

Table of Contents

UI Graphics

Websites and resources with modern UI components in different formats such as PSD, Sketch, Figma, etc. They are great for ideas for web components/UI

Website                            Description
SVG sine waves Export perfect sine waves as SVG for your front-end projects
UI Design Daily Awesome UI Components of all types
100 Daily UI

2. Alpine.js

Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM, and sprinkle in behavior as you see fit.Think of it like Tailwind for JavaScript.

GitHub logo alpinejs / alpine

A rugged, minimal framework for composing JavaScript behavior in your markup.

Alpine.js

Go to the Alpine docs for most things: Alpine Docs

You are welcome to submit updates to the docs by submitting a PR to this repo. Docs are located in the /packages/docs directory.

Stay here for contribution-related information.

Looking for V2 docs? here they are

Alpine Component Patterns

Contribution Guide:

Quickstart

  • clone this repo locally
  • run npm install & npm run build
  • Include the /packages/alpinejs/dist/cdn.js file from a <script> tag on a webpage and you're good to go!

Brief Tour

You can get everything installed with: npm install in the root directory of this repo after cloning it locally.

This repo is a "mono-repo" using npm workspaces for managing the packages. Each package has its own folder in the /packages directory.

Rather than having to run separate builds for each package, all package bundles are handled with the same command: npm run build

Here's a brief look at each package in this…


3. RSSHub

RSSHub is an open source, easy to use, and extensible RSS feed aggregator, it's capable of generating RSS feeds from pretty much everything.

GitHub logo DIYgod / RSSHub

🧡 Everything is RSSible

RSSHub

RSSHub

🧡 Everything is RSSible

docker publish npm publish test Test coverage Visitors

Telegram group Telegram channel X (Twitter)

Introduction

RSSHub is the world's largest RSS network, consisting of over 5,000 global instances.

RSSHub delivers millions of contents aggregated from all kinds of sources, our vibrant open source community is ensuring the deliver of RSSHub's new routes, new features and bug fixes.

Documentation | Telegram Group | Telegram Channel | X (Twitter)

Related Projects

  • RSSHub Radar | A browser extension that can help you quickly discover and subscribe to the RSS and RSSHub of current websites.
  • RSSBud | RSSHub Radar for iOS platform, designed specifically for mobile ecosystem optimization.
  • RSSAid | RSSHub Radar for Android platform built with Flutter.
  • DocSearch | Link RSSHub DocSearch into Raycast

Contribute

We welcome all pull requests. Suggestions and feedback are also welcomed here.

Refer to Quick Start

Deployment

Refer to Deployment

Special Thanks

Logo designer sheldonrrr

              

Author

RSSHub © DIYgod, Released under the MIT License.
Authored…


4. selectize.js

Selectize is an extensible jQuery-based custom UI control. It's useful for tagging, contact lists, country selectors, and so on. It clocks in at around ~7kb (gzipped). The goal is to provide a solid & usable experience with a clean and powerful API.

GitHub logo selectize / selectize.js

Selectize is the hybrid of a textbox and <select> box. It's jQuery based, and it has autocomplete and native-feeling keyboard navigation; useful for tagging, contact lists, etc.

selectize.js

Selectize.js

→ Selectize is looking for new members on the maintenance team!

NPM version CDNJS version
Node.js CI
Discussion & Help

Selectize is an extensible jQuery-based custom <select>; UI control. It's useful for tagging, contact lists, country selectors, and so on. The goal is to provide a solid & usable experience with a clean and powerful API.

Features

  • Smart Option Searching / Ranking Options are efficiently scored and sorted on-the-fly (using sifter). Want to search for an item's title and description? No problem.
  • Caret between items Order matters sometimes. Use the and arrow keys to move between selected items.
  • Select & delete multiple items at once Hold down option on Mac or ctrl on Windows to select more than one item to delete.
  • Díåcritîçs supported Great for international environments.
  • Item creation Allow users to create items on the fly (async saving is supported; the control locks until the callback is…

5. TSDX

Setting up a new TypeScript (x React) library can be tough. Between Rollup, Jest, tsconfig, Yarn resolutions, ESLint, and getting VSCode to play nicely....there is just a whole lot of stuff to do (and things to screw up). TSDX is a zero-config CLI that helps you develop, test, and publish modern TypeScript packages with ease--so you can focus on your awesome new library and not waste another afternoon on the configuration.

GitHub logo jaredpalmer / tsdx

Zero-config CLI for TypeScript package development

tsdx

Blazing Fast Blazing Fast Blazing Fast Discord

Despite all the recent hype, setting up a new TypeScript (x React) library can be tough. Between Rollup, Jest, tsconfig, Yarn resolutions, ESLint, and getting VSCode to play nicely....there is just a whole lot of stuff to do (and things to screw up). TSDX is a zero-config CLI that helps you develop, test, and publish modern TypeScript packages with ease--so you can focus on your awesome new library and not waste another afternoon on the configuration.


6. wa-automate-nodejs (WhatsApp)

The most advanced NodeJS WhatsApp library for chatbots with advanced features. wa-automate-nodejs is the most advanced NodeJS library which provides a high-level API to control WhatsApp.

GitHub logo open-wa / wa-automate-nodejs

💬 🤖 The most reliable tool for chatbots with advanced features. Be sure to 🌟 this repository for updates!

Warning

By visiting this page you explicitly agree to the Terms of Service (read here)

wa-automate-nodejs

wa-automate-nodejs is the most advanced NodeJS library which provides a high-level API to control WA.

Ceasefire Now

npm version node Downloads Average time to resolve an issue Percentage of issues still open

WhatsApp_Web 2.2147.16Twitter Follow

Deploy to DO

Key FeaturesGetting StartedEasy APIDocumentationGet a License KeySupport

Installation and Updating

Use this command to install the library for the first time and to keep the library up to date.

> npm i --save @open-wa/wa-automate@latest
Enter fullscreen mode Exit fullscreen mode

Usage

CLI

Want to convert your WA account to an API instantly? You can now with the CLI. For more details see Easy API

> npx @open-wa/wa-automate --help
Enter fullscreen mode Exit fullscreen mode

Custom Setup

Learn more about all possible configuration options here: ConfigObject

const wa = require('@open-wa/wa-automate');
wa.create({
  sessionId: "COVID_HELPER",
  multiDevice: true, //required to enable multiDevice support
  authTimeout: 60, //wait only 60 seconds to get
Enter fullscreen mode Exit fullscreen mode

7. TypeORM

TypeORM is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used with TypeScript and JavaScript. Its goal is to always support the latest JavaScript features and provide additional features that help you to develop any kind of application that uses databases - from small applications with a few tables to large scale enterprise applications with multiple databases.

GitHub logo 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.

TypeORM is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used with TypeScript and JavaScript (ES2021) Its goal is to always support the latest JavaScript features and provide additional features that help you to develop any kind of application that uses databases - from small applications with a few tables to large-scale enterprise applications with multiple databases.

TypeORM supports both Active Record and Data Mapper patterns unlike all other JavaScript ORMs currently in existence which means you can write high-quality, loosely coupled, scalable, maintainable applications in the most productive way.

TypeORM is highly influenced by other ORMs, such as Hibernate, Doctrine and Entity Framework.

Features

  • Supports both DataMapper and ActiveRecord (your choice).
  • Entities and columns.
  • Database-specific column types.
  • Entity manager.
  • Repositories and custom repositories.
  • Clean object-relational model.
  • Associations (relations).
  • Eager and lazy relations.
  • Uni-directional, bi-directional…

8. Zustand

Small, fast and scaleable bearbones state-management solution. Has a comfy api based on hooks, isn't boilerplatey or opinionated, but still just enough to be explicit and flux-like.

GitHub logo pmndrs / zustand

🐻 Bear necessities for state management in React

Build Status Build Size Version Downloads Discord Shield

A small, fast and scalable bearbones state-management solution using simplified flux principles. Has a comfy API based on hooks, isn't boilerplatey or opinionated.

Don't disregard it because it's cute. It has quite the claws, lots of time was spent dealing with common pitfalls, like the dreaded zombie child problem, react concurrency, and context loss between mixed renderers. It may be the one state-manager in the React space that gets all of these right.

You can try a live demo here.

npm i zustand
Enter fullscreen mode Exit fullscreen mode

⚠️ This readme is written for JavaScript users. If you are a TypeScript user, be sure to check out our TypeScript Usage section.

First create a store

Your store is a hook! You can put anything in it: primitives, objects, functions. State has to be updated immutably and the set function merges state to help it.

import { create } from 'zustand'
const
Enter fullscreen mode Exit fullscreen mode

9. jsQR

A pure javascript QR code reading library. This library takes in raw images and will locate, extract and parse any QR code found within.

GitHub logo cozmo / jsQR

A pure javascript QR code reading library. This library takes in raw images and will locate, extract and parse any QR code found within.

jsQR

Build Status

A pure javascript QR code reading library This library takes in raw images and will locate, extract and parse any QR code found within.

Demo

Installation

NPM

Available on npm. Can be used in a Node.js program or with a module bundler such as Webpack or Browserify.

npm install jsqr --save
// ES6 import
import jsQR from "jsqr";

// CommonJS require
const jsQR = require("jsqr");

jsQR(...);
Enter fullscreen mode Exit fullscreen mode

Browser

Alternatively for frontend use jsQR.js can be included with a script tag

<script src="jsQR.js"></script>
<script>
  jsQR(...);
</script>
Enter fullscreen mode Exit fullscreen mode

A note on webcams

jsQR is designed to be a completely standalone library for scanning QR codes. By design it does not include any platform specific code. This allows it to just as easily scan a frontend webcam stream…


10. joi

The most powerful schema description language and data validator for JavaScript.

GitHub logo hapijs / joi

The most powerful data validation library for JS





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

Collapse
 
jwp profile image
John Peters • Edited

Brad Travery's work is always excellent!

Alpine looks very interesting. With the advent of -data- attributes, they may be onto something. This snippet shows their design well.

<div x-data="dropdown()">
    <button x-on:click="open">Open</button>

    <div x-show="isOpen()" x-on:click.away="close">
        // Dropdown
    </div>
</div>

Notice that the GUI is only concerned with GUI State, whereAs the x-data is used to tie in the event handlers. Pretty cool...

Thanks Iain!

Collapse
 
iainfreestone profile image
Iain Freestone

I am also excited to dig into Alpine looks like an awesome project.

Brad Traversy YouTube channel is brilliant, I was a bit sad to see that he will be stepping back from the camera for a while. Hopefully the channel will continue to grow under his guidance.

Collapse
 
jpomykala profile image
Jakub Pomykała

Great! I also made such list but for react localization and i18n libraries 📦
dev.to/jpomykala/top-12-libraries-...
:D

Some comments may only be visible to logged-in visitors. Sign in to view all comments.