NBZ Nathan Bonavia Zammit
01 / 02

01 · Online shop · WooCommerce shop rebuild

Trendy Thrifting

A Malta thrift shop selling one-off pre-loved pieces. The store ran on WordPress, WooCommerce and a page builder, and loaded slowly on a phone. I rebuilt it with a hand-written theme in place of the builder, a bag drawer, an owner's live view of what customers have in their bags, and postage rules that match how the owner actually ships.

Client
Trendy Thrifting, Malta
Role
Theme, plugins, launch
Stack
WordPress, WooCommerce, PHP, vanilla JS
Live since
19 September 2026
Status
Live since September 2026
The Trendy Thrifting home page: the piece count, the headline, Shop women and Shop men buttons, a photo of the rail and the new-this-week row
A piece's page on a phone with the price and an Add to bag button fixed at the bottom of the screen
The shop page with the owner's photo as a banner, the piece count, a filters button and a grid of pieces marked New
A piece's page: a photo of a gold sweater, the price, size and marked details, an Add to cart button and the postage for this piece
The same home page on a phone, with the headline, the two shop buttons and the rail photo stacked
The shop on a phone: two pieces per row with their prices and marked sizes
The home page: 407 pieces, 46 new this week, and the week's arrivals in a row below 1 / 6

How it went

Problem, build, result

  1. The Trendy Thrifting home page: the piece count, the headline, Shop women and Shop men buttons, a photo of the rail and the new-this-week row
    A piece's page on a phone with the price and an Add to bag button fixed at the bottom of the screen
    The shop page with the owner's photo as a banner, the piece count, a filters button and a grid of pieces marked New
    A piece's page: a photo of a gold sweater, the price, size and marked details, an Add to cart button and the postage for this piece
    The same home page on a phone, with the headline, the two shop buttons and the rail photo stacked
    The shop on a phone: two pieces per row with their prices and marked sizes
    The home page on a phone, the screen most customers use 5 / 6

    Problem

    Slow on the phone it was built for

    • A builder-generated theme, 3 MB pages and JPEG photos made the old shop load in over ten seconds on a throttled phone.
    • Stock wasn't managed, so a sold one-off piece could be bought twice.
    • The owner handled orders from her phone and had no way to see what customers were putting in their bags.
  2. The Trendy Thrifting home page: the piece count, the headline, Shop women and Shop men buttons, a photo of the rail and the new-this-week row
    A piece's page on a phone with the price and an Add to bag button fixed at the bottom of the screen
    The shop page with the owner's photo as a banner, the piece count, a filters button and a grid of pieces marked New
    A piece's page: a photo of a gold sweater, the price, size and marked details, an Add to cart button and the postage for this piece
    The same home page on a phone, with the headline, the two shop buttons and the rail photo stacked
    The shop on a phone: two pieces per row with their prices and marked sizes
    A piece's page: size and marked tags, the postage for this exact piece, and one of a kind 4 / 6

    Build

    A theme written by hand

    • A classic WooCommerce theme with a bag drawer, Women and Men browsing, and the owner's shoot photos as section banners.
    • Every piece managed as stock of one and sold individually, with fits-like and marked tags instead of size filters.
    • Postage by weight class: per piece in Malta, one parcel by total weight to Europe and worldwide, free delivery in Malta over 100 €, and a live bags page for the owner.
  3. The Trendy Thrifting home page: the piece count, the headline, Shop women and Shop men buttons, a photo of the rail and the new-this-week row
    A piece's page on a phone with the price and an Add to bag button fixed at the bottom of the screen
    The shop page with the owner's photo as a banner, the piece count, a filters button and a grid of pieces marked New
    A piece's page: a photo of a gold sweater, the price, size and marked details, an Add to cart button and the postage for this piece
    The same home page on a phone, with the headline, the two shop buttons and the rail photo stacked
    The shop on a phone: two pieces per row with their prices and marked sizes
    A piece on a phone: the price and Add to bag stay within thumb's reach 2 / 6

    Result

    Live, and run from a phone

    • Launched on 19 September 2026 with the catalogue migrated in place.
    • The owner manages orders from the WooCommerce app and sees live bags from the admin.
    • Fonts self-hosted as subset woff2 and images regenerated as WebP.

Under the hood

What keeps it solid

Shop
  • Each piece is stock of one, sold individually; sold pieces stay visible for 30 days, then drop off.
  • Pickup at the university or St Paul's Bay, cash on collection allowed.
Owner
  • Live bags: a read-only admin page showing what every open bag holds, refreshed every 30 seconds.
  • Launch steps packaged as a plugin and rehearsed on a staging copy before the real switch.

Tech

Tech and package

  • WordPress
  • WooCommerce
  • PHP
  • JavaScript
  • Custom theme
  • Shop pluginstock defaults, tags, postage rules
  • Live bags pluginthe owner's page

Have a site that needs work?

Email me