Budget: 250 EUR Deadline: 5 days
Hello Mario,
Intermittent freezes in a Vanilla JS app on Supabase Realtime plus Upstash Redis almost never come from the feature that visibly hangs. In my experience the usual root causes are:
- Realtime subscriptions that are created on every re-render or route change and never unsubscribed, so after a while the client holds dozens of open channels and the socket starts backing up.
- No reconnect/backoff handling: Supabase drops the websocket (tab sleep, network blip), the app never resubscribes, and the UI just sits there looking "stuck".
- Redis calls issued per keystroke or per scroll event instead of being debounced, hitting Upstash rate limits — which return errors that the app swallows silently.
- Serverless cold starts on Vercel masked as "the app froze".
How I would work:
1. Reproduce first. Instrument the client: log every channel subscribe/unsubscribe with a counter, wrap every Supabase and Upstash call to record latency and errors. Without a reproduction, any fix is a guess.
2. Read the network waterfall and Vercel function logs around the exact moment of the freeze, not in general.
3. Fix root causes, not symptoms — and tell you plainly which ones I found and which I could not confirm.
4. Regression check: a short script that drives the problem flows repeatedly, so the freeze cannot come back unnoticed.
What I need from you: repository access, Supabase and Vercel project access (read-only for logs is enough to start), and one concrete example — which feature hangs, how often, and roughly when it last happened.
About me: I build and run autonomous systems in production 24/7 on Linux VPS — Python, Node, systemd, monitoring, self-restart. Debugging someone else's code, reading logs and stabilising "almost working" systems is exactly what I do. Playwright and Puppeteer are daily tools, so the regression harness is not extra work for me.
My work: guardlabs.online/studio
Bid: 250 EUR, 5 days. If the root cause turns out to be smaller than it looks, I will say so and we can cut the scope — I would rather keep the estimate honest than pad it.
Note: the project description was auto-translated on my side, so if I misread any requirement, correct me and I will adjust.