-
Step 1 · Domain DNS + server ready
Prerequisites you can finish in half an hour
A link directory is the lowest-effort scenario here, so it needs the fewest prerequisites.
- Buy the cheapest lightweight cloud server (1 vCPU / 1 GB is fine — you don't need a control panel, plain Nginx is enough)
- Add A records for your domain: point both
@andwwwat the server IP - SSH in and install Nginx (skipping a control panel saves you roughly 200 MB of RAM)
If you'd rather manage files through a panel later, run the aaPanel script on the right — same result, a bit more memory.
A directory site can also live entirely on GitHub Pages or Vercel, for free. The only reasons to buy a server: you want faster access from mainland China, you need an ICP filing, or you want to run ads.
Checklist
- Your domain resolves (ping works)
- Nginx or aaPanel is installed
- Visiting the IP shows the default page
-
Step 2 · Write the link data
Turn the sites you want to list into one JSON file
The soul of a directory is curation, not volume. 20 precise links beat 200 junk ones.
Suggested structure:
{ "categories": [ { "name": "AI Tools", "icon": "🤖", "links": [ { "name": "ChatGPT", "url": "https://chat.openai.com", "desc": "Conversational AI" } ] } ] }Categories you can copy outright:
- AI tools / DevOps / Design assets / Productivity / Learning / My own sites
Every link needs a
desc. One line saying what it does. Without a description visitors don't know what they're clicking, and they won't click twice.What about icons? The cheapest option: generate a colour block from the first letter of the domain — no image files at all. If you want them sharper, fetch favicons automatically from an endpoint such as
https://favicon.im/<domain>.Checklist
- links.json has at least 3 categories
- Every link has name / url / desc
- The JSON validates (jsonlint.com)
-
Step 3 · Deploy + polish the UI
Upload it, then make it look good
Upload
index.html,data/andassets/. With aaPanel, drop them into/www/wwwroot/example.com.Four things that keep a directory from looking cheap:
- Search box at the very top: people arrive looking for something, not to browse. Support fuzzy matching across names and descriptions.
- Card grid, not a plain text list: icon, name and description per card, rounded corners plus a subtle hover effect.
- Dark mode: tool directories look better and more professional in dark.
- Open in a new tab: give every outbound link
target="_blank" rel="noopener"so you don't walk visitors off your own site.
Keyboard bonus:
/focuses the search box, Esc clears it. A small detail that lifts the whole experience.Checklist
- Your domain shows the complete directory page
- The search box filters by name
- All outbound links open in a new tab
-
Step 4 · Ad slots + analytics + indexing
Make the directory start earning
A directory monetises more directly than a content site, because it is a traffic router by nature.
Common options:
- Paid listings: others pay an annual fee to appear. This needs traffic first, so do steps 1–3 properly.
- Ad slots: top banner, or in-feed cards between categories. Mark them
rel="sponsored". - Affiliate links: recommending cloud servers and domain registrars on a tools site converts well.
- Your own products: put your other sites first.
Analytics and indexing:
- Install analytics, see which categories get the most clicks, and reorder accordingly
- Submit your sitemap to Google Search Console and Bing Webmaster Tools
- Get an HTTPS certificate (free, one click in most panels)
Compliance: ads must be recognisable — never disguise an ad as a directory link. Put a disclaimer in the footer saying which placements are promotional.
Checklist
- Ad slots are visible on the page and labelled
- Analytics shows page view data
- HTTPS loads with no certificate warning
- The footer carries a promotional disclaimer