Prompt Kits

Build a Directory Site

A useful directory does more than display a list. Visitors need to find the right result, listing owners need a safe way to submit or claim information, and you need to decide what earns money without letting payment buy trust. This kit builds those parts in five sequenced prompts — the public directory, real search and filters, verified ownership with moderation, one clear revenue model, and the tools that keep listings accurate. The moderation gate comes before payments because a paid directory loses credibility quickly if anyone can publish, claim or promote an unverified listing.

Project type: Directory / listings site Difficulty: Intermediate Time: 2-3 days Works with: Base44 / Lovable / v0

What you'll have at the end

  • A public directory for [BUSINESSES / SERVICES / PLACES / RESOURCES] with browsable listing cards
  • A full page for each listing with consistent, useful information
  • Search, filters and clear no-results behavior that work on a phone
  • Accounts for listing owners, with safe submission and claim requests
  • A private moderation queue where nothing becomes public just because someone submitted or paid
  • One working revenue model: paid listings, recurring listing subscriptions, featured placement or sponsor advertising
  • A listing-owner area for edits and billing, plus a site-owner area for moderation and operations

Before you start

  • A tight directory subject. Define exactly what belongs, who uses it and the geographic or topic boundary. "[TYPE OF LISTING] in [AREA OR NICHE]" is more useful than a directory of everything.
  • A real listing structure. Decide which fields every listing needs, which are optional and which must never be public. Prepare at least five accurate examples.
  • Permission to publish. Know where each name, description, contact detail and image came from. Use real images supplied by listing owners or images you are allowed to publish; use labelled placeholders until then.
  • A category and filter plan. Start with a small controlled list of categories and filters that visitors genuinely use. Do not let every submitter invent a new spelling of the same category.
  • A claim and moderation policy. Decide what proof makes someone the owner, what you reject, how corrections work and how quickly you can review requests.
  • One revenue model. Choose paid listing, recurring listing subscription, featured placement or sponsor advertising. Write the price as [PRICE] with [CURRENCY CODE], what the buyer receives and what happens when it expires.
  • A payment provider account. Keep it in test mode through step 4. Store private keys only in the builder's secure settings.

Which platform suits this

Base44 is the smoothest fit because listings, accounts, owner roles, moderation screens and payment records can live in one app with detailed access rules. Its built-in data tools also make early listing cleanup practical. Radius search or a large map-heavy directory may still need extra work and a separate map service. Lovable is a strong full-stack choice for a polished directory with accounts, saved data and payments. Review its data-access rules carefully so listing owners can change only their own information and cannot publish themselves. v0 is especially good for a fast, search-friendly public interface and can connect database, account and payment services, but those services and their permissions need more deliberate setup. On all three, a very large directory, advanced geographic search or heavy moderation volume will need more planning than these five prompts cover.

Start with the first prompt on a free plan. Extra usage and some connected services may cost more as you build out the project.

Build it on

How we make money

The steps

1

Build the public directory and listing pages

When to use this

Start here, in a brand-new project, before accounts, submissions, claims or payments.

The visible directory shape, with consistent listing information and no fake publishing workflow.

The prompt

Build a public directory called [DIRECTORY NAME] for people looking for [TYPE OF BUSINESSES, SERVICES, PLACES OR RESOURCES] in [AREA OR NICHE].

Create a home page that explains what the directory includes, who it helps and how listings are chosen. Add a main directory page with clear listing cards and a reusable page for one full listing. Also add an about page explaining [WHY THIS DIRECTORY EXISTS] and a contact page using [CONTACT EMAIL].

Save listings as editable information so one consistent layout can display all of them. Each listing needs a public name, short summary, full description, controlled category, service or topic tags, location or service area when relevant, public contact details, public website, opening or availability information when relevant, accessibility information when known, real image, last checked date and status. Status is draft, published, paused or closed. Only published listings appear to visitors.

