Source for eesposito.com, its public AI demos, and the operations software I build for Sernia Capital, the rental real estate business I co-founded. This repository contains personal and Sernia Capital work; employer code is outside it.
| System | Purpose | Source |
|---|---|---|
| SerniaAI | Operations agent with persistent context, business tools, and human approval flows. | Agent guide |
| Emergency routing | Assesses incoming property messages and routes qualifying alerts through Twilio. | Assessment and dispatch |
| Zillow Leads Agent | Answers from reviewed rental listings, with configurable approval for replies. Showing bookings are planned. | Lead agent guide |
| Public agent demo | Routed chat with a visible execution trace. | Demo agents |
Operational records and tools require authentication. Public demos use separate, limited tools and a capped inference credential; request, concurrency, time, and model budgets bound public usage. See public AI controls.
The general operations agent connects Quo, Google Workspace, ClickUp, database search, and scheduling. Approval requirements are enforced in tool code and depend on the action and recipient. See tool policies and fixed reminders for exceptions. Emergency assessment assists the team; it does not guarantee detection or resolution. Its guide separates synthetic regression cases, live checks, and production telemetry.
| Path | Responsibility |
|---|---|
apps/web-react-router/ |
React Router web app: portfolio, demos, and operator UI. |
api/ |
FastAPI backend, integrations, agents, and scheduled jobs. |
apps/sernia_mcp/ |
Independent MCP service with Clerk OAuth and its own dependencies. |
apps/my-expo-app/ |
Expo / React Native client. |
packages/ |
Shared pnpm workspace packages. |
scripts/ |
Development configuration and worktree tooling. |
logfire/ |
Versioned alert snapshots and dashboards. |
The web app uses React, TypeScript, Tailwind, shadcn/ui, and Clerk. The API uses PydanticAI, SQLAlchemy, PostgreSQL, and APScheduler, with OpenRouter for inference and Logfire for observability. Production runs on Railway with Neon Postgres.
Follow the development guide for prerequisites, service configuration, database setup, test commands, Docker, and mobile development. It includes the trust setup required for older environments.
After configuration:
pnpm dev-with-fastapi
uv run pytest -q
pnpm --filter web-react-router test
pnpm --filter web-react-router typecheck
pnpm buildBackend tests live in api/src/tests/, MCP tests in
apps/sernia_mcp/tests/, and web tests in
apps/web-react-router/test/.
Default tests mock third-party services; live tests are opt-in.
CI also checks lint, formatting, and dependency regressions.
Development seeding and optional private fixtures are documented in the seed data guide. Public contributors do not need private bucket access.
Read AGENTS.md and the relevant module guide. Keep PRs focused, include validation and the web preview URL, and preserve the separation between public demos and authenticated operations. Do not commit credentials, private memory, or unreviewed business fixtures.
PR environments use isolated database branches. The public production site is eesposito.com; the development site is dev.eesposito.com. See open work for exploratory follow-ups.
For professional background or collaboration, visit the portfolio or get in touch.