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

10K
6.9M
2.8.9
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.19.3
12K (27%)
1.20.0
11K (25%)
1.17.1
11K (24%)
1.7.2
4.5K (10%)
1.7.3
2.9K (06%)
1.17.8
1.4K (03%)
7,58711 Mar6,73912 Mar6,84313 Mar2,06414 Mar1,67315 Mar7,49816 Mar7,95817 Mar8,82118 Mar7,79419 Mar6,20820 Mar1,67521 Mar1,13222 Mar6,61623 Mar6,68324 Mar6,51025 Mar6,93326 Mar8,21127 Mar2,02628 Mar1,51829 Mar9,83830 Mar8,69831 Mar8,08801 Apr7,74202 Apr5,01403 Apr1,67604 Apr2,11305 Apr7,52806 Apr10,69707 Apr9,33208 Apr009 Apr175,215Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

10K
2.8.9
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
NPM package data is currently unavailable.

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
1.4.0
MIT

Run cron jobs alongside your Fastify server 👷

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

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

82
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

63
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
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
NPM package data is currently unavailable.

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