Private
Public Access
-
Version 0.1.0 Stable
released this
2026-08-25 20:46:40 +00:00 Changelog
v0.1.0
Added
draft newnow prompts for a project shape — API, Client, or Full Stack — instead of always scaffolding a standalone API.draft new clientscaffolds a frontend client, with a choice of framework:- Nuxt — generated via the official
nuxi inittooling (Nuxt UI + Tailwind), so the boilerplate and dependency versions stay current rather than pinned by Draft. - Vue — generated via
create-vue+shadcn-vue(Tailwind), with the same tooling-owns-the-boilerplate approach. - Both frameworks get a Draft-maintained overlay layered on top: an auth store (login/logout/register/token refresh), route guards, an API composable, and pages for login, signup, profile, organizations, email verification, and invites — pre-wired to a Draft-generated API.
- Nuxt — generated via the official
draft new monorepocombines a scaffolded API and client under one root (apps/api,apps/client) withgo.work,pnpm-workspace.yaml,docker-compose.yml, and aJustfiletying everything together.assets/embeddedrestructured intoapi/monorepo-root/client-nuxt/client-vuezones, synced from a reference template repo via a generalized, job-based sync tool (tools/sync_templates.go).
Fixed
draft keywas unreachable as documented — it was registered underdraft new keyinstead of the root command, and its--sizeflag was never actually registered with Cobra, so passing--sizefailed outright (and the dead flag-lookup code would have nil-panicked if ever reached). It's now a proper top-level command; an explicit--sizebelow 32 is rejected with an error instead of being silently replaced by the default.- Organizations were missing from the gRPC branch of generated
main.go— the HTTP and gRPC branches now both wire up the sameOrganizationService. - Fixed a silent no-op in the client-scaffolding overlay copier where branding replacements (e.g. project name substitution) were computed but never actually written to disk.
- Fixed Go's
embedpackage silently dropping dotfiles (.env.example) from the embedded template zones —//go:embednow usesall:prefixes. - Fixed
create-vuedropping into an interactive prompt when scaffolding into a nested path (e.g.apps/clientinside a monorepo), since it requires its target directory to double as a valid npm package name. - Removed a stray debug
print()call left indraft new service. randomString(used bydraft key) no longer generates a random prime number per character just to pick a random index — replaced with a direct random-integer draw.
Changed
- Consolidated the API-scaffolding logic shared between
draft new apianddraft new monorepointo a single orchestrator (runNewProject+scaffoldRecipe), removing duplicated prompt/install/tidy logic between the two commands. - Extracted shared tool-availability checks (
pnpm,npx) into one helper instead of duplicating the check acrossclientandmonorepo.
Downloads