Welcome to CraftGo! #2
harry-2401
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
🚀 craftgo is here — write the spec, generate everything
Welcome to the craftgo community! Whether you found us through the docs, a link, or pure curiosity — glad you're here.
craftgo is a design-first framework for Go HTTP services. You describe your API once in a small DSL — types, validators, endpoints, errors — and
craftgo genproduces the typed structs, request validation, HTTP handlers, route wiring, and an OpenAPI 3.1 spec. The generated code is plainnet/http: no custom router, no reflection, no runtime struct tags. It reads like code you'd have written by hand.Why we built it
Hand-written Go services drift: the handler, the validation, the docs, and the OpenAPI spec all describe the same endpoint, but they live in four places and fall out of sync the moment someone's in a hurry. Most design-first tools fix that by locking you into a heavy framework with its own
router and runtime.
craftgo takes the other path — the spec is the single source of truth, and the output is just standard library. Change the DSL, regenerate, and your types, validators, routes, and spec all move together. No framework in the hot path to learn or fight.
A 30-second taste
craftgo genwrites the handler, theValidate()method, the route, anddocs/openapi.yaml. You fill one logic stub — everything else regenerates.What you get
.craftgofiles.net/http— handlers arehttp.HandlerFuncon*http.ServeMux; middleware isfunc(http.Handler) http.Handler.ifstatements — no reflection, no runtime tags.Try it
Where we are
craftgo is pre-1.0. The DSL and generated layout are stabilizing toward 1.0; expect the occasional breaking change until then, always called out in the changelog. This is exactly the moment your feedback shapes the design the most.
Get involved
All reactions