Co obejmuje projekt aplikacji webowej lub MVP
Współpracę dopasowujemy do konkretnego briefu. W ofercie wskazujemy, które z poniższych elementów są w zakresie, kto dostarcza materiały wejściowe i jak odbierany jest każdy z nich.
- Zakres pierwszej wersji: kluczowy proces, role i to, co poczeka
- Najważniejsze ekrany zaprojektowane wraz ze stanami pustymi, ładowania i błędów
- Model danych, reguły dostępu po stronie serwera i testy, które próbują je złamać
- Konta, role i zaproszenia do zespołu
- Płatności lub subskrypcje potwierdzane zweryfikowanymi callbackami od dostawcy
- Panel administracyjny, zdarzenia analityki produktowej i monitoring błędów
- Wdrożenie, dokumentacja i przekazanie repozytorium oraz kont
Aplikacja webowa, strona internetowa czy najpierw projekt produktu?
Wybierz tę usługę, gdy klienci lub pracownicy mają logować się i wykonywać pracę w produkcie: coś kupić, zarezerwować, przesłać, zatwierdzić lub czymś zarządzać. Jeśli potrzebujesz strony, która wyjaśnia i sprzedaje Twoją ofertę, lepiej sprawdzi się Web Development. Jeśli proces nie jest jeszcze ustalony, zacznij od Product Design i buduj dopiero wtedy, gdy kluczowe ekrany zostaną przetestowane z użytkownikami.
Jak powstaje pierwsza wersja
Zaczynamy od fazy ustalania zakresu: użytkownicy i role, jeden proces, który pierwsza wersja musi obsłużyć, dane tworzone na każdym kroku oraz decyzje zmieniające koszt, takie jak płatności, integracje i uprawnienia. Efektem jest pisemny zakres, klikalne kluczowe ekrany i plan wydania, który wskazuje, co zostaje odłożone.
Potem budujemy w krótkich cyklach na środowisku stagingowym, z którego możesz korzystać. Pierwszym kamieniem milowym jest cienki wycinek kluczowego procesu działający od początku do końca, z prawdziwym logowaniem i prawdziwymi regułami danych, zanim uzupełnimy pozostałe ekrany. Uruchomienie obejmuje monitoring produkcji, ścieżkę wycofania zmian i przekazanie repozytorium, hostingu, bazy danych oraz kont płatności i analityki na Twoje dane.
Co powinno znaleźć się w pierwszej wersji MVP?
Pierwsza wersja potrzebuje wszystkiego, co pozwala prawdziwemu użytkownikowi wykonać jeden proces, i niczego, co ma znaczenie dopiero w skali, której jeszcze nie osiągnąłeś. W praktyce to pięć rzeczy: konta z rolami wymaganymi przez proces, sam kluczowy proces, panel administracyjny, dzięki któremu zespół widzi i poprawia rekordy bez programisty, płatności, jeśli model biznesowy pobiera opłaty od pierwszego dnia, oraz zdarzenia analityczne pokazujące, w którym miejscu użytkownicy rezygnują.
Odłóż to, co da się zrobić ręcznie lub dokupić później: natywną aplikację mobilną, single sign-on dla klientów korporacyjnych, konfigurowalną macierz uprawnień, drugą integrację, czat w aplikacji i raporty, o które nikt nie prosił. Każdy odłożony element nadal dostaje wiersz w zakresie, żeby model danych zostawiał na niego miejsce.
Większość produktów składa się ze znanych modułów. Dwa zasługują na uwagę: rezerwacje i planowanie terminów oraz lejek leadów dla małej firmy, która dziś śledzi zapytania ręcznie. Oba wyglądają prosto, a kryją decyzje o strefach czasowych, statusach i odpowiedzialności, które taniej ustalić na papierze.
| Moduł | Czego wymaga | Do ustalenia przed budową |
|---|---|---|
| Konta i role | Rejestracja, logowanie, odzyskiwanie dostępu i sprawdzanie roli przy każdym żądaniu do serwera | Jakie role istnieją i czy jedna osoba może należeć do kilku organizacji? |
| Zaproszenia do zespołu | Wygasające linki zaproszeń, liczba miejsc, przekazanie własności, usunięcie natychmiast odbierające dostęp | Kto może zapraszać i co dzieje się z rekordami usuniętego członka? |
| Rozliczenia i plany | Hostowany checkout lub subskrypcje, zweryfikowane callbacki, limity planów egzekwowane na serwerze | Co obejmuje każdy plan i co się dzieje, gdy płatność się nie powiedzie? |
| Rezerwacje i planowanie terminów | Reguły dostępności, strefy czasowe, bufory, ochrona przed podwójną rezerwacją, przypomnienia, zmiana terminu | Kto ustala dostępność i czy termin jest blokowany, gdy klient płaci? |
| Zapytania i lejek leadów | Formularz chroniony przed spamem, statusy od nowego do wygranego lub przegranego, przypisanie, źródło, zapis zgody | Jakich statusów naprawdę używa zespół i dokąd trafia lead dalej? |
| Panel admina i raporty | Wyszukiwanie, historia rekordów, ręczne korekty, eksporty | Które liczby zespół przegląda co tydzień i kto może edytować rekordy? |
| Własne domeny | Dodawanie hosta, weryfikacja DNS, status certyfikatu, kontrola planu | Które plany obejmują domenę i jakie limity hosta obowiązują? |
| Dziennik audytu | Dziennik tylko do dopisywania: kto, co i kiedy zmienił | Jakie działania muszą być możliwe do prześledzenia dla klientów lub audytorów? |
| Powiadomienia | Wiadomości e-mail i w aplikacji, szablony, dziennik dostarczeń, preferencje użytkownika | Które zdarzenia powiadamiają kogo i które można wyłączyć? |
Jakiego stacku używa Dardo i kiedy wybiera inaczej?
Domyślnie pracujemy w TypeScripcie od początku do końca: Astro do stron renderowanych na serwerze i interaktywnych wysp, Cloudflare Workers do hostingu i API, Cloudflare D1 lub Postgres na dane oraz PostHog do analityki i eksperymentów. Superame działa na Astro, a jego ranking jest przechowywany w Neon Postgres. Jeden język i jeden cel wdrożenia sprawiają, że mały produkt jest prosty w utrzymaniu i przekazaniu.
Wybieramy inaczej, gdy produkt tego wymaga. Gęsty interfejs, który jest otwarty przez cały dzień, może uzasadniać aplikację React po stronie klienta, jak w prototypie Shiimain. Odpowiedź zmieniają też długo trwające zadania, ciężkie przetwarzanie danych lub zespół wewnętrzny, który pracuje już w innym frameworku. Jeśli to Twoi programiści przejmą kod po premierze, zwykle wygrywa ich stack.
Kontrolę dostępu testujemy w pierwszej kolejności. OWASP Top 10:2025 utrzymuje Broken Access Control na pierwszym miejscu i podaje, że każda testowana aplikacja miała jakąś jego formę. Egzekwujemy uprawnienia na serwerze dla każdego żądania, domyślnie odmawiamy dostępu, ograniczamy każde zapytanie do organizacji zalogowanego użytkownika i piszemy automatyczne testy, które próbują odczytać rekordy innego klienta.
Jak powinny działać płatności w aplikacji webowej?
Płatność potwierdza po stronie serwera operator płatności; powrót przeglądarki ze strony kasy nigdy jej nie potwierdza. Pokazuje to Superame, publiczny ranking projektów wśród opublikowanych prac Dardo. Kupujący płacą w hostowanej kasie Dodo Payments, więc dane karty nigdy nie trafiają do aplikacji. Następnie operator wysyła podpisane wywołanie zwrotne (callback), a serwer weryfikuje podpis i sprawdza szczegóły płatności, zanim doda środki.
Zwroty i spory przechodzą tą samą drogą. Każde zdarzenie od operatora jest przetwarzane tylko raz, więc callback, który dotrze dwukrotnie, z opóźnieniem lub w złej kolejności, nie doda ani nie odejmie środków dwa razy. Superame nie publikuje danych o popularności ani przychodach; to dowód na to, jak zbudowana jest logika płatności, a nie na sprzedaż.
- Kupujący, który zamknie kartę przed przekierowaniem, i tak otrzyma środki, gdy dotrze callback.
- Powtórzony lub sfałszowany callback zostaje odrzucony.
- Zwrot lub spór cofa dokładnie to, co przyznała pierwotna płatność.
- Limity planu są sprawdzane na serwerze, a nie tylko ukrywane w interfejsie.
- Klucze testowe i produkcyjne to osobne sekrety, nigdy nieprzechowywane w repozytorium.
Pozwól klientom korzystać z własnych domen
Klienci B2B SaaS często chcą mieć produkt pod własnym adresem, na przykład portal.theircompany.com. Cloudflare for SaaS obsługuje to za pomocą niestandardowych nazw hostów: plany Free, Pro i Business obejmują 100, każda kolejna kosztuje 0,10 $, a maksimum to 50 000. Niestandardowe nazwy hostów z symbolem wieloznacznym są dostępne tylko w planie Enterprise.
Klient dodaje rekord CNAME wskazujący na Twój cel. Użycie rekordu A wskazującego na ten cel, którego wymagałaby domena główna, nie jest domyślnie obsługiwane, a proxy dla domeny głównej (apex) to dodatek dostępny w Enterprise, więc większość klientów powinna użyć subdomeny. Certyfikaty są weryfikowane przez HTTP, TXT lub e-mail albo przez Delegated DCV, jednorazowy rekord, który pozwala Cloudflare odnawiać je automatycznie. Wystawiają je Let's Encrypt, Google Trust Services lub SSL.com.
Równie ważna jest praca produktowa wokół tego: domenę mogą podłączyć tylko płatne plany, ekran wdrożenia pokazuje dokładny rekord do dodania, status weryfikacji wyjaśnia prostym językiem stany oczekiwania i błędu, a monitoring powiadamia zespół, gdy certyfikat nie może się odnowić, bo klient zmienił DNS. Inni dostawcy hostingu ustalają inne limity: Vercel pozwala na 50 domen na projekt w planie Hobby i bez limitu w Pro i Enterprise, z limitami miękkimi 100 000 i 1 000 000; Netlify zaleca nie więcej niż 50 aliasów domen na witrynę.
Pytania przed wyborem
Od czego zależy koszt aplikacji webowej lub MVP?
Koszt zależy od liczby ról, złożoności głównego procesu, płatności, integracji i ilości istniejących danych do migracji. Uprawnienia i stany liczą się bardziej niż liczba ekranów: jeden ekran z pięcioma rolami i krokiem zatwierdzania to więcej pracy niż pięć ekranów tylko do odczytu. Wycenę na podstawie pisemnego zakresu przedstawiamy po fazie analizy zakresu, a nie według stawki za funkcję.
Ile trwa zbudowanie pierwszej wersji?
Zależy to od tego, jak ustalony jest proces, jak szybko docierają decyzje i treści oraz czy strony trzecie, takie jak operator płatności lub dział IT klienta, muszą zatwierdzić dostęp. Propozycja określa kamienie milowe, zaczynając od działającego wycinka głównego procesu. Termin pełnego wydania ustalamy po akceptacji tego wycinka.
Czy Dardo może przejąć istniejący kod?
Tak, po audycie. Sprawdzamy repozytorium, zależności, model danych, kontrole dostępu, wdrożenie i to, kto kontroluje każde konto, a następnie opisujemy, co może zostać, co trzeba najpierw naprawić i czy bardziej sensowna jest naprawa, czy przepisanie. Nie obiecujemy zachowania ani wymiany kodu, zanim go przeczytamy.
Czy tworzycie natywne aplikacje na iOS i Androida?
Nie. Dardo tworzy rozwiązania webowe, w tym aplikacje webowe do zainstalowania, otwierane z ikony na ekranie głównym. Gdy produkt zależy od funkcji urządzenia, których przeglądarka nie udostępnia, od dystrybucji w sklepach z aplikacjami lub intensywnej pracy offline, lepsza jest aplikacja natywna i powiemy to wprost. Aplikacja webowa i jej API mogą nadal służyć jako backend dla zespołu natywnego.
Do kogo należy kod i konta?
Do Ciebie. Repozytorium, hosting, baza danych, domena oraz konta operatora płatności i analityki są zakładane na Twoje dane lub przenoszone przy przekazaniu, a propozycja wymienia każdą licencjonowaną zależność, której nie można przenieść. Dardo zachowuje wyłącznie dostęp, który przyznasz na potrzeby wsparcia.
Czego potrzebujecie od nas?
Osoby decyzyjnej, która w ciągu kilku dni odpowie na pytania o zakres, dostępu do systemów, z którymi produkt ma się łączyć, oraz prawdziwych przykładów danych i dokumentów używanych w procesie. Konto u operatora płatności załóż na firmę odpowiednio wcześnie, bo operatorzy weryfikują firmę, zanim włączą płatności na żywo.
Co dzieje się po uruchomieniu?
Oferta może obejmować okres wsparcia na błędy, monitoring i drobne zmiany, gdy pojawiają się pierwsi prawdziwi użytkownicy. Potem dalszy rozwój ustalamy jako miesięczny zakres prac albo nowy projekt. Aktualizacje bezpieczeństwa i zależności nie są opcjonalne, więc w obu przypadkach potrzebują wskazanego opiekuna.
Z bloga
- Własne domeny w SaaS: pozwól klientom używać swojej domeny dzięki Cloudflare for SaaS
Pozwól klientom kierować własną domenę na Twój SaaS dzięki Cloudflare for SaaS: jak działa weryfikacja, ile to kosztuje (stan na październik 2026) i gdzie się psuje.
Źródła i dalsza lektura
Źródła tej strony wraz z dodatkowymi informacjami od oryginalnych wydawców.
- OWASP Top 10:2025, A01 Broken Access Controltop10.owasp.org
- Cloudflare for SaaS: plany i limity niestandardowych nazw hostówdevelopers.cloudflare.com
- Cloudflare for SaaS: pierwsze kroki (cel CNAME i rekordy A)developers.cloudflare.com
- Cloudflare for SaaS: metody weryfikacji certyfikatówdevelopers.cloudflare.com
- Cloudflare: urzędy certyfikacjidevelopers.cloudflare.com
- Vercel: limity (domeny na projekt)vercel.com
- Netlify: dodawanie aliasu domenydocs.netlify.com

