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.5M
2.8.8
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
17K (35%)
1.17.1
11K (23%)
1.19.3
6.6K (13%)
1.7.2
4.4K (09%)
1.7.3
3.1K (06%)
1.17.8
2.1K (04%)
4,55709 Jan1,00310 Jan89711 Jan5,11612 Jan6,52713 Jan6,74314 Jan6,37915 Jan6,70416 Jan1,42217 Jan1,37218 Jan4,06419 Jan6,49820 Jan5,68121 Jan6,36322 Jan5,28623 Jan1,42124 Jan92525 Jan6,70326 Jan6,99227 Jan6,85528 Jan5,89129 Jan5,65530 Jan98531 Jan1,54301 Feb5,09302 Feb7,23003 Feb6,56204 Feb7,72905 Feb7,26606 Feb007 Feb139,462Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

10K
49M
2.8.8
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.6
383K (21%)
2.4.3
224K (12%)
2.8.8
163K (09%)
2.7.3
111K (06%)
2.8.7
86K (05%)
2.7.2
83K (05%)
226,72209 Jan76,31910 Jan69,77511 Jan241,47612 Jan273,18913 Jan274,97114 Jan274,53015 Jan247,37216 Jan76,76617 Jan73,46618 Jan231,64219 Jan277,32920 Jan285,49121 Jan282,46922 Jan260,94623 Jan90,75924 Jan84,61725 Jan285,34026 Jan323,10527 Jan323,61728 Jan308,05029 Jan280,35030 Jan89,35331 Jan87,79501 Feb272,95902 Feb326,35903 Feb312,93404 Feb314,96205 Feb291,04606 Feb007 Feb6,563,709Last 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
15K
3.1.1
MIT

Opinionated Node.js microservices framework built on Fastify ⚡️

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

Version rolloutLast week

4.0.0-beta.4
18 (37%)
3.1.1
9 (18%)
3.0.0-beta.1
4 (08%)
3.1.0
3 (06%)
3.0.0
2 (04%)
009 Jan010 Jan011 Jan012 Jan013 Jan114 Jan015 Jan116 Jan017 Jan018 Jan119 Jan120 Jan221 Jan022 Jan023 Jan224 Jan125 Jan226 Jan427 Jan328 Jan229 Jan230 Jan031 Jan201 Feb1202 Feb703 Feb504 Feb405 Feb006 Feb007 Feb52Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
994K
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
4.9K (56%)
1.3.1
2.5K (28%)
1.3.0
1.3K (15%)
1.1.2
67 (01%)
1.2.0
2 (00%)
1,00209 Jan27610 Jan19311 Jan1,08212 Jan1,27413 Jan1,39214 Jan1,18115 Jan1,24316 Jan19117 Jan37718 Jan1,12619 Jan1,32020 Jan1,48621 Jan1,64222 Jan1,04923 Jan23024 Jan20225 Jan1,21926 Jan1,20927 Jan1,18028 Jan1,16229 Jan1,07030 Jan14331 Jan21901 Feb1,24002 Feb1,25803 Feb1,34604 Feb98505 Feb92606 Feb007 Feb27,223Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

82
50K
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

Version rolloutLast week

1.0.3
157 (92%)
0.2.0
2 (01%)
0.3.0
2 (01%)
0.4.0
2 (01%)
1.0.1
2 (01%)
209 Jan010 Jan011 Jan512 Jan213 Jan714 Jan515 Jan816 Jan017 Jan018 Jan919 Jan1120 Jan421 Jan422 Jan3923 Jan024 Jan025 Jan1026 Jan1727 Jan428 Jan1829 Jan430 Jan031 Jan301 Feb3602 Feb2503 Feb3104 Feb1405 Feb806 Feb007 Feb266Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

66
2.5M
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

Version rolloutLast week

1.2.0
42K (88%)
1.1.0
5.4K (12%)
0.14.0
2 (00%)
0.11.0
2 (00%)
1.0.0
1 (00%)
5,62409 Jan1,40310 Jan1,56411 Jan5,25612 Jan7,27613 Jan7,67414 Jan7,59915 Jan6,03116 Jan1,91617 Jan1,47018 Jan6,19319 Jan6,64320 Jan7,12121 Jan7,84122 Jan7,15923 Jan1,56324 Jan2,14125 Jan6,63526 Jan7,31227 Jan7,16828 Jan8,60329 Jan7,88930 Jan1,98131 Jan1,78901 Feb6,05902 Feb7,65403 Feb7,01904 Feb7,78805 Feb6,96406 Feb007 Feb161,335Last 30 days

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.3M
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

Version rolloutLast week

0.2.0
1.7K (98%)
1.0.0
30 (02%)
0.3.1
2 (00%)
0.3.2
2 (00%)
0.1.0
1 (00%)
9709 Jan6910 Jan7411 Jan21212 Jan19013 Jan12614 Jan15615 Jan9216 Jan5817 Jan12018 Jan15819 Jan22120 Jan19621 Jan18422 Jan9823 Jan5824 Jan9525 Jan10926 Jan2,97427 Jan7,31928 Jan18129 Jan9630 Jan4931 Jan12101 Feb27702 Feb17803 Feb23904 Feb24505 Feb10906 Feb007 Feb14,101Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
5.7K
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

Version rolloutLast week

2.0.0
9 (60%)
0.0.1
3 (20%)
1.0.1
1 (07%)
1.0.3
1 (07%)
1.0.2
1 (07%)
009 Jan010 Jan011 Jan112 Jan013 Jan014 Jan015 Jan016 Jan017 Jan018 Jan119 Jan020 Jan021 Jan022 Jan023 Jan124 Jan025 Jan026 Jan027 Jan028 Jan029 Jan130 Jan031 Jan001 Feb002 Feb103 Feb204 Feb205 Feb006 Feb007 Feb9Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
141K
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

Version rolloutLast week

3.0.0
410 (91%)
2.1.1
29 (06%)
2.0.2
4 (01%)
1.5.0
2 (00%)
1.4.0
1 (00%)
609 Jan710 Jan211 Jan1312 Jan1413 Jan2314 Jan3015 Jan2016 Jan317 Jan218 Jan1219 Jan2720 Jan6221 Jan6822 Jan4623 Jan1624 Jan1125 Jan6126 Jan11827 Jan6628 Jan7629 Jan8030 Jan1431 Jan1001 Feb9102 Feb5703 Feb9904 Feb3105 Feb13006 Feb007 Feb1,195Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2.6M
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
47K (100%)
1.0.1
47 (00%)
1.0.0
4 (00%)
0.0.1
2 (00%)
0.2.0
2 (00%)
5,61309 Jan1,44510 Jan1,58311 Jan5,19912 Jan7,26113 Jan7,64214 Jan7,60515 Jan6,06516 Jan1,92317 Jan1,47318 Jan6,18019 Jan6,60420 Jan7,04821 Jan7,81022 Jan7,13823 Jan1,50924 Jan2,12325 Jan6,59626 Jan7,31127 Jan7,15728 Jan8,60029 Jan7,84330 Jan1,96831 Jan1,79001 Feb6,09102 Feb7,64003 Feb7,03104 Feb7,80405 Feb6,96806 Feb007 Feb161,020Last 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