Kowa

Atualizações diárias sobre o que eu estou construindo.

Ontem eu escrevi uma especificação rápida da versão 0.1 mais simples que eu consegui pensar, pra usar como ponto de partida:

  • usuários
  • projetos visíveis para usuários, com campos explicando o que precisa ser feito

Esse é o ponto de partida mais básico. Vou usar o cursor pra gerar o código seguindo a especificação, e seguir evoluindo a partir disso.

Usando o objetivo como filtro, fica óvio que preciso incluir:

  • os projetos
  • o usuário em si
  • ferramentas para ajudar nos projetos (talvez a parte mais importante, boas ferramentas = usuários mais felizes)

Uma forma de filtrar o que entra e o que não entra na v0.1 é entender qual é o objetivo da v0.1:

Ajudar programadores a aprenderem uma nova stack ou linguagem usando projetos reais.

Mesmo o protótipo mais simples precisa entregar esse objetivo de alguma forma e remover o máximo possível de obstáculos que atrapalhem esse objetivo.

Fiz uma lista do que eu espero que a plataforma faça no longo prazo, agora preciso cortar sem dó pra ter um protótipo funcional o mais breve possível.

PLANO DO DIA

  • Definir a versão 0.1 da plataforma de programação na prática
  • Selecionar 3 projetos para serem os projetos iniciais da plataforma e começar a especificação deles

Como eu resolvi usar software como veículo para o produto de educação para programadores, o foco hoje é definir uma versão 0.1 mínima, que eu possa usar para entregar uma versão low-ticket da solução e validar algumas hipóteses.

Perguntei no Instagram:

Dá pra aprender uma linguagem ou stack nova apenas fazendo projetos?

  • 71% disse que sim
  • 29% disse que não

O caminho parece promissor :)

Acabei de perceber 2 coisas:

  • eu tendo a postar menos aqui quando não estou programando (e o mesmo é verdade no Instagram)
  • o plano que eu tinha montado pra lançar um produto de educação para programadores joga fora uma das minhas maiores vantagens competitivas (escrever software)

Diretamente das páginas do planner do dia de hoje:

Será que eu deveria perseguir isso na forma de um software, uma plataforma? Acho que sim.

Fazer isso é mais arriscado porque o custo é maior, mas resolve os 2 itens acima: me dá mais assunto pra postar (ótimo pra marketing) e alavanca a minha experiência de criar software não só no conteúdo, mas também no veículo de entrega desse conteúdo.

Hora de seguir nessa direção.

Postei uns stories perguntando se o pessoal teria interesse numa lista de projetos prontos para fazer, pra aprender uma stack nova e usar de portfólio. Quero ver o nível de resposta com base nas visualizações.

Eu consegui comprar o domínio napratica.com.br durante o último processo de liberação do RegistroBR, mas aparentemente tem alguém usando a versão .org.br e isso pode confundir as pessoas. Por desencargo, peguei o .dev também, que aí fica mais relacionado ao meu mercado.

PLANO DO DIA

  • verificar o resultado do processo de liberação do domínio napratica.com.br
  • agrupar, selecionar e nomear os bonus pra compor a oferta do produto
  • escolher 3 projetos da lista para servir de base para o produto
  • começar a especificação de cada um dos projetos

Ontem eu fiz uma lista de projetos interessantes pra desenvolver na hora de aprender uma nova stack. Sistemas simples, do mundo real, que podem até evoluir e virar produtos no futuro, e que podem ensinar o básico sobre qualquer stack que alguém queira aprender.

PLANO DO DIA

  • listar potenciais avatares para o produto de prática de programação
  • desenhar oferta para cada um deles, com base no que eles estão buscando (o resultado almejado)
  • trabalhar no produto em si

Eu quero lançar um produto que ajuda programadores a praticar quando eles estão aprendendo alguma linguagem ou tecnologia nova.

Parei pra pensar nas coisas que aprendi estudando em sala de aula vs. coisas que aprendi na prática, e acho que 90% foi fazendo na prática e procurando a teoria quando precisava dela.

Acredito que muita gente prefere dessa forma, e eu quero ajudar nisso.

Programar é resolver problemas do mundo real usando software. A lista do que você precisa aprender vai surgir quando você pegar um problema pra resolver.

Como eu uso Apache como servidor, dá pra forçar o HTTPS usndo um arquivo .htaccess e usando o módulo de URL rewriting:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

PLANO DO DIA

  • forçar HTTPS tanto aqui no blog quanto no planner
  • focar 100% nas ofertas que preciso testar para o produto sobre programação que vou lançar

Refatorei boa parte do código do planner pra permitir que eu rode ele no meu servidor com tranquilidade. O que eu fiz:

  • reorganizei o código pra remover o que estava duplicado nos arquivos de entrypoint (index.php e note.php)
  • adicionei uma camada de login, com as devidas proteções de segurança
  • troquei o salvamento dos dados em arquivos por um banco SQLite

Agora eu tenho o sistema online, protegido por senha, que posso usar tanto no PC quanto no celular.

Depois de alguns ajustes, consegui melhorar o visual do planner.

O calendário:

Visão do calendário do planner

O editor:

Visão do editor do planner

Usei muito o Cursor ontem para agilizar a criação desse sistema de microblog.

Experimentei fazer ele seguir um spec file, que descrevia o que eu queria com o máximo de detalhes que fazia sentido, e funcionou muito bem pra criar a versão 0.1.

Depois disso, fiz pequenos ajustes visuais e uma revisão de segurança usando o próprio Cursor. Corrigimos ao menos 3 ou 4 vulnerabilidades depois da revisão.

PLANO DO DIA

Agora que eu consegui parar de postar os updates usando HTML puro, o plano do dia é:

  • fazer ajustes no layout do planner para que ele deixe de ter a cara de um sistema feito por um programador backend, e passe a ter a cara de um sistema que foi criado por um designer 🤞🏻
  • seguir os mesmos padrões que eu usei nesse microblog para publicar o planner em algum domínio, protegido com senha, pra eu poder usar tanto no PC quanto no celular (e dar um passo na direção de transformar ele em um produto)
  • voltar a trabalhar na oferta do produto sobre programação que quero lançar