TextMate est un éditeur de texte générique pour Mac OS X. N'étant pas WYSIWYG et voulant s'intégrer dans le workflow de la programmation agile, la plupart de ses utilisateurs sont des programmeurs. La plupart des contributeurs principaux de Ruby on Rails utilisent TextMate. La puissance de TextMate a pour conséquence que la courbe d'apprentissage est plus difficile que celle d'éditeurs plus simples. Les fonctionnalités les plus notables sont les projets dont les fichiers sont sélectionnables par des onglets, les macros enregistrables, le pliage de code, la gestion de snippets, l'intégration au shell et le support d'extensions appelées paquets (bundles). TextMate 1.5 a gagné l'Apple Design Award du meilleur outil de développement informatique en 2006. La version 2.0 de TextMate utilise des fonctionnalités spécifiques à Mac OS X 10.5 (Leopard) comme CJC. TextMate inclut des fonctionnalités qui le distinguent d'autres éditeurs, le rapprochant par sa flexibilité de logiciels plus anciens comme GNU Emacs ou VI. Ses macros, commandes et snippets permettent l'optimisation de comportements complexes et son système de portées inspiré du système de feuilles de style en cascade de HTML le distingue aujourd'hui des autres éditeurs de texte, permettant la coloration syntaxique d'entités arbitrairement imbriquées. TextMate permet aux utilisateurs de créer leur propre coloration syntaxique en utilisant une version modifiée des listes de propriétés d'Apple en ASCII pour définir des grammaires de langage. Ces grammaires permettent l'imbrication de règles. Ces règles sont définies en utilisant la bibliothèque d'expressions régulières de Oniguruma. Chaque endroit du document appartient donc à une ou plusieurs portées, qui définissent où cet endroit est dans le document, comment il doit être coloré, et quel comportement TextMate doit avoir à cet endroit. Par exemple, le titre de l'un de ces liens dans la section "liens externes" aura la portée : text.html.mediawiki markup.list.mediawiki meta.link.inline.external.mediawiki string.other.