I understand Smith's point. But when I am sure that some schema is going to stay in SQLite for the foreseeable future, I like using text. It is simple, adequate, and expresses my intent completely: TEXT. That's what the column has, TEXT, not 40, not 60, not less than 30, just freaking text.
Lastly, reading VARCHAR(40) makes my mind expect a programmatic limit (not on the business logic) that does not exist. This tingles. Everyone that commented on this secondary issue (about using TEXT or VARCHAR for clarity of intent) has solid arguments, and any decision then is mostly a matter of taste. > Don't make mistakes. I try not to. But it happens.