Skip to content
KIVA
← All work

Websites

Joymera Retail Market: market redesign

A full redesign for a neighbourhood market in the Philippines, built around painted wood, yellow tables, and the shop's bag mascot. The new homepage also loads 1.44 MB instead of 42.90 MB.

Context
Joymera Retail Market, a neighbourhood market in Bacoor, Cavite, Philippines.
My role
Design, frontend development, and image production
Year
2026
Homepage: Market scene with a brush-script headline, a table of groceries, and the shop's mascot.
Phone homepage: Headline and two full-width buttons first, with the groceries below.

My redesign: before and after

The old site next to my design, at the same screen size.

Homepage

A logo in a rounded card became a full market scene: a brush-script headline on painted blue boards, a table of groceries, and the shop's mascot waving from the counter.

After: HomepageBefore: Homepage

Products

Small cards with thumbnails became a shelf: every product sits on the same blue wall and yellow table, with a round red price sticker.

Before
Before: Products
After
After: Products

Policy section

Pale cards became a deep maroon band with script headings and a clear link to each full policy.

Before
Before: Policy section
After
After: Policy section

On a phone

The hero is redrawn for a tall screen: headline first, two full-width buttons, and the groceries on the table below.

Before
Before: On a phone
After
After: On a phone

Overview

Joymera Retail Market is a neighbourhood market in Bacoor that sells fresh produce, pantry staples, and household essentials. The new website carries the same cheerful personality as the shop's mascot and is easy to browse on a phone.

The problem

The old homepage downloaded 42.90 MB on every visit, 42.54 MB of it images, which took 34.6 seconds to load on a simulated 10 Mbps connection. On a 390 px phone screen its layout was 780 px wide, and the look gave the shop's strong mascot little room.

The solution

A rebuild with no framework, set in a painted market: blue boards, yellow tables, maroon signs, and Filipino words like sariwa and sulit in the copy. Products are grouped into four aisles with sticky tabs, and images are compressed WebP files that load as the visitor scrolls.

Screenshots

Captured from the real, live website.

My contribution

Designed and built the new site, produced the image set and compressed it for the web, rebuilt the basket and order page, and measured the old and new versions with the same script.

What it does

  • Fifteen products in four aisles, with tabs that jump between them
  • The client's bag mascot used across the page, from the hero to the basket
  • Basket panel with quantity controls and a reminder that nothing is paid yet
  • Order page styled as a handwritten shopping list on notebook paper
  • Field checks on the order page, including Philippine mobile number formats
  • Order sent as a pre-filled email that the customer sends, with the shop confirming before payment
  • Fonts hosted with the site, so the homepage makes no third-party requests
  • Keyboard support in the basket, reduced-motion support, and GroceryStore structured data

Technical challenges

One world for every product

Fifteen different items had to look like they belong on the same shelf. Each generated image uses the same blue wall, yellow table, and lighting, with plain packaging. The site says the photos are illustrations and that items are confirmed before payment.

Ordering with no backend

The site is static, so it can't place an order by itself. The order page checks the details and opens a complete pre-filled email for the customer to send, and it explains that the team confirms first.

A rich page that stays light

A full-bleed hero and many product images could easily get heavy. A separate hero for phones and lazy loading keep the phone homepage at 0.93 MB on load and 1.54 MB after a full scroll.

Verified stack

  • HTML
  • CSS
  • JavaScript
  • WebP
  • JSON-LD structured data

Facts from the code

Homepage weight on load
42.90 → 1.44 MB
On load, on a phone
42.89 → 0.93 MB
After scrolling the whole page
42.90 → 1.60 MB
Fully loaded, simulated 10 Mbps
34.6 → 0.74 s
Phone layout width (390 px screen)
780 → 390 px
Products in the catalogue
15

Outcomes

  • Live at joymeramarket.store.
  • Measured with the same script: homepage on load down from 42.90 MB to 1.44 MB on desktop and 0.93 MB on phones.
  • No failed requests or console errors on the new homepage during the capture run.

Lessons

  • If a client already has a strong mascot, build the design around it.
  • One shared set-up for product images makes a small shop look organised.
  • A little of the customer's own language says more than a slogan.

About this case study

Client website, shown by name. Screenshots and measurements come from one capture script run on the old and new site, on a local server. The 10 Mbps figure is a simulated connection, not data from real visitors. The product and scene images are generated illustrations, and the site says so. The mascot comes from the client's logo. The owner's name is masked in the old homepage screenshot.

Planning a new website, or is yours too slow?

Describe it in a few sentences. You'll get a reply within two business days with questions, a rough approach, and a price range in CHF.

Start a project →