Open Source

This page lists some of the open source packages and repositories I have published or contribute to.

Most of them are published under my company 47ng.

Frontend

My tech stack of choice for server-rendered React apps is Next.js and TailwindCSS.

For client-heavy apps, I like to use Chakra-UI to quickly build beautiful and accessible interfaces.

Because of its CSS-in-JS approach, it’s a bit awkward to use with the new Next.js app router and server components, so I’m now letting Tailwind deal with styling. ChatGPT makes a perfect companion for refactoring one into the other anyway. 😄

Avatar for GitHub account 47ng47ng/next-usequerystate

9.8K
6.3M
2.8.6
MIT

Type-safe search params state manager for React frameworks - Like useState, but stored in the URL query string.

$ pnpm add next-usequerystate
$ yarn add next-usequerystate
$ npm install next-usequerystate

Version rolloutLast week

1.20.0
6.2K (43%)
1.7.2
2.5K (17%)
1.19.3
1.5K (11%)
1.17.8
1.5K (10%)
1.17.1
1K (07%)
1.7.3
765 (05%)
1,09030 Nov5,02901 Dec8,35302 Dec7,96403 Dec9,71504 Dec7,55505 Dec1,46606 Dec1,17407 Dec6,31308 Dec7,09509 Dec6,89910 Dec7,89611 Dec7,19212 Dec1,45613 Dec1,14914 Dec6,83215 Dec8,78516 Dec7,40317 Dec6,40318 Dec5,31119 Dec1,28020 Dec98621 Dec4,94322 Dec4,18323 Dec2,33024 Dec1,18925 Dec1,60826 Dec90427 Dec1,12128 Dec2,89229 Dec136,516Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

9.8K
41M
2.8.6
MIT

Type-safe search params state manager for React frameworks - Like useState, but stored in the URL query string.

$ pnpm add nuqs
$ yarn add nuqs
$ npm install nuqs

Version rolloutLast week

2.8.5
117K (18%)
2.8.6
109K (16%)
2.4.3
93K (14%)
2.7.3
47K (07%)
2.7.2
42K (06%)
2.6.0
30K (05%)
50,30130 Nov199,16601 Dec218,76702 Dec227,94303 Dec245,83804 Dec209,85005 Dec67,14506 Dec68,68107 Dec233,89508 Dec253,46009 Dec233,33510 Dec237,24311 Dec237,54212 Dec62,41813 Dec56,54914 Dec228,64915 Dec259,17816 Dec239,75717 Dec228,52918 Dec184,14819 Dec64,00120 Dec52,76921 Dec172,81422 Dec174,37323 Dec116,93024 Dec59,42225 Dec81,94626 Dec49,57227 Dec49,15928 Dec131,65429 Dec4,695,034Last 30 days

Backend

I like to use Fastify to build backend services in Node.js.

What I like about it:

Avatar for GitHub account 47ng47ng/fastify-micro

46
3.1.1
MIT

Opinionated Node.js microservices framework built on Fastify ⚡️

$ pnpm add fastify-micro
$ yarn add fastify-micro
$ npm install fastify-micro
NPM package data is currently unavailable.

Avatar for GitHub account 47ng47ng/fastify-cron

50
962K
1.4.0
MIT

Run cron jobs alongside your Fastify server 👷

$ pnpm add fastify-cron
$ yarn add fastify-cron
$ npm install fastify-cron

Version rolloutLast week

1.4.0
2.4K (80%)
1.3.1
359 (12%)
1.3.0
201 (07%)
1.1.2
13 (00%)
1.1.1
3 (00%)
16830 Nov1,30401 Dec1,33802 Dec1,25303 Dec1,46804 Dec1,14805 Dec17306 Dec16807 Dec1,07408 Dec1,35709 Dec1,07910 Dec1,05211 Dec1,01012 Dec10613 Dec9614 Dec98615 Dec1,07616 Dec1,04617 Dec1,02818 Dec85919 Dec17120 Dec6221 Dec83022 Dec80023 Dec48224 Dec17525 Dec28026 Dec21127 Dec19828 Dec78629 Dec21,784Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

80
1.0.3
MIT

Secure cryptographic key storage in the browser and Node.js

$ pnpm add session-keystore
$ yarn add session-keystore
$ npm install session-keystore
NPM package data is currently unavailable.

I wrote an article about how I came to build session-keystore:

Avatar for GitHub account 47ng47ng/cloak

65
1.2.0
MIT

Serialized AES-GCM 256 encryption, decryption and key management in the browser & Node.js

$ pnpm add @47ng/cloak
$ yarn add @47ng/cloak
$ npm install @47ng/cloak
NPM package data is currently unavailable.

SocialGouv/e2esdk

SDK to build end-to-end encrypted web applications

Environment Variables

The Twelve Factor App model uses environment variables extensively for configuration and passing runtime data to a web app.

However, there are things to look out for when working with environment variables, so I built a few packages to make their management easier and more secure:

Avatar for GitHub account 47ng47ng/redact-env

6
1.0.0
MIT

Redact values of critical environment variables in a string

$ pnpm add redact-env
$ yarn add redact-env
$ npm install redact-env
NPM package data is currently unavailable.

Avatar for GitHub account 47ng47ng/env-alias

3
2.0.0
MIT

Define aliases for environment variables and bind them at runtime

$ pnpm add env-alias
$ yarn add env-alias
$ npm install env-alias
NPM package data is currently unavailable.

Avatar for GitHub account 47ng47ng/check-env

23
3.0.0
MIT

Check that required environment variables are set for your app

$ pnpm add @47ng/check-env
$ yarn add @47ng/check-env
$ npm install @47ng/check-env
NPM package data is currently unavailable.

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2.4M
1.1.0
MIT

Universal conversion of Uint8Array from/into UTF-8, base64url and hex in the browser and Node.js

$ pnpm add @47ng/codec
$ yarn add @47ng/codec
$ npm install @47ng/codec

Version rolloutLast week

1.1.0
14K (100%)
1.0.1
17 (00%)
0.5.0
2 (00%)
1.0.0
1 (00%)
0.3.0
1 (00%)
1,22230 Nov6,47801 Dec6,93602 Dec7,12003 Dec7,21704 Dec5,65205 Dec1,69906 Dec2,44307 Dec7,25608 Dec7,03909 Dec6,56810 Dec7,08811 Dec6,39412 Dec1,58713 Dec2,05314 Dec7,00915 Dec7,57216 Dec6,71317 Dec7,50518 Dec6,10019 Dec1,08920 Dec92421 Dec4,12722 Dec4,18523 Dec2,56024 Dec1,38425 Dec1,56226 Dec93527 Dec1,17328 Dec2,65229 Dec132,242Last 30 days

My longest-running open-source project is the Arduino MIDI Library. I learned programming in C++ in 2008 with this project and discovered my passion for open-source software.

FortySevenEffects/arduino_midi_library

MIDI for Arduino

The source code for this website! Made with Next.js, TailwindCSS and MDX.

franky47/francoisbest.com

Homepage & blog