Saltar para o conteúdo
megapromotingVamos falar

Projetos MEGA

Produtos que você pode entender. Sistemas sobre os quais podemos construir.

Explore as nossas plataformas e o papel de cada uma. Os projetos para organizações são apresentados através de funcionalidades, com respeito pela confidencialidade.

Agentes de voz com IA

Kallina

Construímos agentes que atendem e fazem chamadas, usam a informação do negócio e trabalham com os seus sistemas.

Platformă
Conversas e suporte

aichat

Um assistente ligado à informação do seu negócio, nos canais por onde os clientes lhe escrevem.

Platformă
Informação e coordenação

Cronberry

O Cronberry junta fontes autorizadas, conversas e relações num espaço de investigação e coordenação.

Desenvolvimento e demonstrações
Inteligência geoespacial

FlowMind

O FlowMind organiza mapas, fontes públicas e produtos Copernicus num espaço de análise.

Implementação especializada
Cidades e modelos 3D

Relieva

Desenvolvemos representações 3D da cidade que combinam relevo, mapas e dados sobre o espaço construído.

Prototip & cercetare
API para modelos de IA

LongDay

Acesso API a modelos de IA através de uma interface comum.

Platformă
Investigação de voz

Grai

Grai é a nossa linha de investigação em síntese de voz e modelos adaptados às línguas que se falam aqui.

Cercetare & dezvoltare
Organizarea muncii

Taskin

O Taskin explora a transformação das conversas e do contexto de projeto em compromissos, prioridades e passos de trabalho.

Desenvolvimento e demonstrações
Plataforma cívica

sesizari.md

sesizari.md organiza as participações sobre o espaço público: local, categoria, descrição e materiais relevantes.

Plataforma pública
Verificação técnica e privacidade

onGDPR.md

onGDPR.md verifica a superfície pública de um site: cookies, rastreadores, formulários e documentos informativos.

Plataforma pública
Ferramentas no navegador

MEGA QR

O MEGA QR inclui um gerador de códigos e uma ferramenta de transferência ótica.

Instrument public
Obiceiuri & longevitate

LongeVita

LongeVita é um protótipo para organizar hábitos e informação pessoal de saúde.

Protótipo em desenvolvimento
Postura e sessões de concentração

AirPosture

AirPosture, o nosso projeto de postura e concentração, explora o uso dos sensores de movimento dos auscultadores compatíveis.

Protótipo em desenvolvimento
Formulários conversacionais

Megaforms

O Megaforms explora a recolha de respostas por formulários conversacionais, incluindo respostas por voz e transcrição.

Desenvolvimento e demonstrações
Análise de áudio e media

Monitor Radio

Uma ferramenta para captura, transcrição e organização de anúncios de rádio.

Instrument specializat
Ferramentas para hotelaria e restauração

Meniu QR

Estamos a construir uma plataforma para ementas digitais e operações acessíveis por QR.

Desenvolvimento e demonstrações
Produção de voz

Voice Studio

Um estúdio para gerar, ouvir e descarregar materiais de voz com modelos text-to-speech.

Instrument specializat
Interação visual e agentes

World Agent

World Agent é um demonstrador de interação em linguagem natural com uma cena visual.

Demonstrator de cercetare
Análise de mercado e anúncios

Index9

O Index9 é uma ferramenta para quem vende no 999.md: análise por categorias, avaliação dos anúncios e preparação das ações de publicação ou republicação.

Platformă
Visualização orbital

Orbital Nexus

Mapa 3D dos objetos em órbita, com dados públicos da CelesTrak e efemérides dos operadores das constelações.

Instrument public
Vendas e operação interna

MEGA CRM

O CRM interno da MEGA: organizações, contactos, campanhas por email e SMS, chamadas dos agentes de voz que movem sozinhas o lead pelo pipeline.

Sistem intern
Robôs e maquinaria

MEGA CP-CUBE-1

O CP-CUBE-1 é uma célula fechada que deposita argamassa camada a camada, para objetos não estruturais de um metro cúbico no máximo.

Projeto completo, sem exemplar construído
Simulação robótica

Humanoid Sim

Dois robôs Unitree — o humanoide G1 e o quadrúpede Go2 — na Terra, na Lua e em Marte, no navegador.

Demonstrador público, com porta de qualificação fechada

Trabalhos entregues

