waffle

module
v0.1.36 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2026 License: MIT

README

🧇 The WAFFLE Manifesto

Web Application Framework for Flavorful Layered Engineering

🍴 Go With WAFFLE

WAFFLE is the framework that helps your ideas go from sketch to scale. Go build something structured. Go layer your logic. Go serve your app hot.

WAFFLE is for developers who go fast, go clean, and go deep — without losing flavor. It’s the kind of framework you go back to, again and again, because it just goes.

🧩 What Makes WAFFLE Go

  • Go modular: Each layer — routing, logic, persistence — is its own square. Stack what you need, skip what you don’t.
  • Go simple: WAFFLE favors clarity over cleverness. You go in, build fast, and go live.
  • Go scalable: Whether you’re serving one user or a full brunch crowd, WAFFLE goes the distance.
  • Go joyful: Engineering should feel like breakfast with friends — warm, structured, and worth waking up for.
  • Go flavorful: No dry boilerplate. WAFFLE is seasoned with delight and built to be savored.

🌐 The WAFFLE Way

WAFFLE is the grid beneath your ideas, the stack that makes your projects rise, and the flavor that keeps you going.

We believe in:

  • Go clean
  • Go fast
  • Go layered
  • Go composable
  • Go build
  • Go ship
  • Go again

We really believe in Go.

⚡ What WAFFLE Stands For

  • Web
  • Application
  • Framework for
  • Flavorful
  • Layered
  • Engineering

📚 Documentation


🚀 Try WAFFLE

Install the WAFFLE CLI:

go install github.com/dalemusser/waffle/cmd/makewaffle@latest

Create a new project:

makewaffle new hello \
  --module github.com/you/hello

Run your service:

cd hello
go run ./cmd/hello

🧇 Go Get WAFFLE

Go install it. Go scaffold your app. Go route your requests. Go layer your logic. Go serve your stack. Go build something delicious.

Happy engineering—and enjoy your WAFFLE 🧇.

Bon appé‑tech! 🧇🚀

Directories

Path Synopsis
app/app.go
app/app.go
cmd
makewaffle command
wafflectl command
config/appconfig.go
config/appconfig.go
httputil/json.go
httputil/json.go
internal
logging/logging.go
logging/logging.go
metrics/metrics.go
metrics/metrics.go
middleware/compress.go
middleware/compress.go
pantry
apns
apns/apns.go
apns/apns.go
audit
audit/audit.go
audit/audit.go
auth/apikey
auth/apikey/apikey.go
auth/apikey/apikey.go
auth/jwt
auth/jwt/claims.go
auth/jwt/claims.go
auth/oauth2
auth/oauth2/apple.go
auth/oauth2/apple.go
cache
cache/cache.go
cache/cache.go
crypto
crypto/encrypt.go
crypto/encrypt.go
db/mongo
db/mongo/mongo.go
db/mongo/mongo.go
db/mysql
db/mysql/mysql.go
db/mysql/mysql.go
db/postgres
db/postgres/postgres.go
db/postgres/postgres.go
db/redis
db/redis/redis.go
db/redis/redis.go
db/sqlite
db/sqlite/sqlite.go
db/sqlite/sqlite.go
email
pantry/email/email.go Package email provides a simple interface for sending emails via SMTP.
pantry/email/email.go Package email provides a simple interface for sending emails via SMTP.
errors
errors/errors.go
errors/errors.go
export
export/csv.go
export/csv.go
fcm
fcm/errors.go
fcm/errors.go
feature
feature/errors.go
feature/errors.go
fileserver
Package fileserver provides an HTTP handler for serving static files from a filesystem directory with support for pre-compressed files (gzip and Brotli).
Package fileserver provides an HTTP handler for serving static files from a filesystem directory with support for pre-compressed files (gzip and Brotli).
geo
geo/geo.go
geo/geo.go
geo/ip
geo/ip/ip.go
geo/ip/ip.go
geo/tz
geo/tz/tz.go This package provides timezone detection from coordinates.
geo/tz/tz.go This package provides timezone detection from coordinates.
health
health/health.go
health/health.go
httpnav
pantry/httpnav/back.go
pantry/httpnav/back.go
i18n
i18n/format.go
i18n/format.go
jobs
jobs/jobs.go
jobs/jobs.go
mongo
pantry/mongo/cursor.go
pantry/mongo/cursor.go
mq/rabbitmq
mq/rabbitmq/rabbitmq.go
mq/rabbitmq/rabbitmq.go
mq/sqs
mq/sqs/sqs.go
mq/sqs/sqs.go
notify
notify/errors.go
notify/errors.go
pagination
pagination/keyset.go
pagination/keyset.go
pdf
pdf/draw.go
pdf/draw.go
pprof
pprof/pprof.go
pprof/pprof.go
query
pantry/query/query.go
pantry/query/query.go
ratelimit
ratelimit/ratelimit.go
ratelimit/ratelimit.go
requestid
requestid/logger.go
requestid/logger.go
retry
retry/circuit.go
retry/circuit.go
search
Package search provides a unified interface for full-text search across multiple backends including Elasticsearch, OpenSearch, and Meilisearch.
Package search provides a unified interface for full-text search across multiple backends including Elasticsearch, OpenSearch, and Meilisearch.
session
session/memory.go
session/memory.go
sse
sse/broker.go
sse/broker.go
storage
Package storage provides a unified interface for file/blob storage across multiple backends including local filesystem, AWS S3, Google Cloud Storage, and Azure Blob Storage.
Package storage provides a unified interface for file/blob storage across multiple backends including local filesystem, AWS S3, Google Cloud Storage, and Azure Blob Storage.
templates
templates/adapter.go
templates/adapter.go
testing
testing/helpers.go
testing/helpers.go
text
pantry/text/fold.go
pantry/text/fold.go
timeout
timeout/client.go
timeout/client.go
urlutil
pantry/urlutil/params.go
pantry/urlutil/params.go
validate
pantry/validate/email.go
pantry/validate/email.go
version
version/version.go
version/version.go
webhook
Package webhook provides utilities for handling incoming webhooks with signature verification and sending outgoing webhooks with automatic retries.
Package webhook provides utilities for handling incoming webhooks with signature verification and sending outgoing webhooks with automatic retries.
websocket
websocket/errors.go
websocket/errors.go
router/router.go
router/router.go
server/acmedns.go
server/acmedns.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL