Agent Entry Point
Machine mirror: /api/for-agents
JSON endpoint: /api/for-agents/json
Schema info: /api/for-agents/schema
OpenAPI: /openapi.yaml
Agent Terminal: /for-agents/terminal
Action REPL: /for-agents/repl(Constrained, secure)
Last updated:
Summary
- Purpose: Personal portfolio and writing showcase of Will Haering - developer, entrepreneur, and writer
- Primary entities: Article, Post, Project, Person, News Items, Photography
- Actions: search, fetch detail, read content, explore portfolio, discover projects
- Content types: Blog posts, photography, writing samples, project showcases, technical articles
- Target audience: AI agents, developers, recruiters, potential collaborators, and readers interested in technology and entrepreneurship
Entities & Data Model
Stable IDs, canonical URLs, and JSON-LD types for consistent data access.
- Article →
schema:Article
(id, title, content, datePublished, author, url, slug, tags) - Person →
schema:Person
(name, description, url, sameAs, expertise, experience) - CreativeWork →
schema:CreativeWork
(id, name, description, url, dateCreated, images, technologies) - ImageObject →
schema:ImageObject
(id, contentUrl, description, dateCreated, category, location) - NewsArticle →
schema:NewsArticle
(title, timestamp, sourceName, url, summary)
Available Actions & APIs
- Search →
GET /api/search
Search across all content with relevance scoring - Get Posts →
GET /api/posts
List all blog posts with pagination - Get Post →
GET /api/posts/{id}
Get specific post details and content - Get Portfolio →
GET /api/portfolio
Get portfolio and project information - Health Check →
GET /api/health
Check system health and status
See OpenAPI specification for detailed schemas, status codes, examples, and request/response formats.
Authentication & Rate Limits
- Read access: anonymous reads allowed for all public content with generous rate limits
- Admin access: Requires jwt-token authentication for admin functions (content management, deployment)
- Rate limits: 100/minute, 1000/hour for anonymous users; 500/minute, 5000/hour for authenticated requests
- Authentication: JWT tokens for admin endpoints; OAuth2 for Google Drive integration
- Security: HTTPS only, CORS properly configured, input validation on all endpoints
Data Freshness & Caching
- ETag and Last-Modified headers on all resources for efficient caching
- Content updates: Posts and portfolio updates are reflected immediate with proper cache invalidation
- Image optimization: Automatic image processing, optimization, and multiple format support (jpeg, png, webp)
- Cache headers: Appropriate caching for static content with CDN-friendly headers
- Real-time updates: Webhook support for content changes and deployment notifications
Contact & Service Level
- Status page: /api/health with detailed system metrics
- Uptime target: 99.5% with monitoring and alerting
- Response time: < < 500ms for static content, < 500ms for API calls with performance monitoring
- Support: Technical issues can be reported via GitHub issues or health endpoint
Usage Examples for AI Agents
Content Discovery: Use the search API to find relevant posts and projects based on keywords or topics.
Portfolio Analysis: Retrieve project details to understand technical skills, experience, and project scope.
Content Summarization: Access post content for summarization, analysis, or recommendation purposes.
Professional Context: Build comprehensive profiles by combining data from multiple endpoints.