Thoughts on building components libraries

A few months ago we started using React at Thinkific. One of the challenges of using React is creating reusable components not only from a look and feel perspective but also shareable in different projects.

I didn’t create this concept of elements (or components) library. To be honest, there are podcasts, courses, and examples everywhere about it but how to even start it? When you start creating a project from scratch you face several questions:

  • How to style components? Sass? Stylus? styled-components?
  • How to show the elements?
  • How to build the library? Babel? Webpack?
  • How to publish the library? To NPM or not NPM?
  • How to use integrations and CI in your favour?

Lots of decisions and you may not know all the answers. Startup Life™ doesn’t let you do whatever you want – everything has a cost and a trade-off. Why am I talking all this story? Because I wanted to share my thoughts about it and I created a repository to document what we are doing.
Read more


Sick Picks: Podcasts

I am huge fan of podcasts. It is always nice to hear people’s thoughts, struggles, jokes and sick picks. Here is my short list of development-related podcasts.

What are your favourite podcasts? Let me know in the comments :)


Useful apps that I use daily – 2017 edition

2 years ago I wrote a post about my tooling and here I am again, 2017 edition. I decided to write again because I keep listening to podcasts with Sick Picks and I also have my Sick Picks :)

Dev tools

Editor: Atom

I have been using Atom for a while. Despite I started testing VS Code in the latest months, I returned to Atom because VS Code doesn’t separate UI theme from syntax theme – you may not care about this, but I am a fan of a light UI and a dark code highlight.

My Atom

Here are the packages that I have installed:
Read more


Github webinars

Many of us use Github daily however we usually don’t use all its features. On the latest months, its team released a few webinars about how Github uses Github. More than showing the web interface, they talked about their culture and their workflows. In this post, I’m adding the links to the webinars with a few notes.
Read more


Cloudready or how to get a Chrome OS in a non-Chromebook laptop

Few months ago I saw in The Verge a post about CloudReady. CloudReady is a remake of Chromium OS ready to go in old PCs or Macs. The company behind the product sells its solutions/support to organizations interested in keeping using their hardware. It’s really interesting.

Read more


Another Meetup presentation

In yesterday Code & Coffee Meetup I talked about how Web APIs can improve User Experience. I watched Zeno Rocha talking about it few months ago then I decided to study/share the subject.

Here are my slides and the example repository that I created for the event.


Serving raw files directly from Github

We usually create HTML files in our Github repositories, but how to show this data in the browser? RawGit is a solution to serve files with the correct content types.

Example: The WordPress readme.html file can be shown in the following URL:

You only need to follow the formula:

The advantage of using RawGit over Github Pages is that RawGit works with all branches, while Github Pages requires a gh-pages branch. Last not the least, the source code of this solution is also available in Github.


Todo list using a Sinatra REST API

I am attending to a post-degree program and one of its courses is Server-Side Scripting. The professor gave us a project which students should create a project and my colleague and I created a Sinatra REST API for a todo list application.

Read more


My first Meetup presentation

Last week I presented in Code & Coffee about WordPress and Gulp. In my 10 minutes talk, I explained briefly what is Gulp and how its tasks can save our time.

Here are my slides and the example repository that I created for the event.

Update: video


Excluding folders from indexing in Sublime

Sometimes we work in projects with tons of Javascript dependencies. Folders like node_modules and bower_components are a pain in the neck because every time that we need to find something in the project the content of these folders will be used in the search.

Sublime offers 2 settings to hide these files from the index. First of all, open the User Preferences (Preferences -> Settings – User):

  • binary_file_patterns: This option excludes files from the index but keep them in the sidebar.
  • folder_exclude_patterns: This option excludes files from the index and sidebar. This is why, for example, you don’t see the .git folder in a project.

Read more


Resolving slow loading of local virtualhosts on Chrome

I’ve in my development mac different virtualhosts, using .local or .wp TLDs. Opening these address in Chrome are slow – about 3 seconds ‘resolving address’. This situation doesn’t happen in Safari or Firefox. Here is my typical /etc/hosts configuration:
Read more


Replace git author using shell script

This is an old trick that saved me several times. Sometimes people forget to setup their name and email information. The following script is useful to fix mistakes:


git filter-branch -f --env-filter '


if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ]
  cn="New author name"
  cm="[email protected]"

export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"

echo "Run after"
echo "git push origin +master:master"

Shell script para gravar áudio da Web

This post is also available in English.

Um dos meus programas de rádio favoritos é o Central 98, da 98FM (de Belo Horizonte). Ele começa às 10h da manhã e devido a diferença de 6h de fuso horário eu não consigo ouví-lo ao vivo. Então, criei um shell script para gravar o programa e assim posso ouvi-lo no meu tempo livre.

Read more


Shell script for audio recording

Esse artigo está disponível em português.

One of my favourite radio shows happens every day at 10 AM (Brasilia Timezone). I was unable to listen to it because the time zones. Then, I created the following small shell script to record the show and then I can listen to it in my free time.
Read more


the ink magazine

the ink magazine was an assignment of my HTML & CSS classes in the Web and Mobile App Design and Development program, performed in Langara College.

The students was supposed to create a magazine responsive layout using HTML/CSS. (I usually use Gulp and SASS in my projects, however, I didn’t use extra tools in this task).

The source code is available in my Github profile.


My Sublime Text settings

Almost 3 years ago I wrote (in Portuguese) a post about my Sublime Text settings. Now, I updated my tips in an English post.

1. Free video course

If you know nothing about Sublime, please watch these free videos from tut+.

2. Package Control

First of all, you should install Package Control to manage plugins. Actually, you can install packages just copying the package files to correct folder, however, Package Control is easier than copy & paste. Open Sublime Text console (View > Show Console or ctrl + `) and paste the following line:
Read more


Useful apps that I use daily

I decided write a post describing some tools that I use in my MacBook to enhance my tasks.


How awesome is Alfred? It is totally awesome! Alfred is a great tool working as a shortcut to daily tasks. More than that, you can create customized workflows that improve even more your productivity. You must see:

  • Yet another layouter: you can use keyworks like top left, top right to resize and move windows. This is really useful for people who use multiple displays
  • Battery: it is a workflow that shows relevant information about battery, such as charge cycles, health and serial number
  • Alfred Workflows Forum: the community forum where people share their workflows
  • Packal: an unofficial directory of workflows and themes. My currently theme is the Elegant v4, but you can choose your favorite in several options.

Read more


A new place

I have just moved this week to Vancouver. I started my Web and Mobile App Design and Development post-degree in Langara.

Maybe I should write a blog talking about cultural differences between Brazil and Canada, like dozens of Brazilians but I think that those pages show limited or inaccurate point of views.

New times are coming! :)


Data looks better naked

Data is usually explained in tables or charts, but people sometimes commit mistakes when they add in them redundant or boring elements. A good table or chart is worth a thousand words and the following three gifs show how to improve your presentations. Source

Remove to improve - the pie chart edition
Read more


codestacker in Github

codestacker Some years ago, precisely on July/2008 I created codestacker. I know, there were several options to collect snippets, but I decided to code my own solution. More than that I have planned to develop a Textmate bundle and a Mac OS Widget (who cares?), however I did not code these functions.

In the latest days, I migrated all old data to a new app written in Rails 4.2 and hosted on Heroku. The source code is available in Github.