The tools I reach for, and why they tend to stick around.
A living inventory of the stack behind Sweetcat Software. Opinionated, but always up for a better argument.
Core stack
- Languages
- TypeScript & Node.js, end to end. Python when the job calls for it.
- Frontend
- React with Vite and Tailwind CSS v4. Astro for content sites (this one).
- APIs
- GraphQL via AWS AppSync; REST where it fits. Apollo on the client.
- Data
- DynamoDB single-table designs, PostgreSQL, and MongoDB.
AWS
- IaC
- AWS CDK for everything. One readable stack per project, deployed from GitHub Actions or AWS CodePipeline.
- Serverless
- Lambda, Step Functions, EventBridge, SQS/SNS, API Gateway, AppSync.
- Platform
- Amplify Gen 2, Cognito, S3, CloudFront, Route 53.
- CDN
- CloudFront in front of anything public. This site serves from S3 behind it — invalidated on every deploy, with access logs standing in for client-side analytics.
- AI
- Amazon Bedrock — including AgentCore for agents with longitudinal memory. Primarily Anthropic and OpenAI models.
How the work gets made
- Design patterns
- Domain-driven design for the boundaries, hexagonal architecture to keep the business logic at the core and the infrastructure at the edges, and DynamoDB single-table design once the access patterns are nailed down.
- Agentic coding
- Claude Code, driven by a tight CLAUDE.md and a three-MCP setup (Tailwind Plus, an AWS MCP server, and Playwright).
- Testing
- Jest for units, Playwright for end-to-end UI and API journeys.
- Shell
- zsh with lazy-loading, AWS multi-account helpers, and a sane non-interactive PATH.
- Editor
- VSCode, but The terminal is home base.
On the workbench
- Local inference
- LM Studio and a small-form-factor box for running models close to the metal.
- Robotics
- ROS 2 on a Raspberry Pi — a long-running project named Elliot.
- Off-grid
- A solar + battery setup keeping a Michigan cabin online without the grid.