Gro

screenshot of Gro
svelte
vite

task runner and toolkit extending SvelteKit generate, run, optimize

Overview:

Gro is a task runner and toolkit that extends SvelteKit, Vite, and esbuild for developing web frontends, servers, and libraries. It provides a task runner, common tasks, and tools for developing, building, testing, deploying, and publishing SvelteKit frontends, Node servers, and libraries. It also includes integrated TypeScript, Svelte, and SvelteKit for easier development. Gro offers configurable plugins, support for importing TypeScript, JSON, and SSR'd Svelte files, and supports SvelteKit module imports for tasks, tests, Node servers, and other code outside of the SvelteKit frontend. It also supports testing with uvu, code generation with gen, and automatic type generation using JSON Schema.

Features:

  • Task Runner: Gro provides a task runner that uses the filesystem convention *.task.ts. It discovers and runs TypeScript modules with the .task. subextension.
  • Builtin Tasks: Gro includes lots of common builtin tasks that users can easily override and compose.
  • Development Tools: Gro offers tools and patterns for developing, building, testing, deploying, and publishing SvelteKit frontends, Node servers, and libraries.
  • Integrated TypeScript, Svelte, and SvelteKit: Gro integrates with TypeScript, Svelte, and SvelteKit for easier development.
  • Configurable Plugins: Gro provides configurable plugins to support SvelteKit, auto-restarting Node servers, and other external build processes.
  • Support for Importing TypeScript, JSON, and SSR'd Svelte Files: Gro supports importing TypeScript, JSON, and SSR'd Svelte files in tests and tasks.
  • SvelteKit Module Imports: Gro supports SvelteKit module imports for $lib, $env, and $app in tasks, tests, Node servers, and other code outside of the SvelteKit frontend.
  • Automatic Type Generation: Gro supports automatic type generation using JSON Schema and json-schema-to-typescript.
  • Linting with ESLint: Gro supports linting with ESLint.
  • Formatting with Prettier: Gro supports formatting with Prettier.
  • Documentation: Gro provides documentation for developing web frontends, servers, and libraries.
  • Task Index: Gro generates a task index with all the available tasks.
  • Testing with uvu: Gro supports testing with uvu.
  • Code Generation with gen: Gro supports code generation with gen.

Summary:

Gro is a powerful task runner and toolkit that extends SvelteKit, Vite, and esbuild for developing web frontends, servers, and libraries. It provides a wide range of features such as a task runner, common tasks, tools for development, testing, deploying, and publishing, and integrated support for TypeScript, Svelte, and SvelteKit. Gro also supports importing TypeScript, JSON, and SSR'd Svelte files, configurable plugins, automatic type generation, linting, formatting, and provides comprehensive documentation. With Gro, developers can streamline their development workflow and build robust web applications and libraries.

svelte
Svelte

Svelte is a modern front-end framework that compiles your code at build time, resulting in smaller and faster applications. It uses a reactive approach to update the DOM, allowing for high performance and a smoother user experience.

vite
Vite

Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.

zod
Zod

Zod is a TypeScript-first schema declaration and validation library. It allows you to define schemas that can validate data at runtime while providing excellent TypeScript inference, making it perfect for API validation, form validation, and type-safe data handling.