Get php-ext.com v2 running in under 5 minutes!
git clone <your-repo-url> php-ext-com
cd php-ext-com
bun installbun run devOpen http://localhost:5173 - you'll see sample data with 10 extensions.
# Initialize git (if not already)
git init
git add .
git commit -m "Initial commit"
# Push to GitHub
git remote add origin <your-github-repo>
git push -u origin mainEnable GitHub Pages in repository settings → Pages → Source: "GitHub Actions"
Done! Your site will be live at https://yourusername.github.io/repo-name/
Option 1: Environment Variable (one-time)
VITE_DATASET_URL=https://api.example.com/manifest.json bun run devOption 2: GitHub Variable (persistent)
- Go to Settings → Secrets and variables → Actions → Variables
- Add
DATASET_URL=https://api.example.com/manifest.json - Push to trigger deployment
Just copy the URL! Filters are in query parameters:
https://site.com/?channel=stable&platform=linux&pv=alpine3.19&arch=x86_64
Edit public/sample-data/snapshots/latest.json and add extensions:
{
"name": "your-extension",
"availability": [
{
"channel": "stable",
"platform": "linux",
"platform_version": "alpine3.19",
"arch": "x86_64",
"php_versions": ["8.1", "8.2", "8.3"],
"available": true
}
]
}Your external dataset needs two files:
manifest.json
{
"latest": "snapshots/latest.json",
"snapshots": [...]
}snapshots/latest.json
{
"timestamp": "2024-01-01T00:00:00Z",
"extensions": [
{
"name": "extension-name",
"availability": [...]
}
]
}See public/sample-data/ for complete examples.
Located in vite.config.ts. Key settings:
base: '/'- Change for non-root deployments- Build optimization already configured
- Code splitting enabled
Strict mode enabled. See tsconfig.json.
ESLint configured with React rules. Run:
bun run lint- Shows all extensions × PHP versions
- Green = available, Gray = not available
- Click cell for details
- Virtualized for performance (handles 200+ extensions)
- Search: Type extension name
- Channel: stable, edge, etc.
- Platform: linux, etc.
- Platform Version: alpine3.19, debian12, etc.
- Architecture: x86_64, aarch64, etc.
- Click extension name: Full extension details
- Click cell: Availability details for that PHP version
Port 5173 already in use
lsof -ti:5173 | xargs kill -9
bun run devBuild fails
rm -rf dist
bun run buildData not loading
- Check browser console for errors
- Verify dataset URL is accessible
- Check CORS headers if using external URL
- README.md - Full documentation
- DEVELOPMENT.md - Architecture & development
- DEPLOYMENT.md - Deployment details
Edit CSS variables in src/index.css:
:root {
--primary: #4f46e5; /* Change to your brand color */
--success: #10b981; /* Available cell color */
}bun run dev -- --port 3000Edit index.html:
<title>Your Custom Title</title>- Performance: Site handles 200+ extensions smoothly thanks to virtualization
- Sharing: URLs include filter state - just copy and share
- Updates: Dataset updates automatically on page reload
- Mobile: Fully responsive design
- No Backend: Everything runs client-side
- Set correct
VITE_DATASET_URL - Test with real dataset
- Verify all filters work
- Test on mobile devices
- Check page load time
- Verify GitHub Pages deployment
- Set up custom domain (optional)
Need help? Check the detailed guides in README.md and DEVELOPMENT.md!