From appfolio-pack
Provides reference architecture for AppFolio property management API integration using TypeScript/Node.js client with auth/retry/cache, React dashboard, incremental sync, and webhooks.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin appfolio-packThis skill is limited to using the following tools:
```
Configures AppFolio Stack property management API authentication using client ID/secret via HTTP Basic Auth. Sets up env vars, TypeScript axios client, and verifies connection.
Provides reference architecture for Attio CRM integrations: layered TypeScript project structure, sync patterns, webhook handlers, caching, testing, and multi-environment configs.
Provides reference project structure and layered architecture for Documenso document signing integrations, covering services, webhooks, API routes, tests, and Docker setup.
Share bugs, ideas, or general feedback.
┌──────────────────────────────────────────────┐
│ Your Application │
│ │
│ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │Dashboard │ │ Sync │ │ Webhook │ │
│ │(React) │ │ Service │ │ Handler │ │
│ └────┬─────┘ └────┬─────┘ └──────┬──────┘ │
│ │ │ │ │
│ ┌────▼──────────────▼───────────────▼──────┐ │
│ │ AppFolio API Client │ │
│ │ (Basic Auth, Retry, Cache, Rate Limit) │ │
│ └────────────────────┬─────────────────────┘ │
└───────────────────────┼───────────────────────┘
│
┌─────────▼──────────┐
│ AppFolio Stack API │
│ /properties │
│ /tenants │
│ /leases │
│ /units │
│ /bills │
└────────────────────┘
appfolio-integration/
├── src/
│ ├── appfolio/
│ │ ├── client.ts # Typed REST client with Basic Auth
│ │ ├── cache.ts # Response cache with TTL
│ │ └── types.ts # Property, Tenant, Lease, Unit types
│ ├── dashboard/
│ │ ├── portfolio.ts # Portfolio summary
│ │ └── vacancy.ts # Vacancy tracking
│ ├── sync/
│ │ └── incremental.ts # Incremental data sync
│ ├── webhooks/
│ │ └── handler.ts # Webhook endpoint
│ └── server.ts
├── tests/
│ ├── mocks/ # Mock API responses
│ └── unit/
└── package.json