Socket
Socket
Sign inDemoInstall

@adbayb/stack

Package Overview
Dependencies
413
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @adbayb/stack

My opinionated toolchain


Version published
Maintainers
1
Created

Readme

Source

🦦 Stack

My opinionated scaffolding tool to ease project building


✨ Features

Stack allows creating an NPM project in a quick, easy and opinionated way with:

  • A unified monorepo-driven and git-driven approach for all kinds of projects (single-purpose library, multiple libraries, application(s), ...)
  • Support for several application templates (for now, only a default template is available, but others can be added later)
  • Standardized file structure including optional folder creation such as examples, packages, ...
  • Enable all project lifecycle steps with commands from the setup, check, fix, build, and test to the versioning and release
  • Built-in configuration preset setup (including Node/NPM runtime, Git ignore/hooks, TypeScript, ESLint, Prettier, EditorConfig, Renovate, Changesets, and VSCode)
  • A welcoming environment for users and contributors with the continuous integration setup, and the creation of README.md, CONTRIBUTING.md, and GitHub template files (including issue and pull request ones), ...
  • An optimized development environment with command caching (no build needed if nothing changes)

🚀 Usage

This section introduces the stack essentials by walking through its main commands:

1️⃣ Create the NPM project via the @adbayb/create initializer:

# Npm
npm init @adbayb
# Pnpm
pnpm create @adbayb

2️⃣ Play with available commands (already set up in the generated root package.json):

# Setup initial requirements (including Git hooks installation)
stack install
# Clean the project
stack clean
# Check code health (static analysis including linters, types, and commit message)
stack check
# Fix auto-fixable issues
stack fix
# Start the project in production mode
stack start
# Build the project in production mode
stack build
# Build and start the project in development mode
stack watch
# Test the code execution
stack test
# Log, version, and publish package(s)
stack release

3️⃣ Enjoy!


🏗️ Architecture

flowchart TD
    N("npm init @adbayb"):::strokeWidth -- Calls --> C("<a href='https://github.com/adbayb/stack/tree/main/packages/create'>@adbayb/create</a>"):::strokeWidth
    C -- Uses --> S("<a href='https://github.com/adbayb/stack/tree/main/stack'>@adbayb/stack</a>"):::strokeWidth
    S -- "Installs" --> EC("<a href='https://github.com/adbayb/stack/tree/main/packages/eslint-config'>@adbayb/eslint-config</a>"):::strokeWidth
    S -- "Installs" --> PC("<a href='https://github.com/adbayb/stack/tree/main/packages/prettier-config'>@adbayb/prettier-config</a>"):::strokeWidth
    S -- "Installs" --> TC("<a href='https://github.com/adbayb/stack/tree/main/packages/ts-config'>@adbayb/ts-config</a>"):::strokeWidth
    S -- "Scaffolds" --> P("Created project"):::strokeWidth
    EC -- "Configures" --> P
    PC -- "Configures" --> P
    TC -- "Configures" --> P
    style C fill:#daf2d7,stroke:#90cf8e
    style S fill:#daf2d7,stroke:#90cf8e
    style EC fill:#daf2d7,stroke:#90cf8e
    style PC fill:#daf2d7,stroke:#90cf8e
    style TC fill:#daf2d7,stroke:#90cf8e
    classDef strokeWidth stroke-width:3px

Used technologies

  • Static code analysis: ESLint, Prettier
  • Node package manager: PNPM
  • Task orchestration: Turborepo
  • Release: Changesets
  • Testing: Vitest

Used conventions

  • Commits
  • Scripts
  • File Structure
    • Monorepo-first structure to:
      • Keep a consistent file structure pattern across templates (ease template familiarity and onboarding)
      • Ease examples setup
      • Not clutter the published package with development-related context, metadata, and artifacts

👣 Roadmap

  • stack check: Lint packages (caret range for dependencies and strict ones for dev dependencies)

✍️ Contribution

We're open to new contributions, you can find more details here.


📖 License

MIT


Keywords

FAQs

Last updated on 25 Feb 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc