What KitePDF is
KitePDF is an asynchronous PDF processing platform. The public product surface is kitepdf.pro: users upload documents, spend credits, and poll for job status until a compressed or transformed file is ready to download. Under the hood it is not a single script—it is a small distributed system with a Go API gateway, queue-backed workers, object storage, and a Next.js frontend.
Who this series is for
Beginners get diagrams first, a plain-language glossary, and one happy-path job flow before any Terraform. Operators and backend engineers get compose matrices, queue routing, internal callback contracts, and how observability differs between LocalStack-shaped stacks and real AWS on EC2.
What you should already know
- Comfort with Docker and docker compose (start/stop services, read logs).
- HTTP basics: methods, status codes, JSON request bodies.
- Optional: curiosity about Terraform and AWS—no Kubernetes required for the first parts.
How the series is organized
Each part stands alone but builds on earlier mental models. Part 2 covers architecture in depth; later parts walk deployments and scaling.
| Part | Topic | Status |
|---|---|---|
| 1 | About this series | You are here |
| 2 | System architecture | Published with this series launch |
| 3 | Local development (infra.local) | Planned |
| 4 | Prod-shaped local stack (LocalStack) | Planned |
| 5 | Real AWS on EC2 (prod.aws) | Planned |
| 6 | Scaling workers and queues | Planned |
| 7 | Observability (Loki vs CloudWatch) | Planned |
| 8 | CI, migrations, and operations | Planned |
Repo map in one screen
The application repository is organized by runtime role. Use this map when you clone the repo or open a PR.
repository/├── api-gateway/ # Go API (auth, credits, jobs, callbacks)├── frontend/ # Next.js app├── workers/node/ # Node worker (compress via Ghostscript)├── workers/python/ # Python worker (merge, OCR, split, …)├── nginx/ # Reverse proxy configs├── infra/localstack/ # Terraform → LocalStack├── infra/aws/ # Terraform → real AWS├── otel/ # OpenTelemetry collector (prod-localstack)└── docker-compose.*.yml # Infra and app stacksHow to follow along
Clone the repository, install Node 20+, Go, Docker, and Terraform. For day-to-day development, start local infra from the repo root with npm install and npm run infra:up, then run database migrations and start the API gateway and workers as described in the README.
What is next
Continue to Part 2—KitePDF system architecture—for component responsibilities, the compress job lifecycle, dual databases, and a preview of deployment topologies from laptop to AWS.
.jpg)
