Quickstart
Get a working Shevky site in under two minutes.
Prerequisites
- Node.js 18+
- npm
Commands
mkdir my-shevky-site
cd my-shevky-site
npm init -y
npm install @shevky/core @shevky/plugin-robots-txt @shevky/plugin-tailwindcss @shevky/plugin-esbuild @shevky/plugin-rss @shevky/plugin-sitemap
npx shevky --init
npm run build
npm run devExpected Output
After npm run build:
dist/directory is created with generated HTML pages.dist/output.css?v=7e5120dfbaf9exists (Tailwind plugin).dist/output.js?v=7e5120dfbaf9exists (esbuild plugin).dist/robots.txt,dist/sitemap.xml, and feed XML exist (when corresponding plugins are configured).
After npm run dev:
- Build runs first, then a static server starts at
http://localhost:3000. - Open this URL in your browser to see your site.
What Just Happened
- The CLI entry (
shevky.js) routed to the build script (core/scripts/build.js). - Build loaded
src/site.json(configuration) andsrc/i18n.json(translations). - Mustache templates were loaded from
src/layouts/,src/components/,src/templates/. - Plugins from the
pluginsarray insite.jsonwere dynamically imported. - Plugin hooks ran in order:
dist:clean->assets:copy->content:load->content:ready. - Markdown content from
src/content/was parsed, rendered, and written todist/. - The
--devflag additionally startedserve@14to preview the output locally.
Common Errors
| Error | Fix |
|---|---|
Cannot find module @shevky/plugin-... | Install the missing plugin package |
src/site.json missing | Re-run npx shevky --init or create the file manually |
| Port 3000 already in use | Stop the conflicting process or run npm run build only |