# Build Guide: Reddit Account Storefront

## 1. Build objective

Build this as the site’s primary Reddit account category and purchase page. It must function as a live storefront first and an explanatory sales page second.

Use the site’s existing:

- Header, navigation, footer and breadcrumb patterns
- Typography, colors, spacing tokens and button styles
- Product, cart, checkout and account-dashboard systems
- Review, support and notification integrations
- Analytics and consent tooling

Do not create a visually separate microsite or introduce a new design system.

## 2. Content and data rules

- Render the supplied written copy verbatim, apart from necessary substitutions for live operational data.
- Identify sections by their subject and position, not by expecting specific heading wording.
- Use one H1 only. Make major sections H2s and each inventory group an H3.
- Keep all explanatory and policy content expanded and visible. Do not use accordions, FAQ components or tabs.
- Do not add competitor comparisons, other social platforms, Reddit Ads, organic-growth alternatives or general explanations of karma.
- Do not invent prices, stock, business metrics, reviews, payment methods, policy terms or support hours.
- For prices, availability, product attributes, payment methods and discount thresholds, the commerce system is the source of truth.
- If a nonessential proof point is not available, omit that item rather than inserting a placeholder.
- If a product attribute is missing, show “Not specified”; never infer “Yes.”
- Remove all author notes, bracketed instructions and unused placeholders before publishing.

## 3. Page shell and order

Use the existing site header and footer. Place the page inside a semantic `<main>` element with the following order.

### A. Breadcrumbs

Use the site’s standard breadcrumb component:

- Home
- Reddit Accounts, or the current category name

Do not add extra keyword variations to the breadcrumb.

### B. Opening block

Build a compact hero rather than a full-screen banner.

Include:

1. The supplied H1
2. The opening paragraph
3. Primary “Browse accounts” CTA
4. A one-line trust strip beneath the CTA

The primary CTA must link to `#accounts`.

The trust strip should show the supplied operational facts, such as orders delivered, replacement period and support hours, separated by bullets or small dividers. Bind these values to site settings where available.

An optional sample account-card image may sit to the side on wide screens only if a suitable existing asset is available. It must be decorative, have empty alt text and not contain invented account data. Omit it otherwise.

### C. Live account inventory

Assign `id="accounts"` to the inventory section. Place the section heading and overall pricing line above three separately headed inventory groups:

1. Aged accounts
2. Karma accounts
3. Fresh or bulk accounts

All three groups must be visible on the page at once. Do not place them in tabs, carousels or collapsed panels.

### D. Delivery and ordering block

Use a two-column layout on desktop:

- Left: the checklist explaining what the buyer receives
- Right: the numbered purchase steps

Place the accepted-payment-method line beneath the columns, followed by the supplied secondary CTA back to `#accounts`.

On mobile, place the delivery checklist first and ordering steps second.

### E. Reasons and value block

Render the passage about why buyers use aged or karma accounts as normal readable body copy.

Present the “worth it / not worth it” material as a balanced two-column list when the supplied copy supports that structure. Stack the two sides on mobile. Do not convert it into generic marketing cards.

### F. Account-selection block

This section contains three distinct elements:

1. Goal-to-account matching guidance
2. A pre-purchase and arrival-check checklist
3. The price-driver passage

Render the goal matching as a simple list or compact two-column matrix:

- Goal
- Account type to choose

Render the verification content as a visible checklist. Keep the pricing explanation as prose beneath it.

### G. Legal, risk and protection block

Keep the legality paragraph as ordinary body copy.

Present the three purchase risks in a visible two-column table or stacked rows:

- What can go wrong
- What protects the buyer here

Immediately follow this with a visually distinct replacement-policy box. The entire policy must remain visible without a “read more” control.

After the policy, add a proof strip using only supplied or verified facts:

- Year operations began
- Number of accounts delivered
- Review rating and source
- Support channels and hours
- Reseller or repeat-order availability, if stated

Use text labels as well as icons. Do not show unsupported certification or security badges.

### H. After-purchase routine

Render the supplied routine as one ordered sequence divided into three labeled phases:

1. First login
2. First week or two
3. After that

