How to create a custom indexer?

Any guides to create a custom indexer (e.g. to store only transactions specific to my app, faster queries)?

I had a similar requirement for fundstack.
I have written a CronJob in node JS, which gets executed every minute.
It will query the required data using the OOB indexer and store the data in mongo DB.
My front-end app will query data from MongoDB using Express JS.
This made the app blazing fast and loads the data in a second.

Is querying the default indexer “the” approach to build a custom indexer? It’s something that would work for me too, just wondering about all the possible options.

I think this is the possible solution that many are using.
@fabrice, do you think there is any other better approach?