Domain Investors is live: your own store for your own domain names

Skip to main content

November 7, 2026

Domain Investors is live: your own store for your own domain names

We sell domains, and we wanted a site for it that we own: a page for each name, Buy now, offers, checkout, handover. That became Commerce Domains, a contributed module for Drupal Commerce. A module doesn't get anyone a working store, though. Somebody still has to choose the modules, wire the checkout and build a theme.

So we built Domain Investors: a Composer project you install once, answer a few questions, and end up with a store for your own domains.

What you get

  • A page for each domain, with its price, a Buy now button and an offer form. Choose one of four templates for the whole site, from a simple price list to a sortable table for thousands of names, and give a single domain its own look when it deserves one.
  • Offers you can answer. Accept, decline or counter from the admin pages, and the buyer gets a link to pay the agreed price. Or let Escrow.com carry the negotiation.
  • Checkout built for domains. Buyers say where the domain should go and pay by card, PayPal, Wise, bank transfer or Escrow.com.
  • Lease to own for larger names: a down payment at checkout, then monthly payments until the domain is theirs.
  • Handover from the order. Once it is paid, the domain is unlocked and the buyer gets the auth code, or you record the push to their account. Each step emails the buyer, and the order completes once the domain is handed over.
  • Your domains, read from your registrars. Import them from a registrar account, a CSV file or a pasted list, with pricing rules for the ones without a price. Expiry dates stay current, and the site tells you which domains to renew.
  • Registrar and DNS from the domain's page. Change nameservers, the transfer lock and auto-renew, or get the auth code, at Dynadot, Namecheap, NameSilo, Spaceship, Porkbun and others, as far as each registrar's API allows. Edit DNS records with a review step before anything is written, and put back any of the last ten zones.
  • Your marketplace listings, kept in line. Change a price or sell a domain, and Afternic, Sedo, Dynadot and the others follow. A name sold on a marketplace comes off sale here, and its other listings are removed.
  • Prices in more currencies, and bulk actions to reprice, set sale terms or choose marketplaces for many domains at once.
  • A dashboard for the owner: open offers, sales, profit per domain and what expires soon.

See it live

vallic.domains is our own store, and Domain Investors is built from it. It sells real domains at real prices, so it's the quickest way to see what you'd get: browse the names, open a domain's page, make an offer. The demo content you can install comes from the same list.

Explore docs on Github

Six colour schemes come with it, or set your own colours:
 

It is your site, on your own domain, and you keep the whole sale price. Under the hood it is built on an install profile, and in 2026 that needs some explaining.

Why a profile at all

Recipes are the right way to package Drupal configuration, and nearly everything Domain Investors sets up is a recipe. There are 13 of them: one base recipe that every site gets, and one each for Stripe, PayPal, Wise, bank transfer, Escrow.com, lease to own, search, Meilisearch, EU invoicing, Google Tag, marketplace currencies and Vallic Cloud caching.

What recipes don't do well is decide. A recipe can ask for input, but the answer fills in a value in configuration. It can't choose which other recipes to apply, and it can't create content that depends on the answers. Our installer needs to do both. Someone who takes bank transfers and lists on Afternic should get a different site from someone using Stripe and Escrow.com.

So the profile asks, and the recipes do the work.

What updates, and what is yours

CodePHP linesUpdates through Composer
Commerce Domainsabout 41,000Yes
Themeabout 1,200No
Tools moduleabout 1,200No
Install profileabout 900No, and it only runs once

We maintain Commerce Domains on drupal.org, and nearly all of the logic lives there: offers, checkout, handover, leases, registrars, DNS and marketplace syncs. It updates with Composer like any other module. The theme, tools module and profile are copied into your project once, and are yours to change.

Trying it

With DDEV, this installs everything, including 200 demo domains:

composer create-project vallic/domain-investors my-portfolio
cd my-portfolio
ddev start
ddev drush site:install domain_investors -y \
  --site-name="My Domains" --account-name=me --account-mail=me@example.com \
  domain_investors_setup.store_email=sales@example.com \
  domain_investors_setup.payments=stripe,paypal,wise,bank_transfer,escrow,lease \
  domain_investors_setup.registrars=dynadot,namecheap \
  domain_investors_setup.marketplaces=afternic,sedo \
  domain_investors_setup.extras=search,meilisearch,eu_invoicing,demo
ddev drush search-api:index
ddev launch $(ddev drush user:login)

Or open local ddev domain and answer the questions in the browser. The demo domains are real ones we're selling, so remove them before you open your own store.

The project is on GitHub under the GPL, and issues and pull requests are welcome there. It runs anywhere Drupal runs.