<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>O blog da Monica — notas de versão e decisões de produto</title>
        <link>https://www.monicahq.com/pt/blog/</link>
        <description>O que lançamos, por que construímos desse jeito e como é de verdade tocar uma pequena empresa de código aberto. Escrito por quem faz a Monica.</description>
        <language>pt</language>
        <atom:link href="https://www.monicahq.com/pt/blog/feed.xml" rel="self" type="application/rss+xml"/>
        <lastBuildDate>Wed, 02 Sep 2026 00:00:00 +0000</lastBuildDate>
        <item>
            <title>Building Monica: modelar as relações entre pessoas</title>
            <link>https://www.monicahq.com/pt/blog/modeling-relationships/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/modeling-relationships/</guid>
            <pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Decidir o que é realmente uma relação revelou-se um dos problemas mais difíceis da reconstrução do Monica.</description>
            <content:encoded><![CDATA[<p>Quando começámos a reconstruir o Monica, sabia que as relações seriam uma das áreas que teríamos de repensar. O que não esperava era a dificuldade de sequer definir o que é uma relação.</p>

<p>Um CRM pessoal precisa de saber como as pessoas estão relacionadas entre si. Alguém é a tua mãe, o teu irmão, o teu amigo, a tua colega ou o teu companheiro. O Monica faz isto há anos e, do ponto de vista de quem o usa, é uma funcionalidade bastante simples: escolhes uma pessoa, escolhes uma relação e está feito.</p>

<p>Infelizmente, desenhar o que acontece por trás desse pequeno menu não é nada simples.</p>

<h2>Mesmo as relações simples não são assim tão simples</h2>

<p>Digamos que o Monica é irmã do Ross. Do ponto de vista dela, o Ross é o seu irmão. As duas frases descrevem a mesma relação, mas as palavras que usamos dependem da pessoa que estamos a olhar.</p>

<p>O mesmo acontece por toda a família. A Rachel é mãe da Emma, enquanto a Emma é filha da Rachel. A tia de alguém tem uma sobrinha ou um sobrinho. Uma avó tem uma neta ou um neto.</p>

<p>Outras relações não funcionam assim. O Chandler e o Joey são amigos. A palavra é a mesma independentemente do lado de que se olha. Com primos e colegas pode ser igual.</p>

<p>Já temos portanto comportamentos diferentes. Às vezes uma relação muda de nome conforme o lado de que olhamos, às vezes não, e às vezes a palavra que usamos depende do género de uma das duas pessoas.</p>

<p>E esta é a parte fácil.</p>

<h2>As famílias são confusas</h2>

<p>Imagina que duas pessoas se casam e têm dois filhos. Divorciam-se. Uma delas volta a casar com alguém que já tem filhos de outra relação e talvez tenham outro filho juntas.</p>

<p>Não é uma família particularmente invulgar, mas agora temos pais, filhos, irmãos, meios-irmãos, enteados, padrastos e madrastas, cônjuges e ex-cônjuges.</p>

<p>Isto também começa a levantar perguntas para as quais não creio que exista sempre uma resposta universal. Se te divorciares, a tua sogra deixa de ser tua sogra? Tecnicamente, talvez. Mas e se a conheces há vinte anos e continuas a considerá-la parte da tua família? Certamente não deixa de ser a avó dos teus filhos só porque o teu casamento acabou.</p>

<p>Depois há pais biológicos, pais adotivos, famílias de acolhimento e tutores. Alguém pode ter várias pessoas que considera seus pais, e essas relações não significam necessariamente a mesma coisa. Há familiares afastados, pessoas que consideram alguém um irmão ou uma irmã sem qualquer relação biológica, antigos companheiros que continuam muito próximos e pais que criam filhos em conjunto sem já serem um casal.</p>

<p>A árvore genealógica arrumada que tendemos a imaginar quando pensamos neste problema não sobrevive ao contacto com muitas famílias reais.</p>

<p>E mesmo quando a estrutura familiar é simples, as relações mudam. Quem é hoje o teu companheiro pode ser o teu ex daqui a cinco anos. Isso não significa que a relação antiga deva simplesmente desaparecer. O facto de duas pessoas terem estado casadas durante quinze anos continua a fazer parte da sua história, mesmo que já não estejam.</p>

<p>As relações têm um passado, o que torna igualmente problemático representar apenas o seu estado atual.</p>

<h2>Duas pessoas podem não concordar sobre a sua relação</h2>

<p>As relações familiares dão-nos ao menos alguns factos com que trabalhar. A amizade é ainda menos precisa.</p>

<p>Se o Monica considera a Rachel uma amiga próxima, a Rachel considera necessariamente o Monica uma amiga próxima? Não temos a mínima ideia.</p>

<p>O mesmo problema existe com mentores, conhecidos e muitas outras relações. Alguém pode considerar outra pessoa o seu mentor mesmo que essa pessoa nunca usasse a palavra. Alguém pode considerar um velho amigo praticamente família enquanto a outra pessoa o vê como alguém que conheceu há anos.</p>

<p>Isto é muito importante no Monica, porque a informação não pretende descrever um grafo social objetivo. É a tua informação sobre as pessoas da tua vida.</p>

<p>Quando escreves que alguém é teu amigo, estás a descrever a relação como a entendes. O Monica não tem a versão da outra pessoa e, em muitos casos, provavelmente não existe uma única resposta correta.</p>

<p>Isto torna-se particularmente estranho quando o software tenta transformar as relações em algo mensurável. Alguém é melhor amigo por o vermos todas as semanas? Uma amiga que não vemos há cinco anos é menos importante do que um colega com quem falamos todos os dias? Obviamente, a frequência diz-nos algo sobre uma relação, mas não nos diz o que essa relação significa para alguém.</p>

<h2>O tempo também não encaixa bem</h2>

<p>Um colega pode tornar-se amigo. Um amigo pode tornar-se companheiro. Um companheiro pode tornar-se ex-companheiro e, anos mais tarde, essa mesma pessoa pode voltar a ser um amigo.</p>

<p>Se o Monica registar que duas pessoas estão casadas e elas se divorciarem mais tarde, o que deve acontecer ao casamento? Removê-lo tornaria a informação atual correta, mas também apagaria algo bastante importante da sua história.</p>

<p>Podíamos guardar datas, só que muitas vezes as pessoas não as sabem. Posso saber que dois amigos já estiveram juntos sem ter a menor ideia de quando começaram a namorar nem de quando exatamente se separaram. Exigir datas precisas deixaria o modelo mais limpo e o produto bastante mais irritante de usar.</p>

<p>Também não há garantia de que as relações passem de forma limpa de um estado para outro. As pessoas não acordam necessariamente uma manhã e passam de «amigo» a «companheiro». Algumas relações têm um início claro, como um casamento. Muitas outras não.</p>

<p>A base de dados gostaria muito que soubéssemos quando tudo começou e quando tudo terminou. Na maior parte do tempo, não sabemos.</p>

<h2>O inglês não é o modelo do mundo inteiro</h2>

<p>Outro problema é que a maioria dos primeiros exemplos que nos vêm à cabeça tem por base o inglês.</p>

<p>O inglês usa «cousin» para um grande número de relações familiares, enquanto outras línguas podem ser muito mais precisas. O mandarim, por exemplo, tem palavras diferentes para primos conforme o lado da família de que vêm, o seu género e às vezes a sua idade. O sueco distingue os quatro avós: <em>mormor</em> é a mãe da tua mãe, <em>morfar</em> o pai da tua mãe, <em>farmor</em> a mãe do teu pai e <em>farfar</em> o pai do teu pai. O inglês dá-nos apenas «grandmother» e «grandfather».</p>

<p>O coreano dá outro exemplo. Até algo tão simples como «irmão mais velho» muda conforme quem fala. Um homem chama ao seu irmão mais velho <em>hyeong</em>, enquanto uma mulher lhe chama <em>oppa</em>. O vocabulário das relações contém informação que não está presente na palavra inglesa «brother».</p>

<p>Isto é importante para o Monica porque está traduzido em muitas línguas e é usado em todo o mundo. Não podemos desenhar todo o sistema de relações partindo do princípio de que o inglês contém a lista canónica das relações e que todas as outras línguas só têm de traduzir essas palavras.</p>

<p>É um problema que já encontrámos no Monica, e reconstruí-lo não o faz desaparecer por magia.</p>

<h2>A família não é sequer a parte mais difícil</h2>

<p>Ao menos as relações familiares costumam ter nome. O resto das nossas relações é muito menos estruturado.</p>

<p>«Amigo» pode descrever alguém que conheces há trinta anos e com quem falas todas as semanas, mas também alguém que vês duas vezes por ano e de quem gostas muito. Um colega pode ser a pessoa sentada ao teu lado todos os dias ou alguém com quem trabalhaste há quinze anos.</p>

<p>E as pessoas não cabem numa categoria de cada vez. Alguém pode ser teu colega, teu amigo e teu antigo colega de casa. O teu sócio também pode ser teu irmão. A tua vizinha pode ser a mãe da melhor amiga da tua filha.</p>

<p>Às vezes é o próprio contexto que importa. Conheces alguém porque andaram na mesma escola, jogaram na mesma equipa, viveram no mesmo edifício ou trabalharam no mesmo projeto. «Amigo» pode ser tecnicamente correto, mas perde a informação que explica porque é que essa pessoa faz parte da tua vida.</p>

<p>É aqui que uma pergunta simples como «de onde conheces esta pessoa?» se torna surpreendentemente difícil de responder com um único campo.</p>

<h2>Uma relação pode implicar muitas outras</h2>

<p>Suponhamos que o Ross é irmão do Monica e que o Ross tem um filho chamado Ben. Compreendemos imediatamente que o Monica é tia do Ben.</p>

<p>O software pode chegar à mesma conclusão. E, uma vez que começa a fazê-lo, pode continuar.</p>

<p>Pais implicam filhos. Filhos com os mesmos pais podem ser irmãos. Irmãos com filhos criam tias, tios, sobrinhas e sobrinhos. Acrescenta outra geração e tens avós e netos. Muito depressa, um pequeno número de relações pode produzir um grafo familiar bem maior.</p>

<p>Mas o facto de o software <em>poder</em> inferir algo não significa necessariamente que o deva fazer.</p>

<p>O novo cônjuge de um pai não é automaticamente pai da criança. Duas pessoas que partilham um progenitor podem ser tecnicamente meios-irmãos, mas talvez não se conheçam. A informação que o Monica tem pode também estar simplesmente incompleta. E mesmo que a relação familiar seja tecnicamente correta, pode não ser a relação que as pessoas envolvidas usariam para se descrever.</p>

<p>Cada vez que o software infere mais uma relação, ganha também mais uma oportunidade de estar errado.</p>

<h2>Há mais perguntas do que respostas</h2>

<p>Quanto mais trabalhamos nisto, mais casos limite encontramos.</p>

<p>Deve o Monica lembrar-se da história de uma relação ou apenas do seu estado atual? Podem duas pessoas ter várias relações ao mesmo tempo? «Melhor amigo» é uma relação diferente de «amigo», ou é outra coisa? O que acontece quando conhecemos a mãe de alguém mas não temos essa mãe como contacto no Monica? Como descrevemos relações que nos são importantes mas não têm um nome conveniente?</p>

<p>Algumas destas são questões de base de dados. A maioria não é.</p>

<p>A parte difícil é decidir o que queremos dizer quando dizemos que duas pessoas têm uma relação, porque os humanos não usam essa palavra com nada que se aproxime da precisão que uma base de dados preferiria.</p>

<p>Na interface, tudo isto pode acabar por se resumir a algumas palavras no perfil de alguém: mãe, irmão, amigo, colega.</p>

<p>Acertar nessas poucas palavras é um dos problemas mais difíceis com que estamos a lidar ao reconstruir o Monica.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Building Monica: construímos o navegador de base de dados que queríamos para Laravel</title>
            <link>https://www.monicahq.com/pt/blog/laradb/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/laradb/</guid>
            <pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Enquanto reconstruíamos o Monica, criámos um pequeno navegador de base de dados só de leitura para Laravel e decidimos publicá-lo como um pacote independente.</description>
            <content:encoded><![CDATA[<p>Este é mais um artigo da série <strong>Building Monica</strong>, onde escrevo sobre o processo de reconstruir o Monica de raiz. A maioria dos artigos desta série será provavelmente sobre o produto em si: as relações, os lembretes, a personalização, as atividades, a privacidade e todas as questões que surgem ao tentar representar a vida das pessoas em software. Mas reconstruir uma aplicação grande também produz coisas mais pequenas pelo caminho. O <a href="https://github.com/monicahq/laradb">LaraDB</a> é uma delas.</p>

<p>Enquanto trabalhava no Monica v3, dei por mim a passar muito tempo a olhar diretamente para a base de dados. Isto não é particularmente invulgar quando se constrói uma aplicação Laravel. Cria-se um contacto e verifica-se o que foi escrito. Cria-se uma relação e inspecionam-se as linhas relacionadas. Altera-se um lembrete e confirmam-se as datas. Executa-se uma ação, atualizam-se os dados, segue-se uma chave estrangeira, e repete-se o processo muitas vezes ao longo do dia.</p>

<p>Já existem muitas boas formas de fazer isto. O Tinker é útil, mas não é simples nem rápido de usar. Aplicações como o TablePlus, o DBeaver, o phpMyAdmin ou o Adminer podem ser muito úteis, mas não para uma consulta rápida. Uso o <a href="https://tableplus.com/">TablePlus</a> com regularidade, sobretudo quando preciso de escrever consultas, editar dados ou inspecionar o esquema em detalhe. Mas na maior parte do tempo, enquanto desenvolvia o Monica, não precisava de uma ferramenta de gestão de bases de dados. Só queria uma forma rápida de ver o que estava na base de dados sem sair da aplicação em que já estava a trabalhar.</p>

<p>Foi essa a ideia inicial por trás do LaraDB. Instalar uma dependência de desenvolvimento, ir a <code>/db</code> e ver a base de dados.</p>

<pre><code class="language-bash">composer require --dev monicahq/laradb
</code></pre>

<p>O que se obtém é muito simples. As tabelas aparecem à esquerda, as linhas à direita, e a página corre dentro da própria aplicação Laravel. O LaraDB suporta SQLite, MySQL e MariaDB, e PostgreSQL.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2026-08-31-laradb.webp" alt="O LaraDb a mostrar a tabela value_list_items: a lista das 41 tabelas à esquerda, as respetivas linhas à direita, e as colunas de chaves estrangeiras apresentadas como ligações que se podem seguir." width="2954" height="1498" loading="lazy" decoding="async"></p>

<h2>Um navegador em vez de um gestor de bases de dados</h2>

<p>A decisão mais importante que tomámos foi manter o LaraDB só de leitura. Não tem botão de edição, botão de eliminação, formulário de inserção nem consola SQL. As duas rotas expostas pelo pacote são rotas GET, e o pacote apenas emite instruções <code>SELECT</code>.</p>

<p>Em parte é uma decisão de segurança, mas é sobretudo uma questão de âmbito. Já existem ferramentas maduras para gerir bases de dados, e reproduzir um subconjunto das suas funcionalidades dentro do Laravel não tornaria o LaraDB mais útil para o problema que estávamos a tentar resolver.</p>

<p>O pacote evita também aceitar identificadores ou consultas arbitrárias vindas do browser. Uma tabela pedida tem primeiro de existir no esquema descoberto pelo driver. Os identificadores são escapados de acordo com o motor de base de dados. Os valores usados ao seguir chaves estrangeiras são passados como parâmetros ligados. Não há interface para submeter SQL arbitrário porque SQL arbitrário não faz parte do propósito do pacote.</p>

<p>Uma ferramenta pequena pode continuar compreensível se tiver uma tarefa muito precisa. O LaraDB destina-se a responder o que está neste momento na base de dados e como essas linhas se relacionam entre si. Não se destina a tornar-se um substituto de um cliente de base de dados a sério.</p>

<h2>Aquilo de que acabámos por precisar</h2>

<p>A interface reflete esse âmbito estreito. O LaraDB lista as tabelas do esquema atual e mostra as suas linhas numa tabela densa. Os tipos das colunas são apresentados, as chaves primárias e estrangeiras são identificadas, os valores <code>NULL</code> distinguem-se visualmente das cadeias vazias, e os valores longos são truncados para que colunas grandes de texto ou de JSON não tornem a página inutilizável.</p>

<p>As chaves estrangeiras revelaram-se uma das funcionalidades mais úteis para o Monica. Se uma coluna referencia outra tabela, o seu valor pode ser seguido diretamente. Clicar nele abre a tabela referenciada, filtrada pela linha correspondente. Isto é especialmente útil no Monica v3, porque um número crescente de domínios é representado através de relações explícitas entre várias tabelas em vez de registos grandes e autocontidos.</p>

<p>A página expõe também algum contexto sobre a base de dados e a consulta atuais. Consoante o que o motor de base de dados disponibiliza, o LaraDB pode mostrar o motor e a versão, o nome da base de dados, o tamanho, o número de índices e outros metadados específicos do motor. Para a página atual, mostra ainda a instrução SQL que produziu o resultado e quanto tempo a consulta demorou.</p>

<p>Existe também uma representação em JSON de uma tabela. Foi barata de acrescentar depois de a camada de base de dados estar separada da renderização do HTML, e tem sido útil para inspecionar dados fora da própria página.</p>

<p>O frontend é deliberadamente autónomo. O pacote traz o seu próprio CSS e o seu próprio JavaScript e não depende da cadeia de assets da aplicação anfitriã. Instalar o LaraDB não deveria obrigar a acrescentar uma configuração de Tailwind, uma dependência do Alpine ou mais um passo de compilação a um projeto existente.</p>

<h2>A abstração da base de dados tornou-se o verdadeiro trabalho</h2>

<p>Mostrar linhas num browser é simples. Suportar SQLite, MySQL e PostgreSQL de forma coerente foi onde acabou por estar a maior parte do trabalho interessante.</p>

<p>Os motores diferem bastante na forma como expõem o esquema e os metadados da base de dados. Listar tabelas, descrever colunas, encontrar chaves primárias, resolver chaves estrangeiras, contar linhas e obter informação ao nível da base de dados exigem consultas diferentes consoante o motor. Até pormenores como o escape de identificadores têm de ser tratados corretamente, em vez de como uma operação SQL genérica.</p>

<p>O LaraDB esconde essas diferenças atrás de uma pequena interface de driver. A camada Laravel pede tabelas, colunas, linhas e metadados sem precisar de saber se a ligação subjacente é SQLite, MySQL ou PostgreSQL.</p>

<p>Uma parte simplificada do contrato tem este aspeto:</p>

<pre><code class="language-php">public function listTables(): array;

public function getColumns(string $table): array;

public function getRowCount(
    string $table,
    ?RowFilter $filter = null,
): int;

public function getRows(
    string $table,
    int $page,
    int $perPage,
    ?RowFilter $filter = null,
): TablePage;

public function getForeignKeys(string $table): array;
</code></pre>

<p>Cada driver de base de dados implementa essas operações de forma diferente, enquanto o resto do LaraDB trabalha com os objetos de resultado comuns devolvidos pela interface.</p>

<p>Uma consequência interessante deste desenho é que o núcleo do código que lê a base de dados não depende de todo do Laravel. Funciona diretamente com PDO. O Laravel trata da descoberta do pacote, da configuração, do routing e da renderização, mas a inspeção da base de dados pode ser usada em separado.</p>

<pre><code class="language-php">use LaraDb\DriverFactory;

$pdo = new PDO('sqlite:database.sqlite');
$driver = DriverFactory::fromPdo($pdo);

foreach ($driver-&gt;listTables() as $table) {
    echo $table-&gt;name;
}
</code></pre>

<h2>Só de leitura não é o mesmo que inofensivo</h2>

<p>O facto de o pacote ser só de leitura impede-o de corromper a base de dados, mas não torna inofensivo expor essa base de dados. Um navegador de base de dados pode revelar todas as linhas de todas as tabelas a quem quer que consiga chegar até ele, o que é obviamente uma preocupação séria para uma aplicação como o Monica.</p>

<p>Por essa razão, o LaraDB foi pensado para ser instalado como dependência de desenvolvimento.</p>

<pre><code class="language-bash">composer require --dev monicahq/laradb
</code></pre>

<p>Um deploy normal de produção com <code>composer install --no-dev</code> não conterá o pacote. O LaraDB está também desativado por omissão fora do ambiente <code>local</code>, e as suas rotas usam por omissão os middleware <code>web</code> e <code>auth</code> quando estão ativas.</p>

<h2>Coisas pequenas que saem de uma reconstrução grande</h2>

<p>Quando comecei a série Building Monica, esperava que a maior parte do que escrevesse se centrasse nas grandes decisões de arquitetura e de produto por trás do Monica v3. Isso continuará a ser assim. Mas quero também documentar algumas das ferramentas e ideias mais pequenas que saem da reconstrução, porque também fazem parte do trabalho.</p>

<p>O LaraDB não é uma parte importante do Monica v3, e não está a tentar tornar-se um grande produto por si só. É apenas uma pequena ferramenta de desenvolvimento que eliminou um incómodo recorrente para nós. O pacote é útil precisamente porque o seu âmbito é limitado, e gostava que continuasse assim.</p>

<p>Se trabalha em aplicações Laravel e abre muitas vezes um cliente de base de dados só para inspecionar o que o seu código acabou de escrever, o LaraDB pode ser-lhe útil também.</p>

<pre><code class="language-bash">composer require --dev monicahq/laradb
</code></pre>

<p>Depois vá a <code>/db</code>.</p>

<p>O código-fonte está disponível em <a href="https://github.com/monicahq/laradb">github.com/monicahq/laradb</a>.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Estamos reconstruindo o Monica</title>
            <link>https://www.monicahq.com/pt/blog/we-are-rebuilding-monica/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/we-are-rebuilding-monica/</guid>
            <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Estamos reconstruindo o Monica a partir do zero, e esta nova série vai documentar como.</description>
            <content:encoded><![CDATA[<p>Este é o primeiro artigo de uma série chamada <strong>Building Monica</strong>. Quero usar esta série para documentar como estamos reconstruindo o Monica, o CRM pessoal de código aberto, a partir do zero. Vou falar dos problemas que estamos tentando resolver, das decisões que tomamos pelo caminho e provavelmente de algumas coisas que não saem como esperávamos.</p>

<p>Há quase dez anos, comecei a construir o Monica porque eu era péssimo em lembrar coisas sobre as pessoas. Eu esquecia o nome do filho de alguém, sobre o que tínhamos conversado na última vez que nos vimos, ou algo importante que me contaram alguns meses antes. Eu queria um lugar para anotar tudo isso, principalmente para compensar minha memória ruim, então comecei a usar um <a href="https://highrisehq.com/">CRM profissional</a>.</p>

<p>Não era uma boa solução. O software era feito para vendedores, o que eu não era, e eu não tinha muita vontade de pagar por uma ferramenta pensada para me ajudar a ganhar dinheiro quando tudo o que eu queria era lembrar coisas sobre meus amigos e minha família. Procurei algo mais adequado, não encontrei nada e decidi construir o meu próprio.</p>

<p>Esse pequeno projeto acabou virando o Monica. Coloquei o código no GitHub, publiquei no <a href="https://news.ycombinator.com/item?id=14497295">Hacker News</a> e as coisas ficaram um pouco malucas a partir daí. Descobri que eu não era a única pessoa procurando algo assim. O Alexis entrou depois como cofundador e, ao longo dos anos, milhares de pessoas usaram o Monica, contribuíram com código, traduziram o projeto, relataram erros e instalaram a aplicação nos próprios servidores. O projeto já tem mais de 25.000 estrelas no GitHub e se tornou um dos CRMs pessoais de código aberto mais conhecidos.</p>

<p>Tenho muito orgulho do que o Monica se tornou. Mas depois de trabalhar nele por tanto tempo, cheguei a um ponto em que a versão atual não é mais o CRM pessoal que eu construiria hoje.</p>

<h2>Quase dez anos de decisões</h2>

<p>Quando comecei o Monica, obviamente eu não tinha dez anos de experiência pensando em como representar relacionamentos pessoais em software. A maior parte das decisões foi tomada no momento em que um problema aparecia. Precisávamos de contatos, então construí contatos. Precisávamos de relacionamentos, então adicionei relacionamentos. Depois vieram os lembretes, as atividades, os presentes, as notas, os animais de estimação, os endereços e muitas outras funcionalidades.</p>

<p>Não há nada de particularmente errado em construir software desse jeito. Foi assim que o Monica cresceu, e muitas dessas decisões faziam sentido na época. Mas depois de quase dez anos, elas se acumulam. Ideias novas precisam contornar decisões tomadas anos antes, e coisas que pareciam detalhes de implementação vão se tornando aos poucos um limite para o que você pode fazer com o produto.</p>

<p>Com o tempo, isso deixou algumas partes do Monica mais difíceis de mudar do que deveriam ser. Mais importante ainda: mudei de ideia sobre algumas das decisões originais.</p>

<h2>O que eu construiria hoje?</h2>

<p>Em algum momento, comecei a me fazer uma pergunta simples: se o Monica não existisse e eu tivesse que construir um CRM pessoal hoje, com tudo o que aprendi na última década, como ele seria?</p>

<p>Isso levou rapidamente a perguntas muito mais básicas do que quais funcionalidades o Monica deveria ter. O que exatamente é uma pessoa no Monica? Como os relacionamentos entre pessoas deveriam funcionar? Como o Monica deveria representar o próprio usuário? O que acontece quando algo importante na vida de alguém não é outra pessoa, mas um animal, uma organização ou algo completamente diferente? Como os lembretes deveriam funcionar se os relacionamentos humanos não seguem um calendário naturalmente? O que uma atividade deveria representar? E quanto de tudo isso o Monica deveria definir para você, para começar?</p>

<p>Os relacionamentos são um bom exemplo. Guardar que a Monica é irmã do Ross não parece nada complicado. Mas se a Monica é irmã do Ross, o Ross também é irmão da Monica. Uma relação de pai ou mãe implica uma relação de filho ou filha. Alguns relacionamentos têm uma direção, outros não. As famílias de verdade incluem divórcios, novos casamentos, enteados, meios-irmãos, adoções e todo tipo de estrutura que não cabe direito em uma lista predefinida. Cada cultura também descreve os laços familiares de um jeito diferente.</p>

<p>Passei muito tempo pensando nisso para a nova versão, e agora vejo os relacionamentos como um domínio próprio, em vez de um atributo preso a um contato. Hoje me parece óbvio. Não era óbvio quando desenhamos as primeiras versões do Monica.</p>

<p>A personalização é outra área em que mudei de ideia. Historicamente, foi o Monica que definiu o que é um contato e quais informações podem ser guardadas sobre ele, e nós fomos acrescentando personalização em volta dessa estrutura. Para a v3, queremos inverter isso. O Monica vai continuar oferecendo bons padrões, porque ninguém quer configurar cinquenta coisas antes de adicionar o primeiro contato, mas a sua vida não deveria ter que caber no esquema de banco de dados que nós decidimos que era certo para todo mundo.</p>

<p>Quando você começa a mudar as coisas nesse nível, redesenhar algumas telas não basta. As fundações também precisam mudar.</p>

<h2>O que eu quero que a v3 seja</h2>

<p>O Monica v3 não é o produto atual com uma interface mais bonita. A interface vai mudar bastante, e quero que ela seja muito mais divertida e pessoal do que a maior parte do software que usamos hoje, mas isso é só uma parte do trabalho.</p>

<p>Quero construir um sistema muito poderoso para documentar as pessoas e os relacionamentos na vida de alguém. Não estou especialmente interessado em otimizar tudo em nome da simplicidade se o resultado for um produto que só sabe representar vidas simples. Prefiro ter bons padrões para quem não quer configurar nada, e dar a quem quer um controle enorme sobre como o seu Monica funciona.</p>

<p>Isso significa tratar os relacionamentos como conceitos de primeira classe e deixar cada pessoa decidir quais informações importam para ela. O Monica precisa dar conta de muito mais do que uma lista predefinida de campos pendurada em um contato. A parte difícil vai ser fazer tudo isso sem acabar com um software corporativo para gerenciar seus amigos e sua família, porque isso seria bem horrível.</p>

<p>Também há coisas que não quero mudar. Privacidade e propriedade dos dados continuam importando enormemente no Monica. O projeto vai continuar sendo de código aberto e você vai poder hospedá-lo por conta própria. Se você vai passar anos colocando em um software parte das informações mais pessoais da sua vida, acho que deveria ter o máximo de controle possível sobre essas informações.</p>

<p>Também não quero que o Monica decida o quanto alguém é importante para você. Ele pode ajudar você a lembrar coisas, organizar informações e avisar que você não fala com alguém há um bom tempo. O relacionamento continua sendo seu para cuidar.</p>

<h2>Começar de novo com dez anos de experiência</h2>

<p>"Começar de novo" não é exatamente verdade, claro. Quando criei o Monica em 2017, eu tinha uma ideia e um problema que queria resolver. Desta vez temos quase dez anos de experiência trabalhando nesse problema, milhares de conversas com usuários, contribuições de pessoas do mundo inteiro, duas gerações do produto e uma lista bem longa de coisas que não faríamos do mesmo jeito.</p>

<p>Enquanto trabalhamos na v3, quero documentar mais disso publicamente. Existe uma quantidade surpreendente de problemas difíceis atrás de algo que parece bem simples visto de fora, principalmente quando você começa a pensar a sério em relacionamentos, lembretes, personalização e em como representar em um banco de dados algo tão desorganizado quanto uma vida humana. Vou escrever sobre esses problemas, mas também sobre as decisões técnicas e de design que estamos tomando e sobre as coisas que tentamos e que não funcionam.</p>

<p>É sobre isso que <strong>Building Monica</strong> vai falar. Não sei com que frequência vou publicar um artigo, e não quero inventar um calendário de publicação só para ter um. Vou escrever quando tivermos algo interessante para contar.</p>

<p>Em 2017, construí o Monica com base no que eu entendia do problema naquele momento. Quase dez anos depois, entendo esse problema de um jeito muito diferente. É por isso que estamos reconstruindo ele.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Uma nova versão do Monica chega em 2026</title>
            <link>https://www.monicahq.com/pt/blog/new-version-of-monica-in-2026/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/new-version-of-monica-in-2026/</guid>
            <pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Vamos lançar a nova versão do Monica antes do fim de 2026.</description>
            <content:encoded><![CDATA[<p>Já faz um tempo que não damos notícias de verdade sobre o Monica.</p>

<p>Alexis e eu pensamos numa nova versão há muito tempo. Mais tempo do que esperávamos no início, claro. Reconstruir uma aplicação do zero tendo empregos em tempo integral, famílias e uma vida fora do Monica leva um certo tempo. Quem diria.</p>

<p>Mas hoje podemos finalmente dizer: vamos lançar a nova versão do Monica antes do fim de 2026.</p>

<p>Esta nova versão é o Monica que queríamos construir há anos. Será mais rápido, mais flexível, mais fácil de usar e assentado numa base muito mais sólida.</p>

<p>O Monica vai continuar ajudando você a lembrar das pessoas que importam para você. Vai continuar privado. Vai continuar de código aberto. E você vai continuar podendo instalá-lo de graça no seu próprio servidor.</p>

<p>Estamos muito animados. O Monica faz parte das nossas vidas há quase dez anos, e isto parece o começo de um capítulo completamente novo para o projeto.</p>

<p>Há muito trabalho pela frente.</p>

<p>Mas está chegando. Desta vez de verdade.</p>

<p>Obrigado pela sua paciência, pelas suas mensagens e pelo seu apoio ao longo de todos estes anos. Mal podemos esperar para mostrar o que construímos.</p>
]]></content:encoded>
        </item>
        <item>
            <title>O Chandler está em beta</title>
            <link>https://www.monicahq.com/pt/blog/chandler-is-in-beta/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/chandler-is-in-beta/</guid>
            <pubDate>Thu, 08 Jun 2023 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>A nova versão principal está disponível em beta.</description>
            <content:encoded><![CDATA[<p>Temos o prazer de anunciar que, depois de 18 meses de trabalho duro, nossa nova versão, de codinome Chandler, já está disponível em beta: <a href="https://beta.monicahq.com">https://beta.monicahq.com</a></p>

<p>O Monica nasceu há 7 anos com o objetivo de ser um CRM pessoal. Esta nova versão trata de documentar a sua vida, incluindo o que seus contatos andam fazendo, mas não só isso.</p>

<p>O que significa beta? É como ter um bando de bugzinhos travessos escondidos no nosso software, brincando de esconde-esconde com a gente. Temos quase certeza de que eles estão lá, mas não fazemos ideia de quais são nem de onde se escondem. Então precisamos de todas as almas corajosas para entrar no nosso esquadrão de caça a bugs e ajudar a encontrá-los antes do lançamento para o público.</p>

<p>O Chandler é uma reinvenção completa do Monica, construída do zero. Eliminamos a enorme dívida técnica acumulada ao longo dos anos e acrescentamos ou melhoramos muitas funcionalidades. Apesar de não termos divulgado o Chandler, muitos usuários já o testaram e encontraram bugs que corrigimos, mas não testamos este software em larga escala. Então, por favor, crie uma conta e se divirta.</p>

<p>A versão disponível no servidor de beta pode ser considerada estável. Não vamos zerar o banco de dados. Faremos backup dos seus dados diariamente e vamos mantê-los quando lançarmos oficialmente a versão final.</p>

<p>O Chandler tem algumas limitações:</p>

<ul>
<li>Você não pode usar seu login atual do Monica,</li>
<li>Você não pode importar seus dados,</li>
<li>Não há importação em massa de contatos,</li>
<li>Ainda não temos uma API.</li>
</ul>

<p>Temos muitas funcionalidades novas, um novo layout e o tão pedido modo escuro.</p>

<p>Numa nota pessoal, o recurso do qual mais me orgulho é a possibilidade de personalizar quase tudo no Chandler: do layout aos módulos que você pode ativar, até os dados que pode registrar sobre a sua vida.</p>

<p>O Chandler continua sendo de código aberto e pode ser instalado gratuitamente no seu servidor, se você souber usar Docker ou a linha de comando. Você pode continuar modificando o código, se quiser. O Monica é, e sempre será, de código aberto. É assim que deve ser.</p>

<p>Por enquanto, o Monica é gratuito na nossa instância hospedada (<a href="https://beta.monicahq.com">https://beta.monicahq.com</a>), mas teremos os mesmos preços da versão atual assim que considerarmos o produto estável.</p>

<p>Tenho um orgulho enorme do que conquistamos nestes oito anos. Naquela época, eu tinha medo de tornar meu código público porque sabia que ele era de baixa qualidade. Surpreendentemente, as pessoas não pareceram se importar. Hoje, nossa base de código continua aberta ao público e não nos preocupamos mais com julgamentos. O app ainda é uma aplicação Laravel, com VueJS no front-end e InertiaJS entre o front e o back. É uma pilha bem simples. Nos esforçamos para manter a base de código o mais simples possível, para facilitar a manutenção, a evolução e a busca por desenvolvedores que nos ajudem.</p>

<p>Em breve vamos migrar nossa imagem Docker oficial para o Chandler. Já tivemos mais de 25 milhões de downloads da imagem, o que nos deixa humildes.</p>

<p>Em nome de toda a equipe do Monica, obrigado por continuarem conosco todo esse tempo. A "equipe inteira do Monica" são basicamente dois amigos, Alexis e eu, apaixonados por oferecer ferramentas bacanas para as pessoas melhorarem suas vidas. O Monica ainda é um projeto paralelo para nós, temos empregos em tempo integral "do lado". Enquanto algumas pessoas jogam videogame ou assistem à Netflix, nós "brincamos" na base de código do Monica. E amamos isso.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Um novo Monica está chegando</title>
            <link>https://www.monicahq.com/pt/blog/a-new-version-is-coming/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/a-new-version-is-coming/</guid>
            <pubDate>Sun, 28 Aug 2022 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Uma versão principal completamente nova está a caminho.</description>
            <content:encoded><![CDATA[<p><a href="https://twitter.com/asbin">Alexis</a> e eu <a href="https://twitter.com/maazarin">(Regis)</a> estamos trabalhando há alguns meses (desde janeiro de 2022, na verdade) em uma versão totalmente nova do Monica. A primeira versão principal de fato desde que lançamos o projeto, alguns anos atrás.</p>

<p>Fico muito tentado a chamá-la de "versão mais rápida, mais nova, melhor", porque ela é, mas sou ruim de marketing, então vou dizer apenas que é uma versão nova e responder abaixo às perguntas que você possa ter.</p>

<p><strong>O que vocês querem dizer com versão nova?</strong></p>

<p>Uma reescrita completa do Monica, do zero.</p>

<p><strong>Vocês são loucos?</strong></p>

<p>Somos, mas também: a base de código do Monica já está velha. Velha no sentido de que tem 7 anos e passou pelas mãos de centenas de contribuidores. Há conceitos no código que deixamos passar, seja porque não sabíamos fazer melhor na época, seja porque não queríamos irritar quem contribuía, e que não queremos mais. O projeto tem dependências demais, e manter o código ficou mais difícil do que antes. Mudar alguma coisa é mais arriscado e leva mais tempo. Além disso, vimos como as pessoas usam o Monica, o que querem fazer com ele, e o código atual nos limita demais para dar conta desses usos. Por fim, o Monica ainda é um projeto paralelo para nós. Somos apaixonados por ele e também queremos nos divertir construindo. E a versão atual não estava tão divertida.</p>

<p><strong>O que vocês querem dizer com reescrita?</strong></p>

<p>Que começamos de uma base de código vazia e partimos dali. Antes, era uma aplicação Laravel (ou seja, PHP), com views Blade e um pouco de Vue aqui e ali. Agora, continua sendo uma aplicação Laravel (ou seja, ainda PHP), inteiramente com Vue 3. Simplificamos muita coisa, deixamos outras mais flexíveis e, portanto, um pouco mais complexas, mas acreditamos que conseguimos sustentar o futuro do Monica com isso.</p>

<p>Isso também significa que temos uma estrutura de dados totalmente nova, apoiada em um novo esquema de banco de dados.</p>

<p><strong>A nova versão vai se chamar Monica?</strong></p>

<p>Por enquanto, o codinome do novo Monica é Chandler. Não vamos manter esse nome: o nome oficial do novo Monica será Monica. Para maior clareza, vamos chamar a nova versão de Chandler no restante do texto.</p>

<p><strong>Vocês escolheram PHP apesar de \<insira aqui nova linguagem/framework>?</strong></p>

<p>O PHP é uma ótima linguagem. Não estamos mais na era do PHP 4 ou 5. Além disso, é uma linguagem bem simples, o que significa que muita gente no mundo lê e entende PHP. Escolher PHP torna mais fácil contribuir com o projeto, mais fácil depurar, mais fácil manter e mais fácil para nós encontrarmos pessoas que ajudem, se surgir a necessidade no futuro. Por fim, o ecossistema PHP é simplesmente ótimo, com o Laravel abrindo caminho para uma das melhores experiências de desenvolvimento que conheço.</p>

<p><strong>Quais funcionalidades o Chandler vai ter?</strong></p>

<p>No lançamento, queremos cobrir 100% (ou quase) do conjunto de funcionalidades que o Monica v1 oferece. Mesmo mantendo as funcionalidades, queríamos simplificá-las (as tarefas, por exemplo) ou torná-las mais robustas (os lembretes, por exemplo).</p>

<p>Feito isso, temos tantas ideias sobre o que o Monica deveria se tornar que chega a ser demais. Basicamente, o Monica nasceu como o primeiro CRM pessoal (ou PRM, gerenciador de relacionamentos pessoais). Foi assim que o posicionamos. Mas depois de anos trabalhando nele, conversando com as pessoas e lendo os milhares de e-mails que vocês nos enviaram, percebemos que o Monica é, na verdade, uma forma de documentar a sua vida, seja lá o que isso signifique para você. Então o Monica vai tratar de documentar a sua vida e de dar ferramentas para você fazer isso do seu jeito.</p>

<p>Lemos em todo lugar que produtos devem ter opinião e uma personalidade forte, para que as pessoas usem suas ferramentas do jeito que você quer. Essa foi a direção da v1. Agora queremos mudar essa afirmação. Queremos que as pessoas usem e configurem o Monica do jeito que quiserem. Quem somos nós para dizer que você deve usar só 3 pronomes para seus contatos, ou quais tipos de relacionamento você deveria ter? O Chandler será completamente personalizável, do que você vê na interface ao tipo de dado que pode inserir. O pessoal de marketing diria "o Chandler é sobre você", e isso é verdade, de certo modo. A desvantagem: do ponto de vista técnico, é mais difícil de administrar, mas esse problema é nosso.</p>

<p><strong>Quando vai ficar pronto? Posso experimentar?</strong></p>

<p>Vai ficar pronto quando estiver pronto. Lembre-se: não trabalhamos nisso em tempo integral, de jeito nenhum. Alexis e eu temos empregos exigentes, famílias, amigos e o Monica (e o OfficeLife, também).</p>

<p>NO ENTANTO.</p>

<p>Já fizemos bastante coisa. Algumas funcionalidades grandes que você conhece e gosta ainda faltam na nova versão: acontecimentos de vida, atividades, presentes e CalDAV/CardDAV, para citar algumas. Os acontecimentos de vida, em especial, são um bocado grande, porque queremos repensar completamente o conceito e torná-lo realmente útil. E, este é um "e" enorme, no momento ainda não temos uma API. Como é uma base de código nova, não dá para simplesmente copiar seus contatos da v1 e esperar que apareçam na v2. Então, se lançássemos algo agora, você não conseguiria importar seus dados. E achamos que isso é um problema.</p>

<p>DITO ISSO.</p>

<p>Ainda precisamos de gente para testar e nos ajudar a encontrar bugs, mesmo que aqui a gente não faça bugs (lol). Precisamos de pessoas para corrigir erros de escrita na documentação. Então o que poderíamos fazer é lançar o Chandler em um estado bem alfa, gratuito para todos até deixar de ser alfa.</p>

<p><strong>Continua sendo de código aberto? Posso usar de graça?</strong></p>

<p>Sim, continua de código aberto, com a mesma licença de antes. Isso significa que o Monica é gratuito, claro, a menos que você use a versão que hospedamos, que em algum momento vai custar algo, como a versão atual. Sim, você pode instalá-lo onde quiser, no seu próprio servidor. Como o Chandler não é a mesma base de código, ainda não temos o ecossistema rico de antes nem todas aquelas maneiras diferentes de instalá-lo em qualquer lugar, mas chegaremos lá. Sim, você ainda pode contribuir com o código, corrigir bugs, acrescentar funcionalidades, mesmo que continuemos com o direito de recusar seus pull requests se acharmos que não queremos dar suporte ao que você propõe.</p>

<p><strong>Qual é o futuro do Monica v1?</strong></p>

<p>Vamos dar suporte à v1 até o Chandler sair do alfa e do beta. Depois disso ela será descontinuada, mas quem a hospeda poderá continuar usando, se quiser. A v1 que nós mesmos hospedamos não terá suporte depois disso.</p>

<p><strong>Já dá para contribuir com a base de código?</strong></p>

<p>O repositório já está <a href="https://github.com/monicahq/chandler">disponível no GitHub</a>, mas estamos longe da maturidade do repositório principal atual. Isso significa que ainda não estamos prontos para receber contribuições de todo mundo, já que as coisas mudam quase todo dia, mas, se você aceitar isso, fique à vontade.</p>

<p><strong>O que vem a seguir?</strong></p>

<p>Antes de tudo, muito obrigado por ter lido este post inteiro. Somos muito gratos pela nossa comunidade e por vocês continuarem apaixonados por esta ferramentinha que nos divertimos construindo. Alexis e eu seguimos supermotivados com ela, e agradecemos por se importarem junto com a gente. Manteremos vocês informados.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Saindo do Stripe com nosso próprio portal do cliente</title>
            <link>https://www.monicahq.com/pt/blog/moving-away-from-Stripe-with-our-own-customer-portal/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/moving-away-from-Stripe-with-our-own-customer-portal/</guid>
            <pubDate>Thu, 31 Mar 2022 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Decidimos sair do Stripe e ir para o Paddle.</description>
            <content:encoded><![CDATA[<p>Hoje usamos o Stripe para gerenciar nossas assinaturas. Embora adoremos o Stripe do ponto de vista de quem programa, lidar com impostos no mundo inteiro é uma confusão completa, especialmente no fim do ano fiscal. Nosso contador nos odeia.
Precisamos migrar para outro processador de pagamentos que trate de todos os impostos do jeito certo. Esse processador se chama <a href="https://paddle.com">Paddle</a>.</p>

<p>Há outro motivo para querermos mudar a abordagem atual. O Monica é, antes de tudo, um produto de código aberto. Temos uma comunidade enorme. Muitos de vocês hospedam o Monica nos próprios servidores. Como também hospedamos o produto para poder monetizá-lo, até agora incluímos na base de código principal todo o código necessário para gerenciar assinaturas. É muito código. Cuidamos de assinar, editar e cancelar uma assinatura, com todas as permissões em volta disso, e assim por diante. Não é o ideal.</p>

<p>Decidimos remover todo o código de cobrança da base principal e criar um novo portal, chamado portal de assinaturas, para gerenciar suas assinaturas do Monica. Você terá que criar uma conta nesse site e comprar uma chave de licença para colar na sua conta do Monica. Nada além disso é necessário.</p>

<p>Se você tem uma assinatura hoje, vamos permitir que migre sua conta para a nova com facilidade. Instruções detalhadas serão enviadas por e-mail para cada um de vocês.</p>

<p>Pretendemos fazer a transição para esse novo portal do cliente nas próximas semanas.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Monica 2.16 e o que vem a seguir para o Monica</title>
            <link>https://www.monicahq.com/pt/blog/v.2.16.0/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/v.2.16.0/</guid>
            <pubDate>Tue, 31 Dec 2019 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Uma nova forma de adicionar atividades e o que vem a seguir para o nosso produto.</description>
            <content:encoded><![CDATA[<p>Faz tempo. Na verdade, faz um ano desde o último post. Neste texto vamos falar da nova versão 2.16 que acabamos de lançar, do que aconteceu durante 2019 e do que vem a seguir para o Monica.</p>

<p>A versão 2.16 contém 226 mudanças, a maioria correções de bugs ou melhorias na base de código. Mas também temos várias novidades, explicadas abaixo.</p>

<h3>Uma nova forma de adicionar atividades</h3>

<p>Agora você pode adicionar atividades ali mesmo, em vez de ir para uma nova página. Assim como no recurso de ligações, você pode indicar as emoções que sentiu durante uma atividade.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2019-12-31-inline-activities.webp" alt="O formulário para adicionar uma atividade a um contato, perguntando o que você fez e quando." width="852" height="286" loading="lazy" decoding="async"></p>

<h3>Página de configurações da API aprimorada</h3>

<p>A maior parte do que você faz com o Monica pode ser feita pela API. É extremamente importante para nós que as pessoas possam manipular seus dados à vontade. Por isso estava na hora de melhorar um pouco a página de configurações da API, dando mais carinho a ela.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2019-12-31-api.webp" alt="A tela de configurações da API, com os tokens de acesso pessoal e os clientes OAuth." width="1154" height="800" loading="lazy" decoding="async"></p>

<p>Também acrescentamos <a href="https://github.com/monicahq/monica/pull/3302">muitos métodos novos na API</a> para dar continuidade à nossa abertura a outros sistemas.</p>

<h3>Muitas mudanças nos bastidores</h3>

<p>Também mudamos completamente a forma como os dados são armazenados, acrescentando chaves estrangeiras a todas as tabelas do banco de dados. Embora isso não tenha impacto na experiência de quem usa o Monica, é bastante importante para quem desenvolve, pois trará mais controle e flexibilidade no geral. Foi uma mudança enorme e os pull requests levaram quase 11 meses para serem integrados.</p>

<p>Também refizemos por completo o processo de exportação de dados, que deve funcionar sem falhas de agora em diante (ou, como dizem: 60% das vezes funciona sempre).</p>

<h3>O que aconteceu em 2019?</h3>

<p>Em 2019 desaceleramos um pouco em termos de lançamentos anuais. Além disso, a atividade neste blog foi inexistente. Isso, porém, não afetou o número de cadastros, nem o número de downloads, nem o carinho das pessoas na internet por este projeto.</p>

<p>Basicamente, o Monica nunca esteve tão forte. Temos quase 5 milhões de downloads da nossa imagem docker oficial. Temos dezenas de milhares de usuários na <a href="https://app.monicahq.com">nossa versão hospedada</a>. O Monica continua aparecendo no <a href="https://news.ycombinator.com/item?id=21850155">Hacker News</a> e <a href="https://github.com/monicahq/monica/issues">nosso rastreador de issues no GitHub</a> está mais ativo do que nunca. Também integramos 875 pull requests em 2019.</p>

<p>Então por que esse silêncio? Principalmente por minha causa (Regis). Comecei o Monica há quase quatro anos. Ter um projeto popular é muito divertido, mas também consome muita energia e motivação. Ainda mais porque o Monica continua sendo um projeto paralelo tanto para mim quanto para o Alexis. Mas este ano o Monica foi demais para mim, e normalmente sou eu quem escreve neste blog ou nas redes sociais. Tive um esgotamento de projeto paralelo, digamos assim. O Alexis assumiu muito trabalho para manter e evoluir o produto, mas eu não consegui me dedicar como antes nem publicar notícias sobre o projeto. Precisei fazer outra coisa, esvaziar a cabeça e voltar só quando estivesse pronto. Agora estou, e sigo mais do que motivado para voltar ao trabalho e me divertir de novo.</p>

<h3>O Monica em 2020</h3>

<p>Quatro anos atrás, o Monica foi um dos primeiros CRMs pessoais populares. Hoje, a concorrência é maior do que nunca (uma dúzia, da última vez que verifiquei). Mas acredito que temos uma vantagem que nossos concorrentes não conseguem superar: somos de código aberto, não temos encargos nem custos, ou quase nenhum, e não somos gananciosos. Tudo o que fazemos, fazemos pensando primeiro na comunidade. Quanto mais instâncias do Monica existirem por aí, mais felizes ficamos: isso significa que não temos controle algum sobre os dados dos nossos usuários.</p>

<p>Em 2020:</p>

<ul>
<li>Queremos continuar nosso trabalho de abertura e transparência. Isso significa mais formas de exportar ou importar dados em um formato padrão.</li>
<li>Queremos oferecer webhooks para que sistemas externos saibam quando os dados mudam na sua conta (se você quiser, claro).</li>
<li>Acredito que o Monica é hoje a melhor ferramenta para documentar seus contatos pessoais. Você pode registrar qualquer coisa, de verdade. Agora que temos uma base muito sólida, acho que é hora de ampliar. É hora de permitir que você faça mais com seus contatos, criando grupos (ou famílias), eventos, oportunidades e assim por diante. Vamos focar em conceitos simples, acrescentados aos poucos à plataforma, que oferecerão a maior flexibilidade possível para você.</li>
</ul>

<p>O Monica é uma ferramenta para você. Continue compartilhando ideias, continue me enviando e-mails sobre o que devemos fazer em seguida. Estamos aqui por você.</p>

<p>E feliz ano novo 😀</p>
]]></content:encoded>
        </item>
        <item>
            <title>Monica 2.11.0</title>
            <link>https://www.monicahq.com/pt/blog/v2.11.0/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/v2.11.0/</guid>
            <pubDate>Sun, 23 Dec 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Chegaram as emoções, o envio de fotos, mais segurança e uma melhor gestão de ligações.</description>
            <content:encoded><![CDATA[<p>Depois de mais de um mês de trabalho, tenho o prazer de anunciar a nova versão do Monica, com envio de fotos, segurança aprimorada, melhor gestão de ligações, informações do tempo, a chegada das emoções e muitas outras melhorias.</p>

<h3>Envio de fotos</h3>

<p>Agora você pode enviar fotos na página de perfil de um contato. A quantidade de fotos que pode guardar depende do limite de armazenamento da sua conta, que é de 512 MB em <a href="https://monicahq.com">https://monicahq.com</a> (e é configurável por instância). Poder enviar fotos abre muitas possibilidades para o futuro.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-12-04-photo-upload.webp" alt="A aba de fotos de um contato, vazia, oferecendo enviar a primeira imagem." width="1744" height="1064" loading="lazy" decoding="async"></p>

<h3>Códigos de recuperação</h3>

<p>Segurança é fundamental, especialmente em uma ferramenta como o Monica, que guarda muitos detalhes íntimos. O Monica já dá suporte à autenticação em dois fatores (também conhecida como 2FA) e a U2F para ajudar você a proteger sua conta. A partir do Monica 2.11, você pode gerar códigos de recuperação para desbloquear sua conta caso perca a capacidade de entrar com 2FA. Atenção, porém: como esses códigos dão acesso à sua conta, guarde-os em um lugar bem seguro.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-12-02-recovery-codes.webp" alt="A janela de códigos de recuperação, com oito códigos de uso único e um já riscado." width="639" height="405" loading="lazy" decoding="async"></p>

<h3>Ligações telefônicas</h3>

<p>As ligações receberam bastante carinho nesta versão. Primeiro, redesenhamos o fluxo para registrá-las. Depois, acrescentamos (finalmente) a possibilidade de editar uma ligação feita no passado. E, de bônus, agora você pode indicar quem iniciou a ligação.</p>

<h3>Emoções</h3>

<p>Não seria ótimo poder dizer, de forma bem precisa, como você se sentiu quando algo aconteceu? O Monica 2.11 introduz a ideia de emoções, baseada no trabalho do <a href="http://changingminds.org/explanations/emotions/basic%20emotions.htm">Dr. Phillip Shaver</a>. No trabalho dele, as emoções são organizadas em 3 categorias principais:</p>

<ul>
<li>emoções primárias (amor, alegria, surpresa, raiva, tristeza e medo),</li>
<li>emoções secundárias (amor -> afeto, desejo, saudade),</li>
<li>emoções terciárias (amor -> afeto -> adoração, amor, carinho, atração).</li>
</ul>

<p>Acrescentamos esses conceitos ao Monica, começando pelas ligações. Um novo menu suspenso permite escolher quantas emoções quiser, para representar com bastante precisão o que você sentiu durante uma ligação. Pretendemos incluir emoções também em outros elementos importantes, como as atividades.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-12-13-emotions.webp" alt="O formulário de ligação, perguntando como você se sentiu durante a ligação, com duas emoções já escolhidas." width="1686" height="892" loading="lazy" decoding="async"></p>

<h3>Tempo</h3>

<p>Quando você conversa com um amigo que mora em outra região, é bem provável que em algum momento vocês falem sobre o tempo. O Monica ajuda aqui, mostrando o tempo atual do lugar onde seu amigo mora. Essa informação vem do primeiro endereço encontrado na página de perfil do contato. Isso também significa que, se nenhum endereço estiver definido, nenhuma informação de tempo será exibida.</p>

<p>Os dados do tempo vêm do Darksky e são atualizados a cada 6 horas. A única informação compartilhada com o Darksky é a latitude e a longitude, nada além disso. Para quem tem a própria instância, o Darksky oferece um plano gratuito de 1.000 chamadas por dia, o que deve ser mais do que suficiente.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018_12_22_weather.webp" alt="A ficha de um contato mostrando o clima atual no lugar onde essa pessoa mora." width="574" height="406" loading="lazy" decoding="async"></p>

<h3>Coordenadas GPS</h3>

<p>Falando em latitude e longitude, precisávamos de um mecanismo para obter essas duas informações de cada endereço cadastrado no Monica se quiséssemos exibir os dados do tempo. O Monica 2.11 agora consegue geocodificar automaticamente qualquer endereço para encontrar suas coordenadas.</p>

<p>Quando você insere um endereço, e se o serviço estiver configurado na sua instância, tentaremos geocodificá-lo automaticamente, a menos que você mesmo informe a latitude e a longitude do lugar.</p>

<p>A geocodificação é feita pelo LocationIQ, uma empresa independente e excelente que oferece um plano gratuito bem generoso de 10.000 chamadas por dia. Não compartilhamos com o LocationIQ nada além do endereço, apenas para obter as coordenadas.</p>

<h3>Tarefas</h3>

<p>No seu painel, agora você pode adicionar tarefas que não estão ligadas a nenhum contato.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-11-17-custom-tasks.webp" alt="A aba de tarefas do painel, com três tarefas que não pertencem a nenhum contato." width="1156" height="670" loading="lazy" decoding="async"></p>

<h3>Melhorias</h3>

<p>Reorganizamos bastante a forma como as coisas são escritas internamente, para continuar nossa busca por uma plataforma o mais estável possível. Também seguimos aumentando a cobertura de código (ou seja, o quanto do nosso código é de fato testado automaticamente). Estamos em 66% de cobertura para toda a base de código.</p>

<p>Esperamos que você goste da 2.11 tanto quanto nós.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Situação dos aplicativos móveis</title>
            <link>https://www.monicahq.com/pt/blog/state-mobile-apps/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/state-mobile-apps/</guid>
            <pubDate>Wed, 28 Nov 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Removemos os aplicativos móveis das lojas</description>
            <content:encoded><![CDATA[<p>Acabei de remover os aplicativos móveis tanto da Apple Store quanto da Play Store. A única forma de obtê-los agora é compilá-los a partir do repositório no GitHub.</p>

<p>Embora o <a href="https://github.com/Mokto">Theo</a> tenha feito um trabalho incrível na primeira versão desses aplicativos, o desenvolvimento parou no começo deste verão, enquanto o desenvolvimento do Monica, a plataforma, seguiu em frente. Agora estamos numa situação em que o app móvel não está no mesmo nível da plataforma e, pior, vamos quebrar coisas na API que o app não vai suportar.</p>

<p>Continuo acreditando firmemente que o crescimento e a adoção do Monica passarão por um aplicativo móvel.</p>

<p>Eu gostaria de prometer maravilhas e anunciar um app novo em 2 meses, mas, na realidade, não sei quanto tempo vai levar. Como o Monica ainda está no estágio de projeto paralelo, pode levar 6 meses ou 2 anos. Mas um dia teremos um ótimo aplicativo móvel, tão bom quanto a versão web (se não melhor).</p>

<p>Obrigado pela paciência.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Monica 2.10.0 com envio de documentos</title>
            <link>https://www.monicahq.com/pt/blog/v2.10.0/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/v2.10.0/</guid>
            <pubDate>Mon, 26 Nov 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Uma nova forma de enviar documentos</description>
            <content:encoded><![CDATA[<p>A versão 2.10.0 é o nosso 51º lançamento. Ela traz uma quantidade expressiva de novidades e é resultado de um mês de trabalho de 10 desenvolvedores, sem contar todos os tradutores que têm a gentileza de traduzir o Monica para 11 idiomas. Aqui estão alguns destaques.</p>

<p><strong>Autocompletar tags</strong></p>

<p>As tags são uma ótima maneira de categorizar pessoas. Com a 2.10.0, finalmente damos suporte ao autocompletar de tags. Abra um contato e edite as tags no cabeçalho: enquanto você digita, um menu aparece mostrando suas tags. Uma pequena mudança para o Monica, uma grande ajuda para os usuários.
Uma nota técnica: esse recurso foi desenvolvido inteiramente com VueJS, sem outra dependência. Estamos nos afastando do JQuery e, ao longo dos próximos meses, vamos aposentá-lo por completo.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-11-26-tags.gif" alt="Tags sendo adicionadas pelo cabeçalho de uma ficha, com sugestões aparecendo enquanto você digita." width="712" height="316" loading="lazy" decoding="async"></p>

<p><strong>Novo cabeçalho</strong></p>

<p>Falando em cabeçalho, já que estávamos mudando o funcionamento das tags, aproveitamos para redesenhar o cabeçalho do perfil de um contato. Isso vai permitir incluir muito mais informações úteis no futuro. Ele também ficou mais fácil de ler.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-11-26-new-header.webp" alt="O novo cabeçalho de uma ficha: a foto, o nome e os dados da pessoa em uma única linha." width="1345" height="267" loading="lazy" decoding="async"></p>

<p><strong>Documentos</strong></p>

<p>Agora você pode anexar documentos a um contato. Existe um limite configurável por instância de quanto armazenamento uma conta pode usar. Na nossa versão hospedada, o limite é de 512 MB por conta paga (armazenamento é barato, mas não quando você hospeda dezenas de milhares de contas).</p>

<p>Há também uma nova aba nas Configurações, chamada Armazenamento, que mostra o uso atual da sua conta e o limite dela.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-11-26-documents.gif" alt="O painel de documentos de um contato, com um arquivo sendo enviado." width="960" height="442" loading="lazy" decoding="async"></p>

<p><strong>Arquivar um contato</strong></p>

<p>Às vezes você quer adicionar um contato sem que ele apareça na lista de contatos. Arquivar o contato permite isso. Você encontra esse recurso no canto inferior esquerdo do perfil do contato.</p>

<p><strong>Outras melhorias</strong></p>

<ul>
<li>Corrigimos muitos bugs.</li>
<li>Melhoramos o suporte ao S3 para armazenar arquivos (imagens, documentos e afins).</li>
<li>Aumentamos bastante nossa cobertura de testes. Seis meses atrás estávamos em 25%. Com nosso esforço contínuo, agora estamos em 65%. Isso nos dá muito mais confiança de que não quebramos as coisas conforme avançamos.</li>
<li>Agora definimos automaticamente a moeda e o fuso horário dos novos usuários com base na localização deles.</li>
<li>Reescrevemos a importação e a exportação de vCard.</li>
<li>Também passamos a interpretar corretamente as propriedades FN ao importar vCards.</li>
</ul>

<p>Divirta-se com a versão 2.10.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Chegaram os acontecimentos de vida</title>
            <link>https://www.monicahq.com/pt/blog/life-events/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/life-events/</guid>
            <pubDate>Fri, 12 Oct 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Um jeito de montar uma linha do tempo com os principais acontecimentos da vida dos seus contatos</description>
            <content:encoded><![CDATA[<p>Eu não gosto do Facebook. Não é segredo. Mas, apesar da maldade geral deles, há recursos bacanas aqui e ali. Um deles é a possibilidade de registrar acontecimentos de vida que ocorreram com você. Como indicar quando você fez uma cirurgia ou quando reformou sua casa. Embora eu não entenda por que alguém daria essa informação ao Facebook, faz sentido registrar esse tipo de informação sobre as pessoas de quem você gosta. Então foi isso que acabamos de lançar.</p>

<p>Os acontecimentos de vida agora são uma nova aba na página de perfil de um contato.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-10-12-life-events-blank.webp" alt="A aba de acontecimentos de vida de um contato, vazia, oferecendo adicionar o primeiro." width="771" height="549" loading="lazy" decoding="async"></p>

<p>Você tem acesso a mais de 45 acontecimentos de vida que pode documentar. Também pode definir um lembrete para cada um deles.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-10-12-life-events-list.webp" alt="A lista de acontecimentos de vida para escolher, na categoria casa e moradia." width="735" height="321" loading="lazy" decoding="async"></p>

<p>Vale notar que você pode adicionar um acontecimento sem saber o mês ou o dia em que ele ocorreu.</p>

<p>Depois de adicionado, o acontecimento aparece em uma linha do tempo que será aprimorada em uma versão futura.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-10-12-life-events-details.webp" alt="Dois acontecimentos de vida na ficha de um contato, um casamento e uma reforma, cada um com sua data." width="845" height="366" loading="lazy" decoding="async"></p>

<p>Espero que você goste desse recurso e se divirta com ele.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Chegaram as conversas</title>
            <link>https://www.monicahq.com/pt/blog/conversations/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/conversations/</guid>
            <pubDate>Wed, 05 Sep 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Um jeito de registrar o que você conversa nas redes sociais ou por SMS</description>
            <content:encoded><![CDATA[<p>No fundo, o Monica serve para registrar informações sobre as pessoas de quem você gosta. Já dava para anotar muita coisa, mas você não tinha um jeito fácil de registrar o que disse a alguém em determinado momento.</p>

<p>Com a nossa <a href="https://github.com/monicahq/monica/releases">última atualização</a>, agora você pode registrar uma conversa que teve com alguém nas redes sociais, por SMS ou usando o Telegram, por exemplo. A interface que escolhemos lembra a dos aplicativos de mensagem mais conhecidos.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-09-05-conversations.webp" alt="O formulário para registrar uma conversa, mensagem por mensagem, indicando quem escreveu cada uma." width="727" height="735" loading="lazy" decoding="async"></p>

<p>Ao registrar uma conversa, você pode indicar por qual meio ela aconteceu. Essa lista vem dos tipos de campo de contato definidos na sua página de Configurações.</p>

<p>Esperamos que você faça bom proveito dessa novidade.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Monica 2.4.0</title>
            <link>https://www.monicahq.com/pt/blog/v2.4.0/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/v2.4.0/</guid>
            <pubDate>Wed, 25 Jul 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Muitas funcionalidades pequenas foram lançadas nesta versão.</description>
            <content:encoded><![CDATA[<p>Nos últimos dois meses lançamos <a href="https://github.com/monicahq/monica/releases">um monte de novidades úteis</a> e ficamos silenciosos demais sobre isso.</p>

<p>Aqui estão algumas das mudanças mais importantes:</p>

<ul>
<li>Remoção da criação automática de lembrete de aniversário ao editar um contato: isso irritava muitos usuários. De agora em diante, quando você adicionar ou editar um contato e informar uma data de nascimento, não criaremos automaticamente um lembrete para esse evento.</li>
<li>As dívidas de todos os seus contatos agora aparecem no painel.</li>
<li>Acrescentamos a conformidade com o GDPR. Essa nova lei europeia nos obriga a confirmar seu endereço de e-mail no cadastro. Eu queria evitar isso, mas legalmente não temos escolha.</li>
<li>Melhoramos a importação de contatos por CSV. O processo deve funcionar melhor agora.</li>
<li>Acrescentamos um novo tipo de relacionamento entre contatos: ex-esposa/ex-marido.</li>
<li>Há um novo filtro na lista de contatos que permite ver os contatos que não estão associados a nenhuma tag.</li>
<li>Finalmente damos suporte a apelidos para seus contatos. Você também pode escolher como quer exibir os nomes na sua conta.</li>
<li>Suporte a Yubikey, mais um recurso de segurança para quem quer uma camada extra de proteção.</li>
</ul>

<p>Em outra nota, já faz mais de um ano que o Monica foi lançado no Hacker News. O crescimento foi bem incrível, especialmente no que diz respeito à comunidade no GitHub. Agora temos mais de 110 pessoas contribuindo para construir o Monica, o que é ótimo. Dito isso, há uma contrapartida: lançamos muitas novidades e, por causa desse ritmo, não fomos cuidadosos o bastante nos últimos meses. O Monica não está tão estável quanto deveria. Nada dramático ou crítico, mas as duas últimas versões tiveram bugs bobos que poderíamos ter evitado, e vamos adotar medidas para aumentar as chances de que isso não se repita. Lançar versões sem bugs é especialmente importante porque o Monica ainda é um projeto paralelo, e o pior que pode acontecer é perceber que algo está muito errado na plataforma enquanto você está no trabalho e ter que esperar até arrumar tempo para corrigir e implantar em produção (geralmente quando voltamos para casa e temos que lidar com as crianças e afins). No dia a dia, acredite, é o tipo de preocupação que ninguém quer ter.</p>

<p>Tudo isso para dizer que vamos tentar focar em qualidade de modo geral.</p>

<p>Continuem enviando feedback por e-mail ou abrindo uma issue no GitHub. Lemos cada mensagem e a opinião de vocês é importante para nós (de verdade).</p>
]]></content:encoded>
        </item>
        <item>
            <title>O aplicativo móvel chegou</title>
            <link>https://www.monicahq.com/pt/blog/mobile-application/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/mobile-application/</guid>
            <pubDate>Mon, 28 May 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>O aplicativo móvel oficial acaba de chegar.</description>
            <content:encoded><![CDATA[<p>Recebo e-mails pedindo um aplicativo móvel quase todo dia desde o lançamento público em junho de 2017.</p>

<p>Eu entendo o motivo. Um app móvel para o Monica faz muito sentido. Você quer ter a informação disponível na hora, onde quer que esteja, no momento certo. Não quando está em casa na frente do computador.</p>

<p>Começamos a trabalhar no aplicativo móvel 6 meses atrás. É bastante tempo. Ainda assim, acho que a maioria das pessoas não imagina o trabalho necessário para lançar um aplicativo móvel. Especialmente quando 99,9% do código é feito por uma única pessoa (o incrível @mokto). Que tem um emprego. E que não é pago para fazer isso.</p>

<p>Nesses meses, dedicamos muito esforço a criar tudo o que o aplicativo móvel precisaria. A API mudou bastante para permitir certos recursos. Estabilizamos o backend para garantir que tudo funcione sem falhas. Também passamos bastante tempo configurando direito o repositório do app no GitHub, o que vai nos permitir avançar mais rápido no futuro (estamos falando de uma boa integração contínua, testes unitários, publicação automática nas lojas e assim por diante).</p>

<p>E seis meses depois temos orgulho de anunciar que a primeira versão do aplicativo móvel está disponível <a href="https://itunes.apple.com/ca/app/monica-personal-crm/id1339447754?mt=8">no iOS</a> e no <a href="https://play.google.com/store/apps/details?id=com.monicahq.app">Android</a>.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-05-28-mobile-app.webp" alt="O aplicativo móvel da Monica em três telefones: a ficha de um contato, a lista de contatos vazia e a tela de atividades." width="1950" height="1096" loading="lazy" decoding="async"></p>

<p>Há uma ressalva: <em>esta primeira versão é somente leitura</em>. Ou seja, você não pode adicionar nem editar nada. Queremos ter um ótimo aplicativo, mas queremos ir devagar e garantir que ele funcione bem. Assim que tivermos confiança de que esta versão funciona para todo mundo, vamos acrescentar recursos que permitirão manipular completamente seus dados como quiser (dica: já começamos a trabalhar em uma nova versão).</p>

<p>Fora isso, este app móvel tem tudo o que você espera de nós:</p>

<ul>
<li>Uma interface simples e amigável.</li>
<li>Você pode se conectar à nossa versão hospedada do Monica ou entrar na sua própria instância.</li>
<li>O código é aberto. Você pode ler o código, abrir issues, contribuir. Tudo o que fazemos é aberto e transparente, e acreditamos que só a colaboração leva ao melhor produto.</li>
<li>Código aberto significa que você pode <em>compilar e rodar o aplicativo móvel sem precisar passar pelas lojas oficiais da Apple e do Google</em>, o que é bem incrível, na minha opinião.</li>
<li>Não exibimos anúncios e não revendemos seus dados.</li>
<li>Não temos rastreamento nenhum no nosso código.</li>
<li>O app é gratuito. Sem pegadinhas.</li>
</ul>

<h3>Como você pode ajudar?</h3>

<p>Precisamos de pessoas que queiram testar o aplicativo e <a href="https://github.com/monicahq/chandler/issues">nos contar se há bugs</a>, basicamente. Também gostaríamos da sua opinião sobre o que devemos construir em seguida, ou como poderíamos melhorar o app (em termos de experiência ou de layout).</p>

<h3>O que vem a seguir?</h3>

<p>Nos próximos dias vamos melhorar a documentação do repositório oficial no GitHub, para que fique bem fácil para os desenvolvedores que quiserem ajudar entrarem no projeto.</p>

<p>Nos próximos meses vamos acrescentar a possibilidade de alterar seus dados dentro do aplicativo móvel. O objetivo final é que tudo o que você faz na web possa ser feito no celular (com exceção da exportação dos seus dados, porque como guardar um arquivo no iOS...). É por isso que agora construímos os recursos primeiro na API e depois na interface (web e móvel).</p>

<p>Para concluir, diria que tenho muito orgulho do que realizamos até aqui, e ainda mais da comunidade que nos ajuda todos os dias. O feedback e a ajuda de vocês tornam o Monica possível.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Mantenha contato com quem você ama</title>
            <link>https://www.monicahq.com/pt/blog/stay-in-touch/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/stay-in-touch/</guid>
            <pubDate>Thu, 03 May 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Receba um e-mail em intervalos regulares para manter contato com as pessoas queridas</description>
            <content:encoded><![CDATA[<p>Há pessoas na sua vida que são especialmente importantes e sobre as quais você não quer perder nada. Agora você pode usar o novo recurso "Manter contato" para receber um aviso sobre uma pessoa específica em intervalos regulares, definidos por você.</p>

<p><img src="https://www.monicahq.com/assets/images/blog/2018-05-03-stayintouch.gif" alt="A ficha de um contato com o link de manter contato abaixo do nome." width="1136" height="580" loading="lazy" decoding="async"></p>

<p>O recurso envia um e-mail a cada poucos dias. Ele não leva em conta a última vez que você interagiu com alguém ou registrou uma atividade.</p>

<p>A <a href="https://github.com/monicahq/monica/releases/tag/v2.1.0">versão 2.1.0</a> também traz suporte a Markdown no diário e nas notas. Além disso, corrigimos muitos bugs e continuamos melhorando nossas imagens Docker e Vagrant.</p>

<p>Obrigado por todos os e-mails que vocês enviam e pelas issues que abrem no GitHub. Isso ajuda muito a saber no que devemos trabalhar em seguida (embora já tenhamos uma boa ideia do que queremos fazer).</p>
]]></content:encoded>
        </item>
        <item>
            <title>Monica 2.0.0 com relacionamentos melhores</title>
            <link>https://www.monicahq.com/pt/blog/v2.0.0/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/v2.0.0/</guid>
            <pubDate>Mon, 16 Apr 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Melhor gestão de relacionamentos e muito mais.</description>
            <content:encoded><![CDATA[<p>Na semana passada lançamos uma nova versão importante. Tão importante que precisamos subir o número da versão para 2.0.0. Aqui está a lista das principais mudanças que vieram com este lançamento (leia o changelog completo para ver todas as mudanças).</p>

<p>Redesenho dos relacionamentos</p>

<p>O Monica sempre permitiu ligar contatos entre si. Só que essa ligação se limitava a relações de mãe ou pai com filho, ou a relações amorosas. Não era o sistema mais flexível. A partir de agora, você pode ligar contatos com muitos tipos diferentes de relacionamento, como tio/sobrinho, colega de trabalho, mentor/pupilo e assim por diante. A lista completa dos relacionamentos possíveis está definida aqui.</p>

<p>Também tentamos respeitar os gêneros quando é possível. Se os contatos forem mulheres, por exemplo, diremos "tia" em vez de "tio", e assim por diante. Isso é um desafio e tanto para contatos com gênero personalizado. Ainda não cobrimos esse caso, mas estamos buscando uma boa solução.</p>

<p>Essa foi a maior mudança que já fizemos no Monica. Apesar de um longo período de testes, tivemos alguns solavancos ao implantar a novidade, e espero que agora tudo esteja mais estável.</p>

<p>Escolher quais recursos ficam ativos na ficha de um contato</p>

<p>Agora existe uma opção para personalizar quais recursos você quer usar com seus contatos. Na aba Personalização, dentro das Configurações, você pode ligar e desligar os recursos que interessam a você. Se não quiser exibir a seção Presentes, por exemplo, pode escondê-la.</p>

<p>Data nas entradas do diário</p>

<p>Agora você pode indicar uma data para uma entrada do diário, o que dá mais controle sobre ele.</p>

<p>Idiomas da direita para a esquerda</p>

<p>Agora damos suporte a idiomas escritos da direita para a esquerda, começando pelo hebraico. Agradecemos à nossa incrível comunidade de tradutores por tornar isso possível e por suas contribuições ao processo de tradução em geral.</p>

<p>Markdown nos comentários de atividade</p>

<p>O Markdown é uma ferramenta de formatação fantástica. Já o usávamos nas notas de ligação e agora também no comentário de uma atividade.</p>

<p>Nota final</p>

<p>Temos muita sorte de ter uma ótima comunidade em torno deste projeto. Quero agradecer a cada pessoa que contribuiu (já são mais de 100) com código, a cada tradutor pelo esforço enorme de traduzir os milhares de palavras do aplicativo e a cada assinante e doador pela contribuição financeira. Tudo ajuda. Num mundo que finalmente percebe o quanto as grandes plataformas sociais destroem a privacidade dos usuários e afetam as relações entre as pessoas, precisamos de projetos independentes e de código aberto como o Monica para recuperar nossa fé em como os relacionamentos humanos podem ser bons.</p>

<p>A versão 2.0.0 já está disponível para download e está no ar na nossa versão hospedada.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Sobre ter configurações demais</title>
            <link>https://www.monicahq.com/pt/blog/too-many-settings/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/too-many-settings/</guid>
            <pubDate>Mon, 09 Apr 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Tudo bem ter configurações demais?</description>
            <content:encoded><![CDATA[<p>Com o passar do tempo, acrescentamos cada vez mais configurações ao Monica. Isso vai contra o que acredito e contra algo que tentei evitar por muitos anos: não polua seu software com um número interminável de configurações e opções de personalização.</p>

<p>Um produto deve ter opinião e seguir a própria visão, mesmo correndo o risco de afastar usuários em potencial. Por que alguém se cadastraria no seu produto se ele não tem uma voz ou um jeito próprio de fazer as coisas? Minha visão inclui um produto simples e poderoso, com o mínimo possível de configurações.</p>

<p>Como diabos, então, fomos acrescentar uma aba de Personalização dentro das Configurações?</p>

<p>Minha intenção é permitir personalização para coisas que eu não posso controlar nem decidir sozinho. O Monica não é uma ferramenta corporativa. Ele deve refletir a vida real das pessoas e se adaptar à situação única de cada uma. Um dos erros que cometi no começo foi com os gêneros, por exemplo: a princípio eu só permitia dois, masculino e feminino. Essa era a minha realidade, mas não a de muitas e muitas pessoas. Em vez de decidir pelos nossos usuários, acrescentamos a flexibilidade de definir seus próprios gêneros, os que correspondem à sua realidade e não à nossa. Pretendo fazer isso para cada conceito que represente aspectos importantes das nossas vidas.</p>

<p>Vale notar que as configurações não incluirão personalizar o número de elementos exibidos em uma página nem detalhes insignificantes assim. Eles simplesmente não importam.</p>

<p>Espero que isso esclareça um pouco para onde estamos indo com a personalização do produto em geral.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Nosso primeiro prêmio</title>
            <link>https://www.monicahq.com/pt/blog/our-first-award/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/our-first-award/</guid>
            <pubDate>Wed, 21 Mar 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Ganhamos o prêmio Open Source Rookie of the Year.</description>
            <content:encoded><![CDATA[<p>Recebemos <a href="https://www.infoworld.com/article/3263736/open-source-tools/the-best-open-source-rookies-of-2018.html">nosso primeiro prêmio</a>: Open Source Rookie of the Year 2018, que reconhece alguns dos projetos de código aberto mais inovadores e influentes lançados a cada ano. É ótimo ver o Monica sendo reconhecido, mas a comunidade também merece esse reconhecimento. É graças a vocês, a comunidade, que estamos aqui hoje. Vocês são a força motriz deste projeto, a razão pela qual o construímos, e ajudam a decidir o que devemos fazer em seguida. Tenho orgulho de fazer parte desta aventura. Vamos escrever uma bela história com ela.</p>
]]></content:encoded>
        </item>
        <item>
            <title>Sobre design de produto</title>
            <link>https://www.monicahq.com/pt/blog/product-design/</link>
            
            <guid isPermaLink="true">https://www.monicahq.com/pt/blog/product-design/</guid>
            <pubDate>Tue, 13 Mar 2018 00:00:00 +0000</pubDate>
            <dc:creator>Regis Freyd</dc:creator>
            <description>Bom design de produto: valor para o usuário &gt; facilidade de uso &gt; velocidade &gt; design.</description>
            <content:encoded><![CDATA[<p>Há um tempo publiquei esta fórmula:</p>

<p>Bom design de produto: valor para o usuário > facilidade de uso > velocidade > design</p>

<p>Gostaria de explicar o raciocínio por trás dela.</p>

<p>O que é design de produto? É a combinação do que um produto faz com a forma como ele faz.</p>

<p>Quem faz design de produto tem mais responsabilidade do que simplesmente escolher como as coisas devem parecer ou se comportar. Essas pessoas constroem a maneira como os usuários interagem com o produto. Para fazer bem o trabalho, precisam levar em conta uma enorme quantidade de critérios. Ainda assim, vale a pena perguntar quais critérios devem ter prioridade sobre outros no processo de design, quando não dá para cobrir todo o espectro do que constitui uma boa prática.</p>

<p>O mais importante que um produto (ou funcionalidade) deve fazer é trazer valor para o usuário. Qualquer outra consideração vem depois. Seu produto pode ser lento, feio, difícil de usar, cheio de bugs: se o seu trabalho ajudar as pessoas a resolver um problema específico que as incomoda, elas vão aguentar qualquer coisa para usá-lo. Não se pode dizer o mesmo de um produto lindo que não traz valor nenhum: ninguém vai usar.</p>

<p>Uma vez que você tenha certeza de que o produto ou a funcionalidade traz valor, pode colocar sua energia em criar uma ótima experiência de uso. Isso não significa deixá-lo bonito, nem mesmo agradável. Só realmente simples de usar, ou realmente fácil de entender. As pessoas chegam ao seu produto porque você prometeu algo a elas, o que costuma se resumir a tornar a vida delas mais fácil ou o trabalho mais simples. Elas vão querer aproveitar sua solução o mais rápido possível e vão valorizá-la menos se não conseguirem fazer de forma simples o que você pede, ou se for tão complexo que as faça se sentir burras.</p>

<p>Quando seu produto traz valor suficiente e é simples de usar, é hora de focar na velocidade. Grandes produtos são rápidos. Eles não desperdiçam o tempo precioso dos usuários. Quanto mais rápido é um produto, mais confiança ele passa. A maioria dos times com que trabalhei acha que uma funcionalidade está entregue assim que o código está pronto e passa no controle de qualidade. No entanto, uma funcionalidade não deveria ser considerada completa se não for tão rápida quanto poderia. Seu produto é a soma das suas funcionalidades. Se você começar a introduzir funcionalidades lentas aqui e ali, o conjunto vai acabar sofrendo. Os usuários desvalorizam produtos lentos.</p>

<p>Por fim, quando um produto traz valor suficiente, é fácil de usar e é rápido, você pode deixá-lo bonito se sobrar tempo ou dinheiro para isso. Mas não é necessário em si. Eu iria até mais longe: se algo traz valor suficiente para o usuário, o design é irrelevante. A aparência é a cereja do bolo. O design em si não deveria ser seu principal diferencial. Ele ajuda a distinguir um pouco o seu produto dos concorrentes quando você fizer sucesso e muitos imitadores fizerem exatamente o que você faz, exatamente do mesmo jeito. Dito isso, se o seu principal diferencial é só uma questão de design, você tem outros problemas para resolver antes. Design é uma tendência que muda com frequência e rapidez. O que hoje é visto como bonito será menos valorizado amanhã, simplesmente porque sim.</p>

<p>Todos os dias eu uso o Monica. E todos os dias eu gostaria que ele tivesse um design melhor, uma experiência melhor e fosse mais rápido. Mas não priorizo esses aspectos de forma alguma e, embora isso me doa bastante, prefiro criar o máximo de valor possível antes de tudo. Quando o Monica chegar a um ponto em que possamos nos dar ao luxo de dedicar tempo a melhorar as coisas, isso significará que teremos criado um produto que traz um valor enorme, extremamente fácil de usar e rápido o bastante para todo mundo. Ainda não chegamos lá.</p>

<p>Resumindo: o que você gostaria que seus usuários dissessem sobre seu trabalho? "Tá, não é bonito, mas é tão útil que nem ligo" ou "Tá, é lindo, mas não entendo nem por que este produto existe".</p>
]]></content:encoded>
        </item>
    </channel>
</rss>
