Sprawdź Knajpę – aplikacja zbudowana w jeden dzień z pomocą AI
Skąd pomysł?
Przeglądając Reddita, trafiłem na wątek na r/Polska, w którym użytkownicy dyskutowali o restauracjach, które samodzielnie doliczają napiwek do rachunku. Ktoś zaproponował stworzenie listy takich knajp — co zresztą szybko się rozrosło w wątek pełen nazw, zdjęć paragonów i komentarzy.
Pomyślałem: fajny pomysł, ale lista na Reddicie to nie to samo co narzędzie, z którego ludzie rzeczywiście mogliby korzystać. Reddit dobrze nadaje się do dyskusji, ale słabo do zbierania i filtrowania danych. Potrzebna była aplikacja.
Następnego dnia aplikacja Sprawdź Knajpę już działała. Możesz zobaczyć efekt końcowy na stronie projektu.
Jak działa aplikacja?
Główna idea jest prosta: możesz wyszukać restaurację przez Google Places API, dodać ją do bazy i ocenić według kilku kryteriów. Inne osoby mogą potem głosować na te oceny.
Po kliknięciu w pin na mapie pojawia się tooltip z podglądem najważniejszych informacji o lokalu.
Każda restauracja ma swój dedykowany widok szczegółowy.
Serce aplikacji to sekcja z głosowaniem na poszczególne cechy lokalu.
Co można oceniać?
Wśród dostępnych kryteriów oceny znajdziesz m.in.:
- Obowiązkowy napiwek – czy restauracja sama dokleja go do rachunku?
- Darmowa woda do picia – czy dostępna jest woda kranowa bez opłat?
- I kilka innych cech, które pomagają ocenić, czy warto odwiedzić dane miejsce.
System głosowania — algorytm Wilsona
Zwykłe zliczanie głosów „za” i „przeciw” ma pewien problem: ogromna liczba głosów za może przyćmić nawet kilka bardzo trafnych głosów przeciw. Dlatego siła każdej oceny jest liczona za pomocą dolnej granicy przedziału ufności Wilsona — tego samego algorytmu, który stosuje Reddit do rankingowania komentarzy.
Dzięki temu wyniki są uczciwe nawet przy małej liczbie głosów, a popularność lokalu nie przekłamuje jego oceny.
Jak zapobiegam vote bombingowi?
Żeby zapobiec masowemu podbijaniu lub zaniżaniu wyników przez jedną osobę, każdy głos jest identyfikowany przez hash złożony z:
- adresu IP,
- fingerprinta przeglądarki,
- identyfikatora sesji.
Kluczowe: żadna z tych danych nie jest przechowywana w bazie w oryginalnej postaci — tylko ich hash. Nie wiem, kto głosował, ale system wie, że ktoś już głosował z danego urządzenia i nie pozwoli zagłosować ponownie.
Stack technologiczny
| Warstwa | Technologia |
|---|---|
| Frontend | Next.js |
| Hosting & Serverless | Vercel |
| Baza danych & Storage | Supabase |
| Mapy | Google Maps API |
| Wyszukiwanie restauracji | Google Places API |
| IDE / Asystent AI | Antigravity |
Logika zapisująca dane do bazy ukryta jest w funkcjach serverless na Vercelu — frontend nigdy nie ma bezpośredniego dostępu do bazy danych.
Jak powstało tak szybko?
Cały projekt zajął łącznie około 6 godzin pracy w Antigravity — od pomysłu do działającej aplikacji. Przy czym spora część tego czasu poszła na optymalizację kosztów API Google: Places API nie jest tanie, więc trzeba było starannie przemyśleć, które dane cachować w Supabase, a które pobierać na żywo.
Sprawdź Knajpę — marzec 2026. Zbudowane z pomocą Google Antigravity.