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.4M
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
13K (38%)
1.17.1
8.4K (24%)
1.19.3
3.9K (11%)
1.7.2
3.8K (11%)
1.7.3
2.3K (07%)
1.17.8
1.3K (04%)
1,28020 Dec98621 Dec4,94322 Dec4,18323 Dec2,33024 Dec1,18925 Dec1,60826 Dec90427 Dec1,12128 Dec2,89229 Dec2,85430 Dec2,06131 Dec1,12201 Jan1,90302 Jan1,05603 Jan1,24504 Jan5,26705 Jan5,67806 Jan5,76107 Jan5,59708 Jan4,55709 Jan1,00310 Jan89711 Jan5,11612 Jan6,52713 Jan6,74314 Jan6,37915 Jan6,70416 Jan1,42217 Jan1,37218 Jan94,700Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

10K
45M
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.6
382K (26%)
2.4.3
218K (15%)
2.7.3
130K (09%)
2.8.5
105K (07%)
2.7.2
85K (06%)
2.8.2
62K (04%)
64,00120 Dec52,76921 Dec172,81422 Dec174,37323 Dec116,93024 Dec59,42225 Dec81,94626 Dec49,57227 Dec49,15928 Dec131,65429 Dec133,31830 Dec109,01531 Dec61,46001 Jan114,63002 Jan58,95903 Jan60,98204 Jan217,14805 Jan229,71406 Jan241,39307 Jan252,13808 Jan226,72209 Jan76,31910 Jan69,77511 Jan241,47612 Jan273,18913 Jan274,97114 Jan274,53015 Jan247,37216 Jan76,76617 Jan73,46618 Jan4,265,983Last 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

3.1.0-beta.1
1 (50%)
4.0.0-beta.7
1 (50%)
020 Dec021 Dec122 Dec023 Dec124 Dec125 Dec126 Dec027 Dec028 Dec029 Dec130 Dec031 Dec001 Jan002 Jan103 Jan304 Jan105 Jan106 Jan007 Jan008 Jan009 Jan010 Jan011 Jan012 Jan013 Jan114 Jan015 Jan116 Jan017 Jan018 Jan13Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
976K
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
5.1K (75%)
1.3.0
1.2K (17%)
1.3.1
508 (08%)
1.1.2
11 (00%)
1.2.0
1 (00%)
17120 Dec6221 Dec83022 Dec80023 Dec48224 Dec17525 Dec28026 Dec21127 Dec19828 Dec78629 Dec62130 Dec39931 Dec5901 Jan60602 Jan7303 Jan13504 Jan87505 Jan84806 Jan1,02207 Jan1,06508 Jan1,00209 Jan27610 Jan19311 Jan1,08212 Jan1,27413 Jan1,39214 Jan1,18115 Jan1,24316 Jan19117 Jan37718 Jan17,909Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

81
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
26 (96%)
0.3.0
1 (04%)
120 Dec021 Dec1422 Dec323 Dec624 Dec125 Dec126 Dec427 Dec028 Dec329 Dec730 Dec131 Dec101 Jan402 Jan2603 Jan104 Jan805 Jan406 Jan4007 Jan708 Jan209 Jan010 Jan011 Jan512 Jan213 Jan714 Jan515 Jan816 Jan017 Jan018 Jan161Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

66
2.4M
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
34K (91%)
1.1.0
3.2K (09%)
0.14.0
1 (00%)
1.0.0
1 (00%)
1,06420 Dec71121 Dec3,91222 Dec3,76523 Dec1,80624 Dec1,06825 Dec1,11826 Dec78827 Dec99028 Dec2,27029 Dec2,52130 Dec2,51031 Dec83701 Jan1,78902 Jan59703 Jan1,00904 Jan5,12205 Jan4,72506 Jan5,94607 Jan5,69208 Jan5,62409 Jan1,40310 Jan1,56411 Jan5,25612 Jan7,27613 Jan7,67414 Jan7,59915 Jan6,03116 Jan1,91617 Jan1,47018 Jan94,053Last 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.2M
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
937 (98%)
1.0.0
14 (01%)
0.3.2
3 (00%)
1720 Dec4121 Dec5022 Dec10023 Dec12524 Dec3325 Dec3126 Dec2627 Dec6028 Dec12629 Dec14830 Dec11431 Dec6901 Jan6502 Jan2903 Jan7504 Jan18805 Jan19106 Jan23107 Jan13508 Jan9709 Jan6910 Jan7411 Jan21212 Jan19013 Jan12614 Jan15615 Jan9216 Jan5817 Jan12018 Jan3,048Last 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

0.2.0
1 (100%)
020 Dec021 Dec122 Dec023 Dec024 Dec025 Dec026 Dec027 Dec028 Dec029 Dec030 Dec131 Dec001 Jan002 Jan003 Jan204 Jan105 Jan006 Jan007 Jan008 Jan009 Jan010 Jan011 Jan112 Jan013 Jan014 Jan015 Jan016 Jan017 Jan018 Jan6Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
140K
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
90 (86%)
2.1.1
14 (13%)
1.4.0
1 (01%)
020 Dec721 Dec3422 Dec923 Dec624 Dec225 Dec326 Dec227 Dec428 Dec529 Dec1030 Dec331 Dec401 Jan802 Jan403 Jan704 Jan605 Jan606 Jan2107 Jan708 Jan609 Jan710 Jan211 Jan1312 Jan1413 Jan2314 Jan3015 Jan2016 Jan317 Jan218 Jan268Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2.5M
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
37K (100%)
1.0.1
25 (00%)
0.1.0
1 (00%)
1.0.0
1 (00%)
0.5.0
1 (00%)
1,08920 Dec92421 Dec4,12722 Dec4,18523 Dec2,56024 Dec1,38425 Dec1,56226 Dec93527 Dec1,17328 Dec2,65229 Dec2,82930 Dec2,72931 Dec99701 Jan1,87202 Jan62503 Jan1,10704 Jan5,05405 Jan4,79406 Jan5,99007 Jan5,67008 Jan5,61309 Jan1,44510 Jan1,58311 Jan5,19912 Jan7,26113 Jan7,64214 Jan7,60515 Jan6,06516 Jan1,92317 Jan1,47318 Jan98,067Last 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