Skip to content

Project Structure

Mehrdad Pajuhaan edited this page Oct 23, 2026 · 1 revision

Project Structure

The storefront is a standard Vue 3 + Vite application. This page explains where things live, how files and components are named, and how the Selldone modules are wired in.

Top-level layout

Path Purpose
StorefrontApp.vue Root component of the app
storefront.ts App entry: creates the Vue app and sets up Core, SDKs, Components, Page Builder and i18n
index.html HTML shell with the Selldone meta tags (see Configuration)
layouts/ Master layouts that define the overall UI (StorefrontLayout.vue)
pages/ One folder per page or page family (see below)
components/ Custom components used only by this storefront
router/ Vue Router configuration (StorefrontRouter.ts)
store/ Vuex store (StorefrontStore.ts)
lang/ i18n files for about 100 languages (en.ts, de.ts, fa.ts, …)
style/ Global styles
modules/ Selldone modules as Git submodules, created by setup
manifest.json Layout identity used when publishing (see Configuration)
.ai-agent/, AGENTS.md Agent kit for AI-assisted customization (see Customize with AI Agents)

Pages

Folder What it renders
pages/landing Home and custom landing pages built with the Page Builder
pages/products, pages/listing Product listing, categories, filters and comparison
pages/product Product page (variants, gallery, 3D/AR, cross-selling)
pages/comparison Product comparison
pages/basket Basket and order pages for regular products
pages/avocado, pages/hyper Special ordering flows (Avocado and Hyper)
pages/pos Point-of-sale pages
pages/user Customer panel: profile, orders, addresses, wallets, gift cards, returns, wishlist, comments
pages/blog Blog list and article view
pages/map Products and vendors on a map
pages/official About us, contact us, privacy and terms
pages/faq, pages/info, pages/instagram FAQ, info pages and Instagram feed
pages/login Login and redirects
pages/errors Error pages (404)

Modules

The setup script adds these repositories under modules/ as Git submodules:

Module Repository Role
modules/core selldone/core Models, types, enums, helpers
modules/storefront-sdk selldone/storefront-sdk Customer API client (window.$storefront)
modules/components selldone/components UI components
modules/community-sdk selldone/community-sdk Community API client
modules/pagebuilder selldone/pagebuilder Landing page renderer/editor
modules/translate selldone/translate Translation files

Update them with git submodule update --init --recursive --remote. To work on a module and the storefront at the same time, see DEVELOPMENT.md (linking packages with yarn link).

Storefront module hierarchy

File naming

File naming conventions

Component naming

Prefix Used for Example
S* Storefront components <s-blog-card>
U* General-purpose UI components <u-chip-change>
B* Backoffice (dashboard) components <b-club-select>
C* Community components <c-breadcrumb>
L* Landing/page builder components <l-section-article>

The same prefixes are used across the Components library, so you can tell at a glance where a component comes from.

Next steps

Clone this wiki locally