Portfolio Website rebuild
A Handmade-Goods Shop, Rebuilt Off WordPress Without Losing a Word
- Pages
- 13
- Product photographs
- 226
- Descriptions written
- 220
- Home page HTML
- 219 KB → 20 KB
LoomInUs sells handmade pieces from around the world: Wayuu bags from Colombia, suede leather bags from Kashmir, scarves, bed sheets and macramé. Its website ran on WordPress, with a page builder and a long list of plugins. We rebuilt every real page as a fast static site, kept every word and every product photograph, and gave the shop a design that comes from the cloth it sells.
The problem
The shop's pages had grown the way most WordPress sites do: a page builder, a theme, and plugins layered on top of each other. The home page alone loaded 219 KB of HTML, 25 scripts and 15 stylesheets before a single photograph appeared.
Moving away from that is riskier than it looks. A page builder keeps much of a page's content inside its own settings rather than in the page itself: button labels, background images, and the product galleries that are the whole point of a shop. A quick copy of the visible pages would have left all of that behind. In this case it would have dropped every product photograph on the site.
Two more things needed fixing on the way. Most product photographs had no description at all, so a shopper using a screen reader heard nothing about the products. And the real pages were mixed in with leftovers from the theme and the shop software that no visitor should ever reach.
The approach
Count everything first
Before building anything, we read every page at the source, including the content hidden inside the page builder's settings, and wrote down what it held: 12 real pages, 2,425 words, 48 headings and 264 images. That count is the promise the new site has to keep. We also named the 22 leftover pages to leave behind (empty shop-system pages, donation pages for products that never existed, and sample content from the theme) so none of them could slip back in.
A design taken from the product
A selvedge is the finished edge of a woven cloth, the edge that keeps it from unraveling. The new design borrows that structure. A woven stripe runs down the side of every page, the header is a woven band drawn in code rather than a heavy image, and sections arrive as alternating bands of linen and cotton tones. The colors were sampled from the products themselves, and every text color was checked for contrast before it was used.

The shop's collection pages carry almost all of its photographs, so they got the most attention. Photographs fill the page without labels, which makes the collection look like cloth rather than a spreadsheet. Click one and it opens large, with its description, and the Previous and Next buttons stay in the same place for the whole collection, so a shopper can flip through without chasing the buttons around the screen.

Descriptions written by looking
We wrote 220 image descriptions by opening each photograph, never by reading its filename. That mattered: it turned up files whose names did not match their contents, such as a file named “Light-Purple” that shows a navy bag. Where the original site already had a description, we kept the original words. The new descriptions went to the owner for approval.
Checks that run on every update
Every time the site is rebuilt, hundreds of automated checks confirm that every word and every photograph arrived, and that none of the 22 leftover pages came back. Each check was deliberately broken once to prove it can actually fail, because a check that cannot fail protects nothing.
The result
- All 12 original pages, plus a new one. The shop had never had a Macramé page. We built one from the store's own product data, with prices that show the date they were checked and can be re-checked against the store at any time.
- A much lighter site. The home page's HTML went from 219 KB to 20 KB, and it runs no JavaScript of its own; the only script is privacy-friendly analytics. Measured with GTmetrix on Oct 15, 2026, the home page now finishes loading in 0.6 seconds instead of 4.3, downloads 0.66 MB instead of 2.5 MB, and makes 10 requests instead of 48. Both versions show their main content in about half a second and earn GTmetrix's top grade; the difference is everything the old page kept loading afterwards. (Reports: WordPress, rebuild.)
- 226 product photographs across six collections, each with a description a screen reader can read aloud.
- Easy to read. Body text is at least 19 pixels, and the link and button colors meet the strictest contrast level of the accessibility guidelines (WCAG AAA).
- Nothing to patch. The site is plain files served from a global network. There are no plugins to update and no database to break into.
The rebuilt site is complete and you can browse it now. The loominus.art address switches over when the shop is ready.
Is your site a fit?
A rebuild like this suits a WordPress site whose pages change now and then rather than every hour: a shop's collection pages, an organization's information pages, a portfolio. If yours has grown slow, costs more to maintain than it should, or worries you every time a plugin asks to update, we would be glad to take a look.