2 pontos por dopeflamingo 2026-01-31 | 16 comentários | Compartilhar no WhatsApp

Olá.
Sou um desenvolvedor em atividade que, ultimamente, vem criando open source como hobby depois do expediente e nos fins de semana.

Pessoalmente, gosto muito da sintaxe intuitiva do Streamlit, e sei que muitos amigos ao meu redor que trabalham com pesquisa em AI/Data também o utilizam bastante. Mas também vi com frequência as pessoas sofrerem com problemas de desempenho à medida que os projetos crescem. Como alternativa, eu costumava recomendar o NiceGUI, mas as pessoas tinham certa dificuldade para se adaptar à sintaxe. (Acho que o NiceGUI foi criado inicialmente por uma empresa alemã para uso interno... e considero que é um framework realmente muito bem feito.)

Além disso, acredito que a “estética” também é muito importante na hora de mostrar dados. Porém, percebi que, com os frameworks de GUI baseados em Python que já existiam, não era tão simples assim criar algo visualmente bonito. Em especial, uma grande desvantagem do NiceGUI é que não é fácil sair do Material Design do Quasar.

Por isso, acabei criando eu mesmo o Violit, com o objetivo de ser uma “ferramenta tão fácil quanto o Streamlit, mas com desempenho rápido e estilização simples”. A base da arquitetura é sustentada por FastAPI e shoelace(Lit). As principais características são as seguintes.

💜 Principais características do Violit

  1. Intuitividade 90% semelhante ao Streamlit
  • Se você já tem experiência com Streamlit, a API foi desenhada de forma intuitiva para que seja possível começar a usar praticamente sem curva de aprendizado.
  1. O(1) Reactivity & Clean Syntax
  • Diferente do Streamlit, apertar um botão não faz o script inteiro rodar de novo (No Re-run).
  • Mesmo sem decoradores de otimização como @st.cache, é possível gerenciar estado de forma rápida e concisa apenas com declarações simples de variáveis (state). (O conceito de signal do solid.js foi usado como referência.)
  1. Easy Theming System
  • Atualmente, há suporte a cerca de 30 temas predefinidos, permitindo aplicar uma UI bonita imediatamente.
  • Em breve, também pretendo lançar uma atualização com a funcionalidade de o próprio usuário personalizar os temas.
  1. Hybrid Engine & Multi-Platform
  • O framework conta com um engine flexível que suporta tanto o modo Lite com HTMX quanto o modo WebSocket, conforme a escolha do usuário. No começo tudo parece bem, mas pensei que, no futuro, quando o número de usuários crescer, talvez o WebSocket possa acabar deixando tudo mais lento.
  • Sem alterar o código, é possível alternar livremente entre o modo de serviço Web e o modo de app Desktop (pywebview).

Não sei até onde esse projeto vai conseguir se expandir, mas tenho uma pequena expectativa de que, se ele for bem lapidado, será possível construir serviços em nível de MVP — que antes seriam feitos com Django ou RoR — muito mais rapidamente usando apenas Python. Para mostrar essa possibilidade na prática, também incluí um exemplo de código de construção de blog feito com Violit.

Ainda está em um estágio totalmente inicial, v0.0.4 (PoC), mas recebeu uma reação bastante positiva no Reddit e, em apenas 2 semanas desde a publicação, já passou de 200 estrelas, então tomei coragem para compartilhar aqui também. Quase sempre fiz desenvolvimento de software apenas como parte do meu trabalho na empresa... e este é o meu primeiro projeto open source totalmente público. Pessoalmente, estou sentindo muita diversão no desenvolvimento puro de software.

Se algum dia você for criar algo como Web UI em Python, ficarei grato se puder dar uma olhada :)

16 comentários

 
realg 2026-02-04

Apoio totalmente.

 
dopeflamingo 2026-02-05

Muito obrigado pelo apoio. :) Vou continuar atualizando com dedicação e alegria. Isso tem sido muito gratificante.

 
rainystar 2026-02-02

