Przejdź do treści
megapromotingPorozmawiajmy

Projekty MEGA

Produkty, które można zrozumieć. Systemy, na których można budować.

Przeglądaj nasze platformy i rolę każdej z nich. Projekty dla organizacji są prezentowane przez funkcjonalności, z zachowaniem poufności.

Agenci głosowi AI

Kallina

Budujemy agentów, którzy odbierają i inicjują połączenia, korzystają z informacji biznesowych i pracują z Twoimi systemami.

Platforma
Rozmowy i wsparcie

aichat

Asystent połączony z informacjami Twojego biznesu, w kanałach, w których piszą do Ciebie klienci.

Platforma
Informacja i koordynacja

Cronberry

Cronberry łączy autoryzowane źródła, rozmowy i relacje w przestrzeni do badań i koordynacji.

Rozwój i demonstracje
Inteligencja geопрzestrzenna

FlowMind

FlowMind organizuje mapy, źródła publiczne i produkty Copernicus w przestrzeni do analizy.

Specjalistyczna implementacja
Miasta i modele 3D

Relieva

Tworzymy reprezentacje 3D miasta, które łączą rzeźbę terenu, mapy i dane o przestrzeni zabudowanej.

Prototip & cercetare
API dla modeli AI

LongDay

Dostęp API do modeli AI przez wspólny interfejs.

Platforma
Badania głosowe

Grai

Grai to nasz kierunek badawczy dla syntezy głosu i modeli dostosowanych do języków używanych tutaj.

Cercetare & dezvoltare
Organizarea muncii

Taskin

Taskin bada przekształcanie dyskusji i kontekstu projektu w zobowiązania, priorytety i kroki pracy.

Rozwój i demonstracje
Platforma obywatelska

sesizari.md

sesizari.md organizuje zgłoszenia dotyczące przestrzeni publicznej: miejsce, kategoria, opis i powiązane materiały.

Platforma publiczna
Skan techniczny i poufność

onGDPR.md

onGDPR.md sprawdza publiczną powierzchnię strony internetowej: pliki cookie, trackery, formularze i dokumenty informacyjne.

Platforma publiczna
Narzędzia w przeglądarce

MEGA QR

MEGA QR zawiera generator kodów i narzędzie do transferu optycznego.

Instrument public
Obiceiuri & longevitate

LongeVita

LongeVita to prototyp do organizowania nawyków i osobistych informacji zdrowotnych.

Prototyp w rozwoju
Postawa i sesje skupienia

AirPosture

AirPosture, nasz projekt dotyczący postawy i skupienia, bada wykorzystanie czujników ruchu w kompatybilnych słuchawkach.

Prototyp w rozwoju
Formularze konwersacyjne

Megaforms

Megaforms bada zbieranie odpowiedzi poprzez formularze konwersacyjne, w tym odpowiedzi głosowe i transkrypcję.

Rozwój i demonstracje
Analiza audio i mediów

Monitor Radio

Narzędzie do przechwytywania, transkrypcji i porządkowania reklam radiowych.

Instrument specializat
Narzędzia dla branży hotelarskiej

Menu QR

Budujemy platformę dla cyfrowych menu i operacji dostępnych przez QR.

Rozwój i demonstracje
Produkcja głosowa

Voice Studio

Studio do generowania, odsłuchiwania i pobierania materiałów głosowych za pomocą modeli text-to-speech.

Instrument specializat
Interakcja wizualna & agenci

World Agent

World Agent to demonstrator interakcji w języku naturalnym z wizualną sceną.

Demonstrator de cercetare
Analiza rynku i ogłoszeń

Index9

Index9 to narzędzie dla osób sprzedających na 999.md: analiza według kategorii, ocena ogłoszeń oraz przygotowanie działań publikacji lub ponownej publikacji.

Platforma
Widok orbitalny

Orbital Nexus

