BornToShine /
◌ In Progress

P2P File Sharing

A peer-to-peer file transfer system in pure Go — covering chunked transfer, peer discovery, NAT traversal, and integrity verification.

Stack
Go · TCP/UDP · Custom Protocol
Status
◌ In Progress
Concepts
Peer discovery · Chunked transfer · NAT traversal · SHA-256 integrity

Problem

Most teams enforce Git conventions through code reviews and verbal agreements. This breaks down at scale — inconsistent branch names, missing commit prefixes, manual version bumps. I wanted a CLI that enforces the workflow automatically.

Prior Art

git-flow exists but it's heavyweight and opinionated about the full branching model. Commitizen handles commit messages but not branching. Nothing handled the full workflow from branch creation to release in a lightweight way.

Design Decisions

Chose Commander.js over yargs for its cleaner API and better TypeScript support. Kept the config in package.json under a "gitflow" key so it travels with the repo. Made all conventions overridable so teams aren't forced into my defaults.

Architecture

Three main modules: branch manager (creates/validates branch names), commit linter (enforces conventional commits), and release manager (bumps version, tags, generates changelog). Each is independently usable as a library.

Reflection

I'd add a --dry-run flag to every command. Teams are cautious about new CLI tools and being able to preview what would happen without executing it would lower the adoption barrier significantly.