Quick Start
Changelog
Release changes covered by the latest GoLazy guides.
Latest release changes
GoLazy v0.1.15 replaces app context initializers with dependency initializers
that are tracked by golazy.dev/lazydeps, and changes SEO defaults to a
context-aware initializer function. Existing v0.1.14 applications should run
lazy upgrade, which renames init/context.go to init/dependencies.go,
rewrites lazyapp.Config.Context to lazyapp.Config.Dependencies, updates the
initializer signature, and moves inline SEO defaults into init/seo.go.
Framework
lazyapp.Config.Dependenciesnow receives a framework-owned*lazydeps.Scope. Applications initialize services throughlazydeps.Service, update the app context through the scope, and let GoLazy record the dependency graph for later lifecycle work. Read Application Startup and Dependencies And Services.lazyapp.Config.SEOnow receives the dependency-initialized app context and is normally wired asSEO: SEOwith the function defined ininit/seo.go. Read SEO And Sitemaps.- Sitemap generation is now opt-in. GoLazy does not serve an empty
/sitemap.xmlby default, androbots.txtonly advertises a generated sitemap afterlazyapp.Config.Sitemapis configured. golazy.dev/lazyconfigfills application config structs from environment variables withGetenv[T]andMustGetenv[T], default field naming,var,default,requiredandrequiretags, trimmed string/numeric/bool values, pointer scalar fields,[]stringsplitting, case-insensitive bool parsing, slice entry loading, and optionalValidate() errorsupport.- SEO helpers support image alt text, Open Graph image dimensions, secure
social image URLs,
article:published_time, and complete-title preservation. Read SEO And Sitemaps. golazy.dev/lazytui/progressprovides named task progress, captured output, warnings, mise command helpers, and UI takeovers for interactive terminal steps.golazy.dev/lazyerrorsprovides application-owned errors that format likefmt.Errorf, prefix messages with the caller, preserve single and multiple%wwrapping, and expose recorded[]lazyerrors.Framebacktraces.golazy.dev/lazytelemetryprovides OpenTelemetry-compatible environment config, request-id middleware, context-awaresloglogging, lightweight spans, log-to-span events, and in-memory request metrics.lazyapp.Newinstalls telemetry automatically when meaningfulOTEL_*environment variables are present, whileOTEL_SDK_DISABLED=truedisables it. Read Telemetry.lazyappnow layers application views over framework default views fromlazycontroller, so controller errors render a built-in mobile friendlyapp/errorpage unless the app providesapp/views/app/error.html.tpl. Raw error details pluslazyerrorsand panic backtraces are exposed to that view only in development/detail mode. The built-in view shortens frame paths relative to the workspace, current directory, module cache, or module path where possible, andlazydevcan open a clicked frame in$EDITOR, using VS Code's-g file:lineform or a discovered terminal for terminal editors. New apps can rely on that framework view and addapp/views/app/error.html.tplonly when they want a custom error page.
CLI and generated apps
lazy newnow trusts the generated app'smise.toml, runsmise install, validates with the currentgoonPATH, then initializes a fresh Git repository and commits the generated checkout with a command-local GoLazy identity.lazy newcheckshttps://golazy.dev/lazy.versionbefore remote template generation, supports--skip-update-check, and accepts--version <version>for a specific sample app tag.- Generated apps pin their mise-managed
age,sops, andusagehelper versions instead of usinglatest, so freshmise installruns do not need a release-list lookup to decide the version. LAZY_MULTIVERSION=offdisables app-version CLI handoff for local testing, replacing the previous global--skip-version-checkflag.- Go subprocesses in
lazy new,lazy,lazy routes,lazy upgrade, and the app build step oflazy native builduse the currentgoonPATH.lazy jsandlazy tailwindstill run app-managed package-manager tools throughmise exec. - The default
lazydevelopment command runsgo mod tidybefore building the app only when Go workspace mode is inactive. IfGOWORKorgo env GOWORKpoints at an active workspace,lazyskips the tidy step. - The default
lazydevelopment command now uses compact progress output for proxy startup, generated-asset work, Go builds, and application starts while leaving the running app's own output attached to the terminal. lazynow passes local view and public roots tolazydevbuilds with build-time variables. Development assets are served from disk by logical path without permanent hashes or cache headers.- View-only changes in
lazydevelopment now reload the running app's view cache through the/_golazy/dev control-plane endpoint instead of rebuilding and restarting the app. Public-only changes reload the browser without rebuilding because development assets are read from disk. lazy upgradeincludes thev0.1.14tov0.1.15dependency initializer and SEO initializer migrations. It also uses compact progress output while still letting conflict diffs and prompts take over the terminal deliberately. Read the Upgrade Guide.lazy upgradeappliesgo.moddependency manifests withgo getinstead of rewriting module files directly, and it updatesmise.tomltools through a tool manifest that comments obsolete entries rather than deleting them.lazy upgradefile manifests now hash sample-app additions, replacements, and removals. Unchanged template-owned files are updated or removed directly, new files are created directly, and customized files ask for a dated backup, deletion, keep, or abort choice depending on the operation.lazy --versionnow reportsv0.1.15, solazy newselects the matching sample application template once the coordinated release is published.
Website and guides
- The public installer installs
golazy.dev/lazy, writes the binary to a predictable local bin directory whenGOBINis not set, tries the official shell-specificmiseinstaller forbash,zsh, orfish, falls back to the plain bootstrap, and points new apps atlazy. Its same-shell recovery path now keepslazyon the normalPATHso direct Go subprocesses still findgo. - The homepage and package pages emit richer social-card metadata using the new SEO helpers.
- The latest guides document the in-development
v0.1.15changes whilev0.1.14stays frozen as the previous release snapshot.
Read the Upgrade Guide before moving an existing application forward.