Um único link na sua bio, com o seu nome
Você coloca links.seusite.com na bio do Instagram, do TikTok ou do YouTube. Por trás, você muda botões ou tema quando quiser, sem mexer na bio. E o endereço leva o seu nome, não o de um fornecedor.
Pessoal
Uma página de links. Esse é o app inteiro.
O Linktree custa US$9–24 / mês, ou seja, US$108–288 por ano. Você tem dois caminhos:
Opção 1 · Instalar
O LinkStack é o Linktree ou o Beacons na sua casa: uma página com a sua foto, o seu texto e os seus botões para Instagram, YouTube, sua newsletter ou sua loja, no seu próprio servidor e com o seu próprio domínio. Você muda o visual com temas da comunidade, acompanha seus cliques com estatísticas embutidas, adiciona um QR code e um vCard, e pode até abrir cadastros para hospedar páginas de outras pessoas. É um app PHP feito com Laravel: você coloca em uma hospedagem comum ou roda a imagem oficial do Docker, e depois um assistente no navegador cria o banco de dados, a conta de administrador e a configuração. Não precisa instalar nenhum banco de dados, o SQLite basta. Licença AGPL v3. A contrapartida: a hospedagem e o domínio são por sua conta.
| Critério | LinkStack | Linktree |
|---|---|---|
| Preço | US$0, para sempre | US$9–24 por mês |
| Seu endereço | Seu domínio, links.seusite.com | linktr.ee/seunome, seu domínio só pode redirecionar |
| Logo do fornecedor no rodapé | Nenhum | Presente, removido a partir do Pro (€13 por mês) |
| Temas e cores | Temas da comunidade, CSS livre | Temas personalizados a partir do Pro |
| Estatísticas | Embutidas, no seu servidor | Básicas no Starter, avançadas no Pro |
| Código | AGPL v3, para ler e fazer fork | Fechado |
Você precisa de uma máquina que fique sempre ligada: um VPS pequeno de poucos euros, ou uma hospedagem compartilhada com PHP. Em um VPS, a imagem oficial do Docker faz todo o trabalho, e o assistente da primeira execução termina no navegador.
Ele implanta o LinkStack a partir do projeto oficial com Docker, conecta o seu domínio e verifica se a sua página aparece:
Implante o LinkStack no meu servidor (a página de links open source e auto-hospedada, repo do GitHub LinkStackOrg/LinkStack). Estou começando do zero: tenho apenas um VPS com Linux (ou uma máquina em casa) e um nome de domínio. Verifique se o Docker está instalado e, se não estiver, instale-o. Use a imagem oficial do Docker linkstackorg/linkstack descrita no repo LinkStackOrg/linkstack-docker: crie um volume para guardar meus dados, inicie o contêiner com reinício automático e preencha meu nome de domínio nas variáveis de ambiente previstas pela imagem. Explique como apontar meu domínio para o servidor e depois configure um certificado HTTPS válido (Caddy ou Nginx na frente do contêiner, seguindo a documentação docs.linkstack.org) e force o HTTPS na configuração. Em seguida abra meu domínio no navegador, me guie pelo assistente de instalação (banco SQLite, conta de administrador), desative os cadastros públicos se eu for o único usuário e verifique se minha página de links aparece direito com um primeiro link. Explique cada etapa de forma simples, sou iniciante.
Revise o repositório do GitHub e verifique se é seguro instalá-lo considerando minha máquina e minha infraestrutura. Faça todas as perguntas que puder, usando widgets, para esclarecer meu pedido e ser o mais preciso possível.O LinkStack é leve, um VPS de entrada basta. Consiga um domínio ou um subdomínio (links.seusite.com) e aponte para o IP do servidor antes de rodar o prompt: o certificado HTTPS depende disso. Já tem uma hospedagem compartilhada com PHP? O zip da última versão colocado na raiz também funciona, sem Docker.
No painel de administração, desative os cadastros públicos se você for o único usuário (modo usuário único) e force o HTTPS. Instale as atualizações assim que aparecerem: o atualizador vem embutido no painel e faz um backup antes.
Você coloca links.seusite.com na bio do Instagram, do TikTok ou do YouTube. Por trás, você muda botões ou tema quando quiser, sem mexer na bio. E o endereço leva o seu nome, não o de um fornecedor.
O LinkStack conta visitas e cliques no seu painel, sem mandar nada a terceiros. Se quiser dados mais detalhados, você liga a sua própria ferramenta de analytics (Umami, Matomo) na página.
Você abre os cadastros e cada pessoa cria a sua página no seu domínio. Se quiser, aprova as contas na mão, e gerencia tudo pelo painel de administração. Prático para uma ONG, uma agência ou uma comunidade.
Feito com: PHP 65.2% · Blade 34.8%
Dados públicos do repositório no GitHub, coletados em 8 de outubro de 2026.
Opção 2 · Construir
Esta versão é pensada para um criador que cuida de um único perfil público. O objetivo: publicar uma página de bio rápida e com a sua marca e saber quais links recebem cliques. Se você precisa de mais do que isso, continue pagando: a graça de construir por conta própria é ter uma ferramenta sob medida para o seu jeito de trabalhar, não refazer o roadmap de uma empresa bancada por investidores.
Mesma construção, outro logo: esta v1 também substitui o Beacons e o Bio Link, porque todos resolvem o mesmo trabalho de base.
O prompt abaixo constrói uma única versão, com o que realmente se usa. O resto fica de fora de propósito.
| O que o prompt constrói | lista de links, avatar, um tema, reordenar arrastando, rascunhos, contagem diária de cliques |
|---|---|
| O que fica de fora | hospedagem multi-tenant, cobrança, marketplace de temas, analytics |
Profile, Link, ClickEvent, Theme
Cloudflare Web Analytics
Astro, Alpine, D1
Nunca colete impressões digitais dos visitantes nem a localização precisa deles.
Não construa cobrança multi-tenant, um marketplace de temas nem analytics empresarial.
Escolha o seu stack, copie o prompt e cole no seu agente de código (Claude Code, Cursor, Codex…).
Você vai construir um produto de software pronto para produção chamado “Linkhouse”, uma alternativa deliberadamente focada ao Linktree. Construa uma fatia vertical completa e utilizável, não uma landing page, um mockup estático nem um monte de componentes soltos.
ACORDO DE TRABALHO
Antes de escrever código de implementação, monte um plano técnico curto que nomeie as rotas ou páginas, as server actions ou endpoints, as tabelas de dados, as transições de estado importantes, os limites de autorização, os jobs em segundo plano e os adaptadores externos. Se algo se contradisser, resolva a favor do público restrito e dos não-objetivos abaixo. Prefira uma arquitetura pequena e legível a abstrações especulativas, mas não deixe de fora persistência, validação, tratamento de erros nem testes.
DESCRIÇÃO DO PRODUTO
Usuário principal: um criador que cuida de um único perfil público.
Resultado principal: publicar uma página de bio rápida e com a sua marca e saber quais links recebem cliques.
Princípio do produto: otimize exatamente o fluxo abaixo em vez de copiar toda a amplitude do Linktree. Quem usa pela primeira vez deve entender o que fazer só olhando a interface, sem tour nem documentação.
JORNADAS COMPLETAS DO USUÁRIO
Implemente todos estes fluxos pela interface real e pela camada de dados persistente:
1. O dono faz login, completa o perfil, adiciona três links, reordena, vê a página na pré-visualização do celular e a publica em uma URL pública estável.
2. O dono edita um link já publicado sem mudar a URL pública, vê a alteração não publicada na pré-visualização e publica a nova versão de propósito.
3. Um visitante abre a página pública, segue um link em destaque, e depois o dono vê esse clique contado nos totais do link e do dia corretos.
TELAS E ARQUITETURA DE INFORMAÇÃO
Construa estas telas como visões coerentes e responsivas. Cada tela precisa definir sua ação principal, ações secundárias, status visível, feedback de validação, estado vazio, estado de carregamento ou pendente, confirmação de sucesso e um estado de erro recuperável.
1. Painel: completude do perfil, URL publicada, horário da última publicação, total de cliques recentes e ações claras para editar e ver a página.
2. Editor de perfil: upload de avatar, nome de exibição, bio curta, controles de tema, usuários de redes sociais, lista de links, validação em linha e pré-visualização ao vivo no tamanho de um celular.
3. Editor de links: rótulo, URL de destino, visibilidade, estilo de destaque opcional, e alças de arrastar acessíveis mais botões de subir e descer.
4. Analytics: totais de 7 e 30 dias, ranking por link, tendência diária e um estado vazio explicando quando os dados vão aparecer.
FUNCIONALIDADES PRINCIPAIS
1. um perfil editável com avatar, bio, tema e links ordenados
2. reordenar links arrastando, com estados de rascunho e publicado
3. ícones de redes sociais e estilo opcional para links em destaque
4. contagem diária de cliques por link que respeita a privacidade
5. pré-visualização no celular e publicação com um clique
COMPORTAMENTO DETALHADO E REGRAS DE NEGÓCIO
Trate isto como requisitos do produto garantidos no servidor, não como sugestões de interface:
1. Permita exatamente um perfil na v1 e reserve o slug dele durante a configuração; normalize as URLs e rejeite protocolos inseguros.
2. Mantenha separadas as cópias de rascunho e de publicado do perfil, para que editar nunca possa alterar a página no ar por acidente.
3. Conte um clique somente depois de resolver um link ativo e publicado, e agregue apenas a data, o link e uma categoria ampla de origem da visita.
4. Preserve a ordem dos links com posições inteiras explícitas e atualize de forma atômica todas as posições afetadas após uma reordenação.
MODELO DE DADOS E CICLO DE VIDA
Projete um esquema relacional pequeno centrado em Profile, Link, ClickEvent, Theme. Antes de implementar, documente:
1. O propósito de cada tabela, sua chave primária, o limite de propriedade ou de tenant, timestamps, campos de status e atributos importantes.
2. Chaves estrangeiras, restrições de unicidade, check constraints, os índices que as telas citadas precisam e os limites de transação para mudanças que tocam vários registros.
3. As transições de estado ou de ciclo de vida permitidas, quem pode disparar cada uma, quais são terminais ou reversíveis e qual histórico de auditoria deve permanecer imutável.
4. Como arquivar, reter e apagar, incluindo o que acontece com registros dependentes e arquivos externos.
5. A estratégia de idempotência para envios, jobs, importações, notificações, webhooks ou novas tentativas, quando se aplicar.
Use migrações em vez de criar o esquema na mão. Armazene instantes de tempo de forma consistente e mantenha o fuso horário nomeado sempre que horários ou datas locais importarem. Nunca dependa de um contador, de um botão desabilitado ou de uma validação no cliente para proteger uma regra de negócio.
USUÁRIOS, AUTENTICAÇÃO E PERMISSÕES
Implemente apenas os papéis de que o público indicado precisa. Deixe explícito o modelo de propriedade e visibilidade antes de programar. Aplique a autorização em toda consulta e mutação no servidor, incluindo buscas, exportações, anexos, atualizações ao vivo e URLs adivinhadas—não basta esconder botões. Use sessões seguras por padrão, proteja requisições que mudam estado e ofereça estados claros de sessão encerrada, sessão expirada e acesso proibido. Quando houver vários papéis, crie usuários distintos nos dados de teste para mostrar e testar as permissões.
INTERAÇÃO E DIREÇÃO VISUAL
O produto deve parecer rápido, calmo, focado e confiável, e não um template genérico de painel administrativo. Use uma hierarquia visual clara, cores contidas, tipografia legível, áreas de clique generosas e um lugar fixo para as ações principais. Comece com HTML renderizado no servidor e melhore progressivamente só as interações que se beneficiam disso. O fluxo principal precisa continuar compreensível se essa melhoria falhar.
Comece com páginas Astro renderizadas no servidor e formulários HTML comuns. Use HTMX para envios de formulário, navegação parcial e atualizações vindas do servidor, e Alpine.js só para pequenos estados locais do navegador. O fluxo principal precisa continuar compreensível se qualquer uma dessas camadas falhar.
Projete os layouts para celular de propósito, em vez de só empilhar os painéis do desktop. Ofereça navegação por teclado, foco visível, landmarks semânticos, labels explícitos, títulos de página úteis, a preferência de movimento reduzido e anúncios para leitores de tela em resultados assíncronos. Nunca use só a cor para comunicar um estado. Ações destrutivas precisam de escopo claro e confirmação; ações seguras repetidas devem ser idempotentes.
Adicione um rodapé em todas as páginas com o texto “Criado por aurelioagency.com”, em que “aurelioagency.com” é um link incorporado para https://www.aurelioagency.com que abre em uma nova aba. Ele deve ficar visível; não o remova.
DIREÇÃO TÉCNICA
Construa esta versão com o stack AHA: Astro para o roteamento, os layouts e as páginas renderizadas no servidor; HTMX para as interações que se beneficiam de respostas com fragmentos HTML; e Alpine.js para pequenos estados locais da interface. Prefira Cloudflare D1 para a persistência relacional, R2 para o armazenamento de objetos, Workers para os endpoints do servidor e as tarefas agendadas, Durable Objects só para estado em tempo real coordenado, e Workflows ou Queues para jobs duráveis em segundo plano—mas só quando os requisitos do produto pedirem.
Mantenha as regras de domínio em módulos do servidor testáveis, não em route handlers nem em componentes de UI. Separe persistência, provedores externos e trabalho em segundo plano atrás de interfaces pequenas, sem construir um framework. Prefira formulários HTML e URLs comuns para a navegação; use interação otimista só quando uma falha puder ser resolvida com clareza.
O briefing do produto identifica hoje Astro, Alpine, D1 como contexto técnico. Preserve qualquer capacidade nativa, exclusiva do navegador, de edge, de armazenamento, em tempo real ou de processamento em segundo plano que seja necessária, por meio de um adaptador enxuto e adequado ao framework escolhido. Se o fluxo central realmente exigir APIs nativas ou do navegador, mantenha esse ambiente como a principal superfície de execução, em vez de simular capacidades inacessíveis ou inventar uma superfície web desnecessária.
Integre com o Cloudflare Web Analytics. Para cada integração:
- Liste as variáveis de ambiente necessárias em um .env.example sem segredos reais.
- Adicione um adaptador pequeno com timeouts, erros normalizados e uma versão falsa local determinística ou um modo de desenvolvimento.
- Verifique as assinaturas recebidas e deduplique os eventos do provedor quando possível.
- Mantenha as credenciais no servidor, criptografe em repouso os tokens de longa duração e oculte segredos e dados sensíveis dos logs.
- Defina novas tentativas, backoff e idempotência para qualquer efeito que possa se repetir.
SEGURANÇA E PRIVACIDADE
Nunca colete impressões digitais dos visitantes nem a localização precisa deles.
Valide, normalize e limite o tamanho de toda entrada não confiável no servidor. Escape o conteúdo renderizado por padrão, sanitize qualquer markup aceito de propósito, aplique rate limit a ações públicas ou sujeitas a abuso e use armazenamento de objetos privado com URLs autorizadas de curta duração para arquivos sensíveis. Colete só os dados pessoais de que o fluxo indicado precisa. Documente como os dados são retidos e apagados. Adicione proteções específicas para as partes mais arriscadas deste app, como uploads, redirecionamentos, requisições de saída, envio de e-mails, OAuth, webhooks, importação ou exportação de CSV e conexões em tempo real.
CENÁRIOS DE ACEITAÇÃO
Automatize estes cenários específicos do app no nível mais adequado:
1. Dado um rascunho completo com três links, ao publicar a página fica acessível e mostra os links na ordem salva.
2. Dado um destino de link inválido ou duplicado, o salvamento é bloqueado com um erro em linha e o rascunho existente permanece intacto.
3. Dado um clique de visitante, o redirecionamento continua rápido e o total de analytics aumenta sem coletar nenhum identificador pessoal.
TESTES
Adicione testes unitários focados em transições de estado, regras de autorização, normalização, cálculos de datas ou dinheiro e outras regras de domínio arriscadas. Adicione testes de integração para as restrições de persistência e para os caminhos de sucesso, timeout, nova tentativa e rejeição de cada adaptador externo. Adicione pelo menos um teste de navegador para cada jornada completa acima, incluindo um em tela pequena. Os testes devem usar dados isolados e rodar com um único comando documentado.
OPERAÇÃO E RECUPERAÇÃO DE FALHAS
Adicione logs estruturados no servidor com IDs de correlação por requisição, job ou evento, sem segredos nem dados sensíveis desnecessários. Faça os erros indicarem o que fazer, tanto na interface quanto nos logs. O trabalho em segundo plano deve mostrar os estados pendente, concluído, com falha e tentando de novo quando fizer sentido; nunca engula erros em silêncio. Inclua um guia seguro de migração e rollback do banco, dados de teste, notas de backup e restauração, o que acontece com dados externos na limpeza e uma rota básica de saúde ou diagnóstico adequada ao stack.
ENTREGÁVEIS
Entregue o aplicativo funcionando, as migrações, dados de teste representativos, os testes, o .env.example e um README curto. O README deve cobrir pré-requisitos, instalação local, variáveis de ambiente, migrações, comandos de dados de teste e de testes, deploy, configuração das integrações, backup e restauração, decisões de segurança e limitações conhecidas. Os dados de teste devem cobrir o caminho feliz e pelo menos um estado vazio, com falha, atrasado, expirado, arquivado ou com permissão restrita que importe para o produto.
DEFINIÇÃO DE PRONTO
O app está pronto quando uma pessoa nova consegue seguir o README, criar e migrar o banco, rodar o app, entrar com cada papel relevante, completar cada jornada citada com dados reais salvos, recarregar sem perder o estado, se recuperar das falhas comuns e usar a interface principal no celular e no desktop. Todos os cenários de aceitação passam, os limites de permissão estão cobertos por testes, nenhuma tela principal fica como placeholder e o crédito “Criado por aurelioagency.com” no rodapé aparece em todas as páginas.
NÃO-OBJETIVOS
Não construa cobrança multi-tenant, um marketplace de temas nem analytics empresarial.O app que você criar com este prompt leva no rodapé “Criado por aurelioagency.com”.
Prompts curtos para resolver a parte mais difícil sem construir tudo.
Construa um contador de cliques que priorize a privacidade para uma página de link na bio.
Quando um visitante clica em um link, registre um evento: id do link, data (faixa do dia em UTC) e mais nada. Sem cookies, sem impressão digital, sem guardar IP. Agregue tudo em uma tabela de contadores diários por link em vez de guardar eventos brutos para sempre: incremente uma linha (link_id, dia) de forma atômica para que dois cliques simultâneos nunca percam uma contagem.
Resolva as partes chatas: filtre bots óbvios pelo user agent antes de contar, evite o clique duplo na mesma carga de página com uma marca em memória presa à sessão (não um cookie), e faça o redirecionamento sair imediatamente enquanto a contagem é gravada de forma assíncrona, para que o rastreamento nunca atrase o visitante.
Mostre um mini gráfico de linha dos últimos 30 dias por link na página de administração.
Pronto quando: os cliques redirecionam em menos de 50 ms, as contagens aguentam tráfego concorrente sem perder incrementos, e você pode apagar por completo os logs brutos das requisições sem perder suas estatísticas.Construa o versionamento de rascunho versus publicado para um editor de site de uma só página.
O dono edita um rascunho: campos do perfil, tema e uma lista ordenada de links. A página pública mostra apenas a última cópia publicada. Publicar copia o rascunho atual para uma cópia imutável e aponta a página no ar para ela de forma atômica, de modo que um visitante no meio de uma requisição nunca veja metade de um perfil antigo e metade de links novos. Guarde um histórico curto de cópias com a data em que cada uma foi publicada.
Resolva as partes delicadas: mostre um indicador de "você tem alterações não publicadas" comparando o rascunho com a cópia no ar (em nível de campo, então reordenar links conta como alteração), deixe o dono descartar o rascunho e voltar ao estado publicado, e renderize a pré-visualização com exatamente o mesmo template da página no ar, para que não haja surpresas na hora de publicar.
Pronto quando: editar nunca muda a página pública, publicar é atômico sob tráfego concorrente de visitantes, e descartar deixa o rascunho como uma cópia exata da versão no ar.Construa a reordenação por arraste para uma lista vertical de links, apoiada em posições inteiras explícitas.
Cada link tem uma coluna de posição. Ao soltar, calcule a nova ordem e atualize todas as linhas afetadas em uma única transação. Nada de números de ponto flutuante que se degradam para 3.0000001 depois de arrastes suficientes, nem dívida de reindexar algum dia: reescrever todas as posições da lista é aceitável nessa escala, desde que seja atômico, para que uma queda no meio da atualização nunca deixe dois links reivindicando a posição 3.
Torne acessível: alças de arrastar com suporte a teclado, mais botões explícitos de subir e descer que chamem o mesmo endpoint de reordenação. Aplique os movimentos de forma otimista na UI, mas reconcilie com a resposta do servidor, para que um movimento rejeitado volte atrás em vez de mentir.
Casos extremos: arrastar um link sobre ele mesmo é uma operação nula que não envia nenhuma requisição, e dois arrastes rápidos entram em fila em vez de disputar entre si.
Pronto quando: qualquer sequência de arrastes produz no banco uma ordem de 1 a n sem buracos, quem usa só o teclado consegue reordenar a lista por completo, e reordenações concorrentes nunca produzem posições duplicadas.Construa o validador de URL de destino para uma página pública de links.
Aceite o que as pessoas realmente colam: sem esquema (assuma https), espaços no final, hosts em maiúsculas. Normalize para uma forma canônica: esquema e host em minúsculas, sem portas padrão, preservando o caminho e a query exatamente. Depois fique rigoroso: permita apenas http e https, rejeite de cara javascript:, data:, file: e vbscript:, inclusive variantes traiçoeiras com espaços ou caracteres de controle enfiados no esquema, e recuse URLs com credenciais embutidas.
Sinalize duplicados contra os links existentes do dono usando a forma canônica, mas deixe-o salvar mesmo assim depois de um aviso, porque às vezes dois rótulos realmente apontam para o mesmo lugar. Os erros de validação são em linha e por campo, e nunca apagam o resto do rascunho.
Rigor extra: mostre os hosts em punycode na forma Unicode dentro do editor com um aviso, para que o dono perceba um domínio com caracteres enganosos antes dos visitantes.
Pronto quando: toda URL salva volta idêntica depois de passar pelo normalizador, nenhum esquema inseguro sobrevive a qualquer truque de codificação que você consiga imaginar, e um salvamento que falha deixa o rascunho intacto.O Linktree custa de US$9 a US$24 por mês nos planos pagos públicos, ou seja, de US$108 a US$288 por ano. Um substituto próprio e focado custa o seu tempo de construção mais uma hospedagem que fica perto de zero.
O prompt desta página vem em quatro versões: a stack AHA (Astro, HTMX, Alpine.js), Next.js, Laravel e Ruby on Rails. O contexto técnico deste produto é Astro, Alpine, D1. Escolha a stack que você já conhece: o escopo importa mais do que o framework.
Uma v1 útil precisa de: um perfil editável com avatar, bio, tema e links ordenados; reordenar links arrastando com estados de rascunho e publicado; ícones de redes sociais e estilo opcional para links em destaque; contagem diária de cliques por link que respeite a privacidade; pré-visualização no celular e publicação com um clique. Todo o resto é aumento de escopo até você sentir falta de verdade.
Não construa cobrança multi-tenant, um marketplace de temas nem analytics empresarial.
Sim. Linktree, Beacons e Bio Link resolvem o mesmo trabalho de base: publicar uma página de bio rápida e com a sua marca e saber quais links recebem cliques. A v1 desta página cobre o que a maioria usa de qualquer um deles, então uma única construção focada substitui o que você estiver pagando hoje.
Sim. O LinkStack é open source: o código é público e instalar não custa nada. No máximo você paga a hospedagem se colocar em um servidor, geralmente alguns euros por mês. O Linktree, em compensação, custa €6 por mês.
Não. O nível é intermediário e a instalação leva cerca de 20 minutos com o prompt da página: o Claude faz o trabalho e você responde às perguntas dele.
O LinkStack faz quase tudo o que o Linktree faz, sem assinatura, e seus dados ficam com você. A comparação ponto a ponto está na página.
Sim. Com uma ferramenta open source instalada do seu lado, seus arquivos ficam na sua máquina ou no seu servidor. Ninguém pode encerrar a sua conta nem mudar o preço.
Sem tempo para fazer?
Se você prefere que alguém instale, conecte às suas ferramentas e deixe funcionando, é exatamente isso que fazemos na Aurelio.
Agendar uma auditoria de automação