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.2.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.2-py3-none-any.whl (83.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sparkstart-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 ee0b06be625a6bd0e015c240e5f95782252701828ab443256cad531c93189b34
MD5 e3527a12041bfd32bd14bda74148125f
BLAKE2b-256 df3f0e9f1fde8d136db5247f85b67bb24861f343fdbfe4634f28926689cdd55e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sparkstart-1.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0fb08407c02c52bff6eaa6597f5a726d5d645f039d5fc775dbbb0b056630200b
MD5 9424721963c61115bfa2555b6401ff03
BLAKE2b-256 0e56a467fb7a8048d39ed204caa45199e3235c6e8f587674a64dbf510eb69294

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