On each listing card show [CARD FIELDS, e.g. name, category, area and short summary]. On the full listing page show [DETAIL PAGE FIELDS] in a clear order, with a contact action labelled [CONTACT ACTION]. Do not invent ratings, reviews, prices, certifications, opening hours, addresses or availability.

Add five example listings clearly labelled as examples for me to replace. Use labelled placeholders saying [REAL LISTING IMAGE NEEDED]. Do not use stock photos and do not generate images of businesses, places, staff, customers or results from scratch. Editing my own real photos is fine; only invented or generated scenes are the problem.

Do not add public accounts, listing submission, claim buttons, payments, featured placement or sponsor advertising in this step. Do not display search or filter controls that do nothing.

Design the site to feel [THREE BRAND ADJECTIVES] using [COLORS]. Make cards easy to compare without looking identical to a generic template. Make the directory and listing pages comfortable to read and tap on a phone.

When finished, tell me where I edit the example listing information and which fields still need real content.

Check it worked

  • You can browse five clearly marked example listings and open a full page for each one
  • Editing one example changes both its card and its full listing page
  • A draft, paused or closed listing does not appear as an ordinary public result
  • Every unknown image or fact is labelled as missing instead of being invented
  • There are no account, claim, payment or fake search controls yet
  • The cards are easy to compare and every listing page is usable on your phone

You'll know it worked when:

A public directory where five editable example listings open into consistent full pages and nothing unverified pretends to be final.

Watch out for

Directories become unreliable when missing fields are filled with plausible guesses. A blank or labelled unknown is safer than an invented opening hour, credential or address. Keep categories controlled from the start; allowing free-form categories creates duplicates such as singular, plural and misspelled versions that break filters later.

2

Add dependable search, filters and browsing

When to use this

Once the listing cards and full pages show the right information.

Visitors can find a suitable listing and understand why results appear.

The prompt

Add working search, filters and browsing to the existing directory.

Search across [FIELDS SEARCH SHOULD USE, e.g. name, summary, category, tags and area]. Match normal differences in capital letters and extra spaces. Do not claim a result matches a word that is not present in its approved public information.

Add these controlled filters: [FILTERS VISITORS ACTUALLY NEED]. Let people combine filters, see which filters are active and clear one or all. Show the number of matching listings. Keep filter choices consistent with the saved category and tag lists rather than creating new spellings.

Use [RESULT ORDER, e.g. best match, alphabetical or most recently verified] as the default order and explain it in plain language. Do not secretly rank paid or owner-favoured listings as the best match. If featured placement is added later, it must be visibly labelled and handled separately.

For location, use [AREA FILTER / DISTANCE SEARCH / NO LOCATION FILTER]. If using distance, ask permission before using the visitor's location, provide a typed location alternative and calculate distance only from accurate listing locations. Never invent map points. If exact locations are sensitive, show the approved public service area instead.

When there are many matches, load them in manageable groups without losing the current search and filters. When nothing matches, say so calmly, keep the entered search visible and offer a clear way to remove filters or suggest a listing. Do not replace no results with unrelated listings that look like matches.

Keep draft, paused and closed listings out of all public search results. A direct saved address for a non-public listing must not reveal its private content.

Test [THREE REAL SEARCHES], one combined filter, one search with no matches and one search containing a spelling or spacing variation. Tell me which listings appeared and why.

Check it worked

  • Each of your three real searches returns the listings you expected
  • Combining two filters narrows the list and both active filters remain visible
  • Clearing one filter keeps the other, while clear all returns to the full directory
  • A no-results search explains what happened without showing unrelated listings as matches
  • Draft, paused and closed listings stay out of results and cannot be opened from a pasted address
  • Your search and filters remain selected while you open more results
  • Location is requested only when needed and there is a typed alternative

You'll know it worked when:

A visitor can run three real searches, combine filters and reach the right full listing without seeing a private or unrelated result.

