Vyriy CLI Presets: calm starting points for different web projects
One of the ideas behind Vyriy is simple: starting a new project should feel calm.
Vyriy CLI Presets: calm starting points for different web projects
One of the ideas behind Vyriy is simple: starting a new project should feel calm.
Not empty. Not over-engineered. Not full of hidden framework magic.
Just a predictable starting point with TypeScript, tests, formatting, linting, documentation, Storybook, and a clear project structure already in place.
That is what Vyriy CLI presets are for.
npm create vyriy@latest
The CLI asks what kind of project you want to create and generates a ready workspace for that use case. The current preset list includes starting points for libraries, APIs, SSR apps, SSG sites, SPAs, REST services, GraphQL services, micro frontends, fullstack apps, and a minimal base workspace.
Presets are not just templates
I do not think about Vyriy presets as “copy-paste templates”.
A good preset should be closer to a small project contract.
It should answer basic questions before the developer even starts coding:
How is the project structured? Where are tests located? How is documentation written? How do I run checks? Where are public exports? How does the app build? How can another developer understand this project quickly?
Each generated project includes its own README, commands, Storybook documentation surface, and a calm development foundation.
The goal is not to hide complexity. The goal is to put complexity behind clear boundaries.
Different projects need different starting points
A reusable package does not need the same structure as an SSR application.
A REST API does not need the same shape as a static site.
A micro frontend has its own integration questions.
That is why Vyriy CLI has presets for different project types:
Base
Library
API
SSR
SSG
SPA
REST
GraphQL
MFE
Fullstack
For example, the Base preset is a minimal workspace foundation with TypeScript, ESLint, Prettier, Jest, Storybook, and shared workflow configuration. The Library preset is focused on reusable packages with tests, stories, docs, and clear public exports. The SSG preset is aimed at build-time HTML and CDN-friendly deployment. The MFE preset is for isolated, documented, embeddable UI surfaces.
This is the part I care about most: each preset should describe a real architectural intention.
Not just “React app”. Not just “API app”. But a calm starting point for a specific kind of work.
Static serving as a first-class piece
Another important part of the Vyriy ecosystem is @vyriy/static.
I wanted static files to be treated not as an afterthought, but as a small focused module that can work in different modes.
Inside code, it can be composed with the lower-level Vyriy packages:
@vyriy/server
@vyriy/handler
@vyriy/router
@vyriy/static
The idea is that static behavior should be usable both as a direct handler and through router-level helpers.
For example, one use case is serving a dist folder directly. Another is wiring static files into an application router. Another is serving an SPA with a fallback file like index.html.
And for local usage or simple deployment scenarios, @vyriy/static can also work as a console utility for serving static files.
Conceptually, I want this to feel boring in a good way:
vyriy-static ./dist --spa --fallback index.html --cache static
Static files, SPA fallback, cache strategy, predictable behavior.
No magic. No huge framework requirement. Just a focused tool that can be used standalone or as part of the Vyriy server/handler/router flow.
Calm architecture starts at project creation
Many architecture problems start very early.
A project is created quickly, then structure grows randomly, scripts become inconsistent, docs are missing, tests are added later, and every new package invents its own conventions.
Vyriy presets try to avoid that.
The generated project should already have a calm foundation:
clear folders, clear commands, clear docs, clear tests, clear public API, clear runtime boundaries.
This does not mean every project must look exactly the same.
It means every project should be understandable.
Read the full article
I wrote a full overview of Vyriy project presets here:
https://vyriy.dev/blog/vyriy-project-presets/
It explains the available presets and when each one makes sense.
Vyriy is still evolving, but the direction is already clear: small modules, explicit boundaries, boring deployment, and calm starting points for real web projects.
메타데이터
- post_id
- bb50ab49e018
- slug
- vyriy-cli-presets-calm-starting-points-for-different-web-projects-bb50ab49e018
- url
- https://medium.com/@evheniybystrov/vyriy-cli-presets-calm-starting-points-for-different-web-projects-bb50ab49e018
- canonical_url
- https://medium.com/@evheniybystrov/vyriy-cli-presets-calm-starting-points-for-different-web-projects-bb50ab49e018
- author_url
- https://medium.com/@evheniybystrov
- status
- ok
- fetched_at
- 2026-06-10 15:53:41