я думаю так: набрав 3 символа клиент посылает запрос серверу, полученные результаты клиент сохраняет в переменную и уже в этой переменной ищет по остальным набранным символам.
для автономной архивации можно использовать gulp, grunt. После изменения одной строчки css пересобрал проект и выгрузил файл стилей на сервер. Это не долго и не часто.
ИМХО: лучше раз - ручками заархивировать, чем потом напрягать сервер, чтобы он для каждого пользователя архивировал css, js.
PS: Правило «трех раз» - был у меня такой момент :D