Curated tools for European mobility data professionals
A community-driven catalog of open-source tools that support European mobility data standards like DATEX II, NeTEx, SIRI, and mobilityDCAT-AP.
Visit the catalog at: awesome.napcore.eu
Make it easier for developers, data publishers, and mobility professionals to find and use the right tools for working with European mobility data standards.
- Tool Categories: Validators, Converters, SDKs, and more
- Standards Coverage: DATEX II, NeTEx, SIRI, mobilityDCAT-AP, DCAT-AP, and more
- Quality Curated: Only functional, documented, maintained tools
- Community-Driven: Submit tools and improvements via GitHub
- Blog: News, insights, and updates about mobility data standards and tools
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/napcore-tools/web-awesome_napcore_tools.git
cd web-awesome_napcore_tools
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:5173 to see the site locally.
npm run build
npm run previewThe Awesome NAPCORE Tools includes a blog for news, updates, and insights about European mobility data standards and tools.
- Create a new markdown file in
docs/blog/posts/with the naming patternYYYY-MM-DD-post-slug.md - Add frontmatter with post metadata:
---
title: Your Post Title
description: A short description for the listing page
date: 2025-11-06
author: Your Name
tags:
- datex-ii
- netex
published: true
---- Add the metadata component at the top of your content:
<BlogPostMeta />
# Your Post Title
Your content here...Schedule posts for future publication using the publishDate field:
---
title: Future Post
date: 2025-12-01
publishDate: 2025-12-01 # Post won't appear until this date
published: true
---Preview scheduled posts:
# Development with preview mode
VITE_PREVIEW_MODE=1 npm run dev
# Windows PowerShell
$env:VITE_PREVIEW_MODE="1"; npm run devWhen preview mode is active, you'll see an orange banner and all scheduled posts will be visible.
The blog automatically generates an RSS feed at /feed.rss during build. Subscribe to stay updated with the latest posts.
Blog post tags are automatically enhanced with proper titles and links based on their type:
Resolution Order:
- Category tags (e.g.,
validators) β Displays as "Validators" β Links to/categories/validators - Standard tags (e.g.,
datex-ii) β Displays as "DATEX II" β Links to/standards/datex-ii - Blog-specific tags (e.g.,
technical) β Displays as "Technical" β Links to/blog?tag=technical - Unknown tags β Displays as-is β Links to
/blog?tag={slug}
Examples:
tags:
- validators # β "Validators" (links to category page)
- datex-ii # β "DATEX II" (links to standard page)
- technical # β "Technical" (filters blog by tag)
- custom-tag # β "custom-tag" (filters blog by tag)Adding Custom Blog Tags:
To add display titles for blog-specific tags, edit docs/data/blogTags.yaml:
your-tag-slug:
title: Your Tag Display TitleAll tags are clickable and styled consistently throughout the blog.
The Awesome NAPCORE Tools uses a custom markdown plugin (napCoreMarkdownPlugin) to automatically generate standardized content based on document type. This keeps content DRY (Don't Repeat Yourself) by defining metadata once in frontmatter.
Tool pages automatically get a header with title, description, and Quick Info section.
Frontmatter example:
---
document: tool
title: DATEX II Browser
description: Interactive web tool for browsing DATEX II schemas
fullDescription: A comprehensive browser for exploring DATEX II data models...
categories:
- validators
- development
status: active
license: MIT
---Auto-generated content:
- H1 title
- Description as blockquote
- "## Quick Info" section with
<QuickInfo />component
The QuickInfo component automatically displays all tool metadata from frontmatter.
Category pages automatically get a footer with contribution tip section.
Frontmatter example:
---
document: category
contributeTip: Know a validator for DATEX II, NeTEx, SIRI, or mobilityDCAT-AP?
---Auto-generated content:
---
::: tip Want to Contribute?
Know a validator for DATEX II, NeTEx, SIRI, or mobilityDCAT-AP?
[Submit your tool β](/contribute)
:::Benefits:
- Single source of truth: Tip text lives only in frontmatter
- Consistency: All category pages have uniform contribution CTAs
- Easy updates: Change tip text in frontmatter, not in markdown body
- Maintainability: Plugin handles formatting and structure
Location: Plugin implementation in docs/.vitepress/plugins/napCoreMarkdownPlugin.ts
The <ToolMetadata /> component displays a formatted metadata box at the end of tool documentation pages, providing a standardized way to show tool information.
What it displays:
- Categories - Clickable links to category pages (resolves slugs to titles)
- Standards - Clickable links to standard pages (resolves slugs to titles)
- License - License information (e.g., MIT, Apache 2.0)
- Maintenance - Derived from
lastUpdatedfield (e.g., "Actively maintained (October 2025)") - Type - Tool type(s) - supports single string or array (e.g., "CLI Tool", "Web Application")
- Language - Programming language (e.g., "Python", "TypeScript")
- Technology - Technology stack (e.g., "Python, SQLite, CLI")
- Tags - Comma-separated tags
Usage:
Place <ToolMetadata /> at the end of your tool markdown file, typically after a separator:
## Support
- **Issues**: [GitHub Issues](https://github.com/...)
- **Repository**: [GitHub](https://github.com/...)
---
<ToolMetadata />Frontmatter fields:
---
document: tool
title: ALERT-C Locations Tester
categories:
- validators
- data-quality
standards:
- datex-ii
- isodis-14819
license: MIT
language: Python
type: CLI Tool
technology: Python, SQLite, CLI
tags:
- Validator
- Command-line
lastUpdated: 2025-10-22
---Key features:
- Conditional rendering: Only displays fields that have values
- Smart resolution: Automatically converts category/standard slugs to display names
- Automatic linking: Categories and standards become clickable links to their pages
- Single source of truth: All data comes from frontmatter
Location: Component implementation in docs/.vitepress/theme/components/ToolMetadata.vue
The Awesome NAPCORE Tools includes custom markdown directives for creating collapsible sections.
Creates collapsible sections with heading support and attributes.
Syntax:
+++ chapter ## Heading Title
Content goes here...
+++With attributes:
+++ chapter ## Open by Default {open}
This chapter is open by default.
+++
+++ chapter ### Custom ID and Class {#my-id .my-class}
Chapter with custom attributes.
+++Features:
- Supports any heading level (##, ###, ####, etc.)
- Attributes:
{#id}for custom ID,{.class}for CSS classes,{open}to open by default - Triangle marker that rotates when opened
- H2 chapters have top border separator
Creates plain-text collapsible sections without headings.
Syntax:
+++ collapse Click to expand
Content goes here...
+++Default title:
+++ collapse
Content with default "Click to expand" title.
+++Use case: Collapse content after a heading without affecting the heading itself.
Applies minimal styling to VitePress's built-in details directive for Wikipedia-style collapsible sections.
Syntax:
::: details Section Title {.plain}
Content that blends seamlessly with text flow.
:::Features:
- No background color or borders
- Normal font weight (not bold)
- Subtle hover effect
- Blends naturally with surrounding text
Location: Plugin implementations in docs/.vitepress/plugins/
web-awesome_napcore_tools/
βββ docs/
β βββ .vitepress/
β β βββ config.ts # VitePress configuration
β β βββ blog.data.ts # Blog post data loader
β β βββ buildEnd.ts # RSS feed generation
β β βββ plugins/ # Custom markdown plugins
β β β βββ napCoreMarkdownPlugin.ts # Document type handler
β β βββ theme/ # Custom theme & components
β β βββ components/
β β β βββ blog/ # Blog-specific Vue components
β β βββ *.css # Styling files
β βββ index.md # Homepage
β βββ tools/ # Tool documentation pages
β β βββ *.md # Individual tool pages
β βββ categories/ # Category pages (validators, converters, etc.)
β β βββ *.md
β βββ blog/ # Blog
β β βββ index.md # Blog listing page
β β βββ posts/ # Blog post files
β β βββ YYYY-MM-DD-post-slug.md
β βββ *.md # Other pages (contribute, about, etc.)
βββ package.json
βββ README.md
We welcome contributions! Here's how:
- Check our criteria
- Gather required information
- Start a discussion with "Tool Submission" category
- Community review and approval
- Tool added to catalog!
- Click "Suggest changes to this page" on any page
- Make your edits
- Submit a pull request
See contribute.md for detailed guidelines.
- VitePress: Modern static site generator
- Vue 3: Progressive JavaScript framework
- TypeScript: Type-safe JavaScript
- Feed: RSS feed generation
- Custom CSS: NAPCORE branding and styling
The catalog features:
- NAPCORE brand colors and official logo
- Responsive, mobile-first design
- Accessible (WCAG AA compliant)
- Fast loading and SEO optimized
- Dark mode support
- About the Catalog
- How to Contribute
- Tool Categories
- All Tools
- Blog - Latest news and insights
NAPCORE (National Access Point Coordination Organisation for Europe) improves interoperability of National Access Points as the backbone of European mobility data exchange.
- 36 participants: 33 Beneficiaries covering 26 EU Member States
- 37 Implementing Bodies
- Mission: Harmonize mobility data standards across Europe
Learn more at napcore.eu
- Catalog Content: CC BY 4.0
- Code: MIT License
- Individual Tools: See respective tool licenses
This catalog is made possible by:
- NAPCORE partners and participating member states
- Tool developers who create and maintain these resources
- Community contributors
- European Commission through the Connecting Europe Facility
- GitHub: GitHub
- Discussions: GitHub Discussions
- NAPCORE Website: napcore.eu