Metadata
Basic information about your blueprint
A Hacksmith blueprint is a TOML configuration file that defines an interactive onboarding flow for integrating your product or service into a developer’s project. Blueprints eliminate repetitive manual steps by:
Blueprints follow a standardized schema with seven key sections:
Metadata
Basic information about your blueprint
Overview
User-friendly summary of the onboarding flow
Variables
Data to collect (API keys, credentials, etc.)
Context
Documentation and resources for AI agents
Slugs
URL templates for your product’s dashboard
Agent
AI prompt for generating integration code
Flows
Step-by-step interactive experience
Basic information about your blueprint:
schema_version = "0.1.0"smith = "saif-shines/hacksmith-blueprints"Fields:
0.1.0)Provides a user-friendly summary displayed before starting the flow:
[overview]enabled = truetitle = "Onboard to Scalekit for SSO"description = "Example blueprint for onboarding a user to Scalekit for SSO"estimated_time = "60s"steps = [ "Create account or login", "Capture identifiers and API credentials", "Configure redirect/callback", "Install SDK or generate integration prompt"]Fields:
Define all data points that will be collected during the onboarding flow for your product:
[variables.environment_id]description = "Environment identifier from dashboard (e.g., env_123456)"required = truesensitive = falsevalidation = "^env_[0-9]+$"
[variables.client_secret]description = "Client Secret from API credentials"required = truesensitive = true # Marks as secret - will be redacted in logsVariable Properties:
true, value is treated as a secret (redacted, stored securely)Provide comprehensive reference materials about your product that AI agents will use when generating integration code:
[context.documentation]primary_docs = "https://docs.example.com"quickstart_guide = "https://docs.example.com/quickstart"api_reference = "https://docs.example.com/api"sso_guide = "https://docs.example.com/sso"
[context.community]discord = "https://discord.gg/example"support_email = "support@example.com"
[context.github_samples]main_repo = "https://github.com/example/product"examples_repo = "https://github.com/example/examples"sample_apps = ["https://github.com/example/sample-app-1"]
[context.swagger_spec]api_spec_url = "https://api.example.com/openapi.json"interactive_docs = "https://api.example.com/docs"postman_collection = "https://api.example.com/postman.json"Context Sections:
This context helps AI assistants:
Define reusable URL components for your product’s dashboard and authentication pages:
[slugs]base_url = "https://app.scalekit.cloud"
[slugs.static]login = "https://auth.scalekit.cloud/a/auth/login"signup = "https://auth.scalekit.cloud/a/auth/signup"
[slugs.dynamic]dashboard = "/ws/environments/{{ environment_id }}/quick-start"api_credentials = "/ws/environments/{{ environment_id }}/settings/api-credentials"auth_redirects = "/ws/environments/{{ environment_id }}/authentication/redirects"Slug Types:
This is the most critical section! Define how the AI agent should help developers integrate your product into their codebase:
[agent]prompt_template = """You are an expert developer assistant specializing in seamless integrationof [YOUR PRODUCT] across diverse backend environments.
### Core Responsibilities- Thoroughly analyze the existing codebase- Request clarifications proactively- Generate complete backend implementation code for [YOUR PRODUCT]- Tailor code to fit existing project conventions- Enforce robust security practices
### Integration Workflow1. Initial Codebase Analysis2. SDK Language and Framework Clarification3. Present SDK Installation Instructions for [YOUR PRODUCT]4. Detail Required Environment Variables5. Generate Implementation Code6. Provide Testing Instructions7. Outline Next Steps
[... detailed prompt continues ...]"""The agent prompt should:
Define the interactive step-by-step onboarding experience for your product:
[[flows]]id = "your-product"title = "Onboard onto [Your Product]"Hacksmith provides 5 different step types to build your onboarding flow:
Info Step - Display informational content:
[[flows.steps]]type = "info"title = "Welcome to [Your Product]!"markdown = """You are going to get ready to integrate [Your Product] into your application."""Choice Step - Present options to the user:
[[flows.steps]]type = "choice"title = "Do you have a [Your Product] account?"markdown = """Make sure you are signed in to [Your Product] in your browser.- Yes: Takes you to login page- No: Takes you to signup page- Continue: Skip to dashboard"""save_to = "has_account"options = ["Yes", "No", "Continue"]Navigate Step - Open a browser page to your product’s dashboard:
[[flows.steps]]type = "navigate"title = "Sign up for [Your Product]"when = "has_account == 'No'" # Conditional executionurl = "{{ slugs.static.signup }}"instructions = [ "Complete the signup form", "Verify your email", "Access your dashboard"]Input Step (Single) - Collect a single value:
[[flows.steps]]type = "input"title = "Paste Project ID"markdown = """Locate your Project ID in the dashboard settings"""save_to = "project_id"validate.pattern = "^proj_[a-zA-Z0-9]+$"validate.message = "Must start with 'proj_'"Input Step (Multiple) - Collect multiple related values:
[[flows.steps]]type = "input"title = "Paste API credentials"
[[flows.steps.inputs]]name = "client_id"sensitive = false
[[flows.steps.inputs]]name = "client_secret"sensitive = true
[[flows.steps.inputs]]name = "api_endpoint"sensitive = falseThe example shows:
Ready to start authoring? Check out the Blueprint Best Practices guide for practical tips, templates, and step-by-step instructions.
For the complete schema definition and all available field options:
spec/example.blueprint.toml for a comprehensive example