E-Commerce

Eyvro: optical e-commerce built from zero

From a landing page to a working commerce system

I started with a simple idea: put a local optical business online. What began as a visual experiment became a complete e-commerce application as I found the real problems behind digital commerce: product management, backend architecture, order workflows, notifications and payments.

The interesting part wasn't building the first version. It was learning why the first version wasn't enough.
Project type
E-commerce / web application / digital product
Role
End-to-end developer and product builder
Timeline
2021, then iterative development
Live site
eyvro.in ↗
Stack and services
Sanity CMSNode.jsExpress.jsPostgreSQLEmail notificationsPayment gateway
Eyvro.in - E-Commerce
01

The problem

The business had a physical presence but no effective digital storefront. Customers had no simple way to:

  • browse the product catalog online
  • understand individual products
  • compare frames
  • follow a structured buying journey
  • place an order online
  • make a payment digitally

From the business side there was another problem: even after products were online, there was no reliable way to know when an order had been placed.

So the real problem was not "build a website". It was: how do I turn an offline optical business into a functioning digital commerce experience?
02

My first assumption

My first approach was heavily focused on the visual side. I believed a polished UI and a premium-looking landing page would be enough to create a useful online presence.

It wasn't. The first version looked more like a digital showcase than an actual commerce product.

What I learned

A good-looking website is not automatically a useful product. The user needs a complete journey.

  1. Discover
  2. Explore
  3. Evaluate
  4. Select
  5. Checkout
  6. Pay
  7. Confirmation
The first version of the site, then called Deepak Opticals: a dark landing page with a banner and a search bar, but no real shopping flow
Version one, when the business was still Deepak Opticals: it looked polished, but it was a showcase, not a store.
03

Iteration 01: content and product catalog

I introduced a CMS-based product catalog using Sanity CMS, so product information and content could be managed separately from the frontend, with structured product data in place of hardcoded markup.

But having products online did not automatically create a usable buying experience. The site still lacked the underlying flow commerce needs, which pushed me to focus less on individual visual sections and more on the complete user journey.

04

Iteration 02: backend and data

The project then grew from a mostly frontend experiment into a proper web application. I learned how APIs work, how frontend and backend communicate, how databases store application data, how server-side logic handles requests and how e-commerce systems process orders.

I explored PostgreSQL for persistent storage and later moved to a Node.js backend using Express.js.

What I learned

The frontend is only one layer of a commerce application.

  1. Frontend
  2. API
  3. Backend logic
  4. Database
  5. External services
The Deepak Opticals order admin running on localhost, showing an error that spectacle types could not be loaded from the backend
Wiring the frontend to a real backend, one error at a time: the order form failing to load spectacle types from the API.
05

Iteration 03: rebuilding the product experience

With the technical side understood, I rebuilt the experience around the customer's journey and rebranded the project as Eyvro, an optical e-commerce brand. Instead of a landing page, it became a complete shopping experience, designed to reduce friction between discovering a product and completing a purchase.

  1. Landing page
  2. Browse frames
  3. Product details
  4. Understand the frame
  5. Select product
  6. Checkout
  7. Payment
  8. Order confirmation
The rebuilt Eyvro storefront on desktop, with category navigation, a campaign banner and new arrivalsThe Eyvro storefront on mobile, with product cards and prices
The final version: the live Eyvro store, on desktop and mobile.
06

The product experience

The redesign focused on making product discovery useful. A customer can:

  • browse the frame catalog
  • open individual products
  • understand product information
  • move through a structured shopping flow
  • reach checkout without leaving the website

It follows familiar e-commerce patterns while keeping the visual identity of the optical brand.

07

Business-side problem: order notifications

A new operational problem appeared: if someone places an order, how does the owner know? The CMS could store the order, but storage alone is not a notification workflow.

I added an email service that fires whenever an order is submitted, which connected the customer-facing site to the business's day-to-day operations.

  1. Customer places order
  2. Order stored
  3. Notification triggered
  4. Owner receives email
08

Payment integration

The last gap was closing the commerce loop. Customers needed to pay digitally rather than just submit an order request, so I evaluated Indian payment gateway options and integrated one into the application.

  1. Catalog
  2. Checkout
  3. Payment
09

The final system

Customer experience

  • Branded storefront
  • Product catalog
  • Product detail pages
  • Structured shopping flow
  • Checkout
  • Online payment

Content

  • Sanity CMS
  • Structured product management

Application

  • Frontend
  • Node.js
  • Express.js
  • API layer
  • PostgreSQL

Operations

  • Order storage
  • Order notifications
  • Email integration
  • Payment integration
10

The real problem I solved

The biggest value was not the website itself. Over several iterations I solved a chain of connected problems, each one discovered only after the last was fixed:

  1. Problem 1

    The business had no effective online presence.

  2. Problem 2

    A visual landing page was not enough to support commerce.

  3. Problem 3

    The product catalog needed structured content management.

  4. Problem 4

    The application needed backend and database infrastructure.

  5. Problem 5

    Orders needed to reach the business owner.

  6. Problem 6

    Customers needed an actual online payment flow.

Building software is often less about knowing everything upfront and more about identifying the next bottleneck and solving it.
11

What I learned

  1. 1

    UI is not the product

    A polished interface is useful only when the underlying user journey works.

  2. 2

    Build around user flows

    Design the complete journey, not isolated pages.

  3. 3

    Backend matters

    Real applications need APIs, persistent data and server-side logic.

  4. 4

    Integrations are product work

    CMS, email and payments are not add-ons. They solve real business problems.

  5. 5

    Iteration is engineering

    The first architecture does not have to be perfect. What matters is learning from what doesn't work and improving the next version.

12

Why this project matters

This project was my move from "I can create a website" to "I can understand a business problem and gradually build the system required to solve it." It taught me to think across UX, frontend, backend, data, integrations and business operations, and that mindset became the foundation for the projects that followed.

Have a similar problem? Let's talk.

Kartik Saxena - open to remote roles, contract work and new projects.

more web work