A collection of developer utilities built with Laravel. No database required, works on shared hosting.
- CSV Converter - Convert CSV to JSON, SQL INSERT statements, or PHP arrays
- YAML/JSON Converter - Bidirectional conversion between YAML and JSON
- Markdown Preview - Live preview with HTML export
- SQL Formatter - Format and beautify SQL queries
- Base64 Encoder/Decoder - Text and file encoding/decoding
- Dark/light theme toggle
- Mobile responsive design
- Copy-to-clipboard on all outputs
- No database required
- CDN-based assets (no build step)
- Shared hosting compatible
- PHP 8.1 or higher
- Composer
- Apache with mod_rewrite (or nginx)
# Clone the repository
git clone <repo-url> dev-tools
cd dev-tools
# Install dependencies
composer install
# Copy environment file
cp .env.example .env
# Generate application key
php artisan key:generate
# Start development server
php artisan serveVisit http://localhost:8000 in your browser.
If your host allows setting the document root (recommended):
- Upload all files to your hosting account (e.g.,
/home/user/dev-tools/) - Set document root to
/home/user/dev-tools/public - Run the deployment script:
cd /home/user/dev-tools bash deploy.sh - Update
.envwith your domain
If you cannot change document root:
- Upload all files to
public_html(orwww) - The root
.htaccesswill redirect to thepublicfolder - Run deployment:
cd ~/public_html bash deploy.sh
To install in a subdirectory (e.g., yourdomain.com/tools):
- Create subdirectory:
mkdir ~/public_html/tools - Upload all files to
~/public_html/tools/ - Run deployment script
- Update
.env:APP_URL=https://yourdomain.com/tools
If you can't run bash scripts:
- Upload all files via FTP/SFTP
- Create
.envfrom.env.example - Generate app key using an online tool or locally
- Create these directories with 775 permissions:
storage/app/publicstorage/framework/cache/datastorage/framework/sessionsstorage/framework/viewsstorage/logsbootstrap/cache
Key settings in .env:
APP_NAME="Dev Tools"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com
# File-based storage (no database)
SESSION_DRIVER=file
CACHE_STORE=file
QUEUE_CONNECTION=syncFor production, run:
php artisan config:cache
php artisan route:cache
php artisan view:cacheTo clear caches:
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clearAll API endpoints accept POST requests with JSON body.
| Endpoint | Description |
|---|---|
POST /api/v1/csv/convert |
Convert CSV to JSON/SQL/PHP |
POST /api/v1/yaml/convert |
Convert YAML to JSON or vice versa |
POST /api/v1/markdown/convert |
Convert Markdown to HTML |
POST /api/v1/sql/format |
Format or compress SQL |
POST /api/v1/base64/encode |
Encode text to Base64 |
POST /api/v1/base64/decode |
Decode Base64 to text |
POST /api/v1/base64/encode-file |
Encode file to Base64 (multipart) |
- Check file permissions:
storageandbootstrap/cacheneed 775 - Verify
.envexists and has valid APP_KEY - Check PHP error logs
- Enable debug mode temporarily:
APP_DEBUG=true - Check
storage/logs/laravel.log
Add Accept: application/json header to requests.
Ensure Apache has:
<Directory /path/to/public>
AllowOverride All
</Directory>Ghabri Djalel - GitHub
MIT License