Watch out for

Search that checks only listing names misses services described elsewhere, while search across private owner notes leaks information. Search only the approved public fields you name. Distance sorting is not trustworthy without accurate location data, and asking for a visitor's location without an alternative loses people who decline. Large result sets also need grouped loading; displaying every listing at once becomes slow on phones.

3

Add submissions, claims and moderation

When to use this

After public search works. Complete and test this trust layer before adding payments.

Listing owners can contribute, but only the site owner can approve ownership and public changes.

The prompt

Add listing owner accounts, new listing submissions, listing claims and a private moderation workflow.

Use the platform's built-in account system for sign-up, login, logout and forgotten-password reset. There are two roles. I am the site owner. A listing owner can see and manage only listings whose ownership I have approved. A listing owner must never make themselves the site owner, approve a claim, publish a listing, mark it featured or reach another owner's private information.

Add a submit a listing form for [REQUIRED SUBMISSION FIELDS]. Explain which information will be public and require the submitter to confirm they have the right to provide the text, contact details and images. Save every new submission as pending review. It must not appear in the public directory or search until I approve it.

Add a claim this listing action to unclaimed listing pages. The applicant must sign in, identify the listing, provide [CLAIM PROOF, e.g. an email at the listing's public domain or a document I can review] and explain their connection. Keep proof private. A request does not change ownership or public content until I approve it.

Detect likely duplicates using the listing name, website, public contact details and location. Warn the submitter and show me the possible match instead of silently publishing a second listing.

Add a private moderation area for me with separate queues for new listings, claims and edits. I can compare submitted information with the current public version, approve it, reject it with a reason or ask for changes. For an edit to an already published listing, keep the approved public version visible while the proposed changes wait for review.

When I approve a claim, connect only that account to that listing. The listing owner can then propose edits and upload real images for their own listing. Their edits return to moderation and do not replace the approved public version automatically.

Send clear emails for submission received, approved, rejected and changes requested using [OWNER NOTIFICATION EMAIL]. Do not promise approval or a review time I have not set.

Test the full flow with one plain test account and one site-owner account. Include a direct-address test showing the plain account cannot open the moderation area or another owner's listing controls.

Check it worked

  • A plain test account can submit a new listing and sees that it is pending
  • The pending listing does not appear in public browsing, search or a pasted address
  • A claim request stores its proof privately and does not transfer ownership
  • From the site-owner account, you can approve or reject the submission and claim
  • After approval, the listing owner can propose an edit only to their own listing
  • The current public version remains visible until you approve the proposed edit
  • The plain account cannot open moderation or another owner's controls, even by pasting an address
  • The submitter receives the right status emails without seeing private owner notes

You'll know it worked when:

A complete trust test: submit, keep private, moderate, publish, claim, approve ownership and prove that account cannot control any other listing.

Watch out for

Payment or an email-domain match is not proof enough for every directory; decide what evidence fits the risk of your niche. Never publish a submission first and review it later, because spam and harmful claims can be indexed or shared quickly. Keep claim documents and private contact details out of public listing data. For edits, preserving the last approved version prevents a claimed listing from being defaced while a change waits for review.

4

Add one honest revenue model

When to use this

Only after you have personally tested that submission, claiming and moderation cannot be bypassed.

The directory earns from one clear offer without letting payment override trust or disguise advertising.

The prompt

Add this revenue model to the directory: [ONE-TIME PAID LISTING / RECURRING LISTING SUBSCRIPTION / FEATURED PLACEMENT / SPONSOR ADVERTISING]. Build only this model for now.

Explain the offer on a public page using [PRICE] [CURRENCY CODE], [BILLING PERIOD OR PLACEMENT LENGTH] and these exact benefits: [WHAT THE BUYER RECEIVES]. State plainly what payment does not guarantee. Approval, accuracy checks and the right to remain listed are still controlled by the moderation policy.

Connect [PAYMENT PROVIDER, e.g. Stripe] in test mode. Send payment details to the provider's secure checkout and never collect or store card details on this site. Calculate the amount from the protected offer information, not from the customer's browser. Mark payment successful only when the provider sends trusted confirmation, not when the buyer reaches a return page.

Do not ask for payment until the listing, claim or advertising material has passed moderation. For a one-time paid listing or recurring listing subscription, let the approved owner pay and apply [WHAT HAPPENS WHEN PAID]. For featured placement, start and end the feature on the paid dates, label it Featured and return it to normal placement when time ends. For sponsor advertising, require approved wording, destination and real owner-supplied imagery, label it Sponsored and stop it on the purchased end date.

A payment must never publish a rejected listing, approve a claim, erase a moderation flag or let a listing owner set their own featured state. Within normal results, preserve the search order from step 2. Put paid placement in a clearly labelled position so visitors can distinguish it from relevance.

Send the buyer a payment confirmation with what they bought, the listing or placement it applies to, the start and end or renewal terms, and how to manage or cancel when relevant. Send me an owner alert. Add payment state and dates to the private owner area without exposing payment secrets.

Define what happens when payment is cancelled, refunded, fails or expires using [YOUR EXPIRY OR GRACE-PERIOD POLICY]. Do not delete the listing or its history. Apply the correct free, unfeatured, paused or expired state after the stated period.

Guide me through one successful test payment, one cancelled checkout, one failed payment and one expiry or cancellation test.

Check it worked

  • Only an approved listing owner or approved sponsor can reach the payment action
  • Secure checkout shows the correct offer, price and billing or placement period
  • A successful test payment creates one paid state and sends one confirmation to the buyer and owner
  • A cancelled or failed payment does not publish, feature or renew anything
  • A paid placement is clearly labelled Featured or Sponsored
  • Ordinary search results keep the order you set in step 2
  • Payment does not approve a rejected listing or pending claim
  • Cancellation, refund or expiry produces the state described in your public offer

You'll know it worked when:

One approved test listing or sponsor goes from moderation to payment to a clearly labelled paid state, then returns to the promised state after cancellation or expiry.

Watch out for

Taking payment before review creates refund disputes when a submission is rejected; approve first, charge second. Paid placement that looks like an ordinary top result damages trust, so label it every time it appears. Recurring plans need a visible cancellation route and a clear end-of-access rule. Test and live payment settings are separate, and a return page is not proof that money arrived.

5

Build listing-owner and site-owner operations

When to use this

After the chosen revenue model works through payment, cancellation and expiry.

Keep listings accurate, owners informed and moderation manageable after launch.

The prompt

Complete the listing-owner area and my site-owner operations without weakening moderation, ownership or payment rules.

For a listing owner, show only their approved listings, current public status, proposed edits, moderation messages and paid offer status. Let them update their account contact details, propose listing changes, replace placeholders with real images they have the right to use, and manage or cancel recurring billing through the payment provider when relevant. A proposed edit must still wait for my approval while the last approved public version remains visible.

Give each listing owner a simple activity summary using [OWNER METRICS, e.g. listing views and contact-button clicks]. Explain exactly what each number means. Do not invent visitors, leads, ratings or revenue, and do not identify individual visitors.

For me as the site owner, add one private dashboard with pending submissions, claims and edits, likely duplicates, reports from visitors, listings not checked since [REVIEW AGE], payments needing attention and placements ending soon. Let me filter each queue and open the evidence and history needed for a decision.

Add a public report this listing action for inaccurate, closed, duplicate or inappropriate information. Ask for a reason and contact email, limit repeated automated reports and keep the reporter private. A report must enter my review queue rather than automatically deleting a listing.

Add reminder emails for [OWNER REMINDERS, e.g. update your listing, changes requested, payment ending soon]. Include an unsubscribe route for non-essential reminders. Keep payment receipts and important account messages separate from promotions.

Let me pause a listing, remove featured status, transfer approved ownership and record a private reason. Never erase the listing history when I do this. Restrict all moderation, payment and ownership tools to me, and restrict each listing owner's controls to their own approved listings.

Run the public search, submission, claim, moderation, payment and expiry tests again after these changes. Report any behavior that changed.

Check it worked

  • A listing owner sees only their own listing, proposed edits and paid status
  • Their edit stays pending while the last approved version remains public
  • Activity numbers come from real visits or actions and their meaning is explained
  • Your private dashboard shows every pending queue and an expiring paid placement
  • A visitor report creates a review item but does not automatically remove the listing
  • Pausing or transferring a listing keeps its decision history
  • Logged out and signed in as a plain owner, you cannot open site-owner tools or another listing's controls
  • Search, moderation, payment and expiry still behave as they did in earlier steps

You'll know it worked when:

One listing owner can maintain an approved listing while you can review changes, reports, ownership and paid status from a protected site-owner dashboard.

Watch out for

Public reports can be abused against a competitor, so they should trigger review rather than automatic removal. Listing analytics are estimates unless every action is measured consistently; label what counts and never manufacture impressive numbers. Ownership transfers need a recorded reason and a fresh proof check. Reminder emails can become marketing, so separate essential service messages and provide an unsubscribe route for optional ones.

Going live

  • Replace every example listing with accurate information, or keep the entire example clearly labelled and out of public search
  • Confirm you have permission to publish each description, contact detail and real image; leave a labelled placeholder where permission or an image is missing
  • Test three common searches, combined filters, no results, a closed listing and a direct address for a pending listing
  • Use two plain accounts to prove one listing owner cannot see or edit another owner's listing
  • Submit, claim, reject, request changes and approve from start to finish before inviting the public
  • Check that new listings and proposed edits always wait for moderation
  • Switch the payment provider from test to live settings, make one small real payment to yourself, cancel or refund it and confirm the paid label and expiry behavior
  • Publish the listing rules, moderation policy, claim requirements, paid-placement explanation, cancellation or refund terms and contact route
  • Label every featured or sponsored placement wherever it appears
  • Add your privacy policy and terms with the legal pages prompt
  • Connect your email service with the transactional email prompt and test every owner status message
  • Run the access rules audit on listings, claims, proof, payments and moderation
  • Connect your custom domain with the custom domain prompt
  • Test browsing, search, submission and claim on a real phone and a slow connection
  • Start with a review volume you can actually moderate and display an honest response-time expectation

Spend fewer credits

Every builder charges you for the work its AI does — so the cheapest habit is thinking before you build. These six rules cut most of the waste, whichever platform you choose.

  1. Plan in a free chat first. Sketch the whole thing in ChatGPT, Claude or Gemini — pages, features, what each form collects, what it should look like. Thinking there is free; thinking inside a builder is billed.
  2. Start from a written prompt, not a sentence. "Make me a website" is the most expensive sentence in AI building. A complete first prompt — like the ones on this site — saves dozens of correction rounds.
  3. Don't be lazy with the details. Every detail you leave out comes back as a correction you pay for. Business name, colors, every page, every form field, what happens after someone submits — put it all in the first prompt.
  4. One change per message afterwards. "Fix the header, and the form, and the colors" produces a tangle that costs more to unpick than it saved.
  5. Stuck? Stop patching. If the same fix fails about three times, don't send a fourth correction — describe the whole section's desired end state in one fresh message instead.
  6. Start free. Upgrade when you need more. Use the free allowance to build and explore your first version. Upgrade when you need more usage or paid features, and check any connected service costs before launch.

The prompts on this page are written to do most of this work for you — that's the point of them.

Read the full guide

Last reviewed: 2026-07-27

FAQ

We use cookies to analyze traffic and track affiliate clicks. By continuing, you agree to our Privacy Policy.