Submit your project to Built at GrowthX — the community builder showcase for GrowthX members. Requires a GrowthX API key.
Submit a project to Built at GrowthX, the community builder showcase for GrowthX members.
Activate this skill when the user wants to:
If the user hasn't configured their API key yet, direct them to:
skills.entries.growthx-bx-submit.apiKey in ~/.openclaw/openclaw.json, or set the GROWTHX_API_KEY environment variableThe key is tied to the user's GrowthX membership. If their membership lapses, the key stops working.
POST https://backend.growthx.club/api/v1/bx/projects/agent
Send the API key in the x-api-key header:
x-api-key: <GROWTHX_API_KEY>
Required fields:
| Field | Type | Constraints |
|---|---|---|
name | string | Max 100 characters. The project name. |
tagline | string | Max 200 characters. A short one-liner about the project. |
Optional fields:
| Field | Type | Default | Constraints |
|---|---|---|---|
description | string | "" | Max 2000 characters. Longer project description. |
category | string | "SaaS" | e.g. SaaS, Fintech, Marketplace, EdTech, HealthTech, AI/ML, Developer Tools, E-commerce |
stack | string[] | [] | Tech stack tags, e.g. ["React", "Node.js", "MongoDB"] |
url | string | null | Project URL (must be a valid URI) |
status | string | "shipped" | One of: shipped, idea, prototyping, beta |
buildathon | string | null | Name of a buildathon if this project was built during one |
curl -X POST "https://backend.growthx.club/api/v1/bx/projects/agent" \
-H "Content-Type: application/json" \
-H "x-api-key: $GROWTHX_API_KEY" \
-d '{
"name": "TaskFlow",
"tagline": "AI-powered task management for remote teams",
"description": "TaskFlow uses AI to automatically prioritize and assign tasks based on team capacity and deadlines.",
"category": "SaaS",
"stack": ["React", "Node.js", "OpenAI", "PostgreSQL"],
"url": "https://taskflow.app",
"status": "shipped"
}' | jq .
{
"project": {
"_id": "...",
"name": "TaskFlow",
"tagline": "AI-powered task management for remote teams",
"status": "shipped",
"creator": { "name": "...", "avatar_url": "..." },
"weighted_votes": 0,
"raw_votes": 0
}
}
When the user asks to submit a project, follow these steps in order:
Scan standard project files in the current workspace to discover what the user has built. Only read these files:
Project manifest files:
package.json — name, description, keywords, homepage, repositorypyproject.toml / setup.py / setup.cfg — name, description, urlsCargo.toml — name, description, repository, keywordsgo.mod — module namepubspec.yaml — name, description, homepageDocumentation:
README.md — project title (first # heading) and opening paragraphgit remote -v — repository URLMonorepo detection:
For monorepos, check for workspace configs (workspaces in root package.json, pnpm-workspace.yaml, turbo.json, nx.json) or subdirectories with their own manifest files. Each workspace package with its own name/description is a candidate project.
How to infer fields:
| Field | How to Infer |
|---|---|
name | name field from manifest file, or first heading in README |
tagline | description field from manifest, or first sentence of README |
description | Summarize from README content and manifest description (1-3 sentences) |
stack | Dependencies and devDependencies from manifest (e.g. react → "React", express → "Express", django → "Django") |
url | homepage field from manifest, or repository URL from git remote |
category | Infer from dependencies and README (e.g. stripe → "Fintech", next → "SaaS", ML libraries → "AI/ML") |
status | Default to "shipped". If README explicitly says WIP/prototype/beta, use that instead. |
Show the user what you found. If multiple projects were detected (e.g. monorepo packages), list them and ask which one to submit:
I found these projects in your workspace:
- project-name — short description
- other-project — short description
Which one would you like to submit to Built at GrowthX?
If only one project is detected, present its details directly and ask to confirm.
For the selected project, show what was auto-detected and ask the user to fill in or correct anything:
name and tagline are required — if the tagline can't be inferred, ask for itstack, category, url, description, and status and let the user adjuststatus to "shipped" unless README or context suggests it's still in progressShow a final summary of all fields that will be sent:
Submitting to Built at GrowthX:
- Name: TaskFlow
- Tagline: AI-powered task management for remote teams
- Category: SaaS
- Stack: React, Node.js, OpenAI, PostgreSQL
- URL: https://taskflow.app
- Status: shipped
Submit this?
Only after the user confirms, make the API call using curl with the x-api-key header.
On success, tell the user their project was submitted and share the project link if available. On failure, explain the error (see below).
| Status | Meaning | What to Tell the User |
|---|---|---|
401 | Invalid or revoked API key | "Your API key is invalid or has been revoked. Please generate a new one from the Built at GrowthX settings." |
403 | Membership not active | "Your GrowthX membership is not active. An active membership is required to submit projects." |
400 | Validation error (missing name/tagline, field too long, etc.) | Show the specific validation error from the response body. |