DEV Community

Iain Freestone
Iain Freestone

Posted on • Originally published at iainfreestone.com

🚀10 Trending projects on GitHub for web developers - 20th November 2020

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

1. Valtio

Valtio makes proxy-state simple for React and Vanilla

GitHub logo pmndrs / valtio

💊 Valtio makes proxy-state simple for React and Vanilla

valtio



npm i valtio makes proxy-state simple

Build Status Build Size Version Downloads Discord Shield

Wrap your state object

Valtio turns the object you pass it into a self-aware proxy.

import { proxy, useSnapshot } from 'valtio'
const state = proxy({ count: 0, text: 'hello' })
Enter fullscreen mode Exit fullscreen mode

Mutate from anywhere

You can make changes to it in the same way you would to a normal js-object.

setInterval(() => {
  ++state.count
}, 1000)
Enter fullscreen mode Exit fullscreen mode

React via useSnapshot

Create a local snapshot that catches changes. Rule of thumb: read from snapshots, mutate the source. The component will only re-render when the parts of the state you access have changed, it is render-optimized.

// This will re-render on `state.count` change but not on `state.text` change
function Counter() {
  const snap = useSnapshot(state)
  return (
    <div>
      {snap.count}
      <button
Enter fullscreen mode Exit fullscreen mode

2. Starship

The minimal, blazing-fast, and infinitely customizable prompt for any shell!

GitHub logo starship / starship

☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!

Starship – Cross-shell prompt

GitHub Actions workflow status Crates.io version Packaging status
Chat on Discord Follow @StarshipPrompt on Twitter

Website · Installation · Configuration

English   日本語   繁體中文   Русский   Deutsch   简体中文   Español   Français   Tiếng Việt

Starship with iTerm2 and the Snazzy theme

The minimal, blazing-fast, and infinitely customizable prompt for any shell!

  • Fast: it's fast – really really fast! 🚀
  • Customizable: configure every aspect of your prompt.
  • Universal: works on any shell, on any operating system.
  • Intelligent: shows relevant information at a glance.
  • Feature rich: support for all your favorite tools.
  • Easy: quick to install – start using it in minutes.

Explore the Starship docs  

🚀 Installation

Prerequisites

Getting Started

Note: due to the proliferation of different platforms, only a subset of supported platforms are shown below. Can't see yours? Have a look at the extra platform instructions.

  1. Install the starship binary:

    Install Latest Version

    From prebuilt binary, with Shell:
    sh -c "$(curl -fsSL https://starship.rs/install.sh)"
    Enter fullscreen mode Exit fullscreen mode

    To update the Starship itself, rerun the…


3. Microsoft - Web Development for Beginners

24 Lessons, 12 Weeks, Get Started as a Web Developer

GitHub logo microsoft / Web-Dev-For-Beginners

24 Lessons, 12 Weeks, Get Started as a Web Developer

GitHub license GitHub contributors GitHub issues GitHub pull-requests PRs Welcome

GitHub watchers GitHub forks GitHub stars

Web Development for Beginners - A Curriculum

Azure Cloud Advocates at Microsoft are pleased to offer a 12-week, 24-lesson curriculum all about JavaScript, CSS, and HTML basics. Each lesson includes pre- and post-lesson quizzes, written instructions to complete the lesson, a solution, an assignment and more. Our project-based pedagogy allows you to learn while building, a proven way for new skills to 'stick'.

Hearty thanks to our authors Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees, and sketchnote artist Tomomi Imura!

Getting Started

Teachers, we have included some suggestions on how to use this curriculum. We'd love your feedback in our discussion forum!

Students, to use this curriculum on your own, fork the entire repo and complete the exercises on your own, starting with a pre-lecture quiz, then reading the lecture and completing the rest of the activities. Try to create the projects…


4. Element3

A Vue.js 3.0 UI Toolkit for Web.

GitHub logo hug-sun / element3

A Vue.js 3.0 UI Toolkit for Web. Build with Javascript

Introduction

A Vue.js 3.0 UI Toolkit for Web.

Install

npm install element3 -S
Enter fullscreen mode Exit fullscreen mode

Quick Start

import { createApp } from 'vue'
import App from './App.vue'
// import style
import 'element3/lib/theme-chalk/index.css'
import Element3 from 'element3'

// global import
createApp(App).use(Element3).mount('#app')

// or according to the need to import
import {
  ElLink,
  ElButton
  // ...
} from 'element3'

createApp(App).use(ElLink).use(ElButton)
Enter fullscreen mode Exit fullscreen mode

About

Documentation

To check out live docs, visit website

Questions

TODO

Issues

Please make sure to read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines may be closed immediately.

Changelog

Detailed changes for each release are documented in the CHANGELOG.

Contribution

use yarn instead of npm

Please…





5. Security Scorecards

OSS Security Scorecards

GitHub logo ossf / scorecard

Security Scorecards - Security health metrics for Open Source

Security Scorecards

build CodeQL

Motivation

A short motivational video clip to inspire us: https://youtu.be/rDMMYT3vkTk "You passed! All D's ... and an A!"

Goals

  1. Automate analysis and trust decisions on the security posture of open source projects.

  2. Use this data to proactively improve the security posture of the critical projects the world depends on.

Scorecard Checks

The following checks are all run against the target project by default:

Name Description
Active Did the project get any commits in the last 90 days?
Automatic-Dependency-Update Does the project use tools to automatically update its dependencies?
Binary-Artifacts Is the project free of checked-in binaries?
Branch-Protection Does the project use Branch Protection ?
CI-Tests Does the project run tests in CI, e.g. GitHub Actions, Prow

6. Beautiful React Diagrams

A collection of lightweight React components and hooks to build diagrams with ease

GitHub logo beautifulinteractions / beautiful-react-diagrams

💎 A collection of lightweight React components and hooks to build diagrams with ease 💎

CI/CD License: MIT Coverage Status npm GitHub stars

beautiful-react-diagrams


A tiny collection of lightweight React components for building diagrams with ease

Diagrams banner

💡 Why?

Javascript diagramming libraries are often difficult to integrate in React projects.
Different patterns not always fit the React nature and having a component's state in in sync with an external diagramming library might be quite difficult especially when the latter had been built in a different paradigm (such as MVC, for example).

For this reason we created beautiful-react-diagrams an easy-to-customise functional diagramming library to build diagrams with ease.

🎓 Principles

  • Lightweights: import nothing but a single lightweight javascript.
  • Controlled components: exports controlled components only.
  • Renderers: the involved components can be easily replaced with your own by using the renderer props.
  • Easy to style: built using CSS vars only.

☕️ Features

  • Concise API
  • Small and lightweight
  • Easy to use
  • Easy to customise

Contributing


7. File Browser

Web File Browser which can be used as a middleware or standalone app.

GitHub logo filebrowser / filebrowser

📂 Web File Browser

Preview

Build Go Report Card Documentation Version Chat IRC

filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files. It allows the creation of multiple users and each user can have its own directory. It can be used as a standalone app or as a middleware.

Features

Please refer to our docs at https://filebrowser.org/features

Install

For installation instructions please refer to our docs at https://filebrowser.org/installation.

Configuration

Authentication Method - You can change the way the user authenticates with the filebrowser server

Command Runner - The command runner is a feature that enables you to execute any shell command you want before or after a certain event.

Custom Branding - You can customize your File Browser installation by change its name to any other you want, by adding a global custom style sheet and by using your own logotype if you want.

Contributing

If you're…


8. The Book of Secret Knowledge

A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.

GitHub logo trimstray / the-book-of-secret-knowledge

A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.

Master

"Knowledge is powerful, be careful how you use it!"

A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools, and more.

Pull Requests MIT License

Created by trimstray and contributors

📔  What is it?

This repository is a collection of various materials and tools that I use every day in my work. It contains a lot of useful information gathered in one piece. It is an invaluable source of knowledge for me that I often look back on.

🚻  For whom?

For everyone, really. Here everyone can find their favourite tastes. But to be perfectly honest, it is aimed towards System and Network administrators, DevOps, Pentesters, and Security Researchers.

ℹ️  Contributing

If you find something which doesn't make sense, or something doesn't seem right, please make a pull request and please add valid and well-reasoned explanations about your changes or comments.

A few simple rules for this project:

  • inviting and…

9. Eris

A NodeJS wrapper for interfacing with Discord.

GitHub logo abalabahaha / eris

A NodeJS Discord library

Eris NPM version

A Node.js wrapper for interfacing with Discord.

Installing

You will need NodeJS 10.4+. If you need voice support you will also need Python 2.7 and a C++ compiler. Refer to the Getting Started section of the docs for more details.

npm install --no-optional eris

If you need voice support, remove the --no-optional.

Ping Pong Example

const Eris = require("eris");
var bot = new Eris("Bot TOKEN");
// Replace TOKEN with your bot account's token

bot.on("ready", () => { // When the bot is ready
    console.log("Ready!"); // Log "Ready!"
});

bot.on("error", (err) => {
  console.error(err); // or your preferred logger
});

bot.on("messageCreate", (msg) => { //
Enter fullscreen mode Exit fullscreen mode

10. semantic-release

semantic-release automates the whole package release workflow including: determining the next version number, generating the release notes and publishing the package.

GitHub logo semantic-release / semantic-release

📦🚀 Fully automated version management and package publishing

📦🚀 semantic-release

Fully automated version management and package publishing

Join the community on GitHub Discussions Build states semantic-release

npm latest version npm next version npm beta version

semantic-release automates the whole package release workflow including: determining the next version number, generating the release notes and publishing the package.

This removes the immediate connection between human emotions and version numbers, strictly following the Semantic Versioning specification.

Trust us, this will change your workflow for the better. – egghead.io

Highlights

How does it work?

Commit message format

semantic-release uses the commit messages to…





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.

Oldest comments (0)