Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 21 additions & 10 deletions .github/workflows/update-readme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- restructure

permissions:
contents: write
Expand Down Expand Up @@ -85,13 +86,18 @@ jobs:

// Generate official starter kits list with sorting by installs
const officialKits = [];
for (const [name, repo] of Object.entries(templates.official)) {
const packageData = await getPackageData(repo);
for (const kit of templates.official) {
const packageData = await getPackageData(kit.package);
// Ensure installs is a number for proper sorting
const installs = packageData && packageData.package && packageData.package.downloads ?
parseInt(packageData.package.downloads.total, 10) : 0;
officialKits.push({ name, repo, installs });
console.log(`Added official kit: ${name}, installs: ${installs}`);
officialKits.push({
title: kit.title,
package: kit.package,
repo: kit.repo,
installs: installs
});
console.log(`Added official kit: ${kit.title}, package: ${kit.package}, repo: ${kit.repo}, installs: ${installs}`);
}

// Sort official kits by installs (descending)
Expand All @@ -101,18 +107,23 @@ jobs:
// Generate the formatted list
let officialList = '';
for (const kit of officialKits) {
officialList += `- [${kit.name}](https://github.com/${kit.repo}) - \`${kit.repo}\` - 💿 ${formatNumber(kit.installs)} installs\n`;
officialList += `- [${kit.title}](https://github.com/${kit.repo}) - \`${kit.package}\` - 💿 ${formatNumber(kit.installs)} installs\n`;
}

// Generate community starter kits list with sorting by installs
const communityKits = [];
for (const [name, repo] of Object.entries(templates.community)) {
const packageData = await getPackageData(repo);
for (const kit of templates.community) {
const packageData = await getPackageData(kit.package);
// Ensure installs is a number for proper sorting
const installs = packageData && packageData.package && packageData.package.downloads ?
parseInt(packageData.package.downloads.total, 10) : 0;
communityKits.push({ name, repo, installs });
console.log(`Added community kit: ${name}, installs: ${installs}`);
communityKits.push({
title: kit.title,
package: kit.package,
repo: kit.repo,
installs: installs
});
console.log(`Added community kit: ${kit.title}, package: ${kit.package}, repo: ${kit.repo}, installs: ${installs}`);
}

// Sort community kits by installs (descending)
Expand All @@ -122,7 +133,7 @@ jobs:
// Generate the formatted list
let communityList = '';
for (const kit of communityKits) {
communityList += `- [${kit.name}](https://github.com/${kit.repo}) - \`${kit.repo}\` - 💾 ${formatNumber(kit.installs)} installs\n`;
communityList += `- [${kit.title}](https://github.com/${kit.repo}) - \`${kit.package}\` - 💾 ${formatNumber(kit.installs)} installs\n`;
}

// Replace placeholders in README
Expand Down
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,19 @@ Using the [Laravel installer](https://laravel.com/docs/installation#installing-p
## Community Templates

- [Statamic](https://github.com/statamic/statamic) - `statamic/statamic` - 💾 133,328 installs
- [Genesis](https://github.com/devdojo/genesis) - `devdojo/genesis` - 💾 8,688 installs
- [Genesis](https://github.com/thedevdojo/genesis) - `devdojo/genesis` - 💾 8,688 installs
- [Filament Zeus starters](https://github.com/lara-zeus/zeus) - `lara-zeus/zeus` - 💾 762 installs
- [Cachet](https://github.com/cachethq/cachet) - `cachethq/cachet` - 💾 405 installs
- [Wave](https://github.com/devdojo/wave) - `devdojo/wave` - 💾 25 installs
- [TALL starters](https://github.com/mortenebak/tallstarter) - `mortenebak/tallstarter` - 💾 10 installs
- [Wave](https://github.com/thedevdojo/wave) - `devdojo/wave` - 💾 25 installs
- [TALL starter](https://github.com/mortenebak/tallstarter) - `mortenebak/tallstarter` - 💾 10 installs
- [Svelte](https://github.com/oseughu/svelte-starter-kit) - `oseughu/svelte-starter-kit` - 💾 4 installs
- [Livewire Starter](https://github.com/tnylea/livewire-starter) - `tnylea/livewire-starter` - 💾 2 installs
- [Larasonic Vue](https://github.com/shipfastlabs/larasonic-vue) - `shipfastlabs/larasonic-vue` - 💾 1 installs
- [Modern Vue Starter Kit](https://github.com/shipfastlabs/modern-vue-starter-kit) - `shipfastlabs/modern-vue-starter-kit` - 💾 1 installs
- [Filament](https://github.com/tnylea/filamentapp) - `tnylea/filamentapp` - 💾 0 installs
- [Larasonic React](https://github.com/shipfastlabs/larasonic-react) - `shipfastlabs/larasonic-react` - 💾 0 installs
- [Modern Livewire Starter Kit](https://github.com/shipfastlabs/modern-livewire-starter-kit) - `shipfastlabs/modern-livewire-starter-kit` - 💾 0 installs
- [Modern React Starter Kit](https://github.com/shipfastlabs/modern-react-starter-kit) - `shipfastlabs/modern-react-starter-kit` - 💾 0 installs

---

Expand Down
107 changes: 88 additions & 19 deletions templates.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,89 @@
{
"official": {
"React": "laravel/react-starter-kit",
"Vue": "laravel/vue-starter-kit",
"Livewire": "laravel/livewire-starter-kit"
},
"community": {
"Statamic": "statamic/statamic",
"Cachet": "cachethq/cachet",
"Svelte": "oseughu/svelte-starter-kit",
"Wave": "devdojo/wave",
"Genesis": "devdojo/genesis",
"Filament": "tnylea/filamentapp",
"Livewire Starter": "tnylea/livewire-starter",
"Larasonic React": "shipfastlabs/larasonic-react",
"Larasonic Vue": "shipfastlabs/larasonic-vue",
"TALL starters": "mortenebak/tallstarter",
"Filament Zeus starters": "lara-zeus/zeus"
}
}
"official": [{
"title": "React",
"package": "laravel/react-starter-kit",
"repo": "laravel/react-starter-kit"
},
{
"title": "Vue",
"package": "laravel/vue-starter-kit",
"repo": "laravel/vue-starter-kit"
},
{
"title": "Livewire",
"package": "laravel/livewire-starter-kit",
"repo": "laravel/livewire-starter-kit"
}
],
"community": [{
"title": "Statamic",
"package": "statamic/statamic",
"repo": "statamic/statamic"
},
{
"title": "Cachet",
"package": "cachethq/cachet",
"repo": "cachethq/cachet"
},
{
"title": "Svelte",
"package": "oseughu/svelte-starter-kit",
"repo": "oseughu/svelte-starter-kit"
},
{
"title": "Wave",
"package": "devdojo/wave",
"repo": "thedevdojo/wave"
},
{
"title": "Genesis",
"package": "devdojo/genesis",
"repo": "thedevdojo/genesis"
},
{
"title": "Filament",
"package": "tnylea/filamentapp",
"repo": "tnylea/filamentapp"
},
{
"title": "Livewire Starter",
"package": "tnylea/livewire-starter",
"repo": "tnylea/livewire-starter"
},
{
"title": "Larasonic React",
"package": "shipfastlabs/larasonic-react",
"repo": "shipfastlabs/larasonic-react"
},
{
"title": "Larasonic Vue",
"package": "shipfastlabs/larasonic-vue",
"repo": "shipfastlabs/larasonic-vue"
},
{
"title": "TALL starter",
"package": "mortenebak/tallstarter",
"repo": "mortenebak/tallstarter"
},
{
"title": "Filament Zeus starters",
"package": "lara-zeus/zeus",
"repo": "lara-zeus/zeus"
},
{
"title": "Modern Livewire Starter Kit",
"package": "shipfastlabs/modern-livewire-starter-kit",
"repo": "shipfastlabs/modern-livewire-starter-kit"
},
{
"title": "Modern Vue Starter Kit",
"package": "shipfastlabs/modern-vue-starter-kit",
"repo": "shipfastlabs/modern-vue-starter-kit"
},
{
"title": "Modern React Starter Kit",
"package": "shipfastlabs/modern-react-starter-kit",
"repo": "shipfastlabs/modern-react-starter-kit"
}
]
}