Mapa 3D obiektów na orbicie, z publicznymi danymi CelesTrak i efemerydami od operatorów konstelacji.

Instrument public
Sprzedaż i operacje wewnętrzne

MEGA CRM

Wewnętrzny CRM MEGA: organizacje, kontakty, kampanie e-mail i SMS, połączenia agentów głosowych, które samodzielnie przesuwają lead przez pipeline.

Sistem intern
Roboty i maszyny

MEGA CP-CUBE-1

CP-CUBE-1 to zamknięta komora, która nakłada zaprawę warstwa po warstwie, dla obiektów nienośnych o objętości maksymalnie jednego metra sześciennego.

Pełne projektowanie, bez zbudowanego egzemplarza
Symulacja robotyczna

Humanoid Sim

Dwa roboty Unitree — humanoidalny G1 i czworonożny Go2 — na Ziemi, Księżycu i Marsie, w przeglądarce.

Publiczny demonstrator, z zamkniętą bramą kwalifikacyjną

Zrealizowane prace

Strony internetowe i platformy działające dziś, dla klientów.

Każdy adres poniżej został zweryfikowany 6 września 2026. Pokazujemy, co zbudowaliśmy i czym; dane biznesowe klientów pozostają ich własnością.

Centrum Zdrowia Constructorul — strona internetowa i panel administracyjny

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

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

Co było do rozwiązania

Centrum medyczne z nomenklaturą setek usług taryfowych potrzebowało, aby każda usługa była osobną stroną, możliwą do znalezienia w wyszukiwarce, z ceną i jednostką miary — a nie PDF-em z listą cen. Dodatkowo ceny i zespół się zmieniają, więc klinika musiała móc edytować je samodzielnie, a zapisy miały trafiać do recepcji od razu, a nie do skrzynki e-mail.

Co zbudowaliśmy

Next.js 14.2.35 (App Router) z React 18, TypeScript i Tailwind. Każda pozycja z nomenklatury medycznej stała się własną statyczną trasą: 521 plików `page.tsx` w `src/app`, z czego 481 pod `/servicii` — 184 fizioterapie, 122 servicii consultative, 61 examene medicale periodice, 27 ginecologie, 26 ozonoterapie, 23 pachete de tratament, 18 medicină alternativă, 12 diagnostic, reszta według sekcji. Sitemap na produkcji zawiera 890 adresów. Strona jest dwujęzyczna ro/ru. Edytowalna zawartość (lekarze, pakiety, zabiegi, artykuły, ustawienia, obrazy) jest przechowywana w lokalnej bazie SQLite przez `better-sqlite3`, z dziennikiem WAL i aktywnymi kluczami obcymi, zarządzana z `/admin` przez 20 tras API; uwierzytelnianie używa `jose` do sesji i `bcryptjs` do hasła, a zmiana hasła unieważnia istniejące sesje. Formularze zapisu i kontaktu są walidowane przez `zod` + `react-hook-form` i wysyłają sformatowaną wiadomość bezpośrednio do Telegrama, przez Bot API. Istnieje też kalkulator cen na `calculator`.

Co można sprawdzić z zewnątrz
  • 890 adresów w sitemapie produkcyjnym: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 890 (2026-09-06).
  • Publiczne przypisanie: stopka na `https://constructorul.md/` zawiera „MegaPromoting” z linkiem do `megapromoting.com` (2026-09-06); w historii commit `Add MegaPromoting link to footer` (2026-01-27).

ICON Night Club — menu cyfrowe

HoReCa — club / bar, Chișinău2026

Zweryfikowane 2026-09-06HTTP 200

Co było do rozwiązania

Menu klubu często się zmienia, ma ceny i objętości, które muszą być dokładne, i jest czytane na telefonie, w ciemności, przez osoby mówiące trzema językami. Zeskanowany PDF na kodzie QR nie rozwiązuje niczego z tego: nie da się go przeszukiwać, nie da się go przetłumaczyć, nie da się go zaktualizować bez ponownego wydrukowania kodu.

