"Born from the tears of Serbian and Romanian devs debugging PrestaShop at 3 AM, fueled by rakija and ΘuicΔ, built because JetBrains wants β¬200/year and we'd rather buy our babushkas new slippers."
A modern, blazing-fast PHP IDE built with Rust π¦π·πΈπ·π΄
Two Balkan developers, one shared hatred of PHP bugs, and a refusal to pay for PhpStorm.
We're REAL SLAVS who:
- Debug PrestaShop modules that would make Rasputin weep
- Handle Laravel projects with more nested callbacks than a matryoshka doll
- Fight Symfony's DependencyInjection like it's the Ottoman Empire
- REFUSE TO PAY β¬200/year when we can build it ourselves in Rust πͺ
SERBIA π·πΈ AND ROMANIA π·π΄ POWER brought this to life!
β PhpStorm subscription: β¬200/year
β
PHP Sunshine: FREE FOREVER (like your babushka's advice)
Customer projects are killing us. Legacy code is haunting our dreams. PrestaShop 1.6 modules are making us question our career choices.
So we did what any sensible Eastern European developer would do: WE BUILT OUR OWN IDE IN RUST WHILE DRINKING COFFEE STRONG ENOUGH TO STRIP PAINT.
- β Powered by Turkish coffee (3 cups minimum)
- π₯ Debugged with rakija & ΘuicΔ
- π§ Fueled by burek & mΔmΔligΔ
- πͺ Built with pure Slavic spite
- π« No JetBrains subscription needed
- 5 Beautiful Themes - Ocean, Palenight, Darker, Lighter, Deep Ocean
- True Color Support - 24-bit RGB colors
- Live Theme Switching -
:theme <name>command - Optimized Syntax Colors - Each theme carefully tuned for PHP
- Tree View with expand/collapse
- Material Icons - 50+ file type icons
- Gitignore Support - Respects your .gitignore
- Framework Detection - Auto-detects PrestaShop/Laravel/Symfony
- Special Folder Icons - Recognizes src, vendor, tests, etc.
- Multi-file Tabs - Work on multiple files
- Vim-style Modal Editing - Normal, Insert, Command modes
- Line Numbers - Always visible
- Cursor Position - Line:Column in status bar
- Smart Scrolling - Keeps cursor in view
- Rope-based Buffer - Efficient for large files
- File Persistence - Save/load functionality
- PrestaShop Detection - Recognizes modules, hooks
- Laravel Detection - Finds Artisan, Blade templates
- Symfony Detection - Identifies console, services
- Framework Icons - Shows appropriate icon in header
- Git Integration - Repository detection, branch display
- Modal Editing - Vim-style efficiency
- Keyboard Shortcuts - Full productivity suite
- Command Mode - Execute commands with
:
- Module structure recognition
- Hook completion and navigation
- Smarty template support
- Database schema analysis
- Translation file management
- Artisan command integration
- Blade template support
- Route navigation
- Eloquent model detection
- Migration helpers
- Service container awareness
- Twig template support
- Routing system integration
- Console command detection
- Doctrine integration
- Integrated terminal
- Git integration
- Composer package management
- PHPStan/Psalm integration
- Xdebug support
- Database tools
- β Rust 1.70+ (installed!)
- π‘ Nerd Font (recommended for icons)
- π₯οΈ Modern terminal with true color support
cd php-sunshine
# Build release version (optimized)
cargo build --release
# Run it!
./target/release/php-sunshine
# Or use the quick start script
./start.sh- Launch:
./target/release/php-sunshine - Open File Browser: Press
Ctrl+E - Navigate: Use
j/kor arrow keys - Open File: Press
Enter - Start Editing: Press
ifor insert mode - Save: Press
Esc, thenCtrl+S - Change Theme: Type
:theme palenight - Quit: Type
:q
i- Enter insert modeEsc- Back to normal modeCtrl+S- Save fileCtrl+E- Toggle file browserCtrl+T- New tab:w- Save:q- Quit:wq- Save and quit:theme <name>- Change theme
hjkl- Vim-style movement (or arrow keys)Ctrl+Tab- Next tabShift+Tab- Previous tab
See KEYBINDINGS.md for complete reference.
php-sunshine/
βββ src/
β βββ main.rs # Entry point
β βββ editor/ # Text editing core
β βββ ui/ # Terminal UI components
β βββ parser/ # PHP & template parsers
β βββ lsp/ # Language Server Protocol
β βββ project/ # Project management & framework detection
βββ Cargo.toml
βββ README.md
cargo build
cargo test
cargo runDark blue theme with PHP file open, file browser visible
Purple-tinted theme showing Laravel project
Light theme for bright environments
- MANIFESTO.md - π₯ READ THIS FIRST! The Balkan Developer's Creed
- FEATURES.md - Complete feature list with details
- KEYBINDINGS.md - All keyboard shortcuts
- QUICKSTART.md - Quick reference guide (print it!)
- CONTRIBUTING.md - Development guide
- BUILD_COMPLETE.md - What we've built
All 5 Material Design themes available:
| Theme | Description | Command |
|---|---|---|
| π Ocean | Dark blue (default) | :theme ocean |
| π Palenight | Purple-tinted dark | :theme palenight |
| π€ Darker | Maximum contrast | :theme darker |
| βοΈ Lighter | Clean light theme | :theme lighter |
| π Deep Ocean | OLED-optimized | :theme deepocean |
- Terminal UI with Ratatui
- Material Design themes (5 themes)
- File browser with icons
- Text editor with tabs
- Framework detection
- Git integration
- Modal editing (Vim-style)
- PHP syntax highlighting with Tree-sitter
- Code folding
- Smart indentation
- Search in file
- Fuzzy file search (Ctrl+P)
- Multi-file search & replace
- Symbol navigation
- Breadcrumbs
- LSP integration
- Code completion
- Go to definition
- Refactoring tools
- Integrated debugger
- Composer integration
Contributions welcome! This is an ambitious project to create a modern alternative to PhpStorm.
MIT
- Instant module structure recognition
- Hook system awareness (because we've seen ALL the hooks)
- Smarty template support (we know your pain)
- Fast module development workflow
- Bonus: Won't judge you for still maintaining PS 1.6 projects
- Artisan command detection
- Blade template syntax
- Route file navigation
- Eloquent model support
- No shame: We've all written
dd()everywhere
- Console command integration
- Twig template support
- Service container awareness
- Bundle structure recognition
- Real talk: We know you Googled "Symfony DependencyInjection" 47 times today
Made with β€οΈ, Rust, and Balkan determination by developers who:
- Know what "works on production" really means
- Have debugged code while the client was on the phone
- Can write PHP, JavaScript, and curse words in 5 languages
- Believe "git push --force" is sometimes the answer
- Think "it's a feature, not a bug" is a valid response
π΅ Our babushkas - who don't understand what we do but are proud anyway
π Open source - because knowledge should be free (like rakija at weddings)
πΌ Freelancers everywhere - fighting the good fight against impossible deadlines
ποΈ The Balkans - where we turn bugs into features and coffee into code
Contributions are welcome! See CONTRIBUTING.md for details.
Especially welcome:
- π Bug fixes (we've made plenty, we know)
- β¨ New features (make it better than PhpStorm, let's show them!)
- π Translations (Balkan languages first, obviously)
- π Documentation (in proper English, not our Balkan English)
- β Coffee donations (Bitcoin accepted, we're modern Slavs)
# Clone and build
git clone https://github.com/yourusername/php-sunshine.git
cd php-sunshine
cargo build
# Run tests
cargo test
# Run with debug logging
RUST_LOG=debug cargo run
# Format code
cargo fmt
# Run linter
cargo clippy- Startup: < 50ms
- Memory: < 10MB typical usage
- File Opening: Instant for files < 10MB
- Rendering: 60 FPS smooth scrolling
Built with:
- π¦ Rust - Memory safety & performance
- πΊ Ratatui - Terminal UI framework
- π Ropey - Efficient text buffer
- π Ignore - Gitignore support
- β‘ Tokio - Async runtime
MIT License - see LICENSE file
If you find PHP Sunshine useful, please β star the repo!
- π Issues: GitHub Issues
- π‘ Features: GitHub Discussions
- π§ Contact: Smoke signals work (we're in the Balkans)
- β PrestaShop 1.6 module with 15,000 lines in one file
- β
Laravel project with
dd()in production (client found it) - β Symfony config with more YAML than a Kubernetes deployment
- β PHP 5.3 code that "still works, don't touch it"
- β WordPress plugin disguised as a "simple modification"
- β "Quick fix" that became a 6-month project
- β Code commented in 3 languages, none of them English
If you've debugged any of these, you're one of us. Welcome home. π‘
- Lines of code written: 1,673
- Cups of coffee consumed: β
- "Why did I choose PHP?" moments: Daily
- Money saved from PhpStorm: β¬200/year
- Satisfaction from building it ourselves: Priceless
Built with β€οΈ, Rust, rakija, and pure Balkan stubbornness! π¦βοΈπ·πΈπ·π΄
"When JetBrains wants your money but you'd rather spend it on Δevapi and sarma."
"Fast, beautiful, and built for the frameworks you love (and the legacy code you're forced to maintain)."
Stop paying for IDEs. Start building them yourself.
PHP Sunshine: Because real Slavs don't pay subscriptions, they write Rust. πͺ
Made in Serbia π·πΈ and Romania π·π΄ with love, spite, and way too much caffeine.
P.S. - If this IDE saves you money, buy your babushka those slippers. She deserves it. π΅β€οΈ