Skip to content
/ velite Public

Turns Markdown / MDX, YAML, JSON, or others into app's data layer with Zod schema.

License

Notifications You must be signed in to change notification settings

zce/velite

Repository files navigation

Turns Markdown / MDX, YAML, JSON, or other files into app's data layer with type-safe schema.

Build Status License NPM Version Node Version Code Style
NPM Downloads Install Size Dependencies Status

What is Velite?

Velite is a tool for building type-safe data layer, turns Markdown / MDX, YAML, JSON, or other files into app's data layer with Zod schema.

Velite Workflow

Naming Origin

"Velite" comes from the English word "elite".

"Velite" itself is the code name for Napoleon's elite army.

Key Features

  • Easy to use: Move your contents into content folder, define collections schema, run velite, then use the output data in your application.
  • Type-safe: Contents schema validation by Zod, and generate type inference for TypeScript.
  • Framework Agnostic: JSON & Entry & DTS output, out of the box support for any JavaScript framework or library.
  • Light-weight: Choose more native APIs instead of bloated NPM modules, less runtime dependencies, so it is fast and efficiently.
  • Still powerful: Built-in Markdown / MDX, YAML, JSON support, relative files & images processing, schema validation, etc.
  • Configurable: Both input and output directories can be customized, and support for custom loaders, hooks, etc.
  • Extensible: Support any file types by custom loaders, Custom field validation and transform by custom schema, and any output formats by hooks.

Check out our detailed Why Velite to learn more about what makes Velite special. ✨

Try Velite Online

You can try Velite directly in your browser on StackBlitz:

Note

You may need a real-world project to start Velite quickly. I have forked the shadcn-ui/taxonomy project as an example, you can try it out. https://github.com/zce/taxonomy

Who's using Velite?

Roadmap

The following are the features I want to achieve or are under development:

  • More framework or build tool integration examples.
  • More built-in schemas
  • Unit & E2E tests?
  • Scoffolding tool
  • Incremental build
  • Turborepo?
  • Next.js plugin package? It's currently a snippet.

See the open issues for a list of proposed features (and known issues).

Contributing

  1. Fork it on GitHub!
  2. Clone the fork to your own machine.
  3. Checkout your feature branch: git checkout -b my-awesome-feature
  4. Commit your changes to your own branch: git commit -am 'Add some feature'
  5. Push your work back up to your fork: git push -u origin my-awesome-feature
  6. Submit a Pull Request so that we can review your changes.

Note

Be sure to merge the latest from "upstream" before making a pull request!

License

MIT © zce