Collections
Public editorial lists at /collections. Each collection can include any mix of catalog listing types:
| Type | Examples in a collection |
|---|---|
| Mini App | Tonkeeper, DeDust |
| Bot | Notcoin, Fragment |
| Channel | Telegram News, TON Community |
| Group | TON Community Chat |
All listings link to their standard catalog page: /apps/{slug}.
Who can create collections?
TG.app operators only. There is no user-facing form to create or edit a collection.
| Action | How |
|---|---|
| Get listed inside a collection | Submit your app, bot, channel, or group to the catalog and keep it accurate |
| Request editorial inclusion | Contact after your listing is approved |
| Add or update a collection (team) | Edit lib/collections/defaults.ts and run the seed script (below) |
User-generated lists (favorites) remain private under Favorites. Collections are separate, SEO-focused editorial pages.
Browse
- Index: tg.app/collections
- Detail:
/collections/{slug}(e.g.best-ton-wallets)
Only approved slugs render on the detail page. Missing slugs are skipped silently.
Operator workflow
1. Edit defaults
Add or update a row in lib/collections/defaults.ts:
{
slug: 'my-topic',
title: 'My topic',
description: 'Visible intro on the collection page.',
metaDescription: 'Optional SEO meta/OG text (max ~160 chars).',
listingSlugs: ['tonkeeper', 'notcoin', 'ton-community', 'ton-community-chat'],
featured: true,
order: 10,
}
listingSlugs may mix Mini Apps, bots, channels, and groups.
2. Sync to MongoDB
Local:
npm run seed:collections
Production:
vercel env pull .env.production.local --environment=production
npm run seed:collections:production
The seed script reports how many slugs resolved and lists any missing from the approved catalog.
3. Verify
/collectionsand/collections/my-topic/sitemap.xmlincludes collection URLs- Rich results: JSON-LD
CollectionPage+ItemListon each detail page
SEO
Each collection has:
- Title & meta description (optional
metaDescriptionoverride) - Canonical URL (
/collections/{slug}) - Open Graph / Twitter images via
/api/og - JSON-LD:
CollectionPage,ItemListof listings,BreadcrumbList - Sitemap entries (
app/sitemap.ts)