Omer Viner
← All work

Bazaart

Batch Studio: Bazaart's web editor for sellers, which edits up to 1,000 product photos at once on desktop. I worked on it in a team of two developers and a designer.

Bazaart
Year
2024 – present
Context
Software Engineer, Bazaart
Role
Frontend engineer. Led the bulk editor in a team of two developers and a designer, made the architecture decisions, and helped build the coded design system
Tools
TypeScript, React, Redux Toolkit, Web Workers, Storybook, Jest, Playwright, Fabric.js (HTML5 canvas)
Outcome
Released in June 2026. Opened by about 8% of active web users in its first 19 weeks.

Batch styling

A few simple choices (background, size, shadow, framing, a sale badge) restyle every photo at once, and each change shows across the whole grid immediately, so a seller can judge the result at a glance.

One responsive layout

One experience that adapts instead of two separate products. On a phone the tools move to a bottom bar, panels slide up like sheets, and the page never zooms by accident or hides controls under the keyboard.

Batch Studio at tablet width
Tablet
Batch Studio at phone width
Phone
Phone with a selected photo and the floating action bar
Phone, with a selection

AI templates on a whole batch

Pick one look and apply it to every photo in one step. Placeholder cards appear instantly, then a small worker pool generates four at a time while the rest wait. Results return to their original positions, and a failure marks only its own card without stopping the others.

AI Studio on a product

A short path from a plain photo to a gallery of shots: pick a shot type, choose from nine options that appear together, and have them land next to the original, grouped as one product.

On the phone

Phone flow. Tap to select, tool sheets that slide up, a pinch to change the grid, and nothing that zooms the page by accident.
Edit with AI. One prompt field above the keyboard, and the new version appears next to the original in the grid.

Interaction details

Full-screen flight. A photo travels from its tile to the large view and back, landing on the right tile every time.
Rubber-band selection. Drag a box to select a block of photos, with a floating action bar where you are working.
Photo zoom. Zoom toward the pointer and pan freely, so edges and details can be checked before trusting an edit.
Crop. The photo lifts out of the grid and lands back where it was. The original is never harmed.

What I did

  • Led the web app's bulk AI photo editor in a team of two developers and a designer, and made the architecture decisions. People edit one or many images with instant rendering while AI generation runs in the background.
  • Fixed 7+ second UI freezes on large photo batches by moving heavy jobs (HEIC conversion, background removal, masks) to Web Workers. The editor supports up to 1,000 images on desktop.
  • Built a history system that stores each image's actions and values instead of rendered images, with capped steps and undo recovery across multiple images.
  • Built a side-editing mode with its own UI and history, so people can experiment safely, then discard or apply. Built canvas editing tools on Fabric.js with rotation-aware geometry.
  • Split a monolithic app context into Redux Toolkit state slices, removing unnecessary UI re-renders.
  • Helped build the coded design system from Figma and Claude Design: reusable components from buttons to full screens, documented in Storybook, and the base for the design-to-code agent workflow.
  • Adapted the editor for phones: panel layouts, touch gestures and selection, and a full-screen image focus that resizes as panels open and close.

How I work with AI

  • Helped build agent workflows: a design-to-code pipeline (task bundles, agent-built, verified by tests, reviewed in separate PRs) and a per-PR translation sync that updates about 15 languages.
  • Keep code quality high with manual and AI-assisted review, regression and Playwright UI tests, and documented code design, decisions and a learning log so agents follow our standards.

Want to talk about this work? mr.omer.viner@gmail.com · LinkedIn