Place the multi-account note after the numbered sequence in a small but fully readable callout. Do not hide this content in a tooltip or modal.

### I. Reviews

Use a static responsive grid, not an autoplay carousel.

Each review card should include, when supplied:

- Buyer name or approved display name
- Date
- Visible star rating with accessible text
- What was purchased
- Short outcome-based quote
- Link to the review source

Show only genuine supplied reviews or reviews pulled from the site’s existing verified review source. Do not generate filler reviews. If no approved reviews exist, omit the review grid rather than publishing empty cards.

### J. Related services and closing CTA

End with the supplied short sentence linking to the site’s existing Reddit upvotes and Reddit comments pages.

Resolve these destinations from the site router, CMS or navigation data. Do not guess URLs. If a destination does not exist, leave that service name as plain text rather than creating a dead link.

Follow the line with the final “Browse accounts” CTA linked to `#accounts`.

## 4. Inventory component specification

### Required product fields

Each inventory row must be bound to a real SKU or purchasable variant and support these fields:

- Product or SKU ID
- Inventory group: aged, karma or bulk
- Account description
- Registration year or account age
- Karma type and range, where applicable
- Registration country
- Registration email included: Yes, No or Not specified
- 2FA included/set: Yes, No or Not specified
- Live stock status or quantity
- Unit price
- Quantity-discount tiers
- Display order
- Purchasable status

### Desktop table columns

Use these columns:

1. Account description
2. Country
3. Email included
4. 2FA
5. Stock
6. Price per account
7. Quantity
8. Purchase action

The description cell should contain the defining attribute:

- Registration year for aged products
- Post or comment karma range, plus age where supplied, for karma products
- Fresh-account or country description for bulk products

Do not create a separate column that is empty for most rows.

### Product ordering

Use a configured `display_order` field when available. Otherwise:

- Aged accounts: oldest registration year to newest
- Karma accounts: post-karma products from lowest to highest, then comment-karma products from lowest to highest
- Bulk accounts: preserve the commerce catalog’s order

### Stock behavior

For tracked inventory:

- Show the available count if the site normally exposes exact stock.
- Otherwise show “In stock.”
- Disable purchase when stock is zero.
- Keep sold-out rows visible and replace the buy action with “Notify me.”

Use the site’s existing back-in-stock integration. If none exists, use the standard site form handler with:

- Email field
- Hidden SKU field
- Clear success and error messages

If no working form handler exists, link the control to the existing support channel with the SKU prefilled. Do not render a nonfunctional notification button.

### Quantity and cart behavior

Each purchasable row needs:

- A visible quantity label
- Numeric input with minimum `1`
- Maximum equal to available stock when inventory is tracked
- Existing plus/minus controls if part of the theme
- A row-level Buy button

The Buy button must add the selected SKU and quantity through the existing cart API. After success, use the site’s normal cart drawer, cart page or confirmation treatment.

Requirements:

- Prevent duplicate submissions while the request is processing.
- Recheck stock server-side.
- Announce success and errors to assistive technology.
- Preserve campaign and attribution parameters through checkout.
- Do not require wallet funding, marketplace credit or a separate account balance.

Use a more descriptive accessible label such as `Buy [account description]`, even if the visible button text is simply “Buy.”

### Pricing

- Default to USD for the US storefront while retaining the site’s existing currency selector if present.
- Label every row price as a per-account price.
- Populate the overall price range from the current minimum and maximum purchasable prices.
- Populate bulk-discount thresholds from the same rules used by the cart.
- Ensure the cart applies the displayed discounts automatically.
- Do not add a separate buyer or marketplace fee.
- Continue to use the site’s normal treatment of legally required taxes; do not describe tax as a buyer fee.

## 5. Responsive behavior

### Desktop

- Use the site’s standard wide content container, ideally around 1120–1280px.
- Keep prose blocks to a readable width of roughly 680–780px.
- Allow inventory tables to use the full container.
- A sticky table header is acceptable if already supported by the theme.

### Tablet and mobile

At widths where the full table no longer fits, transform each row into a stacked product card rather than forcing users to interpret unlabeled cells.

Each card must repeat field labels:

- Country
- Email
- 2FA
- Stock
- Price