Co zbudowaliśmy

Cyfrowe menu bez frameworka i bez pakietów: rzeczywiste źródła to cztery pliki JSON, a generator Python o długości 402 linii tworzy z nich jeden `index.html`. 119 produktów w 21 kategoriach, każdy z ceną, objętością, składem i fotografią; 119 krótkich tekstów prezentacyjnych, po jednym na produkt; 119 zestawów rekomendacji łączenia („z czym pasuje”), które widzi odwiedzający na każdej karcie. Menu ma trzy języki: rumuński jest bazą, a rosyjski i angielski obejmują nie tylko interfejs, lecz także kategorie, objętości, składy, 82 etykiety smaku i wszystkie 119 tekstów prezentacyjnych. Koszyk, lista ulubionych i dzielenie rachunku działają w przeglądarce, bez konta i bez serwera. Czcionki są hostowane na tej samej domenie, a nie w Google. Przed każdą publikacją skrypt o długości 233 linii wykonuje 16 sprawdzeń — czy nie wkradł się żaden tracker, czy nic nie jest pobierane z domeny zewnętrznej, czy JSON jest poprawny i każdy obraz istnieje, czy menu jest kompletne we wszystkich trzech językach, czy ceny maleją w każdej kategorii i czy dane strukturalne na stronie są poprawne. Publikacja odbywa się automatycznie z GitHub Actions przy scaleniu do `main`, po tym jak workflow robi pełną kopię produkcji i przechowuje ją przez 30 dni.

Co można sprawdzić z zewnątrz
  • Polityka bezpieczeństwa treści na produkcji zezwala dokładnie na jedną zewnętrzną domenę — własny chatbot: `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).
  • Żadne cookie nie są ustawiane przez stronę: `curl -sI https://icon.md/ | grep -c set-cookie` → 0 (2026-09-06). Jedynymi zewnętrznymi linkami na stronie są Facebook, Instagram i TikTok.
  • Publiczne przypisanie, w trzech językach, w polityce prywatności klienta: `https:/`confidentialitate.html` — „Strona jest hostowana i technicznie utrzymywana przez MEGA PROMOTING S.R.L., która działa jako podmiot przetwarzający przez nas wyznaczony”; ten sam tekst po angielsku i rosyjsku (2026-09-06).

Primăria Comunei Japca — oficjalna strona

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

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

Co było do rozwiązania

Urząd gminy musi mieć oficjalną stronę internetową zgodną z HG 728/2023 — z stałymi sekcjami (transparentność decyzyjna, projekty i decyzje, ogłoszenia, dokumenty, kontakty, budżet) — i musi móc aktualizować ją samodzielnie, bez programistki lub programisty przy każdym ogłoszeniu. Bez tego informacja publiczna pozostaje na papierze albo w grupie na Facebooku.

Co zbudowaliśmy

Aplikacja Laravel 12 na PHP 8.2 z MySQL 8, front-end Vite + Tailwind, spakowana w dwa kontenery Docker (`japca_app` = nginx + PHP-FPM, `japca_db` = MySQL). Architektura celowo rozdziela dwa rodzaje treści: redakcyjne, które zmieniają się rzadko (geografia, historia, instytucje, kontakty, budżet), są w jednym pliku konfiguracji PHP o 1613 wierszach, który bezpośrednio odczytują szablony Blade, a te, które zmieniają się często (ogłoszenia, galeria zdjęć, projekty i decyzje, dokumenty, ustawienia przejrzystości) są w MySQL i edytuje się je z panelu `/admin`. 40 szablonów Blade, 32 trasy, 10 migracji bazy danych. Uwierzytelnianie w panelu jest ograniczone do 5 żądań na minutę z tego samego adresu — szóste dostaje 429 — a każda akcja administracyjna trafia do tabeli audytu. Nagłówki bezpieczeństwa i sitemap są objęte testami automatycznymi uruchamianymi w CI.

Co można sprawdzić z zewnątrz
  • Nagłówki bezpieczeństwa są obecne na produkcji (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=()`, plus jawny CSP.
  • `https:/`sitemap.xml` — 15 adresów (2026-09-06). Strona główna publikuje dane strukturalne `GovernmentOrganization` + `PostalAddress` (grep po HTML-u na żywo, 2026-09-06).
  • Przypisanie publiczne: stopka na `https://primariajapca.md/` zawiera tekst „MegaPromoting” oraz link do `megapromoting.com` (2026-09-06). W repo: `README.md`, ostatnia linia — „Kod opracowany i administrowany przez MEGA PROMOTING S.R.L.”