Recentemente tentei fazer automação de trabalho usando PyWebView. Como é para desktop, eu estava pensando em como lidar com a web... Se eu usar isso no PyWebView, será que dá para usar facilmente também na web?

 
rainystar 2026-02-02

Será que algo desenvolvido com pywebview pode ser facilmente migrado para um site usando o violit?

 
rainystar 2026-02-02

Como a pergunta talvez não tenha sido específica o bastante, vou refazê-la.

Atualmente estou criando e usando um aplicativo desktop com pywebview.
Fiquei curioso porque o Violit diz oferecer suporte multiplataforma para web/desktop (pywebview).

  1. Na prática, é relativamente fácil migrar um app existente baseado em pywebview para a estrutura do Violit?
  2. A documentação diz que é possível alternar entre web/desktop sem modificações,
    mas queria saber se, em escala de serviço real, a arquitetura realmente permite expandir para um serviço web mantendo estruturalmente a mesma base de código. (Do ponto de vista da estrutura de implantação pywebview → web)
 
dopeflamingo 2026-02-05

Olá. A dificuldade da migração varia bastante dependendo da estrutura do app existente que você criou.

Se o app existente foi implementado apenas com a API JS do pywebview ou com carregamento de HTML local, sem um servidor web separado, como FastAPI, então para fazer o deploy na web será preciso reescrever a camada de comunicação do zero. Portanto, talvez não seja fácil converter diretamente para a web o código que você escreveu de forma simples com pywebview.

Você pode considerar que essa parte não tem relação com o violit. Em vez de o violit converter um app existente feito com pywebview, a ideia é que, ao criar com violit, ele já seja projetado desde o início para oferecer suporte simultâneo a web e pywebview (desktop).

 
rainystar 2026-02-06

Obrigado.

 
dopeflamingo 2026-02-08

Preparei uma página web de demonstração e a documentação para que você possa experimentar imediatamente.
Acho que vale a pena dar uma olhada. :)

Como referência, os dois sites foram feitos com Violit.

 
rainystar 2026-02-08

Obrigado. Estou pensando em tentar usar isso no trabalho da empresa!!

 
dopeflamingo 2026-02-09

Perfeito, obrigado. Use à vontade e, se encontrar algum ponto incômodo, por favor me avise.

 
darjeeling 2026-01-31

Parece que seria preciso reforçar um pouco os testes e a documentação.

 
dopeflamingo 2026-02-08

Já deixamos preparada uma página de demonstração para você testar agora mesmo, além da documentação.
Acho que vale a pena dar uma olhada. :)

Só para constar, os dois sites foram feitos com o Violit.

 
dopeflamingo 2026-02-02

Sim, obrigado pelo ótimo feedback. A implementação atual está no nível de POC, e há muitas breaking changes na interface pública e no nível de design, então o plano atual é adicionar testes a partir da versão 0.5.

Como você mencionou, estamos priorizando a abertura do site oficial e o trabalho de documentação, então parece que isso será lançado em breve. Como o primeiro público-alvo são os usuários atuais do Streamlit, e a sintaxe é quase idêntica, acabamos sentindo um pouco menos de necessidade de documentar.

Por favor, aguarde só mais um pouco~

 
jayhanx 2026-01-31

Seria ótimo se houvesse uma página de demonstração na web para poder testar na hora.

 
dopeflamingo 2026-02-08

Deixamos preparados abaixo uma página web de demonstração que você pode usar imediatamente, além da documentação.
Acho que vale a pena dar uma olhada. :)

Só para constar, os dois sites foram feitos com o Violit.

 
dopeflamingo 2026-01-31

Sim, obrigado pela ótima sugestão. Como ainda está em uma versão inicial, ainda não temos um site, mas quando criarmos um, provavelmente você poderá experimentar vários widgets na web. Acima de tudo, no momento estamos ajustando o design aos poucos para destacar que ele pode ser feito de forma mais bonita do que outras alternativas. :)