Place quantity and purchase controls together at the bottom of each card. Do not hide lower-priority fields.

Do not create a generic sticky “Buy now” button because the page contains multiple products and no single default SKU.

## 6. Visual treatment

The page should feel like a knowledgeable store, not a marketplace listing board.

- Keep the opening concise and inventory visually dominant.
- Use restrained borders and alternating row backgrounds for large tables.
- Use text-backed status chips for “In stock,” “Sold out,” “Yes” and “No.”
- Do not rely on green/red color alone.
- Give the replacement-policy box a subtle tinted background or border.
- Keep risk information calm and factual; avoid warning banners or alarm styling.
- Keep proof and trust elements smaller than the inventory and primary CTA.
- Avoid generic social-media illustrations, cryptocurrency imagery and excessive badge clusters.

## 7. Accessibility

- Maintain one H1 and a logical H2/H3 hierarchy.
- Use real `<table>` markup on desktop with `<caption>` or `aria-describedby`, `<thead>` and `scope="col"` headers.
- Ensure transformed mobile cards retain accessible field labels.
- All inputs need persistent labels.
- Button and link focus states must match the site’s accessible theme treatment.
- Meet WCAG AA contrast.
- Ensure the `#accounts` jump moves keyboard focus to the inventory heading.
- Respect `prefers-reduced-motion` for smooth scrolling and transitions.
- Stars must include text such as “5 out of 5 stars.”
- Do not use icons as the only way to communicate email, 2FA, stock or policy status.

## 8. SEO and structured data

### URL and metadata

If an established canonical page for this product category already exists, update it in place. Otherwise use:

`/buy-reddit-accounts/`

Use the supplied page title and meta description if provided. If no meta description is supplied, derive one from the opening paragraph and trim it cleanly to approximately 150–160 characters.

Add:

- Self-referencing canonical
- Standard Open Graph and social metadata
- Index/follow directives
- Existing site breadcrumb schema

### On-page requirements

- Inventory and explanatory content must be present in the server-rendered HTML.
- Do not client-render the entire product table after load.
- Do not add an FAQ section or FAQ schema.
- Do not repeat keyword variations in hidden text.
- Link only to relevant existing internal pages.

### Product data

Where supported, generate an `ItemList` containing the visible inventory products. Each purchasable row may include Product and Offer data with:

- Name
- SKU
- URL or page anchor
- USD price
- Availability
- Seller
- Item condition only if accurately defined by the catalog

Keep schema availability and price synchronized with the live inventory.

The reviews on this category page are seller-level proof, not necessarily reviews of each SKU. Do not add `AggregateRating` or Product Review schema unless the existing review system verifies that the displayed reviews apply to the marked-up product.

## 9. Analytics

Use the site’s existing analytics layer. Track at minimum:

- Inventory section viewed
- Product row selected
- Quantity changed
- Add to cart
- Add-to-cart error
- Cart or checkout opened
- Back-in-stock request
- Hero, mid-page and final CTA clicks
- Upvotes and comments internal-link clicks

For GA4-compatible commerce implementations, use `view_item_list`, `select_item`, `add_to_cart` and the site’s existing checkout events. Include SKU, product group, quantity, unit price and list position.

Do not send email addresses or account credentials to analytics.

## 10. Final acceptance checks

Before publishing, verify:

- The page uses the existing site shell and theme.
- There is exactly one H1.
- The three inventory groups appear immediately after the opening.
- All inventory groups are visible without tabs or accordions.
- Every row uses live price and stock data.
- Every purchasable row adds the correct SKU and quantity to cart.
- Bulk discounts displayed on the page match the cart.
- Sold-out controls work.
- The registration-email and 2FA values are explicit for every product.
- Accepted payment methods match checkout.
- The replacement policy is fully visible.
- All proof metrics and reviews are sourced and current.
- All three “Browse accounts” CTAs reach `#accounts`.
- The related-service links resolve to existing internal pages.
- Mobile product cards retain every table field.
- No unsupported claims, placeholder metrics or fabricated reviews remain.
- Product schema matches the visible inventory.
- There are no broken links, empty controls, horizontal page overflow or client-only SEO content.
