Trending Projects is available as a weekly newsletter please sign up at www.iainfreestone.com to ensure you never miss an issue.
1. Crank.js
Write JSX-driven components with functions, promises and generators.
bikeshaving / crank
The Just JavaScript Framework
Try Crank
The fastest way to try Crank is via the online playground. In addition, many of the code examples in these guides feature live previews.
Installation
The Crank package is available on NPM through the @b9g organization (short for bikeshaving).
npm i @b9g/crank
Importing Crank with the classic JSX transform.
/** @jsx createElement */
/** @jsxFrag Fragment */
import {createElement, Fragment} from "@b9g/crank";
import {renderer} from "@b9g/crank/dom";
renderer.render(
<p>This paragraph element is transpiled with the classic transform.</p>,
document.body,
);
Importing Crank with the automatic JSX transform.
/** @jsxImportSource @b9g/crank */
import {renderer} from "@b9g/crank/dom";
renderer.render(
<p>This paragraph element is transpiled with the automatic transform.</p>,
document.body,
);
…
2. Appwrite
Appwrite is a secure end-to-end backend server for Web, Mobile, and Flutter developers that is packaged as a set of Docker containers for easy deployment
Appwrite Init has concluded! You can check out all the latest announcements on our Init website 🚀
Appwrite is a backend platform for developing Web, Mobile, and Flutter applications. Built with the open source community and optimized for developer experience in the coding languages you love.
English | 简体中文
Announcing Appwrite Cloud Public Beta! Sign up today!
Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps packaged as a set of Docker microservices. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster.
Using Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, and more services.
Find out more at: https://appwrite.io
Table of Contents:
3. Deno Standard Modules
Deno standard library
Deno Standard Library
High-quality APIs for Deno and the web. Use fearlessly.
Important
Newer versions of the Standard Library are now hosted on JSR. Older versions up till 0.224.0 are still available at deno.land/std.
Packages
The following list contains links to the Standard Library's packages and documentation:
Architecture
Check out the architecture guide here.
Design
Check out the design documentation here.
Contributing
Check out the contributing guidelines here.
Releases
Package versions >=1.0.0 follow Semantic Versioning, and package versions <1.0.0 follow this proposal.
Badge
Note
Previously, this repo hosted the badge SVG file. Now, the badge is retrieved directly from Shields.io…
4. ractive-player
Library for interactive videos in React
Liqvid
Liqvid is a library for creating interactive videos in React.
Links
Repository structure
This is a monorepo. Here is what the various packages do:
Frontend Core
-
main
Provides the mainliqvid
package. -
host
Script for pages hosting Liqvid videos; currently just handles fake fullscreen -
keymap
Provides theKeymap
class -
playback
Provides thePlayback
class -
polyfills
Polyfills for Liqvid videos; currently just handles Web Animations -
utils
Provides the various helper functions inUtils
Backend Tools
-
cli
The Liqvid CLI tool -
magic
Provides wackyresource macro syntax -
renderer
Handles theaudio
,build
,render
, andthumbs
CLI commands -
serve
Development server; provides theserve
CLI command
Integrations
-
katex
Provides KaTeX integration -
react-three
Provides React Three Fiber integration
In-development
5. Altair
A beautiful feature-rich GraphQL Client for all platforms.
altair-graphql / altair
✨⚡️ A feature-rich GraphQL Client for all platforms.
Altair is a beautiful feature-rich GraphQL Client IDE for all platforms. Altair GraphQL Client helps you debug GraphQL queries and implementations - taking care of the hard part so you can focus on actually getting things done.
Documentation
Get started with Altair by reading the documentation.
Sponsors
Thanks to all our sponsors for sponsoring this project! Do you use Altair GraphQL client at your company? Consider supporting this project as a sponsor (primary, gold, silver or bronze) on open collective.
Primary Sponsor
To be a primary sponsor, reach out to us.
Gold Sponsor
Become a Gold sponsor of Altair to appear here.
Bronze Sponsor
Other Sponsors
Community 🙏🏾
You can learn more about how to get help here.
Contributing
Would you like to help with translations? https://altair-gql-translate.surge.sh/ Click here.
Learn more about contributing to Altair here and here.
Development
Read more…
6. Spearmint
Testing, simplified. || An inclusive, accessibility-first GUI for generating clean, semantic Javascript tests in only a few clicks of (or keystrokes) of a button.
open-source-labs / Spearmint
Testing, simplified. || An inclusive, accessibility-first GUI for generating clean, semantic Javascript tests in only a few clicks of a button.
🍃 ✨ Spearmint v14 ✨ 🍃
Spearmint helps developers easily create functional Accessibility, Endpoint, GraphQL, Puppeteer, React, Hooks, Redux, Svelte, Vue, Security, and Solid.js tests without writing any code. It dynamically converts user inputs into executable Jest test code by using DOM query selectors provided by @testing-library.
Installation
Please download Spearmint from our website
How to use in development mode
Please refer to README-dev.md
How it works
-
Open the folder of the repo you'd like to create tests for, then choose the framework/type of test you'd like to create
-
Utilize our auto-complete, drop-down options, and tooltips features to easily create arrangement, action, and assertion test statements for React, Vue, Svelte, and Solid; reducer, action creator, asynchronous action creator, and middleware test statements for Redux; and hooks, context, endpoint, and GraphQL test statements.
-
Spearmint will then convert user input to dynamically generate a test file in the Code Editor.
-
Follow the…
7. Prism
Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations.
stoplightio / prism
Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations.
Prism Overview
Prism is a set of packages for API mocking and contract testing with OpenAPI v2 (formerly known as Swagger) and OpenAPI v3.x.
Prism provides:
- Mock Servers: Life-like mock servers from any API specification document.
- Validation Proxy: Contract Testing for API consumers and developers.
- Comprehensive API Specification Support: OpenAPI v3.1, OpenAPI v3.0, OpenAPI v2.0 (formerly Swagger) and Postman Collections.
Ways to Use Prism
Hosted Prism
Stoplight provides hosted mock servers for convenience so that API consumers can experiment with an API without the need for backend code.
Use one of these options for instant, hosted mock servers:
- Stoplight Platform: Collaborative API Design Platform for designing, developing and documenting APIs with hosted mocking powered by Prism.
- Stoplight Studio: Free visual OpenAPI designer that comes integrated with mocking powered by Prism.
Learn more in the hosted Prism documentation.
Self-hosted Prism
Prism is an open-source…
8. git-notify
Communicate important updates to your team via git commit messages
jevakallio / git-notify
🙉 📣 Communicate important updates to your team via git commit messages
git-notify
Communicate important updates to your team via git commit messages.
What is git-notify?
Sometimes you need to communicate changes to other developers on your project. In a small team, a Slack message works okay, but in larger teams and distributed organizations (such as open source projects), reaching everyone can be a pain.
git-notify
allows you to embed announcements into your git commit messages:
git commit -m 'git-notify: NEW DEVELOPMENT ENVIRONMENT ...'
And display them to another developer on a machine, far far away:
Simple as that.
How to use git-notify?
Just add "git-notify:"
to your git commit message, and anything that follows will be displayed when another developer pulls that commit, or switches from a branch that does not contain that commit to one that does.
If you're using a merge or squash commit strategy on GitHub, you can also add them to the extended commit…
9. degit
Straightforward project scaffolding.
Rich-Harris / degit
Straightforward project scaffolding
degit — straightforward project scaffolding
degit makes copies of git repositories. When you run degit some-user/some-repo
, it will find the latest commit on https://github.com/some-user/some-repo and download the associated tar file to ~/.degit/some-user/some-repo/commithash.tar.gz
if it doesn't already exist locally. (This is much quicker than using git clone
, because you're not downloading the entire git history.)
Requires Node 8 or above, because async
and await
are the cat's pyjamas
Installation
npm install -g degit
Usage
Basics
The simplest use of degit is to download the master branch of a repo from GitHub to the current working directory:
degit user/repo
# these commands are equivalent
degit github:user/repo
degit git@github.com:user/repo
degit https://github.com/user/repo
Or you can download from GitLab and BitBucket:
# download from GitLab
degit gitlab:user/repo
degit git@gitlab.com:user/repo
degit https://gitlab.com/user/repo
# download from BitBucket
degit bitbucket:user/repo
degit git@bitbucket.org:user/repo
degit https://bitbucket.org/user/repo
# download from Sourcehut
degit git.sr.ht/user/repo
degit git@git.sr.ht:user/repo
degit https://git.sr.ht/user/repo
Specify a
…10. Memoizee
Complete memoize/cache solution for JavaScript
Memoizee
Complete memoize/cache solution for JavaScript
Originally derived from es5-ext package.
Memoization is best technique to save on memory or CPU cycles when we deal with repeated operations. For detailed insight see: http://en.wikipedia.org/wiki/Memoization
Features
- Works with any type of function arguments – no serialization is needed
- Works with any length of function arguments. Length can be set as fixed or dynamic.
- One of the fastest available solutions.
- Support for promises and asynchronous functions
- Primitive mode which assures fast performance when arguments are convertible to strings.
- WeakMap based mode for garbage collection friendly configuration
- Can be configured for methods (when
this
counts in) - Cache can be cleared manually or after specified timeout
- Cache size can be limited on LRU basis
- Optionally accepts resolvers that normalize function arguments before passing them to underlying function.
- Optional reference counter mode, that allows more sophisticated cache management
- Profile tool that provides valuable usage…
Stargazing 📈
Top risers over last 7 days
- JavaScript Algorithms +2,332 stars
- Public APIs +1,797 stars
- Front-End Checklist +1,351 stars
- Material UI +810 stars
- JavaScript Questions +805 stars
Top risers over last 30 days
- Web Development for Beginners +5,751 stars
- JavaScript Algorithms +4,263 stars
- Public APIs +4,058 stars
- Free Programming Books +3,381 stars
- Developer Roadmap +2,801 stars
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 (2)
Great list.
Good one!