Skip to main content

Create a new project in seconds, not hours. sparkstart handles all the boring setup so you can start coding immediately.

Project description

sparkstart โšก

Create a new project in seconds, not hours.

sparkstart handles all the boring setup so you can start coding immediately. No more copy-pasting boilerplate, no more manual configurationโ€”just run one command and you're ready to go.

Tests Python 3.8+ License: MIT

โœจ What It Does

  1. ๐Ÿš€ Instant Setup โ€” Creates project structure, git repo, and starter code in seconds
  2. ๐Ÿณ Dev Containers โ€” Optional Docker environments with pre-configured tools
  3. ๐ŸŽ“ Educational Projects โ€” Learn new languages with guided game tutorials
  4. ๐Ÿ› ๏ธ Code Quality Tools โ€” Pre-commit hooks, linters, and formatters built-in
  5. โ˜๏ธ GitHub Integration โ€” Auto-create and push repositories
  6. ๐Ÿ“š Smart Help System โ€” Built-in guides and tutorials for every project

๐Ÿš€ Quick Start

# Install
pip install sparkstart

# Create a project (interactive wizard)
sparkstart new

# Or use direct mode with flags
sparkstart new my-awesome-game --lang python --devcontainer --tools

That's it! Your project is ready to code.

๐Ÿ“‹ Supported Languages

Language Features
Python Poetry/pip, venv, pytest, best practices
Rust Cargo, clippy, rustfmt, testing setup
JavaScript npm/Node.js, ESLint, Prettier, testing framework
C++ CMake, Conan, build system, googletest

๐ŸŽฏ Usage

Interactive Wizard (Recommended)

sparkstart new

Guides you through:

  • Project name
  • Programming language
  • Dev container setup (Docker)
  • Code quality tools (formatters, linters, pre-commit)
  • Educational project option (learn by building games)
  • GitHub push

Direct Mode with Flags

# Python project with all features
sparkstart new my-app --lang python --devcontainer --tools --github

# Rust project for learning
sparkstart new learning-rust --lang rust --tutorial

# Quick JavaScript project
sparkstart new web-app --lang javascript --tools

# C++ with Docker environment
sparkstart new cpp-project --lang cpp --devcontainer

Available Options

--lang, -l LANG           Language: python, rust, javascript, cpp
--template TEMPLATE       Template: pygame (python only)
--tutorial, -t            Educational project with tests and guides
--devcontainer, -d        Docker dev container with direnv + compose
--tools                   Formatters, linters, pre-commit hooks
--github                  Create and push to GitHub repository
--help, -h                Show help information

Commands

sparkstart new [NAME]     Create new project
sparkstart help           Show comprehensive help
sparkstart version        Show version

๐ŸŽ What's Included

Every Project Gets:

โœ… Project Structure

  • Language-specific folder layout
  • Working starter code ("Hello World")
  • README.md and .gitignore
  • Git repository (pre-initialized)

โœ… Documentation

  • GETTING_STARTED.md (language-specific setup guide)
  • Inline code comments
  • Example code patterns

โœ… Testing Setup

  • Test files and examples
  • Pre-configured test runner
  • Sample test cases

With --devcontainer:

๐Ÿณ Docker Development Environment

  • .devcontainer/ with Dockerfile
  • docker-compose.yaml for orchestration
  • .envrc for automatic environment setup (direnv)
  • Pre-installed tools and dependencies
  • Reproducible development across machines

With --tools:

๐Ÿ› ๏ธ Code Quality Tools

  • Formatters: black (Python), prettier (JS), rustfmt (Rust), clang-format (C++)
  • Linters: ruff (Python), eslint (JS), clippy (Rust)
  • Pre-commit hooks: Automatic code checking before commits
  • .editorconfig: Editor consistency across team

With --tutorial:

๐ŸŽ“ Educational Game Project

  • Complete working game (Pygame for Python)
  • Tutorial and learning resources
  • Exercises to practice concepts
  • Tests to verify your progress

With --github:

โ˜๏ธ GitHub Integration

  • Automatic repository creation
  • Secure token handling (saved locally, never committed)
  • Initial commit and push
  • Ready for collaboration

๐Ÿ’ก Pro Tips

  • Use --devcontainer for consistent development across team and machines
  • Use --tools to enforce code quality from the start
  • Use --tutorial to learn a new language with guided exercises
  • Check GETTING_STARTED.md in your new project for language-specific commands
  • GitHub token is saved to .projinit.env (never committed to git)

๐Ÿ”ง Requirements

