A GitHub-powered backend system for managing and showcasing ecosystem projects with automatic JSON generation and image hosting.
Want to add your project to the ecosystem? Follow these simple steps:
- Fork this repository
- Create your project folder in
/projects/
- Add your files (JSON + images)
- Submit a Pull Request
That's it! Once merged, your project will automatically appear on the ecosystem website.
ecosystem-backend/
βββ .github/workflows/
β βββ update-projects.yml # Auto-generation workflow
βββ projects/
β βββ your-project/
β β βββ cover.webp # Banner/background image
β β βββ primary.webp # Logo/profile image
β β βββ your-project.json # Project metadata
β βββ another-project/
β βββ cover.png # Supports multiple formats
β βββ primary.jpg # PNG, JPG, JPEG, WEBP
β βββ project.json # JSON with project details
βββ projects.json # π€ Auto-generated aggregated data
βββ README.md
Create a new folder in /projects/
with your project name (use lowercase, hyphens for spaces):
projects/your-awesome-project/
Your project folder must contain exactly these 3 files:
cover.*
- Banner/background image (1200x400px recommended)primary.*
- Logo/profile image (200x200px recommended, will be displayed as circle)
Supported formats: .webp
, .png
, .jpg
, .jpeg
Create a JSON file named {your-project-name}.json
with this structure:
{
"name": "Your Project Name",
"description": "A compelling description of what your project does. Keep it concise but informative - this will be displayed on the project card.",
"tags": ["DeFi", "NFT", "Gaming", "Infrastructure"],
"primaryTag": "DeFi",
"xLink": "https://twitter.com/yourproject",
"websiteLink": "https://yourproject.com",
"category": "App"
}
Field | Type | Required | Description |
---|---|---|---|
name |
string | β | Your project's display name |
description |
string | β | Brief project description (max 200 chars recommended) |
tags |
array | β | Technology/category tags for filtering |
primaryTag |
string | β | Main category tag (displayed prominently) |
xLink |
string | β | Twitter/X profile URL |
websiteLink |
string | β | Official website URL |
category |
string | β | Either "App" or "Infra" |
Available Categories:
App
- End-user applications, dApps, gamesInfra
- Infrastructure, tools, protocols, SDKs
Popular Tags:
- DeFi:
DeFi
,Trading
,Lending
,DEX
,Yield
- Infrastructure:
Dev Tooling
,API
,SDK
,Analytics
,Security
- Assets:
NFT
,RWA
,Stablecoin
,Payments
- Other:
Gaming
,Social
,DAO
,AI
,Cross-chain
- Push Detection: GitHub Actions monitors the
/projects/
folder - Validation: Checks each project has required files (JSON + both images)
- Processing: Generates public URLs for images and aggregates metadata
- Publication: Creates/updates
projects.json
with all valid projects
The system automatically creates projects.json
accessible at:
https://raw.githubusercontent.com/Uomi-network/uomi-website-ecosystem/main/projects.json
Example output:
{
"projects": [
{
"id": "awesome-project",
"name": "Awesome Project",
"description": "Revolutionary DeFi protocol...",
"tags": ["DeFi", "Yield"],
"primaryTag": "DeFi",
"category": "App",
"xLink": "https://twitter.com/awesome",
"websiteLink": "https://awesome.com",
"coverImage": "https://raw.githubusercontent.com/.../cover.webp",
"primaryImage": "https://raw.githubusercontent.com/.../primary.webp"
}
],
"lastUpdated": "2024-01-15T10:30:00.000Z",
"count": 42,
"generatedBy": "GitHub Actions"
}
- Format: WebP preferred (best compression), PNG/JPG acceptable
- Cover Image:
- Aspect ratio: ~3:1 (landscape)
- Resolution: 1200x400px minimum
- Max file size: 500KB
- Primary Image:
- Aspect ratio: 1:1 (square)
- Resolution: 200x200px minimum
- Max file size: 100KB
- Name: Official project name, proper capitalization
- Description:
- Clear, professional language
- Focus on core functionality
- 50-150 words recommended
- Links:
- Must be active and official
- Use HTTPS when available
- Tags:
- Use existing tags when possible
- Maximum 5 tags per project
- Relevant to actual functionality
Projects will be excluded if they:
- β Missing required files (JSON, cover image, or primary image)
- β Invalid JSON format
- β Broken or suspicious links
- β Inappropriate content
- β Copyright violations
- β Images over size limits
Use the generated JSON in your application:
// Fetch projects data
const response = await fetch('https://raw.githubusercontent.com/Uomi-network/uomi-website-ecosystem/main/projects.json');
const data = await response.json();
// Access projects
const projects = data.projects;
const lastUpdate = data.lastUpdated;
const totalCount = data.count;
- All Projects:
https://raw.githubusercontent.com/Uomi-network/uomi-website-ecosystem/main/projects.json
- Individual Images:
https://raw.githubusercontent.com/Uomi-network/uomi-website-ecosystem/main/projects/{project-id}/{image-file}
# Clone repository
git clone https://github.com/Uomi-network/uomi-website-ecosystem.git
cd uomi-website-ecosystem
# Test workflow locally (requires Node.js)
node -e "
const fs = require('fs');
// ... (workflow script content)
"
- π Auto-deployment: Changes go live within 2-3 minutes
- πΌοΈ CDN-backed: Images served via GitHub's global CDN
- π± Mobile-optimized: Responsive image serving
- π Real-time: JSON updates automatically on every push
- Issue: Can't add your project? Open an issue
- Questions: Review this README first, then ask in discussions
- Workflow Failures: Check Actions tab for error details
- Image Problems: Verify file sizes and formats
- JSON Errors: Validate your JSON syntax
Individual project information and images remain property of their respective owners.
π Ready to showcase your project?
β‘οΈ Add Your Project Now | π View All Projects | π§ Report Issues