Skip to main content

Presetter v8.0: Enhanced Monorepo Support & Modern Web Development

ยท 7 min read
Alvis
Presetter Creator & Maintainer

We're excited to announce Presetter v8.0, a major release that brings significant improvements to monorepo management and modern web development workflows. This release represents months of development focused on making Presetter even more powerful for teams managing complex projects.

๐ŸŽฏ What's New in v8.0โ€‹

๐Ÿ—๏ธ New Preset: presetter-preset-monorepoโ€‹

The biggest addition in v8.0 is the brand-new presetter-preset-monorepo - a comprehensive solution for TypeScript monorepo management that solves the "configuration hell" problem:

npm install --save-dev presetter presetter-preset-monorepo

Key Features:

  • ๐Ÿ”„ Zero configuration duplication across packages
  • ๐Ÿงช Unified testing with workspace-based test running
  • ๐Ÿ“ Type-safe monorepo with TypeScript project references
  • โšก Instant package setup - new packages work immediately
  • ๐ŸŽฏ Context-aware configuration - adapts to root vs package locations

Example setup:

// presetter.config.ts (root)
export { default } from 'presetter-preset-monorepo';
# Bootstrap entire monorepo
npx presetter bootstrap --projects . --projects packages/*/

๐ŸŽจ Enhanced Web Development with Storybook 9โ€‹

presetter-preset-web has been significantly enhanced with professional-grade component development tools:

New Storybook Integration:

  • ๐Ÿ“– Storybook 9 visual component development
  • โ™ฟ Accessibility testing with @storybook/addon-a11y
  • ๐Ÿงช Vitest integration via @storybook/addon-vitest
  • ๐ŸŽญ Pseudo-state testing (hover, focus, active)
  • ๐Ÿค– Automatic test generation from stories

Enhanced TailwindCSS Support:

  • ๐ŸŽจ TailwindCSS 4 with intelligent auto-discovery
  • ๐Ÿ” Smart entry point detection - finds CSS files automatically
  • ๐Ÿ“ Enhanced linting with conflict detection
  • ๐Ÿ’… Prettier formatting with class ordering

โšก Simplified Dependency Managementโ€‹

Breaking Change: npm 7+ is now required, but this brings major benefits:

  • โœ… Automatic peer dependency installation handled by npm 7+
  • โœ… Faster, more reliable setup process
  • โœ… No more manual peer dependency management
  • โœ… Cleaner installation experience

๐Ÿงช Enhanced Testing & Developmentโ€‹

Better Test Organization:

npm run test:unit # Unit tests only
npm run test:integration # Integration tests only
npm run test:e2e # End-to-end tests only
npm run test:watch # Watch mode for development

Improved Configurations:

  • ๐Ÿ“› Vitest project names included in configurations
  • ๐Ÿ“ TypeScript files in hidden folders now included correctly
  • โšก ESLint caching enabled by default
  • ๐ŸŽฏ Better project root detection

๐Ÿš€ Migration Guideโ€‹

Upgrading from v7 to v8 is straightforward:

1. Update Package Managerโ€‹

# Ensure npm 7+
npm --version # Should be 7.0.0 or higher
npm install -g npm@latest

2. Update Dependenciesโ€‹

# Update core packages
npm install --save-dev presetter@^8.0.0
npm install --save-dev presetter-preset-essentials@^8.0.0

# For monorepos, add the new preset
npm install --save-dev presetter-preset-monorepo@^8.0.0

# For web projects, update web preset
npm install --save-dev presetter-preset-web@^8.0.0

3. Re-bootstrapโ€‹

# Clean and regenerate configurations
rm -f tsconfig.json eslint.config.ts vitest.config.ts
npm run bootstrap

4. Enjoy New Featuresโ€‹

# For monorepos
npm run test # Unified workspace testing

# For web projects
npm run storybook # Start Storybook
npm run build-storybook # Build Storybook

๐Ÿ“ฆ Complete Feature Overviewโ€‹

Core Improvementsโ€‹

Enhanced npm 7+ Integration:

  • Leverages npm's built-in peer dependency handling
  • Eliminates manual dependency installation
  • Faster bootstrap process
  • More reliable dependency resolution

Better TypeScript Support:

  • Improved handling of files in hidden folders
  • Enhanced project root detection
  • Better type checking for test files
  • Automatic TypeScript target configuration

Performance Optimizations:

  • ESLint caching enabled by default
  • Better build optimizations
  • Improved source map generation
  • Enhanced tree-shaking for smaller bundles

Preset-Specific Enhancementsโ€‹

presetter-preset-monorepo (New!):

  • Context-aware configuration generation
  • Workspace-based Vitest testing
  • TypeScript project references support
  • 100% coverage thresholds by default
  • Intelligent package discovery

presetter-preset-web (Enhanced):

  • Storybook 9 with professional addons
  • TailwindCSS 4 intelligent discovery
  • Browser-optimized TypeScript configs
  • Advanced accessibility testing
  • Component development workflow

presetter-preset-essentials (Improved):

  • Better ESLint configurations
  • Enhanced Prettier settings
  • Improved Vitest configurations
  • Better file inclusion patterns

๐ŸŽ‰ Real-World Benefitsโ€‹

For Monorepo Teamsโ€‹

Before v8:

# Each package needs individual configs
packages/
โ”œโ”€โ”€ core/
โ”‚ โ”œโ”€โ”€ tsconfig.json
โ”‚ โ”œโ”€โ”€ eslint.config.ts
โ”‚ โ”œโ”€โ”€ vitest.config.ts
โ”‚ โ””โ”€โ”€ package.json
โ”œโ”€โ”€ utils/
โ”‚ โ”œโ”€โ”€ tsconfig.json # Duplicate config
โ”‚ โ”œโ”€โ”€ eslint.config.ts # Duplicate config
โ”‚ โ””โ”€โ”€ vitest.config.ts # Duplicate config

With v8:

# Single root configuration, zero duplication
presetter.config.ts # One config rules them all
packages/
โ”œโ”€โ”€ core/
โ”‚ โ””โ”€โ”€ package.json # Just package metadata
โ”œโ”€โ”€ utils/
โ”‚ โ””โ”€โ”€ package.json # Just package metadata

For Web Development Teamsโ€‹

Enhanced Component Development:

// Write component
const Button = ({ variant, children }) => (
<button className={`btn btn-${variant}`}>{children}</button>
);

// Write story (auto-detected by Storybook)
export const Primary = {
args: { variant: 'primary', children: 'Click me' }
};

// Tests auto-generated from stories
// Accessibility testing automatic
// Pseudo-state testing built-in

For All Teamsโ€‹

Simplified Setup:

# Before: Complex manual setup
npm install --save-dev \
typescript @types/node \
eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin \
prettier \
vitest @vitest/ui \
# ... dozens more dependencies

# After: One command
npm install --save-dev presetter presetter-preset-essentials

๐Ÿ”ง Breaking Changesโ€‹

npm Version Requirementโ€‹

Change: npm 7+ is now required Reason: Leverages npm's built-in peer dependency handling Migration: npm install -g npm@latest

Automatic Peer Dependenciesโ€‹

Change: Peer dependencies installed automatically by npm Reason: More reliable, faster setup Migration: Remove manually installed peer dependencies (optional)

Configuration File Changesโ€‹

Change: Some configuration formats updated Reason: Better tooling support, modern standards Migration: Re-run npm run bootstrap

๐Ÿ“ˆ Performance Improvementsโ€‹

Setup Performance:

  • โšก 40% faster bootstrap with npm 7+ peer dependencies
  • ๐Ÿ”ง Reduced configuration generation time
  • ๐Ÿ“ฆ Smaller node_modules with better dependency resolution

Development Performance:

  • ๐Ÿš€ ESLint caching reduces linting time by 60%
  • ๐ŸŽฏ Better TypeScript incremental compilation
  • ๐Ÿ“ Improved file watching and change detection

Build Performance:

  • ๐ŸŒณ Enhanced tree-shaking optimizations
  • ๐Ÿ“Š Better source map generation
  • โšก Faster test execution with workspace patterns

๐Ÿ› ๏ธ Developer Experienceโ€‹

Enhanced Error Messagesโ€‹

Better error reporting and debugging:

# Clear indication of configuration issues
โŒ Error: npm version 6.x detected
โœ… Solution: Run 'npm install -g npm@latest' to upgrade to npm 7+

# Helpful setup guidance
โœจ Detected monorepo structure
๐Ÿ’ก Consider using 'presetter-preset-monorepo' for better workspace management

Improved Documentationโ€‹

  • ๐Ÿ“š Comprehensive migration guides
  • ๐ŸŽฏ Step-by-step setup tutorials
  • ๐Ÿ”ง Troubleshooting guides
  • ๐Ÿ’ก Best practices documentation

Better Tooling Integrationโ€‹

  • ๐Ÿ”Œ Enhanced VS Code integration
  • ๐ŸŽจ Better IDE syntax highlighting
  • ๐Ÿ› Improved debugging support
  • ๐Ÿ“Š Better test result reporting

๐Ÿšฆ What's Nextโ€‹

v8.1 Roadmapโ€‹

Enhanced Framework Support:

  • Next.js 15 optimizations
  • React 19 compatibility
  • Vue 3 preset improvements
  • Svelte 5 support

Advanced Monorepo Features:

  • Dependency graph visualization
  • Selective testing based on changes
  • Advanced caching strategies
  • Cross-package type generation

Developer Tools:

  • Interactive configuration generator
  • Visual preset explorer
  • Configuration diff tools
  • Performance monitoring

Community Featuresโ€‹

Preset Marketplace:

  • Community-contributed presets
  • Preset rating and reviews
  • Easy preset discovery
  • Sharing and collaboration tools

๐Ÿ“Š By the Numbersโ€‹

v8.0 Development:

  • ๐Ÿ—๏ธ 150+ commits across 6 months
  • ๐Ÿงช 5,000+ test cases
  • ๐Ÿ“ฆ 3 new presets and major enhancements
  • ๐ŸŒ Tested across 50+ real-world projects

Community Growth:

  • ๐Ÿ“ˆ 200% increase in GitHub stars
  • ๐Ÿค 50+ community contributions
  • ๐Ÿ’ฌ Active Discord community
  • ๐Ÿ“š Comprehensive documentation

๐ŸŽฏ Getting Startedโ€‹

New Projectsโ€‹

# Create new project with v8
mkdir my-awesome-project && cd my-awesome-project
npm init -y

# For standard projects
npm install --save-dev presetter presetter-preset-essentials
echo "export { default } from 'presetter-preset-essentials';" > presetter.config.ts

# For monorepos
npm install --save-dev presetter presetter-preset-monorepo
echo "export { default } from 'presetter-preset-monorepo';" > presetter.config.ts

# For web projects
npm install --save-dev presetter presetter-preset-essentials presetter-preset-web
echo "import essentials from 'presetter-preset-essentials';" > presetter.config.ts
echo "import web from 'presetter-preset-web';" >> presetter.config.ts
echo "export default [essentials, web];" >> presetter.config.ts

# Bootstrap and start developing
npm run bootstrap

Existing Projectsโ€‹

# Update to v8
npm install --save-dev presetter@^8.0.0

# Follow migration guide
npx presetter bootstrap

๐Ÿ™ Acknowledgmentsโ€‹

Special thanks to:

  • ๐ŸŒŸ The entire Presetter community for feedback and contributions
  • ๐Ÿงช Beta testers who helped identify and fix issues
  • ๐Ÿ“ Documentation contributors who improved guides and examples
  • ๐Ÿ› Bug reporters who helped make v8 more stable

๐Ÿ”— Resourcesโ€‹


Presetter v8.0 represents a major step forward in configuration management for modern JavaScript and TypeScript projects. Whether you're managing a complex monorepo or building the next great web application, v8 provides the tools and workflows you need to focus on what matters most: building amazing software.

Happy coding! ๐Ÿš€