Live · solo end-to-end
ClueFlow
Otwórz clueflow.plRepozytorium prywatne — kod pokażę na rozmowie.
Czym jest
Aplikacja webowa dla agencji marketingowych do obiegu akceptacji postów social media z klientami marki. Agencja przygotowuje treść i planuje w kalendarzu; klient loguje się do własnego panelu, ogląda podgląd i akceptuje albo odrzuca. Publikacji na Meta/TikTok/LinkedIn nie ma — po OK agencja wrzuca treść ręcznie.
Problem
Akceptacje postów rozjeżdżały się po mailach, Messengerze i tabelkach — bez jednego miejsca ze statusem i historią decyzji.
Dla kogo
Kupuje właściciel (lub freelancer) agencji social & content — subskrypcja. Klient marki nie kupuje: dostaje zaproszenie mailem i klika w panelu klienta (kalendarz, podgląd, akceptuj/odrzuć).
Funkcje
- Panel agencji: posty, klienci, kalendarz, ustawienia, billing, pomoc
- Panel klienta: kalendarz + podglądy platform + decyzja z komentarzem
- Workflow statusów: draft → pending_approval → approved / rejected
- Zaproszenia klientów mailem (Resend) + aktywacja konta tokenem
- Stripe: paywall → Checkout → dostęp do panelu agencji (+ granty)
- Multi-tenant (organizacje) + media w Storage + podglądy FB/IG/TikTok/LinkedIn
Stack
Next.js 16 · React 19 · TypeScript · Tailwind 4 · Supabase (Auth, Postgres + RLS, Storage) · Stripe · Resend · Vercel · Zod · Vitest · Playwright
Screeny




Najciekawsze problemy techniczne
RLS / izolacja tenantów
Polityki per organizacja. Wychwycony i załatany hole: klient mógł przez UPDATE na profiles podnieść sobie rolę / org.
Stripe + entitlement
billing_status / billing_source (stripe | grant | …), webhook, paywall; kolumny billing tylko przez service_role.
Workflow statusów + role
Kto widzi draft, kto może akceptować, walidacja platform per klient ⊆ org.
Auth recovery
Reset hasła / PKCE gdy link otwarty w innej przeglądarce — świadomy fallback, nie magia.
Moja rola
Solo end-to-end: produkt, architektura, UI, backend, billing, deploy, testy. Pomysł od osoby z marketingu w rodzinie; nikt nie współkodował.