Studio Club — menu cyfrowe

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

Zweryfikowane 2026-09-06HTTP 200

Co było do rozwiązania

To samo co przy każdym menu w kodzie QR: ma być szybkie na telefonie, poprawne cenowo, czytelne w trzech językach i możliwe do zmiany w pięć minut, gdy kuchnia usuwa danie. Poza tym restauracja nie potrzebuje żadnego śledzenia klienteli — a więc prawdziwe pytanie brzmi, czy ktoś naprawdę buduje stronę, która niczego nie zbiera, czy tylko tak pisze w polityce prywatności.

Co zbudowaliśmy

Jeden `index.html` generowany przez skrypt Python o 377 wierszach z plików JSON: 146 produktów w 31 kategoriach, 143 krótkie teksty prezentacyjne, plus tłumaczenia na rosyjski i angielski dla kategorii, nazw, objętości, składów, etykiet i tekstów. Koszyk, lista ulubionych i dzielenie rachunku działają w przeglądarce. Strona jest serwowana bezpośrednio przez Caddy 2, z automatycznym HTTPS. Interesujące jest to, że niewykrywanie użytkownika nie jest obietnicą, lecz regułą wymuszaną przez ciągłą integrację: przy każdym żądaniu scalenia CI regeneruje `index.html` ze źródeł i odrzuca PR, jeśli wynik różni się od pliku w repo (więc opublikowana strona zawsze odpowiada źródłom), a następnie uruchamia 14 kontroli — bez śledzących, bez żadnego zasobu ładowanego automatycznie z domeny trzeciej, fonty hostowane lokalnie, bez plików kopii zapasowej, które trafiły do repo, polityka prywatności obecna i podlinkowana z stopki, pełne menu w trzech językach, ceny w kolejności malejącej w każdej kategorii, poprawne dane strukturalne — i sprawdza także, czy z konfiguracji serwera nie zniknęły nagłówki bezpieczeństwa oraz maskowanie adresu IP w logach. Wszystkie użyte akcje GitHub są przypięte do sumy kontrolnej commitu, a workflow startuje z `permissions: {}`.

Co można sprawdzić z zewnątrz
  • Polityka bezpieczeństwa treści na produkcji nie dopuszcza absolutnie niczego z zewnątrz: `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).
  • Brak ciasteczek: `curl -sI https://studioclub.md/ | grep -c set-cookie` → 0 (2026-09-06). Jedynymi zewnętrznymi adresami w HTML są linki do Facebooka, Instagrama i TikToka — które odwiedzająca lub odwiedzający klika, a nie wywołuje strona.
  • Publiczne przypisanie, w trzech językach, w polityce prywatności klienta: `https:/`confidentialitate.html` wymienia „MEGA PROMOTING S.R.L. (întreținere)” i Microsoft Azure jako dostawców technicznych (2026-09-06).

AntiColect.md — strona usług prawnych przeciwko nadużyciom windykacyjnym

Usługi prawne — pomoc przeciwko nadużyciom w odzyskiwaniu długów, Republika Mołdawii

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

Co było do rozwiązania

niesprawdzone — nie mamy źródeł, więc nie mogę opisać problemu roboczego bez wymyślania go.

Co zbudowaliśmy

Aplikacja React skompilowana z Vite, serwowana statycznie przez nginx, z wersją rosyjską pod `/ru/`. 181 adresów w sitemapie produkcyjnej. Tyle da się stwierdzić z zewnątrz: źródeł nie ma na tej maszynie, więc nie mogę nazwać bibliotek, struktury ani integracji.

Co można sprawdzić z zewnątrz
  • `https://anticolect.md/` → 200, `server: nginx/1.24.0 (Ubuntu)` (2026-09-06).
  • 181 adresów w sitemapie: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 181 (2026-09-06).
  • Wersja rosyjska: `https:/`ru`/` → 200 (2026-09-06).