Minimum

Optional

  • Docker (for --devcontainer) โ†’ Download
  • Language runtime for chosen language:
    • Python: Built-in โœ…
    • Rust: rustup.rs
    • Node.js: nodejs.org
    • C++: gcc/clang (or use --devcontainer)

๐Ÿ“ฆ Installation

From PyPI (Recommended)

pip install sparkstart

From Source

git clone https://github.com/majorlongval/sparkstart
cd sparkstart
pip install -e .

Verify Installation

sparkstart version

๐ŸŽฎ Examples

Python Game Project

sparkstart new my-game --lang python --template pygame --tutorial
cd my-game
cat GETTING_STARTED.md  # See setup instructions

Rust Project with DevContainer

sparkstart new learn-rust --lang rust --devcontainer --tutorial
cd learn-rust
direnv allow                    # Auto-activate environment
docker compose up -d            # Start dev container
docker compose exec dev cargo test  # Run tests in container

Production JavaScript Project

sparkstart new production-app --lang javascript --tools --github --devcontainer
cd production-app
npm install
npm test
git push

C++ Academic Project

sparkstart new algorithms --lang cpp --tutorial --tools
cd algorithms
mkdir build && cd build && cmake .. && make
./test_algorithms

๐Ÿ› ๏ธ Shell Completion

Bash

Add to ~/.bashrc:

eval "$(sparkstart --bash-completion)"

Zsh

Add to ~/.zshrc:

eval "$(sparkstart --zsh-completion)"

Then run:

source ~/.bashrc  # or ~/.zshrc

Now you get autocomplete for:

  • Commands (new, help, version)
  • Languages (python, rust, javascript, cpp)
  • Templates (pygame)
  • All flags and options

๐Ÿ“š Documentation

๐Ÿ› Troubleshooting

Missing Docker?

# macOS
brew install docker

# Linux (Ubuntu/Debian)
sudo apt install docker.io

# Windows
# Download Docker Desktop: https://www.docker.com/get-started

Missing Git?

# macOS
brew install git

# Linux (Ubuntu/Debian)
sudo apt install git

# Windows
# Download: https://git-scm.com/

Project Already Exists?

Use a different name:

sparkstart new my-project-v2

Or remove the existing directory:

rm -rf my-project
sparkstart new my-project

GitHub Token Issues?

  1. The token is saved to .projinit.env (never committed)
  2. To regenerate: Remove .projinit.env and re-run with --github
  3. Personal access token docs: GitHub Docs

๐Ÿค Contributing

We'd love your help! See CONTRIBUTING.md for:

  • How to set up development environment
  • Running tests
  • Submitting pull requests
  • Code style guidelines

๐Ÿ“ License

MIT License โ€” See LICENSE for details

๐ŸŽ‰ Quick Facts

  • โšก Fast โ€” Creates projects in seconds
  • ๐Ÿ”’ Secure โ€” GitHub tokens never committed
  • ๐ŸŽฏ Focused โ€” Does one thing well
  • ๐Ÿ“š Educational โ€” Learn new languages faster
  • ๐Ÿ› ๏ธ Professional โ€” Production-ready code quality
  • ๐Ÿณ Docker-Ready โ€” Dev containers included

๐Ÿ“ž Support


Ready to start? Run sparkstart new and create your first project! ๐Ÿš€

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sparkstart-1.0.1.tar.gz (74.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sparkstart-1.0.1-py3-none-any.whl (83.5 kB view details)

Uploaded Python 3

File details

Details for the file sparkstart-1.0.1.tar.gz.

File metadata

  • Download URL: sparkstart-1.0.1.tar.gz
  • Upload date:
  • Size: 74.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for sparkstart-1.0.1.tar.gz
Algorithm Hash digest
SHA256 6f34d12f015979d0b2938d35453ae6d03656c7fcd49284fe369ce0c21c63aa3c
MD5 fc38dd25cbbe47946c00eb54889c284a
BLAKE2b-256 290d0c8dc8ad0b514528eee0a6dfa6c84f4253d17629274993822963a4b1fa4b

See more details on using hashes here.

File details

Details for the file sparkstart-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: sparkstart-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 83.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for sparkstart-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3212b04ac668bff822e03a5c70bde65d00e32febdd3218f2fd8d4643dacdf7af
MD5 f8ffde17b8397602b0c410ffea5d1198
BLAKE2b-256 b984bd2c3617a81d26110d2c6a0d51b5554f392c5d028a3370c2a6adf685b763

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page