Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zce/velite

Turns Markdown / MDX, YAML, JSON, or others into app's data layer with Zod schema.
https://github.com/zce/velite

content contentlayer datalayer esbuild headless-cms markdown mdx typescript zod

Last synced: 27 days ago
JSON representation

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

Awesome Lists containing this project

README

        








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](https://zod.dev), 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](https://velite.js.org/guide/introduction#why-velite) to learn more about what makes Velite special. ✨

## Try Velite Online

You can try Velite directly in your browser on StackBlitz:

- https://stackblitz.com/edit/velite-basic
- https://stackblitz.com/edit/velite-nextjs

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

## Who's using Velite?

- [Ark UI](https://github.com/chakra-ui/ark)
- [Chakra UI](https://github.com/chakra-ui/chakra-ui)
- [Park UI](https://github.com/cschroeter/park-ui)
- [etc.](https://github.com/zce/velite/network/dependents)

## 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](https://velite.js.org/guide/with-nextjs#start-velite-with-next-js-plugin).

See the [open issues](https://github.com/zce/velite/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](license) © [zce](https://zce.me)