Launched just over a week ago, Sache is a discovery system for the widely-used CSS preprocessor Sass. Sache seeks to catalogue useful Sass extensions and provide easy access to their Github repositories. While it doesn’t have a suite of command-line tools like NPM or Bower — at least, not yet — it does provide a way to find quality extensions filtered by tag and popularity.
We spoke to Chris Michel, one-half of the Sache development team, about its creation.
What inspired you to create Sache?
Well first off, I have to say that it wasn’t just me that developed Sache. It really couldn’t have happened without the help of my good friend, Jared Hardy. He took care of the backend components and I handled the front-end and interactions. We ping-ponged back and forth the entire time, it was really fun! We’ve always tinkered with side projects together, but this idea was the one that had the momentum to actually finish and release!
So, the inspiration. We both went to SassConf back in October of last year and were sitting their listening to the opening keynote from Chris Eppstein. Chris mentioned how he’d always wished there was some sort of registry for Sass and Compass tools, but that nobody had made it yet. He, jokingly, but seriously, challenged someone in the crowd to build it. I leaned over to Jared and said, “let’s build it”.
After you had the idea for Sache, what was the implementation process like?
We just so happened to be staying in an awesome Airbnb together that had great wi-fi, so we headed back after lunch and decided to hack on a quick prototype MVP to show some people later that night at the final conference party. The people we initially showed it to were pretty excited, so we chugged ahead after the conference. Our original working name for it was “Sassy Toolbox”, but we ended up not wanted to go with the “Sassy” norm that a lot of Sass things go for. So after some brainstorming, we came up with “Sache”, basically merging Sass with “cache”.
We wanted to build something that was easy to use and had a simple enough feature set that we wouldn’t get bogged down trying to build it. We’d both worked and built Sass tools before and understand how hard it can be to get your code out there, so that was the driving force behind all of this. Let’s just make it as easy as possible to add you project and utilize tools, like Github, to do some of the heavy-lifting on the API and hosting side. We didn’t want to get into the game of being another repository service, so we focused down on being a directory that linked to Github repos. We settled on a basic feature set (tags, featured, search, bower-like JSON file, etc). We knew that people wouldn’t want to create another account, so we utilized a .json file to act as user authentication and as a way for us to populate information into our database. Since the owner of the repo (or someone with access) had to add the .json file, we knew it was legit.
The implementation process was pretty back and forth. We started on separate repos, one static, one building on Postgres to run the database. Once we had both in good condition, we merged them together and started working from the official Sache repo. The app is built on Sinatra and we’re using AJAX to make the entire experience pretty seamless on the front-end. The design happened in-browser, with a few small tweaks later in the process that happened in Photoshop/Illustrator as we refined it before release. We wanted to match the new official Sass website so we went with the same color scheme and overall look and feel, with small differentiators to make it our own. The pages are marked up in Haml and the styles are written in Sass, the entire project is public on Github and we’re happily taking pull requests or issue reports.
How do you think tools like Sache, NPM, and other extension repositories affect the way we build things?
Well what Jared and I hope for is that these tools enable people to get quicker access to amazing tools that the community has built. NPM, bower and others already do an amazing job at the command line functionality of bringing things into a project easily. We don’t really see Sache trying to compete much there, in fact, a lot of the extensions listed already have a bower component built-in. Bower is changing the game in the Sass community right now as far as code share-ability. We’re hoping Sache can aid in some of the discover aspects. One surprising thing that we didn’t expect was to find out how many Sass tools are actually out there. At the time of writing this we have about 53 Sass extensions in the database and both of us have already learned a ton just from looking at what others have already built!