Sign in

Corentin

@corentin.tech
192 followers 260 following 69 posts

FOSS creator, self-hosting enthusiast. I made @papra.app and @it-tools.tech, enclosed.cc and many other things Prev : Indy, EDF, INSA - fr, en Currently building @papra.app corentin.tech

PostsRepliesMedia
Corentin @corentin.tech · 22/06/2026
Always a good sign of quality contributions 😬
Opened 337 other pull request in 111 repository
020
Corentin @corentin.tech · 07/06/2026
Vampire squad here too! 🦇
Cronotype card for CorentinTh github account showing a Vampire: you do your sharpest work when notifications are asleep and the world stops asking questions. 
- Peak productivity at 1am
- 54% nocturnal
- signal 95
- 99th percentile
- over the last 90 days
300
Corentin @corentin.tech · 02/06/2026
Missing a flex-shrink: 0 on the @github.com sponsors dashboard list profile pictures... 🙄
Github sponsor list where the profile picture is compressed due to a card content pushing
000
Corentin @corentin.tech · 20/01/2026
I really had fun building a full featured AST-based parser for this search query engine 🙌
Code snippet image:
import { parseSearchQuery } from '@papra/search-parser';

parseSearchQuery({ query: 'foobar' });
// { expression: { type: 'text', value: 'foobar' }, issues: [] }

parseSearchQuery({ query: 'tag:invoice' });
// { expression: { type: 'filter', field: 'tag', operator: '=', value: 'invoice' }, issues: [] }

parseSearchQuery({ query: '(tag:invoice OR tag:receipt) AND createdAt:>2024-01-01' });
// {
//   expression: {
//     type: 'and',
//     operands: [
//       {
//         type: 'or',
//         operands: [
//           { type: 'filter', field: 'tag', operator: '=', value: 'invoice' },
//           { type: 'filter', field: 'tag', operator: '=', value: 'receipt' },
//         ],
//       },
//       { type: 'filter', field: 'createdAt', operator: '>', value: '2024-01-01' },
//     ],
//   },
//   issues: [],
// }
010
Corentin @corentin.tech · 11/10/2025
Just created Branchlet, a fast and extensible string processor for handling conditional text logic in i18n strings 🎉 github.com/CorentinTh/b...
Code snippet screenshot :
import { createBranchlet } from '@branchlet/core';

const { parse } = createBranchlet();

const template = 'You have {{ count, =0:no items, =1:one item, {count} items }} in your cart.';

