When you remember a person’s name you pay them a subtle compliment. You add to their feeling of importance. Additionally, it benefits yourself to remember someone’s name. They will more likely like you. But many of us are bad at remembering people’s names. I’m guilty of this. So let’s change that to great effect. Let’s build an app to improve our recollection of people’s names.

I’m calling it visage-grid. It will send me an email each morning. In that email will be the visage of a person I’ve met. At the bottom of the email will be her name.

That’s it. Simple can be powerful. The small size of the email makes it easily digestible. The morning delivery makes it ritual. And the photo and name make it useful.


Alright, so let’s set it up and use it. For the sake of this demo we are going to deploy onto Heroku, but this app is deployable to any server or server platform with node.js support.

The app uses Redis for the database, SendGrid for sending the emails, Heroku’s scheduler for the daily recurring task to send the email, and FullContact.com for identifying a photo associated with an email address.

We will be able to use Heroku’s add-ons for everything excepting FullContact. Go now and signup for a free FullContact Developer account and grab your API Key.

Once you’ve done that, you can run the following commands from your terminal.

git clone git@github.com:scottmotte/visage-grid.git
cd visage-grid
heroku create
heroku addons:add redistogo
heroku addons:add scheduler:standard
heroku addons:add sendgrid:starter
heroku config:set FULLCONTACT_KEY=yourfullcontactapikey
heroku config:set TO=your@email.com
git push heroku master


Congrats the app is ready to go. Add a friend’s email to the database. Pick a friend who has a strong online presence to increase the chances of the app returning a photo of her.

curl -X POST http://yourherokusubdomain.herokuapp.com/emails -d "email=friend@gmail.com"

Visit http://yourherokusubdomain.herokuapp.com/emails to confirm that the email was added. It should return a response like the following.

success: true,
emails: [

Now let’s send ourselves the visage-grid reminder email.

heroku run node ./task.js

As long as the person’s email you added was found by FullContact then you will receive the email. Here’s an example.

Setup Recurring Task

The final step is to add this as a recurring task using Heroku’s scheduler. Set the task to run once a day each morning. The entry for the task should read: node ./task.js

We’re done. In about 10 minutes we’ve setup and deployed an app to improve our recollection of people’s names. That’s developers at their best!

Further Reading

For further reading, there is a detailed tutorial on how to build it from scratch here. It’s ~100 lines of code. Additionally, the entire application is open sourced here. Fork it, borrow from it, or improve it to build a better app. Enjoy!

Hacker in LA. I believe the future is bright. It's up to us to build it - as programmers we get a big say. Follow me on twitter @motdotla.