Type something to search...

Blog

How to Create a Loading Spinner with Pure CSS

How to Create a Loading Spinner with Pure CSS

A loading spinner is one of the smallest pieces of UI on a page, but it carries real weight. It tells the user that their click registered, that the

Continue Reading
CSS Masks: Advanced Image and Text Masking Techniques

CSS Masks: Advanced Image and Text Masking Techniques

clip-path cuts an element with a hard edge: a pixel is either visible or it isn't. CSS masks are the more flexible sibling. A mask is an image,

Continue Reading
Storing Files in MongoDB with GridFS

Storing Files in MongoDB with GridFS

Sooner or later, most applications need to store files: profile photos, PDF invoices, CSV exports, audio clips. If MongoDB is already your primary da

Continue Reading
Metaclasses in Python Explained Without the Headache

Metaclasses in Python Explained Without the Headache

Metaclasses have a reputation. Tim Peters famously said they're "deeper magic than 99% of users should ever worry about", and most tutorials respond

Continue Reading
Descriptors in Python: The Mechanism Behind Properties and Methods

Descriptors in Python: The Mechanism Behind Properties and Methods

You've used descriptors many times, probably without knowing it. Every @property, every @classmethod and @staticmethod, every `functools.cached

Continue Reading
__slots__ in Python: Saving Memory in Attribute-Heavy Classes

__slots__ in Python: Saving Memory in Attribute-Heavy Classes

Most Python objects carry a small dictionary around with them. It's what lets you do obj.anything = 42 on almost any instance, and it's convenient.

Continue Reading