parse(template, { count: 0 }); // "You have no items in your cart."
parse(template, { count: 1 }); // "You have one item in your cart."
parse(template, { count: 5 }); // "You have 5 items in your cart."
011
Corentin @corentin.tech · 21/09/2025
Regarding the recent supply chain attacks on npm, to mitigate on my side I've enabled npm's Trusted Publishing for most of the main packages I'm maintaining It's really a breeze to not have to rely on and rotate npm tokens in CI 🙌
Provenance section showing a green checkmark with 'Built and signed on GitHub Actions' and links to 'View build summary' and 'Share feedback'
010
Corentin @corentin.tech · 28/07/2025
I recently migrated my Figue library (full featured app config validation) to be able to use any Standard Schema compliant lib 🚀 It now makes it easier to use any validation lib like @valibot.dev or zod, even mix them or use custom functions 🙌
Code snippet showing a configuration setup using TypeScript. It imports schema validation libraries (@standard-schema/spec, figue, zod, valibot), defines a custom password schema to ensure it's a string, and then uses defineConfig to configure environment variables for an application (environment, port, and database connection details like host, username, and password). The process.env is used as the environment source, and the final configuration is logged to the console.
110
Corentin @corentin.tech · 20/04/2025
Playing with the @vitest.dev bench command (tinybench under the hood) in my logging lib: TIL writing directly to process.stdout is nearly 10 times faster than using the console 🤯 #javascript #typescript
Screenshott of a nodejs benchmark, testing the efficiency of process.stdout.write vs console.log : process.stdout.write is 9.53 times faster
110
Corentin @corentin.tech · 19/02/2025
Really love the recent Cloudflare integration @resend.com ! Two clicks to setup a custom mail domain and less than 3 minutes to have it verified 🤌 Great UX/DX 🙌
Screenshot of Resend’s dashboard showing a successfully verified custom email domain. The status is marked as ‘Verified,’ and a message confirms that all DNS records are set up correctly.
140
Corentin @corentin.tech · 16/02/2025
Nice addition to @github.com's ui when creating a PR for the first time in a repo 🤌 #github #opensource #contribution #foss
Screenshot of a GitHub pull request creation page. The user is creating a pull request with the title 'feat(email-callbacks): add email processing tracking'. A tooltip in the top right, highlighted with a red box, states that this is the user's first pull request in the project and suggests reviewing the contributing guidelines and code of conduct.
110
Corentin @corentin.tech · 09/02/2025
Here's an example of the logging with pretty formating : #javascript #nodejs #node #logs
Demo of the crowlog logger, an IDE splitted vertically in 3 rows :
Top : JS code logging some data using crowlog logger
Middle : a terminal with raw JSON logs 
Bottom : same logs human readable/pretty formated
020
Corentin @corentin.tech · 21/01/2025
@papra.app now supports tags for documents 🔥
This image displays an interface for managing document tags within an organization. It features a dark-themed UI with options to import documents and create new tags. The section shown highlights existing tags like "Contracts," "Payslips," and "2024," each with their descriptions, document counts, creation times, and actions to edit or delete them.
142
Corentin @corentin.tech · 23/12/2024
enclosed.cc is steadily gaining solid traction! With over 1k unique visitors daily 🚀 Grateful for the support and excited to keep improving! 🙏 #OpenSource #SideProject
"Screenshot of the Cloudflare site dashboard for Enclosed, displaying two line graphs for the past 30 days: the first graph tracks unique visitors, totaling 32.34k, and the second graph tracks total requests, reaching 144.47k. Both graphs show consistent traffic patterns after an initial peak.
110
Corentin @corentin.tech · 11/12/2024
Autant j'ai l'habitude de devoir réduire la taille des images pour les formulaires web, mais c'est bien la première fois que je dois faire l'inverse... Image refusée car le fichier est trop petit 🤌 D'accord, je vais lui ajouter quelques Ko... 🙄
Capture d'écran montrant un formulaire d'upload d'image pour un logo, où un fichier PNG de 3 Ko est refusé avec un message d'erreur : 'File is too small. Minimum file size is 5 KB'.
010
Corentin @corentin.tech · 25/11/2024
Enclosed just hit 700 stars on GitHub! 🎉 Thank you to everyone who has starred the project, contributed, or shared it with others Your support means a lot! ❤️ github.com/CorentinTh/e... #opensource #foss #javascript
A mockup of the Enclosed website displayed alongside text that reads: "Celebrating 700 GitHub Stars! Thank you!"
060
Corentin @corentin.tech · 07/11/2024
Enclosed is live on Product Hunt! 🚀 If you enjoy Enclosed, please consider upvoting it on Product Hunt to help more people discover it 🙏 producthunt.com/posts/enclosed #opensource #javascript #foss
Mockup image of the Enclosed website with a big text stating "Enclosed is live on Product Hunt" and a Product Hunt call to action button
040
Corentin @corentin.tech · 05/11/2024
Enclosed docker image is now available for arm/v7 architecture 🔥 You can now self-host Enclosed on your Raspberry Pi or other arm/v7 devices 🚀 github.com/CorentinTh/e... #opensource #docker #foss
Docker hub screenshot showing the v1.9.2 docker image tag of Enclosed, a red rectangle around the linux/arm/v7 tag
020