Feeds
Global e Following ligam relações entre utilizadores, queries e estado da interface.
01 / Projeto
Independent Music Platform
Uma plataforma web de música independente, criada de raiz como projeto solo. Publicação, descoberta e interação reunidas numa experiência de reprodução integrada.

01 / produto
O Voidhall dirige-se a artistas e ouvintes de música underground — trap, plug, rage, cloud rap e experimental. A inspiração cultural vem de uma internet musical mais comunitária, com espaço para encontrar artistas fora dos circuitos mais óbvios.
O produto liga publicação, perfis, feeds e descoberta. As decisões de interface procuram tornar essas relações claras, mantendo a reprodução integrada nas diferentes áreas da aplicação.


02 / publicacao
Publicar uma track envolve o ficheiro de áudio, metadata, ownership e opções de visibilidade. Esses dados têm de continuar coerentes na página da track, no perfil, nos feeds e no player.
Implementei o fluxo de publicação ligado ao backend e à base de dados, com suporte para tracks públicas e privadas, edição e regras de acesso.
A privacidade continua em hardening. As regras de autorização e os comportamentos de conteúdo privado estão a ser refinados ao longo dos fluxos.

03 / player
O player global liga a música selecionada aos controlos de reprodução e às diferentes páginas. Play/pause, timeline, seek e volume exigem coerência entre o estado do áudio e aquilo que a interface mostra.
Desenvolvi um componente próprio e reorganizei a sua estrutura, lógica e styling. O trabalho inclui sincronização, comportamento responsivo e debugging dos estados de reprodução.

04 / descoberta
O feed Following responde a quem o utilizador já acompanha. O Global dá acesso à atividade geral. O Explore cria outra entrada: encontrar música e artistas com lógica própria de seleção, diversidade e rotação.
O Explore combina regras de visibilidade, cache e TTL para manter resultados coerentes entre atualizações. A lógica está funcional e desenvolvida; os refinamentos atuais incidem na consistência e na experiência.

Global e Following ligam relações entre utilizadores, queries e estado da interface.
Seleção e rotação de conteúdo com diversidade, caching e atualização periódica.
Uma dimensão social e temporal já presente, ainda em integração e polish.
05 / arquitetura
O frontend em Vue e o backend em Laravel têm responsabilidades mais separadas do que na primeira implementação. Routes, controllers, models, migrations e relações suportam os fluxos da interface e as regras do produto.
Na camada visual, tenho centralizado componentes, modais e skeletons, reduzindo duplicação. Estilos base, componentes reutilizáveis, páginas e player têm responsabilidades próprias.
Modelação relacional, queries, validação, autenticação, autorização e ownership.
Requests assíncronos, cache, TTL e polling, equilibrando atualização da interface e carga do servidor.
Componentes Vue, skeletons reutilizáveis, arquitetura CSS e consistência entre páginas.

06 / evolucao
O projeto começou com PHP, MySQL, JavaScript, HTML/CSS e navegação AJAX. Essa versão permitiu aprender através de uma plataforma funcional e perceber como as diferentes partes de uma aplicação se relacionam.
Mais tarde, reconstruí praticamente toda a aplicação com Laravel e Vue. O processo trouxe maior separação de responsabilidades, reutilização e organização dos sistemas.
Hoje, uma parte importante do trabalho está nos casos-limite: permissões, URLs de media, áudio, cache, consistência entre páginas e refactoring. A evolução inclui rever decisões anteriores e manter o produto coerente.
PHP + MySQL + JavaScript, com navegação AJAX e os primeiros fluxos da plataforma.
Laravel e Vue, componentes reutilizáveis e uma separação mais clara entre frontend e backend.
Polish, debugging, hardening e melhoria de fluxos completos sobre uma base já funcional.
07 / estado
O Voidhall encontra-se em private beta. Os sistemas principais existem; o foco atual é melhorar robustez, coerência e experiência antes de alargar o produto.
Contacto / Vamos conversar