Consumer and admin features were growing together
Jeomjuro is a collaborative community product for current and future store owners. Consumer and admin apps share a monorepo, so authentication, notifications, shared components, and moderation need consistent boundaries.
My work covered the request path for notification and token refresh, admin search state, article editing, and consumer rendering and session behavior.
Connect product behavior across requests, state, and UI
Notification and refresh request boundaries
I introduced Next.js Route Handler proxies for notifications and token refresh, forwarding authentication cookies and Authorization and reflecting upstream Set-Cookie responses.
A same-origin proxy handles the browser EventSource constraint on custom authentication headers. This introduced the boundary where it was needed while preserving the existing API integration.
Admin search and moderation
I connected user, post, and comment search with comment deletion and restoration. Draft search input is separate from the applied query, and changing filters resets pagination.
The changes reject invalid post IDs, refresh related lists after actions, and expand shared UI and Storybook examples. I also aligned CI and Storybook workflows with pnpm.
Rich article editing
I replaced Markdown input with a Tiptap editor supporting formatting, links, colors, and image upload. Popovers close on outside interaction or Escape, while rendered content uses permitted color forms and sanitization.
Consumer rendering and session order
I reduced work on public routes and initial home hydration and corrected ad-banner hydration behavior. Logout keeps the token needed by the server request until that request settles, then clears the client session. This keeps the visible state aligned with the authentication operation.
Changes delivered through consumer and admin deployments
The notification and refresh BFF and admin improvements moved from develop into main and were included in successful production deployments of both apps. Consumer rendering and logout changes are also present in that deployed code.
I subsequently extended article editing and shared UI examples. Working alongside the team’s social-login and deployment foundation, I improved both the consumer experience and the tools used to operate it.
Trace
- BFF
- Notification and token refresh routesIncluded in production code
- Admin
- Search, deletion, restoration, and stateConsumer and admin deployment history
- Editor
- Tiptap writing experience