We use AWS selectively: AI services through Bedrock, file storage on S3, and compute when serverless is not enough. Not everything belongs on the edge.
aws.amazon.com ↗We don't run everything on AWS, and that's deliberate. Most of our frontend and API work deploys on Vercel, but when a project needs object storage, AI model access, or compute that doesn't fit the serverless model, we reach for AWS. S3 handles file uploads with presigned URLs so sensitive documents never pass through our application servers. Bedrock gives us access to foundation models for AI-powered features without managing GPU infrastructure. We use AWS where it's the best tool, not as a default for everything.
AWS is the most complete cloud platform available. When a project needs services beyond what an edge platform provides (durable object storage, AI model inference, message queues, or managed databases), AWS has a production-grade answer. We pair it with Vercel rather than replacing Vercel, using each platform for what it does best. This gives our clients enterprise-grade infrastructure without enterprise-grade complexity.
The hybrid architecture: AWS behind an edge front end
Very few of our projects are pure AWS, and very few are pure edge. The architecture that actually holds up is a hybrid: the front end and API routes deploy on an edge platform for speed and simplicity, while AWS handles the specific jobs an edge runtime cannot. Object storage on S3 keeps large files and sensitive documents out of the application path, served through presigned URLs so nothing streams through our servers. Durable compute on EC2 runs the long processes and persistent connections an edge function times out on, with Lambda handling event-driven and scheduled jobs. We draw the boundary deliberately, so each workload sits on the platform built for it and the client gets enterprise-grade capability without an enterprise-grade operations burden. This is the same discipline we apply to hosting decisions everywhere: use AWS where it is the right tool, not as a reflex, and keep the two platforms cleanly separated.
AWS for AI features: Bedrock, storage, and document pipelines
When a build needs real AI capability, we reach for AWS Bedrock rather than managing GPU infrastructure ourselves. Bedrock gives us foundation-model access for text generation, summarization, and intelligent document processing behind a single managed API, which keeps model choice flexible as the ecosystem shifts. We pair it with S3 for the document side: uploads land in storage through presigned URLs, get processed by a pipeline, and return structured results the application can act on, all without sensitive files ever touching the front end. For clients in regulated spaces this separation matters, because the data stays inside AWS with access scoped tightly rather than passing through every layer of the stack. The result is production AI features (search over private documents, generated summaries, automated intake) running on infrastructure a client's compliance team can reason about, without us standing up and babysitting model servers.
How we add AWS to a project
-
Scope the boundary
We identify the specific workloads that belong on AWS (storage, AI inference, durable compute) and keep everything else on the edge, so the platform earns its place instead of becoming a default.
-
Provision with least privilege
We stand up the services with tightly scoped IAM roles and per-environment credentials, so each part of the system can reach only what it needs and nothing more.
-
Wire the integration
We connect AWS to the application through presigned URLs and managed APIs, keeping sensitive data inside the AWS boundary rather than routing it through the front end.
-
Monitor cost and access
We set up billing alerts and access logging so spend stays predictable and every touch of sensitive storage is accountable after launch.
AI-Powered Features
AWS Bedrock for foundation model access: text generation, summarization, and intelligent document processing.
Secure File Storage
S3 with presigned URLs for file uploads and downloads. Documents never pass through the application layer.
Backend Compute
EC2 for workloads that need persistent connections, long-running processes, or specific runtime environments, and Lambda for event-driven jobs.
Systems we pair AWS with
Vercel
Our usual pairing. The front end and API routes run on Vercel while AWS handles storage, AI, and durable compute, with each platform doing what it does best.
Python
Most of our AWS-side AI and data work is Python: Bedrock calls, document pipelines, and inference services that sit naturally in the machine-learning ecosystem.
Node.js
For service glue and API layers that talk to S3 and other AWS services, we use Node.js so the tooling matches the rest of the JavaScript stack.
Cloudflare
Cloudflare fronts DNS and security while AWS carries backend workloads, giving us edge protection without moving compute off the platform built for it.
