# Docs - [Introduction](/docs): Ginboot is an enterprise-ready Go web framework built on Gin, with database-agnostic repositories, AWS Lambda support and OpenTelemetry built in. - Getting Started: Install Ginboot and run your first server - [Getting Started](/docs/1-getting-started): Scaffold a Ginboot project with start.ginboot.com or install it into an existing Go module, then run your first server. - Core Concepts: The server, configuration, routing and errors - [Server Configuration](/docs/2-core-concepts/server): Initialise the Ginboot server, choose between HTTP and Lambda runtimes, set a base path, and configure CORS and server-wide middleware. - [Configuration](/docs/2-core-concepts/configuration): Configure Ginboot declaratively with ginboot.yml, automatic .env loading, environment variable injection and Air hot reload. - [Routing](/docs/2-core-concepts/routing): Organise endpoints with controllers and route groups, read path parameters, and pick between Ginboot's four handler signatures. - [Error Handling](/docs/2-core-concepts/error-handling): Return consistent API errors across your services using the ApiError struct and the SendError helper. - Features: Databases, Lambda, telemetry, auth and more - [Database Support](/docs/3-features/database): One generic repository interface over MongoDB, SQL and DynamoDB, with built-in CRUD, pagination and custom repository support. - [Authentication](/docs/3-features/authentication): Work with AuthContext, generate and parse JWTs, hash passwords with PBKDF2, and plug in custom auth middleware. - [Caching](/docs/3-features/caching): Cache responses with DynamoDB, SQL or MongoDB backends, and invalidate entries automatically or by tag. - [Inter-Service Communication](/docs/3-features/service-communication): Call other services by logical name with ctx.CallService, with automatic resolution, trace propagation and async fire-and-forget support. - [AWS Lambda Support](/docs/3-features/aws-lambda): Run the same Ginboot controllers as an HTTP server or an AWS Lambda function behind API Gateway, with no code changes. - [Telemetry & Observability](/docs/3-features/telemetry): Ship traces, metrics and trace-correlated logs to Grafana, Jaeger or any OTLP backend with a single import and no setup code. - [S3 Storage](/docs/3-features/storage-s3): Upload and manage files through Ginboot's FileService abstraction, backed by Amazon S3 with a local-disk fallback. - [Background Workers](/docs/3-features/workers): Run periodic jobs and background tasks with Ginboot's built-in scheduler, including AWS Lambda compatibility notes. - [Event Triggers](/docs/3-features/event-triggers): Consume SQS queues and other event sources from your Ginboot application, with the queue provisioned for you. - [OpenAPI & Swagger](/docs/3-features/openapi-swagger): Generate an OpenAPI 3.0 specification automatically by reflecting over your controllers, request bodies and response DTOs. - Advanced & Operations: Testing, deployment, hosting and release notes - [Testing & BDD](/docs/4-advanced/testing): Write API tests in plain Gherkin using Ginboot's Godog integration and its built-in step definitions. - [Deployment](/docs/4-advanced/deployment): Build and deploy a Ginboot application to AWS Lambda with the SAM CLI, including template.yaml walkthrough and troubleshooting. - [Ginboot Cloud](/docs/4-advanced/ginboot-cloud): Deploy and operate Ginboot services on Ginboot Cloud — one-click deploys, managed environments, log streaming and telemetry. - [Changelog](/docs/4-advanced/changelog): New features, improvements and breaking changes in each Ginboot release. - Migration: Move an existing API onto Ginboot, from Go or from any other language - [Migration Overview](/docs/5-migration): How to move an existing API onto Ginboot — an incremental strategy for Go codebases, and a porting strategy for APIs written in Node.js, Python, Java, .NET, Ruby or PHP. - [Migrating an Existing Go App](/docs/5-migration/from-go): Move a running Go API onto Ginboot without a rewrite — from Gin, net/http, Echo, Fiber, Chi or gorilla/mux — one endpoint group at a time. - [Porting an API from Another Language](/docs/5-migration/from-other-languages): Port a REST API from Node.js, Python, Java, .NET, Ruby or PHP to Ginboot — contract first, then a path-by-path cutover with no big-bang rewrite. - [Migration Playbook for Coding Agents](/docs/5-migration/agent-playbook): A deterministic, verifiable procedure for an AI coding agent migrating an existing API to Ginboot, with the exact API surface, step-by-step commands and the errors to avoid.