I’m working on a matching platform and considering Next.js, Tailwind CSS and Supabase/PostgreSQL. I’d like to hear from people who’ve built applications with similar technical requirements, particularly where this combination works well and where it starts to get awkward.
It’s a web-first application with a fairly complex backend. The main requirements are:
Reliable editing and relational data. Multi-step forms, autosave and resume across devices, with users potentially editing in multiple tabs. Some transactions affect several related records or users. Concurrent updates, retries and lost responses need to be handled without overwriting newer data or repeating an operation.
Matching and search. Deterministic, rules-based calculations rather than ML. Results need to track the versions of their inputs and rules, with recalculation when those change. Search includes filtering, pagination and geographical queries.
Authentication. Passwordless email sign-in, phone verification, account recovery and admin MFA. Verification codes need to remain single-use even when requests overlap. Revoked sessions and replaced codes must stop working.
Access control. Permissions depend on account status, role, the relationship between users and its current state. They can differ for each participant, resource and field, with separate rights to read history, send messages, edit data or access shared files. Changes must take effect during active sessions and govern protected responses, cached content and queued work.
Private media. Upload validation, image processing and asynchronous content screening. Files remain access-controlled, and a delayed processing result must not replace a newer version.
Messaging, jobs and integrations. Private messaging, timely updates, notifications, payment integration and scheduled work. Jobs and webhooks need to cope with duplicate or out-of-order delivery, restarts and partial failures. Time-based access rules need to stay correct across timezones and daylight-saving changes, even if a scheduled job runs late.
Privacy and administration. Scoped admin permissions, audit trails, aggregate reporting, retention rules, data export and deletion. Deletion and access changes also need to be accounted for in derived data, queues, external services and backup recovery.
I’d prefer managed database, authentication and storage services where possible. I also want a straightforward way to test the complete stack locally and in staging, including concurrency and failure recovery. Safe migrations, monitoring and tested backups matter, and the application needs to behave correctly with multiple instances and workers.
Would you choose Next.js and Supabase for this? Which parts would you handle within that setup, and where would you introduce a separate API, worker or service?
If you’d choose a different stack, what makes it a better technical fit? I’m particularly interested in limitations or tradeoffs you’ve encountered in production.
Top comments (0)