Skip to main content
PARIS, FRANCE
CV
LISTING CREATION ASSISTANTLIVE PRODUCT

REACT · TYPESCRIPT · GEMINI API · LOCALSTORAGE

A raw item.
A listing ready to publish.

Vintedito turns scattered garment details into a structured listing: a local engine creates an explainable base, then optional AI assistance can improve the wording.
01Describe
02Generate
03Publish
Preview of the Vintedito interface and generated listing
PRODUCT CAPTURE · INTERFACE INTENTIONALLY SHOWN IN FRENCH
PRODUCT DESIGN · FRONTEND · API BOUNDARY

A selling interface that prioritises precision before wording: the listing is useful first, then easier to read.

01 / THE PROBLEM

Selling takes more than a good title.

Condition, size, defect, price, photos, tone and hashtags all shape trust. The point was not to make AI write in place of someone, but to keep every useful detail inside the listing.

WHAT THE SELLER KNOWS

Size 34Good conditionPulled thread disclosed€18CottonSummer

WHAT THE LISTING MUST MAKE CLEARA reliable description

What is declared is included. What is missing stays visible as missing.

02 / THE FLOW

Three steps, one continuous path.

The product moves from the real item to publishable copy. Each screen answers one question and always lets the seller stay in control.

  1. 01

    Describe the item

    Category, brand, size, colour, condition.

  2. 02

    Generate a base

    Local rules, estimate and score.

  3. 03

    Review then publish

    Text, photos, hashtags and status.

03 / THE FORM

Surface useful detail without overloading the form.

The form separates essentials, selling details, then trust-building information. All three groups feed directly into generation rules.

Item detailsSelling goal

Essentials

What helps sell

Transparency

A declared defect is never removed by generation.
04 / THE LOCAL ENGINE

Tone changes. Rules stay visible.

Before any external call, Vintedito builds a listing from local rules: provided data, selling goal, declared condition, price estimate and completeness score.

POSITIONINGBalanced

Copy that values supplied details without overselling.

SUGGESTED TITLEZara · cropped top · size 34 · red · good condition · good value

Indicative price: €9 — €24

Local rulesEstimated priceExplainable score
05 / THE RESULT

A result to check, copy and stand behind.

Title, description, hashtags, price and photo tips stay together. The score does not judge the item: it shows which details would make a listing more reliable.

VINTEDITOGenerated listingProduct preview
Completeness score100/100

The essential details are present.

TITLE

Zara · cropped top · size 34 · red · good condition · good value

DESCRIPTION

Red Zara cropped top in good condition. Size 34. A small pulled thread is disclosed on a seam and shown in the photos. Cotton piece, ideal for summer and casual outfits.

#zara #croppedtop #red #size34 #cotton #summer #casual #goodcondition #fashion #vinted
06 / AI ASSISTANCE

Improve a sentence without inventing the item.

The local version always exists. On request, the browser sends bounded context to the server; the server validates it, then calls Gemini for alternative wording without hiding declared defects or information.

READABLE RULES

Zara · cropped top · size 34 · red · good condition · good value

Red Zara cropped top in good condition. Size 34. A small pulled thread is disclosed on a seam and shown in the photos. Cotton piece, ideal for summer and casual outfits.

Do not invent. Do not hide defects.
  1. 01 / BROWSER

    Category, brand, size, colour, condition, disclosed defect, desired price and goal form the request. The local draft already exists.

  2. 02 / SERVER → GEMINI

    The server validates the expected shape, keeps the key out of the browser and sends this bounded context to Gemini.

  3. 03 / RESPONSE OR ERROR

    A valid response remains optional. On an invalid response or network failure, the local draft is retained and the error remains visible.

07 / RELIABILITY

An unavailable API must not stop a sale.

The base listing is generated first in the browser. AI is an optional enhancement, never a dependency that takes a listing away from its seller.

01

Local engine

Creates a starting listing and score directly in the browser.

02

Optional AI

The server calls Gemini only on request with bounded item fields.

03

Local fallback

Validation, an invalid response or a network error never removes the local draft.

08 / HISTORY

A listing keeps its trajectory.

Listings and statuses stay in local history. When AI is requested, only bounded item details are sent to Gemini through the server; saved history is not sent automatically.

Local historylocalStorage
Zara cropped topGenerated listingDraft
Black midi dressGenerated listingPublished
Denim jacketGenerated listingSold
PRODUCT PERSPECTIVE

Measure practical help, not only generated text.

I would test the flow with real sellers: time to publish, corrected information, distance between the first and last versions, then comprehension of price advice. The product needs to prove that listing feels calmer.