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.
โจ What It Does
- ๐ Instant Setup โ Creates project structure, git repo, and starter code in seconds
- ๐ณ Dev Containers โ Optional Docker environments with pre-configured tools
- ๐ Educational Projects โ Learn new languages with guided game tutorials
- ๐ ๏ธ Code Quality Tools โ Pre-commit hooks, linters, and formatters built-in
- โ๏ธ GitHub Integration โ Auto-create and push repositories
- ๐ 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 Dockerfiledocker-compose.yamlfor orchestration.envrcfor 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
--devcontainerfor consistent development across team and machines - Use
--toolsto enforce code quality from the start - Use
--tutorialto learn a new language with guided exercises - Check
GETTING_STARTED.mdin 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
- Getting Started โ Detailed setup guide
- Contributing Guide โ How to contribute
- Changelog โ Version history and updates
- Architecture โ How sparkstart works
๐ 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?
- The token is saved to
.projinit.env(never committed) - To regenerate: Remove
.projinit.envand re-run with--github - 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
- Questions? Check the help system
- Found a bug? Open an issue
- Have an idea? Create a discussion
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee0b06be625a6bd0e015c240e5f95782252701828ab443256cad531c93189b34
|
|
| MD5 |
e3527a12041bfd32bd14bda74148125f
|
|
| BLAKE2b-256 |
df3f0e9f1fde8d136db5247f85b67bb24861f343fdbfe4634f28926689cdd55e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fb08407c02c52bff6eaa6597f5a726d5d645f039d5fc775dbbb0b056630200b
|
|
| MD5 |
9424721963c61115bfa2555b6401ff03
|
|
| BLAKE2b-256 |
0e56a467fb7a8048d39ed204caa45199e3235c6e8f587674a64dbf510eb69294
|