10Case study · B2B catalogue & CMS

Pentagon Carpets: A Carpet Exporter Website and CMS in Nepal

Pentagon Carpets is a family carpet atelier in Nepal that sells handmade rugs directly to importers, showrooms and interior designers. In July and August 2026 I built its B2B catalogue website and a self-service CMS with React, Express and PostgreSQL, deployed by GitHub Actions. The site is live at so.studionepal.com.

  • Five craft pages fed by one carpet catalogue
  • A CMS with three staff roles and a media library
  • Every push to main builds, deploys and checks the site
The Pentagon Carpets home page on a desktop browser and a phone

01The brief

The Brief: A Carpet Exporter Website Staff Can Update

Pentagon Carpets makes Tibetan, Persian, handtufted, handloom and flatweave rugs in Nepal and sells them to trade buyers abroad, with no middleman in between.

Those buyers judge a workshop by its website before writing. They want to see each piece clearly, read how it is made and send a precise brief. And the workshop has to add carpets and articles itself, without calling a developer.

The site had to look like the craft, speak to trade buyers and stay easy for staff to update.

02What I built

What I Built: A B2B Catalogue Website with Its Own CMS

I built a React site with 11 fixed pages: home, heritage, portfolio, journal, custom order, contact and one page for each of the five crafts. Every carpet, article and extra page comes from PostgreSQL through an Express API, so the site grows without code changes.

Behind it, staff use an admin CMS to add carpets, write the journal, build pages, answer enquiries and track custom orders. I built it end to end as Full Stack Web Developer at Ektukra Digital Agency: the kind of website development in Nepal a business selling abroad needs.

A carpet page on the Pentagon Carpets website with description, specifications, care and shipment sections and an Enquire Now button
A carpet’s page: description, specifications, care, shipment and an enquiry button.

03The CMS

Carpet Catalogue CMS with Three Staff Roles

Each role sees only the screens its job needs, and the server checks the same permission table the menu reads, as in every management system I build.

What each CMS role can do on the Pentagon Carpets website
Super adminEditorSales manager
CarpetsAdd, edit, deleteAdd and editView
Journal and pagesAdd, edit, deleteAdd, edit, deleteNo access
Media libraryUpload and deleteUpload and deleteView
Enquiries and custom ordersView and updateNo accessView and update
Staff accountsCreate and deactivateNo accessNo access

Made for Staff, Not Developers

The editors feel like familiar writing tools, and the CMS blocks mistakes that would break the public site, such as a new page saved at a fixed page’s address.

  • Slash commands for headings, lists and quotes
  • Drafts saved in the browser every 5 seconds
  • 14 named colours, so the Colour filter stays tidy
  • A featured toggle for up to nine home page carpets
  • Meta title and description on every carpet and article
  • Five failed sign-ins lock an account for 30 minutes

04Features

B2B Catalogue Features for Importers and Designers

What a trade buyer gets, from the first craft page to a sent commission brief.

Catalogue and Portfolio

  • A page for each of the five crafts, listing its own carpets
  • Colour, Technique, Style and Size filters built from the catalogue, with counts
  • Header search that suggests carpets as you type

Enquiries and Commissions

  • A Get in Touch form on eleven pages, saved with its source page
  • A commission form for ship-to country, company, quantity, date and brief
  • Orders move from New to In review, Quoted, In production and Completed

Journal and Pages

  • Journal articles with a featured image and required alt text
  • Extra pages, such as terms, at their own address
  • Article HTML cleaned against an allowlist on save
The Pentagon Carpets portfolio filtered by four techniques, with Colour, Technique, Style and Size filters above the carpet grid
The portfolio filtered by technique. Filters and counts come from the live catalogue.

05Architecture

Pentagon Carpets Architecture and Tech Stack

Two applications on two subdomains of one cPanel host, behind Cloudflare: the React build as static files, and the Express API under Passenger, talking to PostgreSQL.

  1. StaffReact admin CMSScreens shown by role
  2. APIExpress on NodeZod validation, signed tokens, rate limits
  3. DataPostgreSQL + uploads15 re-runnable SQL migrations
  4. BuyersStatic React build11 prerendered pages and a sitemap

The Pentagon Carpets Tech Stack

Shared hosting set two traps. The image library opened about 90 threads against an account limit of 100, so the API now caps them before it starts.

And behind Cloudflare every visitor looked like one proxy sharing one rate limit, so the limiter now reads each real address.

Front end
React 19Vite 7React Router 7Tailwind CSS 4Swiper
Back end
Node 22 in productionExpress 4Zodhelmetexpress-rate-limitsanitize-html
Data
PostgreSQLParameterised queries with pg15 numbered migrations
Images
sharp on uploadMedia library with usage counts
Security
bcrypt password hashesJWT sign-inThree rolesAccount lockoutCORS allowlist
Deploys
GitHub ActionsFTPSPassenger restartPost-deploy checks

06Engineering

Engineering Decisions Behind the Carpet Website

The four decisions that shaped Pentagon Carpets, and the problem each one solves.

01

Carpet Photos That Fill the Frame and Load Fast