Sites e plataformas que estão a funcionar hoje, para clientes.

Cada endereço abaixo foi verificado em 6 de setembro de 2026. Mostramos o que construímos e com o quê; os números de negócio dos clientes continuam a ser deles.

Centrul de Sănătate Constructorul — site e painel de administração

Sănătate — centru medical / sanatoriu, Republica Moldova2026

Verificat 2026-09-06HTTP 200 · 13 rute publice

O que havia para resolver

Um centro médico com um nomenclátor de centenas de serviços tarifados precisava de que cada serviço fosse uma página própria, encontrável na pesquisa, com preço e unidade de medida — não um PDF com a lista de preços. Além disso, os preços e a equipa mudam, por isso a clínica tinha de poder editá-los por conta própria, e as marcações tinham de chegar imediatamente à receção, não a uma caixa de e-mail.

Qué construimos

Next.js 14.2.35 (App Router) com React 18, TypeScript e Tailwind. Cada item do nomenclátor médico tornou-se uma rota estática própria: 521 ficheiros `page.tsx` em `src/app`, dos quais 481 sob `/servicii` — 184 fisioterapia, 122 serviços consultivos, 61 exames médicos periódicos, 27 ginecologia, 26 ozonoterapia, 23 pacotes de tratamento, 18 medicina alternativa, 12 diagnóstico, o restante por secções. O sitemap em produção lista 890 endereços. O site é bilingue ro/ru. O conteúdo editável (médicos, pacotes, tratamentos, artigos, definições, imagens) está numa base SQLite local através de `better-sqlite3`, com diário WAL e chaves estrangeiras ativas, administrada a partir de `/admin` através de 20 rotas API; a autenticação usa `jose` para sessão e `bcryptjs` para palavra-passe, e a alteração da palavra-passe invalida as sessões existentes. Os formulários de marcação e de contacto são validados com `zod` + `react-hook-form` e enviam a mensagem formatada diretamente para o Telegram, através da Bot API. Existe também uma calculadora de preço em `calculator`.

O que se pode verificar do exterior
  • 890 endereços no sitemap de produção: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 890 (2026-09-06).
  • Atribuição pública: o rodapé em `https://constructorul.md/` contém «MegaPromoting» com link para `megapromoting.com` (2026-09-06); no histórico, o commit `Add MegaPromoting link to footer` (2026-01-27).

ICON Night Club — menu digital

HoReCa — club / bar, Chișinău2026

Verificat 2026-09-06HTTP 200

O que havia para resolver

O menu de um clube muda com frequência, tem preços e volumes que têm de ser exatos, e é lido no telemóvel, no escuro, por pessoas que falam três línguas. Um PDF digitalizado num código QR não resolve nada disto: não se pode pesquisar, não se traduz, não se atualiza sem voltar a imprimir o código.

Qué construimos

Um menu digital sem estrutura de trabalho e sem pacotes: as fontes reais são quatro ficheiros JSON, e um gerador Python de 402 linhas escreve a partir deles um único `index.html`. 119 produtos em 21 categorias, cada um com preço, volume, composição e fotografia; 119 textos curtos de apresentação, um por produto; 119 conjuntos de recomendações de combinação („com o que combina”), que o visitante vê em cada cartão. O menu tem três línguas: o romeno é a base, e o russo e o inglês cobrem não só a interface, mas também as categorias, os volumes, as composições, as 82 etiquetas de sabor e todos os 119 textos de apresentação. O carrinho, a lista de favoritos e a divisão da conta funcionam no navegador, sem conta e sem servidor. As fontes estão alojadas no mesmo domínio, não no Google. Antes de cada publicação, um script de 233 linhas executa 16 verificações — que não se infiltrou nenhum rastreador, que não se pede nada a um domínio de terceiros, que o JSON é válido e cada imagem existe, que o menu está completo em todas as três línguas, que os preços descem em cada categoria e que os dados estruturados da página são válidos. A publicação é feita automaticamente pelo GitHub Actions na fusão para `main`, depois de o workflow fazer uma cópia completa da produção e a guardar durante 30 dias.

