Skillshub appfolio-reference-architecture
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jeremylongshore/claude-code-plugins-plus-skills/appfolio-reference-architecture" ~/.claude/skills/comeonoliver-skillshub-appfolio-reference-architecture && rm -rf "$T"
manifest:
skills/jeremylongshore/claude-code-plugins-plus-skills/appfolio-reference-architecture/SKILL.mdsource content
appfolio reference architecture | sed 's/\b(.)/\u\1/g'
Architecture
┌──────────────────────────────────────────────┐ │ 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 │ └────────────────────┘
Project Structure
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