Raionalny Stomatologiczny Ośrodek w Cimișlii — strona i panel treści

Zdrowie — raionalny ośrodek stomatologiczny (publiczna instytucja medyczno-sanitarna), Cimișlia

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

Co było do rozwiązania

Raionalny ośrodek stomatologiczny potrzebował publicznej listy usług z cenami, jasnego oznaczenia tych objętych obowiązkowym ubezpieczeniem, zespołu, harmonogramu dyżurów i stron przejrzystości — edytowalnych przez personel, nie przez programistę. Gdy przejęliśmy projekt, panel administracyjny miał poważny problem: hasło admina było porównywane w przeglądarce i trafiało do publicznego pakietu JavaScript, a żądania zapisu do API mógł wykonać każdy z internetu.

Co zbudowaliśmy

Aplikacja React 18 + TypeScript na Vite 6, z routingiem `react-router-dom` — 22 ekrany, od usług i cen po dyżury, ortodoncję, implanty, pedodoncję, przejrzystość i feedback. Z tyłu API Express 4 uruchomione pod PM2; nginx serwuje zbudowane pliki i przekazuje dalej tylko `/api`. Dane publiczne (usługi, zespół) są w plikach JSON czytanych zarówno przez API, jak i bezpośrednio przez front-end. Część, którą wprowadziliśmy, to zabezpieczenie: hasło nie opuszcza już serwera — `POST `login` sprawdza je tam i zwraca podpisany token HMAC-SHA256 ważny 12 godzin, z limitem 8 prób na 15 minut na adres IP i porównaniami w stałym czasie; zapisy do `services` i `team` teraz wymagają tokenu; sekret podpisu generuje się sam w pliku z uprawnieniami 0600, trzymanym poza repozytorium; API nasłuchuje tylko na 127.0.0.1, więc nginx jest jedyną publiczną drogą; CORS jest ograniczony do własnych domen, a ciało JSON ma limit 1 MB. Ponadto dodaliśmy CI, które buduje, sprawdza typy i odrzuca pakiet, jeśli znajdzie w nim sekret, oraz Dependabot z tygodniowym rytmem dla npm.

Co można sprawdzić z zewnątrz
  • Publiczne dane z produkcji (2026-09-06): `https:/`services.json` — 89 usług, każda z `id`, `category`, `subcategory`, `name`, `price`, `unit` i wskaźnikiem `cnamEligible`; `https:/`team.json` — 6 osób.

imprumut.md — platforma kredytowa

Usługi finansowe — niebankowa organizacja kredytowa, Republika Mołdawii

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

Co było do rozwiązania

Firma kredytowa potrzebuje czegoś więcej niż strony: wniosek musi wejść online, przejść przez przepływ decyzji, wygenerować umowę PDF, utworzyć harmonogram spłat i zostawić ślad w audycie — a wszystko to musi wytrzymać pytania, jakie zada osoba prosząca o zwrot swoich danych osobowych. Część publiczna (kalkulatory, artykuły, strony według typu kredytu) musi jednocześnie przyciągać osoby z wyszukiwarki.

Co zbudowaliśmy

Dwie połówki w jednym repozytorium. Część publiczna to aplikacja Vite + React Router kompilowana statycznie — 50 ekranów, w tym cztery kalkulatory (kredytu, kwalifikacji, refinansowania, harmonogramu spłat), osobne strony według typu kredytu, blog, strony informacyjne przedumowne i zgodności. Trasy rumuńskie pozostają bez prefiksu, a rosyjskie idą przez `/ru/…`, z tagami kanonicznymi i alternatywami generowanymi z języka aktywnej trasy. Część biznesowa to modułowy backend Express w TypeScript, z Prisma nad PostgreSQL: 16 modułów — uwierzytelnianie, uprawnienia według ról, przepływ wniosków, dokumenty, płatności, powiadomienia, zadania planowane, blog, SEO, GDPR, klienci, leady, kontakt, kalkulator, Google Ads, zdrowie — oraz 18 tabel w schemacie Prisma, w tym `Contract`, `Payment`, `AuditLog`, `GdprRequest`, `UploadedDocument`, `DailyKpiSnapshot` i `CronJobRun`. Działa pod PM2, z osobnymi skryptami do migracji w produkcji, kontroli przed wdrożeniem, generowania sekretów, kopii zapasowej i odtwarzania bazy.

Co można sprawdzić z zewnątrz
  • Routing według języków jest udokumentowany i weryfikowalny na produkcji: README.md:56-58; `https:/`calculator-credit` → 200 i `https:/`calculator-credit` → 200 (2026-09-06).
  • 227 adresów w sitemapie produkcji (`curl -s https:/`sitemap.xml` | grep -c '<loc>'`, 2026-09-06).
  • Atrybucja publiczna: strona główna na `https://imprumut.md/` zawiera „Mega Promoting SRL” oraz link do `megapromoting.com` (2026-09-06).

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