O que se pode verificar do exterior
  • A política de segurança de conteúdo da produção permite exatamente um único domínio externo — o chatbot próprio: `content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://bubble.aichat.md https://aichat.md; ...` (curl -sI https://icon.md/, 2026-09-06).
  • Nenhum cookie definido pelo site: `curl -sI https://icon.md/ | grep -c set-cookie` → 0 (2026-09-06). Os únicos links externos na página são para Facebook, Instagram e TikTok.
  • Atribuição pública, em três línguas, na política de privacidade do cliente: `https:/`confidentialitate.html` — „O site é alojado e tecnicamente mantido pela MEGA PROMOTING S.R.L., que atua como subcontratante por nossa conta”; o mesmo texto em inglês e russo (2026-09-06).

Câmara Municipal da Comuna Japca — site oficial

Administrație publică locală (APL), raionul Florești2026

Verificat 2026-09-06HTTP 200 · 11 rute publice

O que havia para resolver

Uma câmara municipal de comuna deve ter uma página web oficial em conformidade com a HG 728/2023 — com secções fixas (transparência decisória, projetos e decisões, anúncios, documentos, contactos, orçamento) — e deve poder atualizá-la sozinha, sem programador a cada anúncio. Sem isso, a informação de interesse público fica em papel ou num grupo de Facebook.

Qué construimos

Aplicação Laravel 12 em PHP 8.2 com MySQL 8, front-end Vite + Tailwind, empacotada em dois contentores Docker (`japca_app` = nginx + PHP-FPM, `japca_db` = MySQL). A arquitetura separa intencionalmente dois tipos de conteúdo: o editorial, que muda raramente (geografia, história, instituições, contactos, orçamento), fica num único ficheiro de configuração PHP de 1613 linhas que os templates Blade leem diretamente, e o que muda com frequência (anúncios, galeria de fotos, projetos e decisões, documentos, definições de transparência) fica no MySQL e é editado a partir do painel `/admin`. 40 templates Blade, 32 rotas, 10 migrações de base de dados. A autenticação no painel é limitada a 5 pedidos por minuto a partir do mesmo endereço — o sexto recebe 429 — e cada ação de administração entra numa tabela de auditoria. Os cabeçalhos de segurança e o sitemap são cobertos por testes automáticos que correm no CI.

O que se pode verificar do exterior
  • Os cabeçalhos de segurança estão presentes na produção (curl -sI https://primariajapca.md/, 2026-09-06): `x-frame-options: DENY`, `x-content-type-options: nosniff`, `referrer-policy: strict-origin-when-cross-origin`, `strict-transport-security: max-age=31536000; includeSubDomains`, `permissions-policy: geolocation=(), microphone=(), camera=()`, mais um CSP explícito.
  • `https:/`sitemap.xml` — 15 endereços (2026-09-06). A página inicial publica dados estruturados `GovernmentOrganization` + `PostalAddress` (grep no HTML em live, 2026-09-06).
  • Atribuição pública: o rodapé em `https://primariajapca.md/` contém o texto „MegaPromoting” e uma ligação para `megapromoting.com` (2026-09-06). No repo: `README.md`, última linha — „Código desenvolvido e administrado pela MEGA PROMOTING S.R.L.”

Studio Club — menu digital

HoReCa — restaurant și cocktail bar, Chișinău2026

Verificat 2026-09-06HTTP 200

O que havia para resolver

O mesmo que em qualquer menu por código QR: tem de ser rápido no telemóvel, correto no preço, legível em três línguas e alterável em cinco minutos quando a cozinha retira um prato. Além disso, o restaurante não precisa de qualquer rastreio de clientes — e então a pergunta real é se alguém realmente constrói um site que não recolhe nada, ou se apenas escreve isso na política de privacidade.

Qué construimos

Um único `index.html` gerado por um script Python de 377 linhas a partir de ficheiros JSON: 146 produtos em 31 categorias, 143 textos curtos de apresentação, mais as traduções para russo e inglês de categorias, nomes, volumes, composições, etiquetas e textos. O carrinho, a lista de favoritos e a divisão da conta correm no navegador. O site é servido diretamente por Caddy 2, com HTTPS automático. O interessante é que a não deteção do utilizador não é uma promessa, mas uma regra imposta pela integração contínua: em cada pedido de fusão, o CI regenera `index.html` a partir das fontes e rejeita o PR se o resultado diferir do ficheiro no repositório (logo, a página publicada corresponde sempre às fontes), depois executa 14 verificações — sem trackers, sem qualquer recurso carregado automaticamente a partir de um domínio de terceiros, fontes alojadas localmente, sem ficheiros de backup a chegarem ao repositório, política de privacidade presente e ligada a partir do rodapé, menu completo em três idiomas, preços por ordem decrescente em cada categoria, dados estruturados válidos — e verifica também que da configuração do servidor não desapareceram os cabeçalhos de segurança nem a ocultação do endereço IP nos registos. Todas as ações GitHub usadas estão fixadas ao hash do commit, e o workflow começa com `permissions: {}`.

O que se pode verificar do exterior
  • A política de segurança de conteúdo em produção não deixa absolutamente nada entrar de fora: `content-security-policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self'; object-src 'none'` (curl -sI https://studioclub.md/, 2026-09-06).
  • Nenhum cookie: `curl -sI https://studioclub.md/ | grep -c set-cookie` → 0 (2026-09-06). Os únicos endereços externos no HTML são os links para Facebook, Instagram e TikTok — que o visitante clica, não a página chama.
  • Atribuição pública, em três línguas, na política de privacidade do cliente: `https:/`confidentialitate.html` nomeia «MEGA PROMOTING S.R.L. (manutenção)» e Microsoft Azure como fornecedores técnicos (2026-09-06).

AntiColect.md — site de serviços jurídicos anti-cobrança abusiva

Serviços jurídicos — assistência contra práticas abusivas de recuperação de dívidas, República da Moldávia

Verificat 2026-09-06HTTP 200 · 4 rute publice

O que havia para resolver

não verificado — não temos as fontes, por isso não posso descrever o problema de trabalho sem o inventar.

Qué construimos

Aplicação React compilada com Vite, servida estaticamente por nginx, com versão em russo em `/ru/`. 181 endereços no sitemap de produção. Só isto pode ser afirmado do exterior: as fontes não estão nesta máquina, por isso não posso nomear as bibliotecas, a estrutura ou as integrações.

O que se pode verificar do exterior
  • `https://anticolect.md/` → 200, `server: nginx/1.24.0 (Ubuntu)` (2026-09-06).
  • 181 endereços no sitemap: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 181 (2026-09-06).
  • Versão russa: `https:/`ru`/` → 200 (2026-09-06).

Centrul Stomatologic Raional Cimișlia — site e painel de conteúdo

Saúde — centro estomatológico distrital (instituição médico-sanitária pública), Cimișlia

Verificat 2026-09-06HTTP 200 · 8 rute publice

O que havia para resolver

Um centro estomatológico distrital precisava de uma lista pública de serviços com preços, marcação clara dos que são cobertos pelo seguro obrigatório, equipa, horário de urgências e páginas de transparência — editáveis pelo pessoal, não pelo programador. Quando assumi o projeto, o painel de administração tinha um problema grave: a palavra-passe de admin era comparada no navegador e acabava no pacote JavaScript público, e os pedidos de escrita na API podiam ser feitos por qualquer pessoa na internet.

Qué construimos

Aplicação React 18 + TypeScript em Vite 6, com roteamento `react-router-dom` — 22 ecrãs, de serviços e preços até urgências, ortodontia, implantes, pedodontia, transparência e feedback. Nos bastidores, uma API Express 4 iniciada sob PM2; o nginx serve os ficheiros construídos e encaminha apenas `/api`. Os dados públicos (serviços, equipa) estão em ficheiros JSON lidos tanto pela API como diretamente pelo front-end. A parte que nós trouxemos foi a segurança: a palavra-passe já não sai do servidor — `POST `login` verifica-a aí e devolve um token assinado HMAC-SHA256 válido por 12 horas, com limite de 8 tentativas por 15 minutos por endereço IP e comparações em tempo constante; as escritas em `services` e `team` agora exigem o token; o segredo de assinatura é gerado automaticamente num ficheiro com permissões 0600, mantido fora do repositório; a API escuta apenas em 127.0.0.1, por isso o nginx é o único caminho público; o CORS é limitado aos domínios próprios, e o corpo JSON é limitado a 1 MB. Além disso, acrescentámos CI que compila, verifica tipos e rejeita o pacote se encontrar um segredo nele, mais Dependabot com ritmo semanal para npm.

O que se pode verificar do exterior
  • Os dados públicos em produção (2026-09-06): `https:/`services.json` — 89 serviços, cada um com `id`, `category`, `subcategory`, `name`, `price`, `unit` e um indicador `cnamEligible`; `https:/`team.json` — 6 pessoas.

imprumut.md — plataforma de concessão de crédito

Serviços financeiros — instituição de crédito não bancária, República da Moldávia

Verificat 2026-09-06HTTP 200 · 9 rute publice

O que havia para resolver

Uma empresa de crédito precisa de mais do que um site: o pedido deve entrar online, passar por um fluxo de decisão, produzir um contrato PDF, gerar um plano de pagamentos e deixar rasto na auditoria — e tudo deve resistir às perguntas feitas por um cliente que pede de volta os seus dados pessoais. A parte pública (calculadoras, artigos, páginas por tipo de crédito) deve, ao mesmo tempo, trazer pessoas a partir da pesquisa.

Qué construimos

Duas metades no mesmo depósito. A parte pública é uma aplicação Vite + React Router compilada estaticamente — 50 ecrãs, entre os quais quatro calculadoras (crédito, elegibilidade, refinanciamento, plano de pagamentos), páginas separadas por tipo de crédito, blog, páginas de informação pré-contratual e de conformidade. As rotas romenas ficam sem prefixo, e as russas vão em `/ru/…`, com etiquetas canónicas e alternativas geradas a partir da língua da rota ativa. A parte de negócio é um backend Express modular em TypeScript, com Prisma sobre PostgreSQL: 16 módulos — autenticação, direitos por função, fluxo dos pedidos, documentos, pagamentos, notificações, tarefas agendadas, blog, SEO, GDPR, clientes, leads, contacto, calculadora, Google Ads, saúde — e 18 tabelas no esquema Prisma, entre as quais `Contract`, `Payment`, `AuditLog`, `GdprRequest`, `UploadedDocument`, `DailyKpiSnapshot` e `CronJobRun`. Funciona sob PM2, com scripts separados para migrações em produção, verificações antes do lançamento, geração de segredos, cópia de segurança e restauração da base de dados.

O que se pode verificar do exterior
  • O roteamento por línguas está documentado e verificável em produção: README.md:56-58; `https:/`calculator-credit` → 200 e `https:/`calculator-credit` → 200 (2026-09-06).
  • 227 endereços no sitemap de produção (`curl -s https:/`sitemap.xml` | grep -c '<loc>'`, 2026-09-06).
  • Atribuição pública: a página inicial em `https://imprumut.md/` contém „Mega Promoting SRL” e uma ligação para `megapromoting.com` (2026-09-06).

TA Motor Grup — serviço automóvel, site com 316 páginas indexáveis

Automóvel — serviço e reparações, Chișinău

Verificat 2026-09-06301 pe apex, 200 după redirect

O que havia para resolver

Um serviço automóvel é procurado em combinações muito específicas — marca mais operação mais bairro („reparação da caixa automática BMW Botanica”). Uma única página „Serviços” não consegue responder a nada disso. O problema técnico é que o site é uma aplicação React de uma só página, por isso o que o motor de pesquisa vê é um `<div>` vazio se não se fizer algo específico.

Qué construimos

Aplicação React 19 + TypeScript em Vite 6, com React Router, mas pré-renderizada na compilação: cada rota sai do build como um ficheiro HTML próprio, por isso o motor de pesquisa recebe conteúdo, não uma página vazia. A estrutura de endereços foi alargada em etapas verificáveis no histórico — de 206 páginas indexáveis, para 316 com a adição das combinações marca × categoria de trabalho, dos artigos e das páginas por setor de Chișinău. As rotas têm versões por língua, um sitemap de imagens separado, imagens Open Graph e o pacote JavaScript dividido para carregamento mais rápido. O último commit corrigiu um detalhe que estraga a indexação em silêncio: o endereço canónico, o `hreflang` e os endereços no sitemap emitem agora todos a mesma forma com barra final.

O que se pode verificar do exterior
  • 316 endereços no sitemap de produção: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 316 (2026-09-06).
  • A produção serve o nosso build: o HTML em `https://tamotorgrupsrl.md/` refere `assets/index-…` (a assinatura Vite), 90.199 bytes (2026-09-06).

Para além de um único produto.

Podemos projetar aplicações, infraestruturas e controlos de acesso em torno dos processos da sua organização.

O que gostaria que funcionasse melhor?

Conte-nos o seu processo. Em conjunto decidimos o que vale a pena construir, o que podemos ligar e como verificamos o resultado.

Vamos falar