DevEx is a powerful CLI tool designed to streamline the setup and management of development environments. It simplifies the installation of applications, configuration of programming languages, and customization of themes.
This is a monorepo containing:
- CLI Tool (
apps/cli/
) - The main DevEx CLI application - Website (
apps/web/
) - The official website at devex.sh - Documentation (
apps/docs/
) - Technical documentation site
- Custom Configuration Management: Tailor application, GNOME extension, and programming language setups with YAML files.
- Automated Releases: Leverage
commitizen
,semantic-release
, andgoreleaser
for seamless versioning and publishing. - Task Automation: Use
Taskfile
for efficient script execution and workflow management. - Community Support: Engage with contributors through GitHub Issues, Discussions, and Wiki.
- Biome Formatting: Standardize code with Biome for consistent formatting and linting.
- Comprehensive Website: Access guides, documentation, and updates at devex.sh.
- Go: Version 1.23 or later (for CLI development)
- Node.js: Version 18.x or later (for website and docs)
- pnpm: Version 9.x or later (for workspace management)
- Mise: Install from the Mise GitHub page
To install the DevEx CLI:
cd apps/cli
task install
To set up the entire development environment:
# Install workspace dependencies
pnpm install
# Build all projects
pnpm build
# Start development servers
pnpm dev
Custom configurations are stored under ~/.devex/
:
~/.devex/
├── apps.yaml
├── gnome_extensions.yaml
├── programming_languages.yaml
├── config/
│ └── additional_configs.yaml
└── themes.yaml
DevEx prioritizes custom configurations in ~/.devex/
. If not found, it falls back to defaults in the assets/
directory.
apps:
- name: "Visual Studio Code"
description: "Code editor from Microsoft"
category: "Editors"
install_method: "apt"
install_command: "code"
dependencies:
- "gnome-shell"
- "git"
To format configuration files, run:
prettier --write "**/*.{yaml,md}"
devex/
├── apps/
│ ├── cli/ # DevEx CLI tool (Go)
│ ├── web/ # Main website (Next.js)
│ └── docs/ # Documentation site (MDX)
├── packages/ # Shared packages (future use)
├── pnpm-workspace.yaml
└── package.json # Root workspace configuration
The CLI uses Task
for automation:
cd apps/cli
# Default development workflow (lint + test)
task
# Build and install locally
task install
# Run tests
task test # Standard Go tests
task test:ginkgo # Ginkgo BDD tests
task test:testify # Testify tests
# Code quality
task lint # Run golangci-lint
task lint:fix # Auto-fix linting issues
task vulncheck # Check for vulnerabilities
cd apps/web
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Build for production
pnpm build
cd apps/docs
# Install dependencies
pnpm install
# Start development server
pnpm start
# Build static site
pnpm build
# Install all dependencies
pnpm install
# Format all code
pnpm biome:format
# Lint all code
pnpm biome:lint
# Check formatting and linting
pnpm biome:check
Run CLI tests:
cd apps/cli
task test
Run linting across the monorepo:
# Root level (Biome for JS/TS)
pnpm biome:lint
# CLI specific (Go)
cd apps/cli
task lint
Build individual applications:
# CLI tool
cd apps/cli
task build
# Website
cd apps/web
pnpm build
# Documentation
cd apps/docs
pnpm build
DevEx uses semantic-release
for automated versioning and releases. The monorepo structure allows for independent versioning of each application.
Releases are triggered automatically on the main branch when commits follow conventional commit patterns:
feat:
- new features (minor version bump)fix:
- bug fixes (patch version bump)BREAKING CHANGE:
- breaking changes (major version bump)
- Issues: Report bugs or request features.
- Discussions: Ask questions or share ideas.
- Docs: View documentation.
- Projects: Track project progress.
- Wiki: Access in-depth documentation.
- Security: Report vulnerabilities.
- Pulse: View project activity.
Visit the official website at devex.sh for documentation, guides, and updates.
Contributions are welcome! Refer to the Contributing Guide for details.
We expect all contributors to adhere to our Code of Conduct.
DevEx is licensed under the GNU GPL v3 License.
For security concerns, please refer to our Security Policy.
Note: This project uses AI-assisted tools for certain tasks.
Learn more about our AI usage here.