Skip to content

Capabilities Matrix

ArchitectureStructureBest ForLanguages
Hexagonaldomain/port/service/adapter/Production APIs, microservicesGo, TS
Layeredhandler/service/repository/model/Standard CRUD APIsGo
Cleanentity/usecase/interface/infrastructure/Complex business logicGo
FlatSingle packageCLIs, scripts, prototypesGo, TS
CapabilityWhat You GetLanguages
http-apiHTTP router, middleware, error handling (Chi in Go, Express/Fastify/Hono in TypeScript)Go, TS
grpcProtocol Buffers, buf tooling, interceptorsGo
graphqlgqlgen config, schema, resolver scaffolding, playgroundGo
websocketWebSocket upgrader, connection managementGo
sseSSE handler, event formatting, heartbeat supportGo
bffService aggregation, response shaping, backend abstractionsGo
corsCORS middleware, configurable origins/methods/headersGo, TS
rate-limitingToken bucket limiter, per-endpoint configGo, TS
timeoutTimeout middleware, per-route timeouts, context cancellationGo, TS
api-versioningHeader/path-based versioning strategiesGo
CapabilityWhat You GetLanguages
postgresConnection pool, health checks, repository scaffold (pgx in Go, Prisma or Drizzle in TypeScript)Go, TS
mysqlConnection pooling, health checks, repository scaffold (database/sql in Go, Prisma or Drizzle in TypeScript)Go, TS
squirrelFluent SQL query builder, dynamic WHERE clauses, complex joinsGo
sqlcType-safe database access from SQL files, compile-time query validationGo
mongodbClient connection, collection abstractions (official driver in Go, Mongoose in TypeScript)Go, TS
sqliteEmbedded SQLite, query helpers (modernc.org in Go, better-sqlite3 in TypeScript)Go, TS
dynamodbDynamoDB client, table operations, query buildersGo
redisConnection management, repository pattern (go-redis in Go, ioredis in TypeScript)Go, TS
elasticsearchClient setup, index management, search query buildersGo
s3S3 client, upload/download, presigned URLs, multipart uploadGo
migrationsMigration runner, version tracking (golang-migrate in Go, Prisma Migrate in TypeScript)Go, TS
repositoryRepository interface, base CRUD (Go generics in Go, abstract PrismaBaseRepository in TypeScript)Go, TS
CapabilityWhat You GetLanguages
kafka-consumerConsumer group, handler pattern, graceful drainGo, TS
natsNATS + JetStream, publisher/subscriber, durable consumersGo
event-busIn-process event publisher, subscriber interface, async dispatchGo, TS
outboxTransactional outbox, relay worker, at-least-once deliveryGo, TS
sagaSaga orchestrator, step executor, compensation logicGo
workerWorker pool, job interface, graceful shutdownGo, TS
CapabilityWhat You GetLanguages
circuit-breakerOpen/half-open/closed states, configurable thresholdsGo, TS
retryExponential backoff with jitter, max attemptsGo, TS
bulkheadSemaphore concurrency limiter, timeout supportGo
idempotencyIdempotency keys, duplicate detectionGo, TS
gracefulSignal handling, ordered shutdown, component registrationGo, TS
CapabilityWhat You GetLanguages
auth-jwtJWT middleware, claims extraction, route-level authGo, TS
oauth2OAuth2 flows, token exchange, session managementGo
encryptionAES-256-GCM encrypt/decrypt, key management helpersGo, TS
multi-tenancyTenant middleware, context propagation, query scopingGo
request-idRequest ID middleware, context propagation, log correlationGo, TS
CapabilityWhat You GetLanguages
health/health + /ready endpoints, component registrationGo, TS
observabilityOpenTelemetry traces + metrics, OTLP/gRPC exportGo, TS
audit-logStructured audit events, configurable retentionGo, TS
http-clientResilient HTTP client with retry + observabilityGo, TS
CapabilityWhat You GetLanguages
templType-safe HTML templating, layout components, hot reloadGo
htmxHTMX response helpers, partial rendering, swap configGo
static-assetsEmbedded file server, cache-control headersGo
i18nMessage catalogs (YAML), locale middleware, context propagationGo
CapabilityWhat You GetLanguages
email-gatewayEmail gateway interface, provider abstraction, templatesGo, TS
mailpitLocal SMTP testing, Docker service (Web UI :8025)Go
CapabilityWhat You GetLanguages
platformConfig, lifecycle, slog logging, PII redaction, live reloadGo, TS
bootstrapThin main.go + wiring in internal/bootstrap/Go, TS
validationInput validation rules, error formattingGo
uuidUUIDv7 generation, type-safe ID wrappersGo, TS
CapabilityWhat You GetLanguages
cqrsCommand/query bus, handler interfaces, read/write separationGo, TS
dddAggregateRoot, ValueObject, DomainEvent base typesGo
CapabilityWhat You GetLanguages
feature-flagsFlag evaluator, YAML-based definitions, context-aware evalGo
schedulerCron-like scheduler, job registration, configurable intervalsGo, TS
CapabilityWhat You GetLanguages
dockerdocker-compose.yml, .env.exampleGo, TS
devcontainerVS Code Dev Container, Docker config, extension recsGo, TS
ci-githubIssue templates, PR templateGo, TS
ci-gitlab.gitlab-ci.yml with build/test/lint/deploy stagesGo
ci-bitbucketbitbucket-pipelines.yml with build/test/deploy stepsGo
makefileBuild, test, lint, run, clean targetsGo, TS
lintingCurated linter config (golangci-lint in Go, ESLint + Prettier in TypeScript)Go, TS
testingTest helpers, example table-driven tests, fixtures patternGo, TS
pre-commitPre-commit hooks for format, lint, testGo, TS

Some capabilities cannot coexist:

CapabilityConflicts WithReason
gracefulplatformPlatform includes its own shutdown manager
ci-gitlabci-githubOne CI system per project

When you select capabilities, verikt suggests what you might be missing:

If you select…verikt suggests…Why
Any transport capabilityplatformConfig, logging, lifecycle management
platformbootstrapTestable wiring with thin main.go
http-apirate-limiting, auth-jwt, cors, healthAPI security and reliability
mysql, postgresmigrations, dockerSchema management and local dev
mysql, redis, postgresdockerLocal dev with dependencies
Any transportci-github, lintingCode quality and CI/CD
email-gatewayi18n, mailpitTranslations and local testing
Terminal window
# Full production API
verikt new my-api \
--language go \
--arch hexagonal \
--cap platform,bootstrap,http-api,postgres,migrations,auth-jwt,rate-limiting,cors,health,docker,linting,ci-github
# gRPC microservice
verikt new my-grpc \
--language go \
--arch hexagonal \
--cap platform,bootstrap,grpc,redis,docker,linting
# Event-driven worker
verikt new my-worker \
--language go \
--arch hexagonal \
--cap platform,bootstrap,kafka-consumer,postgres,migrations,outbox,docker
# Full-stack web app (server-rendered)
verikt new my-app \
--language go \
--arch layered \
--cap platform,bootstrap,http-api,postgres,templ,htmx,static-assets,docker
# Resilient API gateway
verikt new my-gateway \
--language go \
--arch hexagonal \
--cap platform,bootstrap,http-api,bff,circuit-breaker,retry,cors,health,docker
# Simple CLI tool
verikt new my-cli --language go --arch flat