Stephane Mensah

The only difference between ordinary and extraordinary is just that little "extra".

add service model

The Service model will be used to save encrypted 3rd party secrets

slugs generator helper toSlug(slug)

i've managed to somehow achieve how dev.to does it. The code can be found at https://gist.github.com/waptik/2cbd5c9147f71b04be810a3d16cba491

learnt the difference between ctx.deleteMessage() and await ctx.deleteMessage()

When using await ctx.deleteMessage() you notice the lag that occurs as the message is being deleted.
But using it without await ctx.deleteMessage(), there's practically no lag.
I found out about that when working on my pagination

got to see how telegram virtual keyboard work

read info at https://core.telegram.org/bots/api/#replykeyboardmarkup and this tuts https://www.youtube.com/watch?v=SeYweB-3H80

write a custom pagination helper

the source code can be found here https://gist.github.com/waptik/880ea39fe49624747b8658a89ea3bce0

auth(return avatar from db if user exists already)

this is in case user signs in using passport-telegram strategy