How it began
Assane Faye created the Garay alphabet in 1961 to write Wolof. Faye was a Wolof-speaking intellectual and the founding president of the African Language Teachers' Movement in Senegal. By his own account, he was reflecting on what an independent Senegal lacked when he walked on the beach near his village and passed a cave called Garay, a word meaning the whiteness of the cotton flower. A vision struck him there and he began writing letters in the sand. The script appeared at almost the moment Senegal became an independent state.
Before it existed
Wolof was already written in two borrowed scripts. Wolofal, an adaptation of the Arabic script that grew out of Islamic literacy, was the first script used for the language, and the Latin alphabet became the standardized writing system of modern Senegal. Garay was designed deliberately as a new script for Wolof and for African languages, rather than one inherited from colonial institutions.
How it works
Garay has 25 consonants and 14 vowels and is written from right to left. It distinguishes upper and lower case: a capital is formed by adding a swash to one side of the letter, and sentences and personal names begin with capitals. A mark above some letters shows prenasalization. The letters take some visual inspiration from Arabic but are independently designed and are not joined in the way Arabic letters are.
How it spread
Faye taught the script face to face to hundreds of people over the years. He translated the Quran using it and kept dozens of unpublished handwritten texts at his house, some of which were later digitized with a visiting researcher. The script has since moved toward wider technical support, with a formal proposal for encoding it in the Unicode standard.
Where it stands today
Garay has never reached the widespread use of the Latin alphabet, and its community of users remains relatively small. Wolof is far more often written in Latin letters and, to a lesser extent, in Wolofal. A revised proposal to encode Garay in Unicode, dated February 2022, was accepted, and the script has its own Unicode block.