The eBPF Landscape is a community-driven project that relies on contributions from people like you. There are many ways to contribute, from adding new projects to improving existing entries.
How to Contribute
1. Adding New Projects
To add a new eBPF project to the landscape:
- Fork the repository
- Create a new YAML file in the data/items/ directory
- Follow the schema defined in lib/types.ts
- Submit a pull request with your changes
2. Updating Existing Entries
Help keep the landscape current by updating existing project information:
- Update project descriptions
- Add new tags or categories
- Update URLs and links
- Add new features or capabilities
3. Improving the Website
Help improve the user experience and functionality:
- Fix bugs or issues
- Add new features
- Improve accessibility
- Enhance mobile experience
- Optimize performance
Project Structure
The project is built with modern web technologies:
- Next.js 15: React framework with App Router
- TypeScript: Type-safe development
- TailwindCSS: Utility-first CSS framework
- Zod: Schema validation for data integrity
- Vitest: Unit and integration testing
Data Format
Each company entry is defined in a YAML file with a simplified structure focused on companies rather than products. Here's a comprehensive example with all available fields:
slug: company-name
company: Company Name
category: [Networking, Observability]
status: [Platinum Member, eBPF Contributor]
description: Detailed description of the company (up to 500 characters)
website: https://example.com
github_repo: https://github.com/company/project
linkedin: https://linkedin.com/company/project
youtube: https://youtube.com/c/project
blog: https://blog.example.com
contact: info@example.com
location: United States
year_founded: 2020
funding_status: Series A
crunchbase: https://crunchbase.com/organization/project
Required Fields
- slug: Unique identifier (kebab-case)
- company: Full company name
- category: Array of categories (Networking, Observability, Profiling, Security, Other)
- status: Array of statuses (Platinum Member, eBPF Contributor, Member) - Optional, omit for default state
Optional Fields
- location: Country or location
- description: Company description (up to 500 characters)
- website: Main website URL
- github_repo: GitHub repository URL
- linkedin: LinkedIn company page
- youtube: YouTube channel URL
- blog: Company blog URL
- contact: Contact email address
- year_founded: Year the company was founded
- funding_status: Current funding status
- crunchbase: Crunchbase company page
- logo: Logo filename (stored in public/data/logos/ - optional, defaults to {slug}.svg)
All optional fields are recommended for a complete entry. The more information you provide, the better users can discover and understand the company.
Adding Logos
Company logos should be added to the public/data/logos/ directory:
- Use SVG format for best quality and scalability
- Name the file using the company slug (e.g. company-name.svg)
- If no logo field is specified in the YAML, the system will look for {slug}.svg
- Keep file sizes reasonable (under 50KB recommended)
- Ensure logos are high quality and recognizable at small sizes
Example:For a company with slug “example-corp”, the logo should be named example-corp.svg and placed in public/data/logos/.
Status System
The eBPF Landscape supports a status system with three tiers that provide different visual treatments:
- Platinum Member: Premium tier with 2x2 grid size, yellow border, and "Platinum Member" badge
- Member: Standard tier with black border and "Member" badge
- eBPF Contributor: Recognition tier with blue border and "eBPF Contributor" badge
Note:Status is self-contained within each company's YAML file. Companies can have multiple statuses (e.g. both Platinum Member and eBPF Contributor), and the system will display the appropriate badges and styling.
Default State: If a company has no status field or an empty status array, it will be displayed in its default state without any membership badges or special styling.
Development Setup
To set up the development environment:
- Clone the repository: git clone https://github.com/ebpffoundation/landscape
- Install dependencies: npm install
- Run the development server: npm run dev
- Run tests: npm test
Guidelines
- Follow the existing code style and conventions
- Write tests for new functionality
- Ensure all tests pass before submitting
- Write clear commit messages
- Update documentation as needed
Getting Help
If you need help or have questions:
- Open an issue on GitHub
- Join the eBPF Slack community
- Check the existing documentation
- Review previous pull requests for examples
Ready to Contribute?
Start by forking the repository and creating your first pull request. Every contribution, no matter how small, helps make the eBPF ecosystem more discoverable and accessible.
Fork on GitHub