Co było do rozwiązania

Usługę samochodową wyszukuje się w bardzo konkretnych kombinacjach — marka plus operacja plus dzielnica („naprawa automatycznej skrzyni BMW Botanica”). Jedna strona „Usługi” nie może na to nic odpowiedzieć. Problem techniczny polega na tym, że strona jest aplikacją React na jednej stronie, więc to, co widzi wyszukiwarka, to pusty `<div>`, jeśli nie zrobi się nic konkretnego.

Co zbudowaliśmy

Aplikacja React 19 + TypeScript na Vite 6, z React Router, ale prerenderowana przy kompilacji: każda trasa wychodzi z builda jako własny plik HTML, więc wyszukiwarka dostaje treść, a nie pustą stronę. Struktura adresów została rozszerzona etapami, możliwymi do sprawdzenia w historii — od 206 stron indeksowalnych do 316 przez dodanie kombinacji marka × kategoria prac, artykułów i stron według sektora Kiszyniowa. Trasy mają wersje językowe, osobny sitemap obrazów, obrazy Open Graph i podział pakietu JavaScript dla szybszego ładowania. Ostatni commit poprawił szczegół, który po cichu psuje indeksowanie: adres kanoniczny, `hreflang` i adresy w sitemapie nadają teraz wszystkie tę samą formę z końcowym ukośnikiem.

Co można sprawdzić z zewnątrz
  • 316 adresów w produkcyjnym sitemapie: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 316 (2026-09-06).
  • Produkcja serwuje nasz build: HTML z `https://tamotorgrupsrl.md/` odwołuje się do `assets/index-…` (sygnatura Vite), 90.199 bajtów (2026-09-06).

Poza jednym produktem.

Możemy projektować aplikacje, infrastrukturę i kontrolę dostępu wokół procesów Twojej organizacji.

Co chcesz, żeby działało lepiej?

Opowiedz nam o swoim procesie. Wspólnie ustalimy, co warto zbudować, co da się połączyć i jak sprawdzimy wynik.

Porozmawiajmy