Every upload passes through sharp once: plain or transparent borders are trimmed, never more than 45% of a side, and the longest edge is capped at 1,600 px, over twice the largest frame a carpet appears in. PNG carpets keep their transparent corners.

02

Craft Pages Rank, Carpet Pages Sell

The portfolio and five craft pages carry the SEO, each with its own title, description and structured data. Single carpets come and go with stock, so their pages are noindex and left out of the sitemap. It is how I plan sites as an SEO expert in Nepal.

03

Enquiries That Record Only What the Buyer Said

Both forms save straight to the database, and enquiries record the page they came from. The first version filled empty fields with a default size and technique; I removed that, so staff never quote for a rug nobody asked for.

04

One Push to Deploy, Then a Check

A push to main builds the site, checks the sitemap carries the live address, uploads both apps over FTPS and restarts the API. The run fails unless both answer with a 200, and deploys never touch server credentials or staff uploads.

Technical SEO for a Carpet Catalogue

Built in from the first deploy, not patched on after launch.

  • A prerendered file per fixed page, with its own title, canonical and social tags
  • Organization, WebSite, WebPage and breadcrumb data, plus BlogPosting on articles
  • sitemap.xml, robots.txt and llms.txt rebuilt on every deploy
  • AI crawlers named and allowed in robots.txt

07Screens

The Carpet Website on Phones and Desktop

The craft pages, the carpet pages and the commission form work the same on a phone as on a laptop.

08Status

Where Pentagon Carpets Stands Today

The website is live at so.studionepal.com, with its catalogue, journal and pages edited through the CMS. The source code is private.

Live

It shows how I build for businesses that sell abroad: a catalogue that looks like the product, forms shaped around trade orders and a CMS staff run alone.

What I’d Do Next

  1. Colour tags on every carpet, so the portfolio’s Colour filter appears for buyers.
  2. Email alerts for new enquiries and commissions, alongside the unread counts in the CMS.
  3. Prerendered journal articles, so WhatsApp and LinkedIn previews show each article’s own title and image.

Related services

Need an Export Website Like This?

These are the services behind this case study. Each page lists prices, timelines and how I work, and every starting price is on my services page.

Also see Sajilai, a car and bike rental marketplace. Every project is in my web development portfolio, and the person behind them is on my about page.

FAQ: Carpet Exporter Websites

What the Pentagon Carpets project included, what a website like it costs and how it works for export buyers.

Ask me on WhatsApp

What Did the Pentagon Carpets Project Include?

It included a React website with 11 fixed pages, five craft pages and a filterable portfolio, an Express and PostgreSQL API, and an admin CMS for carpets, journal articles, pages, media, enquiries and custom orders. It also covered technical SEO, cPanel hosting and automatic deploys from GitHub Actions.

How Much Does a Business Website Cost in Nepal?

A static business website starts from NPR 18,000 and takes 1 to 2 weeks. A website with a CMS your staff can edit starts from NPR 35,000 and takes 2 to 4 weeks. A custom build like Pentagon Carpets is quoted on its scope. Domain and hosting are extra.

What is a B2B Catalogue Website?

A B2B catalogue website shows a business’s products to trade buyers, such as importers, showrooms and designers, without a shopping cart. Each piece gets photos, specifications and an enquiry button, and prices are quoted privately. It suits export carpets, because orders are made to size and priced per enquiry.

Does a Carpet Exporter Need an Online Store or a Catalogue?

Usually a catalogue. An export order depends on size, materials, quantity and shipping, so a fixed checkout price rarely fits. A catalogue with enquiry and commission forms collects those details first. If you also sell finished rugs to retail buyers, an online store from NPR 60,000 can sit beside it.

Can Staff Update the Website Without a Developer?

Yes. Staff sign in to the CMS to add carpets with photos, sizes, colours and specifications, write journal articles, create pages and edit the footer contact details. Editors handle content, sales managers handle enquiries and orders, and only a super admin manages accounts. Photos are resized automatically on upload.

How Do Buyers Send an Enquiry or a Custom Order?

Buyers use the Get in Touch form on eleven pages, or the commission form, which asks for ship-to country, company, quantity, target date and a brief. Both land in the CMS, where enquiries are marked read or replied and orders move through a status pipeline.

How Does the Carpet Website Handle SEO?

Each of the 11 fixed pages is prerendered with its own title, description, canonical tag, social tags and structured data, and the sitemap, robots.txt and llms.txt rebuild on every deploy. The craft pages and portfolio do the ranking, while single carpet pages are noindex because stock changes. An SEO audit checks the same groundwork on an existing site.

Can You Build a Website for My Export Business in Nepal?

Yes. I build catalogue websites and CMSs for Nepali businesses that sell abroad, with enquiry forms shaped for trade buyers and SEO for the searches they make. See web development in Nepal for prices and timelines, or send me a list of your products for a fixed quote.

Need a Website for Export Buyers?
I’ll Send a Fixed Quote.

Send a short note about your project and budget. I reply within one working day with questions or a first estimate.

Ujjwal RupakhetiReplies within one working day

What are you planning?

Opens WhatsApp with your message started.