React Portals: Solving Z-Index and Stacking Context Issues
12/18/2025React Portals help components escape stacking context and z-index issues. Here’s how I used them to fix modals rendering behind other UI layers.
Full-stack engineer working with Next.js, NestJS, and AWS. I build enterprise platforms, architect backend systems, and lead frontend teams across distributed setups. Based in Sydney, Australia.
Work History
3PTrades, Oklahoma, US
Part of a distributed Nepal-USA team building enterprise tools for materials management and internal tooling. Day-to-day involves Next.js, Prisma, ZenStack, and PostgreSQL on the main product, with a parallel track on Angular + .NET ABP for a newer product line. Also handling AWS infra - Cognito for auth, S3/DynamoDB for storage, and integrating AI agent workflows via the Vercel AI SDK.
Projects
Internal system for tracking material types, inventory, and operational workflows across the organization.
Kicked off the project from scratch - set up the repo structure, decided on a modular architecture using ZenStack for access control policies on top of Prisma. The biggest challenge was designing a flexible RBAC system that could handle per-org settings without becoming a mess of conditionals.
A platform that lets the company plug in different internal apps as modules - think of it as a unified shell for in-house tools.
The idea was to stop building separate apps for every internal need. Instead, each tool becomes a plugin that drops into Captify. I set up the project, built the plugin architecture, and handled the AWS integration layer - Cognito for SSO across plugins, S3 for file storage, DynamoDB for lightweight data that didn't need a relational store.
OrderQ.us
Built the backend and two customer-facing products for a restaurant tech startup - an ordering platform and a reservation system. Worked across NestJS, Next.js, Firebase, and Google Cloud. Handled everything from API design to deployment pipelines.
Projects
The NestJS backend powering both the ordering and reservation products.
Designed the backend from the ground up using NestJS. Used dependency injection properly, separated concerns with a repository pattern, and applied strategy pattern for things like payment processing where the provider could change. Firebase handled auth and real-time data sync. Dockerized everything and set up GitHub Actions for CI/CD - push to main triggers build, test, deploy to GCP.
Customer-facing ordering app - browse menus, place orders, track status in real-time.
The main product. Restaurants set up their menu in an admin panel, customers place orders through a responsive web app. Real-time order tracking via Firestore listeners. Payment processing and transactional emails handled through Google Cloud Functions.
Table booking system with real-time availability and schedule management for restaurant owners.
Customers pick a date, time, and party size - the system checks real-time availability against the restaurant's table layout and existing bookings. Restaurant managers get a calendar view with drag-to-reschedule. Same backend as the ordering platform, shared auth layer.
Srijana Creation
Started as a developer, ended up leading the frontend team. Biggest project was migrating samsara.social from Create React App to Next.js - about a 40% improvement in initial load times. Also built a content collaboration platform in Remix.js with real-time editing via WebSockets.
Projects
Full migration of a social platform from Create React App to Next.js.
The existing CRA app was slow and had no SEO presence. Led the migration to Next.js - converted page-by-page to maintain feature parity while shipping improvements incrementally. The tricky part was handling the auth flow and client-side state during the transition without breaking anything for existing users.
A CMS where multiple contributors can edit content simultaneously with version history.
Built with Remix.js. The real challenge was real-time collaboration - used WebSockets for live presence indicators and Server-Sent Events for content updates. Added version control so editors can see change history and roll back. Role-based access lets admins, editors, and reviewers operate at different permission levels.
Self-Employed
Taking on client projects on the side - mostly Next.js sites with CMS integration. Two recent ones: a travel agency site and an industry showcase for the eVTOL space.
Projects
Travel agency site with trip listings, booking flow, and a CMS for the client to manage everything themselves.
The client needed a site they could actually update without calling a developer. Set up Payload CMS on top of Next.js 15 and PostgreSQL - they manage trips, prices, and content through the admin panel. Built the booking flow with form validation and email confirmations.
Industry showcase site for the eVTOL (electric vertical takeoff) space with an interactive price comparison map.
More interesting than a typical marketing site - the standout feature is a map-based comparator that lets visitors drag a slider to compare eVTOL flight costs vs traditional transportation routes. Content managed through Strapi CMS so the client can add new companies and routes without code changes.
Recent Posts
React Portals help components escape stacking context and z-index issues. Here’s how I used them to fix modals rendering behind other UI layers.
A comprehensive guide on migrating large-scale React applications to Next.js, covering challenges, solutions, and performance improvements from real-world experience.
A comprehensive guide on understanding action and loader in Remix, covering their purpose, how they work, and how to use them in your Remix applications.
Exploring Remix.js for building real-time collaborative applications, including data loading strategies, optimistic UI, and WebSocket integration.
Connect
Looking to build something new, improve what exists, or just talk shop.