PieApp Cronjobs & Pie.json support

Last updated on April 21st 2026

This release brings first-class cron job support and introduces pie.json for PieApps— pie.json is a simple config file that gives you full control over deployments and scheduled tasks directly from your repo.

✨ What’s New

📄 pie.json configuration

You can now add a pie.json file to your repository root to configure your app without using the dashboard.
PieApp reads this file at the start of every deployment.

{
  "type": "frontend",
  "subtype": "nextjs",
  "crons": [
    {
      "schedule": "* * * * *",
      "command": "/usr/bin/php /app/artisan schedule:run >> /dev/null 2>&1"
    }
  ]
}

 

Supported keys: type, subtype, crons: more coming soon.
See the Configuration docs for full details.

⏰ Cron jobs

Define scheduled tasks inside pie.json using the crons key.
Each cron includes a standard 5-part schedule and a shell command.

  • 🔢 Up to 100 cron jobs per app
  • ⚙️ Works across all app types (Laravel, WordPress, Node.js, custom PHP)
  • 🔄 Changes apply after the next deployment

Crons are installed in your container at build time and run automatically.

🤖 Automatic app detection

PieApp now detects your app’s runtime and framework on every deploy—now minimal manual setup is needed.

It checks files like artisan, composer.json, wp-config.php, and package.json.

Detection priority:

  1. pie.json (always overrides)
  2. Laravel → artisan + composer.json
  3. WordPress → wp-config.php
  4. JS frameworks → package.json (Next.js, React, Vue, etc.)
  5. Custom PHP → composer.json
  6. Fallback → Frontend

📊 Cronjobs dashboard tab

A new Cronjobs tab in the PieApp dashboard shows all active cron jobs from your deployed pie.json.

  • 👀 View all cron entries at a glance
  • 📭 No pie.json or empty crons = no entries shown

🚦 How to upgrade

No changes needed for existing apps.

To use cron jobs or override app detection:
👉 Add a pie.json to your repo and redeploy.

See the Cronjob documentation for more details.

Have a say in what happens next, join the discussions on Discord
Share this update