citext
PostgreSQL extension: case-insensitive TEXT type. 'Alice' = 'alice' returns true. Standard text types are case-sensitive. Classic use: email addresses, usernames, slugs.
CREATE EXTENSION citext; CREATE TABLE users (email citext UNIQUE);. Trick: gives automatic case-insensitive UNIQUE constraint without needing LOWER(email) everywhere. Performance: slightly slower than text (Unicode-aware lower-casing per comparison). Modern alternative: regular TEXT + COLLATE nondeterministic (PG 12+) gives the same case-insensitive comparison without the extension. Practical choice: citext is battle-tested since 2008, ICU collation is the modern PG way.