The initial concept was built on top of the idea of locally scoped classes in Webpack's css-loader, which was an experimental feature at the time. You had to manually opt in to local scoping via a special syntax — :local(.foobar) — which we quickly adopted throughout our entire codebase. Almost every selector had this syntax, so I had the idea of creating a PostCSS plugin to automate it (github.com/markdalgleish/postcss-local-scope was the original repo, but this now redirects to an official CSS Modules repo).
The initial journey was really exciting. As soon as we converted our project to use local scoping by default (it wasn't officially called CSS Modules yet), we knew we were onto something really big. It had all the hallmarks of being the next big thing because it struck the perfect balance between code quality and mainstream accessibility. Tobias Koppers from webpack reached out to me, and I was able to convince Glen Maddern (of styled-components fame) that this approach was the future of CSS. To see it take off so quickly was incredibly exciting for me.
I'm not really involved with CSS Modules anymore—it's taken on a bit of a life of its own, with new people jumping in to keep the momentum going. That said, I always imagined that CSS Modules would remain very stable. At the end of the day, it's a module system, and you don't really want it to be changing too rapidly, if at all.