Welcome to my Weekly Digest #23.
This weekly digest contains a lot of interesting and inspiring articles, videos, tweets, podcasts, and designs I consumed during this week.
🎉 Giveaway
We are giving away any course you need on Udemy. Any price any course.
To enter you have to do the following:
- 👍 React to this post
- ✉️ Subscribe to our newsletter
You will receive our articles directly to your inbox 📬.
Interesting articles to read
How to create NFTs with JavaScript
Learn to code an NFT (non-fungible token) using the Ethereum blockchain, the Ropsten Testnet, and a series of JavaScript libraries.
How to create NFTs with JavaScript - LogRocket Blog
Serving sharp images to high density screens
Why compressing images for dense screens is different, and how to serve them.
Serving sharp images to high density screens
How to update nested state in React
State is a cornerstone of React components. In this post, we learn how to update nested state properties.
How to update nested state in React
Media Queries in Times of @container
With container queries now on the horizon - will we need media queries at all?
Media Queries in Times of @container
Some great videos I watched this week
Automating Tests with Jest
When I think about Continuous Integration, one of the first things that comes to my mind is testing. It's amazing how much more confident you can be about changes to your codebase when you have a good suite of tests, and you know they run before every merge.
How to use TypeScript on big projects
We met with Nikita Kabardin, who works as a front-end developer at Spotify. He also worked on several Battlefield projects.
Thinking on ways to solve color schemes
In today’s GUI challenge, we’re building dark, light and dim color schemes with HSL. The CSS works across modern browsers, establishes foundational architecture for more themes, and is accessible.
by Adam Argyle
Hasura in 100 Seconds
Learn how Hasura can instantly turn your SQL database into a GraphQL API.
by Fireship
Self-Avoiding Walk
It's finally time to attempt a Self-Avoiding Walk! In this video, I quickly visualize a simple JavaScript p5.js implementation of a self-avoiding walk. I then tackle the more complex problem of backtracking to find a solution to a space-filling self-avoiding walk.
Useful GitHub repositories
React 18 Working Group
This is the working group for React 18 release. It was formed to provide support to the community through the release.
React 18 Working Group
This is the working group for React 18 release. It was formed to provide support to the community through the release. The working group is focused around online conversations which you can access by going to the GitHub Discussions tab.
The working group is currently structured to help manage discussions yet make the information available to everyone. If you're looking for the first discussion to read, Introducing React 18 is a good starting point.
Working group participants come from a representative set of the React community including educators, developers, and library authors. Participants can start GitHub discussions to ask questions and provide feedback on React 18. They can also comment on existing discussion threads. All discussions are public and available for everyone to follow along.
To learn more about the React 18 Working Group and its mission, check out The Plan for React 18.
React Hook Form
Performant, flexible and extensible forms with easy-to-use validation.
react-hook-form / react-hook-form
📋 React Hooks for form state management and validation (Web + React Native)
Get started | API | Form Builder | FAQs | Examples
Features
- Built with performance, UX and DX in mind
- Embraces native HTML form validation
- Out of the box integration with UI libraries
- Small size and no dependencies
- Support Yup, Zod, AJV, Superstruct, Joi and others
Install
npm install react-hook-form
Quickstart
import { useForm } from 'react-hook-form';
function App() {
const {
register,
handleSubmit,
formState: { errors },
} = useForm();
return (
<form onSubmit={handleSubmit((data) => console.log(data))}>
<input {...register('firstName')} />
<input {...register('lastName', { required: true })} />
{errors.lastName && <p>Last name is required.</p
…Prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server & SQLite
prisma / prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
What is Prisma?
Prisma is a next-generation ORM that consists of these tools:
- Prisma Client: Auto-generated and type-safe query builder for Node.js & TypeScript
- Prisma Migrate: Declarative data modeling & migration system
- Prisma Studio: GUI to view and edit data in your database
Prisma Client can be used in any Node.js or TypeScript backend application (including serverless applications and microservices). This can be a REST API, a GraphQL API, a gRPC API, or anything else that needs a database.
The Prisma ORM can also further be extended with these Prisma products:
- Prisma Accelerate: Global database cache with scalable connection pooling
- Prisma Pulse: Real-time database events with type-safe subscriptions
- Prisma Optimize: AI-powered query optimization and performance insights
- Prisma Studio: A visual editor for the data in your database
cuid
Collision-resistant ids optimized for horizontal scaling and binary search lookup performance.
paralleldrive / cuid
Collision-resistant ids optimized for horizontal scaling and performance.
cuid
Collision-resistant ids optimized for horizontal scaling and binary search lookup performance.
Status: Deprecated due to security. Use Cuid2, instead.
Note: All monotonically increasing (auto-increment, k-sortable), and timestamp-based ids share the security issues with Cuid. V4 UUIDs and GUIDs are also insecure because it's possible to predict future values of many random algorithms, and many of them are biased, leading to increased probability of collision. Likewise, UUID V6-V8 are also insecure because they leak information which could be used to exploit systems or violate user privacy. Here are some example exploits:
Original Documentation Follows
Currently available for Node, browsers, Java, Ruby, .Net, Go, and many other languages (see ports below — more ports are welcome).
cuid()
returns a short random string with some collision-busting measures. Safe to use as…
dribbble shots
Fleet – Travel Shopping UI Kit
Podcast Dashboard
Fashion Store Mobile App
by Andri.
Music Mobile App
Instax - Mobile App Design
Cargo Transportation Application Design
by RD UX/UI
Tweets
Picked Pens
Bringing text to life
by Kyle Shook
Podcasts worth listening
The CSS Podcast - Scroll timeline
In this episode we deep dive the experimental Scroll Animations spec to bring you the breakdown on @scroll-timeline
powered CSS animation. Learn about scroll-linked animations vs scroll-triggered animations and how to orchestrate scroll interactions with elements of the page.
Syntax - Making a Vaccine Bot with JavaScript
In this Hasty Treat, Scott and Wes talk about Wes' experiment building a vaccine bot!
Hasty Treat - Making a Vaccine Bot with JavaScript
3 Minutes with Kent - Prisma is amazing
The Changelog - Exploring Deno Land
This week we’re joined by Ryan Dahl, Node.js creator, and now the creator of Deno - a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.
CodePen Radio - Pattern Library
Stephen and Chris talk about cplibrary
the Pattern Library that the CodePen Monorepo can use to share components. What goes in there and what doesn’t? What are common and not-so-common components? Can components be combinations of other components?
Thank you for reading, talk to you next week, and stay safe! 👋
Make sure to subscribe to our newsletter 💌 to receive our weekly recap directly on your email and react to this post to automatically participate in our giveaway 🎁
If you would like to join our discussions, you can find us on Discord 📣.
Top comments (0)