# HappyVertical > HappyVertical develops agentic software solutions. Built from the ground up for humans and agents. Products upstairs: ergot.io, a media asset pipeline in early access, and anytown.ai, a network of town newsrooms, invite only. Open source below: the s-m-r-t framework, and the SDK it stands on. We run on the stack we ship: anytown.ai's newsrooms run on s-m-r-t — the same open framework, and the same SaaS starter, we hand to everyone else. ## Projects - [anytown.ai](https://anytown.ai): A local-news reference project for gathering council documents and preparing articles. Status: Invite only. - [ergot.io](https://ergot.io): A media-asset project with a web interface and coordinated processing workflows. Status: Early access · invite only. - [s-m-r-t](https://s-m-r-t.dev): Build applications from reusable TypeScript objects, with database, API and agent tools configured for your needs. Status: Open framework. - [SaaS Starter](https://github.com/happyvertical/smrt-saas-starter): A SvelteKit starter with tenant accounts, authentication, subscriptions, usage, jobs and agent interfaces. Status: Open source · MIT. - [@happyvertical/sdk](https://github.com/happyvertical/sdk): Reusable adapters and utilities for AI, databases, storage and other services. Status: Open source · MIT. ## Work with HappyVertical - Email: [will@happyvertical.com](mailto:will@happyvertical.com). - Start planning: [work.happyvertical.com](https://work.happyvertical.com) - Contact desk (for people, on the page): [Level 2 — Contact](https://happyvertical.com/#contact) - Planner (for people, on the page; needs JavaScript): [Level 4 — Planner](https://happyvertical.com/#planner). Build an app with recipes, then try its pages with sample data. ## For AI agents acting for a person To contact HappyVertical for a person who asked you to, POST JSON to https://happyvertical.com/api/agent/contact. - `email` (required): the person's own email address. The confirmation goes there. - `note` (required, up to 1700 characters): what they want, in their words. - `agent` (required, up to 80 characters): your name or product. The person sees it. - `name`, `phone` (optional). Consent rule: we email the person a link. Nothing reaches HappyVertical until they open it and press Send. You cannot confirm for them, so never ask for the link. Send only what the person asked you to send. A `202` reply with `"status": "awaiting_confirmation"` means the email went out; tell the person to check their inbox. A `400` carries an `error` explaining the fix. A `429` means retry later, and a `503` means the person should email directly. ``` curl -X POST https://happyvertical.com/api/agent/contact \ -H 'content-type: application/json' \ -d '{"email":"ada@example.com","name":"Ada","note":"Ada wants a quote for a booking app.","agent":"ExampleAssistant"}' ``` The contact desk form, Happy and the planner's Build handoff are for people using the page; agents should use the endpoint above. ## Optional - [Full text for agents](https://happyvertical.com/llms-full.txt): every project in detail, in one file. - [HappyVertical on GitHub](https://github.com/happyvertical): the open-source repositories. - [Sitemap](https://happyvertical.com/sitemap.xml)