Inspiration

Problem: Manual, inconsistent, or non-existent code quality and security standards across different teams and repositories. Existing tooling is complex and difficult to configure uniformly.

Goal: To create a simple, standardized, one-command tool that establishes a "baseline" for all new projects, ensuring every repository starts with consistent linters, security checks, and build configurations.

What it does

BaseRite is a command-line interface (CLI) tool that bootstraps a new project with a predefined set of quality and security standards (the "baseline").

It automatically configures and installs standard linters (e.g., ESLint, Prettier), security scanners, and CI/CD pipeline configuration files, tailored to the project language (e.g., JavaScript, Python).

It ensures that all future code is measured against this initial "baseline" to prevent quality degradation over time.

How we built it

Technology Stack: Built using Python (for the CLI functionality) and leveraging existing open-source tools like Docker (for containerized environments), Yeoman (for scaffolding), and config templating libraries.

Architecture: Developed as a single executable that reads configuration from a central, version-controlled YAML file which defines the company's approved "baseline" standards.

Challenges we ran into

Configuration Compatibility: The biggest challenge was making the tooling work consistently across different operating systems and language versions.

Tooling Overload: Deciding which tools to include in the "baseline" without overwhelming developers with too many initial warnings.

Version Control: Creating a robust way to update the "baseline" without breaking older projects that were initially created with a previous version of BaseRite.

Accomplishments that we're proud of

Reducing the setup time for a new project from hours to minutes.

Achieving 100% compliance with security standards in all new repositories launched with BaseRite.

Creating a highly intuitive and well-documented CLI, making it easy for new developers to adopt.

What we learned

The importance of convention over configuration—providing strong defaults is key to developer adoption.

How to build a robust, platform-independent CLI tool that interacts with the user's filesystem and environment variables.

The complexity of managing and distributing configuration files across a large-scale organization.

What's next for BaseRite

Integrations: Building direct integrations with popular CI/CD systems (GitHub Actions, GitLab CI).

New Baselines: Adding "baselines" for new technologies, such as mobile development frameworks (iOS/Android).

Auto-Remediation: Developing a feature to not just report issues, but automatically fix common baseline violations (e.g., automatic code formatting on commit).

Built With

Share this project:

Updates