nanoid
size-limit
Our great sponsors
nanoid | size-limit | |
---|---|---|
83 | 6 | |
23,140 | 6,411 | |
- | - | |
8.3 | 8.6 | |
17 days ago | about 1 month ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nanoid
-
Next.js and Bunny CDN: Complete Guide to Image Uploading with Server Actions
Last thing left is to use our new upload function in our server action. Since I like to upload images in single format and have some more control over them, I will additionally use sharp library. For file name, I'll generate some random string using nanoid:
- Nano ID Collision Calculator
-
Why we chose Bun
Our API is in node. And God, how I suffered to import nanoid in an esmodule project. I had to vendor it, since using a previous version was not ideal. With bun, we can no longer worry about that. Just import what you need and done.
-
UUIDv7 is coming in PostgreSQL 17
No thread about UUID is complete without a plug for NanoID! https://github.com/ai/nanoid/blob/main/README.md
-
Building a File Storage With Next.js, PostgreSQL, and Minio S3
Generate a unique file name using the nanoid library.
-
Building a Multi-Tenant App with FastAPI, SQLModel, and PropelAuth
The syntax should read similar to SQL itself. We’re using a Python port of nanoid to generate our IDs. There’s only one thing missing… how do we actually create the table?
-
You Don't Need UUID
I usually go for Nano Id for new projects https://github.com/ai/nanoid
-
Enhance Your Web Apps: Best JS Libraries 🔧
Nano ID
-
Analyzing New Unique Identifier Formats (UUIDv6, UUIDv7, and UUIDv8) (2022)
In another comment I mentioned I use nanoid in my projects now. It has a default space of 64^21 and has an a page where you can play with key lengths and alphabet sizes and see the probability of collisions :
https://zelark.github.io/nano-id-cc/
At the default 64 character alphabet with a 21 character key length it would take ~41 million years in order to have a 1% probability of at least one collision if you generated 1000 ids per second.
-
How I use Nano ID in Rails
Using randomly generated IDs like Nano ID could be a good alternative, however, as a developer, we must understand what Nano ID really does in our application. Defining the number of characters in the generated IDs is also important, to help with that Nano ID has a Collision Calculator to give us how many years in order to have a 1% probability of collision.
size-limit
-
How to build tree-shakeable JavaScript libraries
However, you can use the Size Limit library to control the size of a bundle or individual exports. Here’s an example configuration:
-
Trim the fat: tips for keeping bundle size small 🏋️
It's always good to keep track of these things over time so performance doesn't slide. Parcel, which I used for this project, has a helpful bundle analyzer (similar to the one for Webpack) that gives a nice visual overview of a project's bundle. This is especially helpful for identifying bundled dead code coming from packages that could be avoided with tree-shaking. There are also plenty of tools you can integrate with CI to enforce bundle size.
-
Understanding nouns with tinyplural
TSDX is a great package for npm packages like this and even bundles with size-limit to check your gzipped final bundle size. Keeping a tiny package was really important to me so there are 0 dependencies and size-limit made me realise that simplifying all of my checking functions into 1 or 2 core functions that took options would be a better strategy and help reduce the code size.
-
Codebytes: Shorter UUIDs with collision prediction using nanoid
Small. 130 bytes (minified and gzipped). No dependencies Size Limit controls the size.
-
7 Trending projects on GitHub for JavaScript developers
Size Limit is a performance budget tool for JavaScript. It checks every commit on CI, calculates the real cost of your JS for end-users, and throws an error if the cost exceeds the limit. Link: https://github.com/ai/size-limit
-
Egghead's State Management Portfolio Club Journey - Week 1: An RDD Approach
-Mark Erikson and Joel Hooks talk on Redux -When and when not to reach for Redux -Redux Introduction -Egghead course by Dan Abramov on Fundamentals of Redux -RDD article by Tom Preston Werner -Another Article on RDD -Article on writing a great Readme -RDD Readme Example: size-limit
What are some alternatives?
snowflake - Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees.
GrapesJS - Free and Open source Web Builder Framework. Next generation tool for building templates without coding
ksuid - K-Sortable Globally Unique IDs
tsdx - Zero-config CLI for TypeScript package development
typedorm - Strongly typed ORM for DynamoDB - Built with the single-table-design pattern in mind.
tsdx - Zero-config CLI for TypeScript package development [Moved to: https://github.com/jaredpalmer/tsdx]
pg_random_id - Provides pseudo-random IDs in Postgresql databases
nanoid.
jest - Delightful JavaScript Testing.
Plyr - A simple HTML5, YouTube and Vimeo player
Numeral-js - A javascript library for formatting and manipulating numbers.
three.js - JavaScript 3D Library.