Add your Application
Add your application
The Cardano applications page is a curated list where users discover what can be built on Cardano. It should feature quality apps that demonstrate the ecosystem's capabilities.
Philosophy: The Cardano applications page is designed to help newcomers to the Cardano ecosystem see what's possible today. We focus on live, functional products on mainnet - not promises, pre-sales, or coming soon pages. We're not trying to map out a future ecosystem, but rather showcase the present reality of what's been built.
Requirements
Before making a pull request, please make sure that you fulfill all these requirements.
- Live on Cardano mainnet
- Functional product with real use case (not just a concept or idea)
- Stable domain (no temporary/test domains, URL shorteners, or app store links)
- Clear description without marketing claims like "the best", "the first", "the only"
- Title is at most 25 characters, ideally 15-20. Concrete and brandable; drop a redundant
Cardanoprefix unless the bare project name is too generic on its own - Must provide unique value distinct from existing showcase items
- Must have sufficient community reputation
- Meets a basic design and quality bar: a working UI, real content, and enough polish that a first-time visitor would leave with a positive impression of the Cardano ecosystem
These criteria are also applied retroactively. Apps that go offline, get abandoned, or pivot away from Cardano are removed during quarterly review. See Apps curation policy for the removal triggers and process.
Step-by-Step Process
-
Prepare your project screenshot
Cards on
/appscrop to roughly 280×150 px. To look sharp on retina displays without bloating the repo, follow these specs:Item Recommendation Resolution 2048×1440 px source (displays at 1024×720 @2x), downscales cleanly Aspect ratio 16:9 or 16:10 landscape; anything taller gets cropped on the card Format WebP (quality 80) for UI screenshots; PNG only when pixel-perfect text or transparency matters File size Under 500 KB (build will fail otherwise; the only spec enforced by scripts/check-app-screenshots.js)Content the actual app UI, cropped to the meaningful area. Not a marketing landing page. Theme prefer light theme for visual consistency with the grid Browser chrome omit URL bar and tabs unless intentional (use a clean window or crop them out) One-liner to resize and re-encode an oversized PNG to WebP (
cwebp, cross-platform, part of thewebppackage):cwebp -q 80 -resize 2048 0 input.png -o your-project-name.webpName the file descriptively, lowercase, hyphens (e.g.
minswap.webp, notScreenshot 2026-04-19.png). -
Add your screenshot to the repository
- Place it in:
src/data/app-screenshots/your-project-name.webp
- Place it in:
-
(Optional) Add your project icon/logo
- Icons are displayed in specialized components like the DEX grid and app lists
- Supported formats: SVG, PNG, WebP, JPEG
- Place it in:
static/img/app-icons/your-project-name.svg(or .png, .webp, .jpg) - Recommended size: Square aspect ratio, minimum 128x128px
- Use SVG when possible for best quality at all sizes
-
Add your project entry
- Edit:
src/data/apps.js - Add your entry to the END of the Showcases array
- Use this format:
Title is identifyingThe detail page URL
/apps/<slug>is derived from the title viaslugify, so renaming an app's title later changes its slug.{title: "Your Project Name",description: "Brief description of what your project does (120-180 chars; avoid 'best/first/only' claims)",tagline: "Multi-pool DEX with deepest liquidity", // max 60 chars; shown on /apps tilespreview: require("./app-screenshots/your-project-name.webp"),icon: "/img/app-icons/your-project-name.svg", // OPTIONAL - for logo display in componentsstatsLabel: "yourprojectlabel", // OPTIONAL - for transaction statistics mappingwebsite: "https://your-project.com",source: "https://github.com/your-org/your-project", // or null if not open-sourcecategory: "dex", // exactly one (see categories below)properties: ["opensource"], // zero or more (see properties below)maintainerPick: false, // leave false; maintainers set thisx: "yourproject", // OPTIONAL - X (Twitter) handle without @, shown on detail page} - Edit:
-
Pick exactly one category ⚠️
Each app has one primary category that answers "what kind of app is this?". Available categories:
wallet,dex,lending,marketplace,governance,explorer,pooltool,analytics,minting,bridge,identity,game,distribution,notary,ecosystem,education,other. Useotherfor thin segments (stablecoins, oracles, payment gateways, music, social) that don't have enough peers to warrant their own category.Pick the most specific one. Do not list multiple. If your app legitimately spans two, choose the primary user intent.
-
Add properties (zero or more)
Properties are additive flags answering "what does this app also offer?":
mobile: first-class native mobile app (not a responsive site)nft: supports or uses NFTs (do not use for image-based NFT collections)opensource: public source repository; you must also fill insourcedrepdelegation: voting power can be delegated to a DRep directly inside the app. Entries carrying this flag are listed on /governance/delegate
-
maintainerPickDefaults to
falsefor new submissions.maintainerPick: trueis set only by page maintainers via the Maintainer picks process. -
Wallets only:
walletFeatures⚠️Entries with
category: "wallet"must carry awalletFeaturesobject. It powers the wallet finder filters, and the build rejects a wallet entry that leaves it out, because such an entry would be invisible on/wallets.walletFeatures: {platforms: ["ios", "android"], // one or morecustody: "non-custodial", // exactly onefeatures: ["staking", "nft"], // zero or moretype: "light", // exactly one},platforms(one or more):ios,android: native mobile appsbrowser: browser extensiondesktop: installable Windows, macOS, or Linux applicationweb: usable in a browser without installing anything
custody(exactly one):non-custodial(the user holds the keys) orcustodial(a third party holds them).type(exactly one):light(talks to the network through a server) orfull-node(downloads and verifies the chain itself).features(zero or more), claim only what ships today:staking: delegate ada to a stake pool from inside the walletgovernance: on-chain voting or DRep delegationnft: view, send, and manage NFTsmulti-asset: manage native tokens beyond adadapp-connector: connect to DApps (CIP-30)hardware-wallet: pair a Ledger or Trezormulti-account: several accounts in one walletdex: built-in token swapsqr-claim: claim tokens via QR codes or claim links (CIP-0099)easy-setup: a new user can start using the wallet before writing down a seed phrase, with the backup deferred to later
Every value is validated against the lists above, so copy the identifiers exactly as written. A typo such as
easy_setupfails the build and names the offending value:Showcase site with title=Your Wallet contains errors:Unknown walletFeatures.features=[easy_setup] -
Optional Fields Explained
icon field:
- Path to your logo/icon for display in component grids
- Must be in
/static/img/app-icons/directory - Example:
icon: "/img/app-icons/minswap.svg" - If omitted, components will show a fallback badge with your app's first letter
statsLabel field:
- Used to map your app to transaction statistics data
- Only needed if your app has on-chain transaction metrics
- Must match the exact label in
/src/data/tx-stats.json - See Transaction Rankings Guide for details on getting your app tracked
- Example:
statsLabel: "minswap" - If omitted, the system will attempt normalized matching on your title
x field:
- X (Twitter) handle for the project, used on the
/apps/<slug>detail page and assameAsin the JSON-LD - Just the handle, no
@, no URL. Example:x: "MinswapDEX", not"@MinswapDEX"or"https://x.com/MinswapDEX" - 1-15 characters, letters, digits, and underscores only (matches X's own handle constraints)
- The build's schema validator rejects anything else
spotlight field (set by maintainers):
- Links to a Developer Spotlight blog post on
developers.cardano.org/blog/ - Renders a callout banner on the app's detail page (
/apps/<slug>) - Shape:
spotlight: { url: "https://developers.cardano.org/blog/...", title: "Spotlight: <App>", date: "YYYY-MM-DD" } - All three fields required if set; URL must be
http(s):// - Submitters: leave omitted. Maintainers add this when a Spotlight is published.
-
Test your submission
- Run
yarn build(must complete without errors). The schema validator will reject unknown categories, properties, or wallet features. - Check that your project displays correctly
- Verify your icon appears if you added one
- Ensure category is the most specific match and properties are minimal
- Submit your pull request
- Use the "Add Your App" GitHub PR template
- Fill out the checklist in the template