builder side (maintainer) client side (end user) N-gram index files (json) Text files (to be searched) Modern browser (FireFox, Safari, ) uses index to search text Python backend generates index from text