Documentation
Link to YOUR official docs, API reference, quickstart guides
You’re writing a blueprint for YOUR product, but it should be flexible enough to work with developers using different tech stacks (Node.js, Python, Go, Django, Express, FastAPI, etc.).
Key Principle: Your blueprint guides developers through YOUR product’s onboarding while adapting to THEIR development environment.
Your blueprint is for YOUR specific product, but write instructions and agent prompts that adapt to different developer environments:
# Adaptable to any backend frameworkdescription = "Configure authentication redirect endpoint for [Your Product]"
# Agent prompt that adaptsprompt_template = """Analyze the developer's backend framework (Express, FastAPI, Django, etc.)and generate appropriate code to integrate [Your Product]..."""# Too rigid - assumes specific tech stackdescription = "Add Express.js route at /auth/callback"
# Agent prompt that's too narrowprompt_template = """Add this Express.js code to integrate [Your Product]..."""Choose variable names that developers will understand immediately:
# Clear, self-explanatory names[variables.api_key][variables.client_id][variables.project_id][variables.redirect_url][variables.webhook_secret]# Cryptic abbreviations or internal jargon[variables.sk_key] # What's "sk"?[variables.pid] # Project? Process? Product?[variables.wh_sec] # Unclear abbreviationHelp users catch mistakes early with regex validation for YOUR product’s identifier formats:
# Validate your product's API key format[variables.api_key]validation = "^sk_[a-zA-Z0-9]{32}$"
# Validate email addresses[variables.email]validation = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
# Validate URLs[variables.webhook_url]validation = "^https?://.+"The agent prompt is where you teach the AI how to integrate YOUR product. Make it comprehensive:
Streamline flows with conditional logic based on user choices:
[[flows.steps]]type = "navigate"title = "Sign up for [Your Product]"when = "has_account == 'No'" # Only show if user doesn't have accounturl = "{{ slugs.static.signup }}"When collecting multiple related values (like API credentials), use multi-input steps:
[[flows.steps]]type = "input"title = "Paste [Your Product] API Credentials"
[[flows.steps.inputs]]name = "api_key"sensitive = true
[[flows.steps.inputs]]name = "api_secret"sensitive = true
[[flows.steps.inputs]]name = "workspace_id"sensitive = false[variables.api_secret]sensitive = true
[variables.private_key]sensitive = true
[variables.webhook_secret]sensitive = trueThe more context you provide about YOUR product, the better the AI integration:
Documentation
Link to YOUR official docs, API reference, quickstart guides
Code Examples
YOUR SDK repositories, sample apps, integration examples
API Specs
YOUR OpenAPI/Swagger specs, Postman collections
Community
YOUR Discord, support channels, GitHub discussions
Before publishing, thoroughly test your blueprint:
Run locally
hacksmith plan ./your-product-blueprint.tomlVerify each step
Test the AI agent
Get feedback
Maintain a changelog for your blueprint and version appropriately:
schema_version = "0.1.0" # Update when making breaking changesHere’s a minimal blueprint template to get you started:
schema_version = "0.1.0"smith = "your-org/your-blueprints"
[overview]enabled = truetitle = "Get Started with [Your Product]"description = "Onboard to [Your Product]"estimated_time = "5 minutes"steps = ["Create account", "Get API credentials", "Generate integration code"]
# Define your variables[variables.api_key]description = "Your API key from the dashboard"required = truesensitive = true
# Add your product's documentation[context.documentation]primary_docs = "https://docs.yourproduct.com"api_reference = "https://docs.yourproduct.com/api"
# Define your URLs[slugs]base_url = "https://app.yourproduct.com"
[slugs.static]signup = "https://app.yourproduct.com/signup"
# Configure the AI agent[agent]prompt_template = """You are an expert in integrating [Your Product] into applications.Analyze the developer's codebase and generate integration code..."""
# Create your flow[[flows]]id = "your-product"title = "Onboard to [Your Product]"
[[flows.steps]]type = "info"title = "Welcome!"markdown = "Let's get you set up with [Your Product]..."
# Add more steps...Create your blueprint
Write your agent prompt
Design your flow
Test thoroughly
hacksmith plan ./your-blueprint.tomlPublish and share
Once your blueprint is ready:
1. Create Repository
Create a GitHub repo like your-org/hacksmith-blueprints
2. Add Documentation
Include a README explaining what YOUR blueprint does
3. Version Releases
Use git tags for versioning (v0.1.0, v0.2.0, etc.)
4. Share
Announce to YOUR developer community
your-org/hacksmith-blueprints/├── README.md├── CHANGELOG.md├── your-product.toml└── examples/ ├── nodejs-example.md ├── python-example.md └── go-example.mdFor products with OAuth or SSO:
[variables.client_id]description = "OAuth Client ID from your dashboard"required = truesensitive = false
[variables.client_secret]description = "OAuth Client Secret"required = truesensitive = true
[variables.redirect_uri]description = "OAuth redirect/callback URI"required = truesensitive = falsevalidation = "^https?://.+"For API key-based products:
[variables.api_key]description = "API key from your account settings"required = truesensitive = truevalidation = "^[a-zA-Z0-9_-]{32,}$"
[variables.api_secret]description = "API secret (keep this private!)"required = truesensitive = trueFor products with webhooks:
[variables.webhook_url]description = "URL where webhooks will be sent"required = truesensitive = falsevalidation = "^https://.+"
[variables.webhook_secret]description = "Secret for verifying webhook signatures"required = truesensitive = truehacksmith plan