diff --git a/app/Console/Commands/NotifyDemo.php b/app/Console/Commands/NotifyDemo.php
new file mode 100644
index 000000000..1d5906bd0
--- /dev/null
+++ b/app/Console/Commands/NotifyDemo.php
@@ -0,0 +1,75 @@
+argument('channel');
+
+        if (blank($channel)) {
+            $this->showHelp();
+            return;
+        }
+
+        ray($channel);
+    }
+
+    private function showHelp()
+    {
+        style('coolify')->color('#9333EA');
+        style('title-box')->apply('mt-1 px-2 py-1 bg-coolify');
+
+        render(<<<'HTML'
+        
+            
+                Coolify
+            
+            
+              Demo Notify => Send a demo notification to a given channel.
+            
+            
+              php artisan app:demo-notify {channel}
+            
+            
+                
 Channels: 
+                
+                    - email
 
+                    - slack
 
+                    - discord
 
+                    - telegram
 
+                
+            
+        
 
+        HTML);
+
+        ask(<<<'HTML'
+        
+            In which manner you wish a coolified notification?
+        
+        HTML, ['email', 'slack', 'discord', 'telegram']);
+    }
+}
diff --git a/app/Http/Livewire/Notifications/DiscordSettings.php b/app/Http/Livewire/Notifications/DiscordSettings.php
new file mode 100644
index 000000000..fe689d4b2
--- /dev/null
+++ b/app/Http/Livewire/Notifications/DiscordSettings.php
@@ -0,0 +1,43 @@
+ 'nullable|url',
+        'model.extra_attributes.discord_active' => 'nullable|boolean',
+    ];
+    protected $validationAttributes = [
+        'model.extra_attributes.discord_webhook' => 'Discord Webhook',
+    ];
+    public function mount($model)
+    {
+        //
+    }
+    public function submit()
+    {
+        $this->resetErrorBag();
+        $this->validate();
+        $this->model->save();
+        if ( is_a($this->model, Team::class)) {
+            session(['currentTeam' => $this->model]);
+        }
+    }
+    public function sentTestMessage()
+    {
+        Notification::send($this->model, new DemoNotification);
+    }
+    public function render()
+    {
+        return view('livewire.notifications.discord-settings');
+    }
+}
diff --git a/app/Http/Livewire/Notifications/EmailSettings.php b/app/Http/Livewire/Notifications/EmailSettings.php
new file mode 100644
index 000000000..caeeca2b8
--- /dev/null
+++ b/app/Http/Livewire/Notifications/EmailSettings.php
@@ -0,0 +1,53 @@
+ 'nullable|boolean',
+        'model.extra_attributes.recipients' => 'nullable',
+        'model.extra_attributes.smtp_host' => 'nullable',
+        'model.extra_attributes.smtp_port' => 'nullable',
+        'model.extra_attributes.smtp_encryption' => 'nullable',
+        'model.extra_attributes.smtp_username' => 'nullable',
+        'model.extra_attributes.smtp_password' => 'nullable',
+        'model.extra_attributes.smtp_timeout' => 'nullable',
+    ];
+    protected $validationAttributes = [
+        'model.extra_attributes.recipients' => 'Recipients',
+        'model.extra_attributes.smtp_host' => 'Host',
+        'model.extra_attributes.smtp_port' => 'Port',
+        'model.extra_attributes.smtp_encryption' => 'Encryption',
+        'model.extra_attributes.smtp_username' => 'Username',
+        'model.extra_attributes.smtp_password' => 'Password',
+        'model.extra_attributes.smtp_timeout' => 'Timeout',
+    ];
+    public function mount($model)
+    {
+        //
+    }
+    public function submit()
+    {
+        $this->resetErrorBag();
+        $this->validate();
+        $this->model->save();
+        if ( is_a($this->model, Team::class)) {
+            session(['currentTeam' => $this->model]);
+        }
+    }
+    public function sendTestNotification()
+    {
+
+    }
+    public function render()
+    {
+        return view('livewire.notifications.email-settings');
+    }
+}
diff --git a/app/Http/Livewire/Settings/DiscordNotifications.php b/app/Http/Livewire/Settings/DiscordNotifications.php
deleted file mode 100644
index 4227c2276..000000000
--- a/app/Http/Livewire/Settings/DiscordNotifications.php
+++ /dev/null
@@ -1,38 +0,0 @@
- 'nullable|url',
-    ];
-    protected $validationAttributes = [
-        'settings.extra_attributes.discord_webhook' => 'Discord Webhook',
-    ];
-    public function mount($settings)
-    {
-        //
-    }
-    public function submit()
-    {
-        $this->resetErrorBag();
-        $this->validate();
-        $this->settings->save();
-    }
-    public function sentTestMessage()
-    {
-        Notification::send(auth()->user(), new TestMessage);
-    }
-    public function render()
-    {
-        return view('livewire.settings.discord-notifications');
-    }
-}
diff --git a/app/Http/Livewire/Settings/EmailNotifications.php b/app/Http/Livewire/Settings/EmailNotifications.php
deleted file mode 100644
index b1bca81c8..000000000
--- a/app/Http/Livewire/Settings/EmailNotifications.php
+++ /dev/null
@@ -1,49 +0,0 @@
- 'nullable',
-        'settings.extra_attributes.smtp_port' => 'nullable',
-        'settings.extra_attributes.smtp_encryption' => 'nullable',
-        'settings.extra_attributes.smtp_username' => 'nullable',
-        'settings.extra_attributes.smtp_password' => 'nullable',
-        'settings.extra_attributes.smtp_timeout' => 'nullable',
-    ];
-    protected $validationAttributes = [
-        'settings.extra_attributes.smtp_host' => 'Host',
-        'settings.extra_attributes.smtp_port' => 'Port',
-        'settings.extra_attributes.smtp_encryption' => 'Encryption',
-        'settings.extra_attributes.smtp_username' => 'Username',
-        'settings.extra_attributes.smtp_password' => 'Password',
-        'settings.extra_attributes.smtp_timeout' => 'Timeout',
-    ];
-    public function mount($settings)
-    {
-        ray($settings);
-        //
-    }
-    public function submit()
-    {
-        $this->resetErrorBag();
-        $this->validate();
-        $this->settings->save();
-    }
-    public function sentTestMessage()
-    {
-
-    }
-    public function render()
-    {
-        return view('livewire.settings.email-notifications');
-    }
-}
diff --git a/app/Mail/ExampleMail.php b/app/Mail/ExampleMail.php
deleted file mode 100644
index 0167b26e1..000000000
--- a/app/Mail/ExampleMail.php
+++ /dev/null
@@ -1,53 +0,0 @@
-
-     */
-    public function attachments(): array
-    {
-        return [];
-    }
-}
diff --git a/app/Models/InstanceSettings.php b/app/Models/InstanceSettings.php
index 445d07477..c2394a008 100644
--- a/app/Models/InstanceSettings.php
+++ b/app/Models/InstanceSettings.php
@@ -2,21 +2,10 @@
 
 namespace App\Models;
 
-use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Model;
-use Spatie\SchemalessAttributes\Casts\SchemalessAttributes;
 
 class InstanceSettings extends Model
 {
-    public $casts = [
-        'extra_attributes' => SchemalessAttributes::class,
-    ];
-
-    public function scopeWithExtraAttributes(): Builder
-    {
-        return $this->extra_attributes->modelScope();
-    }
-
     public static function get()
     {
         return InstanceSettings::findOrFail(0);
diff --git a/app/Models/Team.php b/app/Models/Team.php
index aaadcbb5a..fd5a0f06e 100644
--- a/app/Models/Team.php
+++ b/app/Models/Team.php
@@ -2,28 +2,59 @@
 
 namespace App\Models;
 
-class Team extends BaseModel
+use App\Notifications\Channels\SendsCoolifyEmail;
+use App\Notifications\Channels\SendsDiscord;
+use Illuminate\Database\Eloquent\Builder;
+use Illuminate\Notifications\Notifiable;
+use Spatie\SchemalessAttributes\Casts\SchemalessAttributes;
+
+class Team extends BaseModel implements SendsDiscord, SendsCoolifyEmail
 {
+    use Notifiable;
+
     protected $casts = [
+        'extra_attributes' => SchemalessAttributes::class,
         'personal_team' => 'boolean',
     ];
     protected $fillable = [
         'id',
         'name',
-        'personal_team'
+        'personal_team',
+        'extra_attributes',
     ];
+
+    public function routeNotificationForDiscord()
+    {
+        return $this->extra_attributes->get('discord_webhook');
+    }
+
+    public function routeNotificationForCoolifyEmail()
+    {
+        $recipients = $this->extra_attributes->get('recipients', '');
+
+        return explode(PHP_EOL, $recipients);
+    }
+
+    public function scopeWithExtraAttributes(): Builder
+    {
+        return $this->extra_attributes->modelScope();
+    }
+
     public function projects()
     {
         return $this->hasMany(Project::class);
     }
+
     public function servers()
     {
         return $this->hasMany(Server::class);
     }
+
     public function applications()
     {
         return $this->hasManyThrough(Application::class, Project::class);
     }
+
     public function privateKeys()
     {
         return $this->hasMany(PrivateKey::class);
diff --git a/app/Notifications/Channels/CoolifyEmailChannel.php b/app/Notifications/Channels/CoolifyEmailChannel.php
new file mode 100644
index 000000000..a32b58381
--- /dev/null
+++ b/app/Notifications/Channels/CoolifyEmailChannel.php
@@ -0,0 +1,41 @@
+bootConfigs($notifiable);
+        $bcc = $notifiable->routeNotificationForCoolifyEmail();
+        $mailMessage = $notification->toMail($notifiable);
+
+        Mail::send([], [], fn(Message $message) => $message
+            ->from('ask@me.com', 'My Coolify Instance')
+            ->bcc($bcc)
+            ->subject($mailMessage->subject)
+            ->html((string) $mailMessage->render())
+        );
+    }
+
+    private function bootConfigs($notifiable): void
+    {
+        config()->set('mail.mailers.smtp', [
+            "transport" => "smtp",
+            "host" => $notifiable->extra_attributes?->get('smtp_host'),
+            "port" => $notifiable->extra_attributes?->get('smtp_port'),
+            "encryption" => $notifiable->extra_attributes?->get('smtp_encryption'),
+            "username" => $notifiable->extra_attributes?->get('smtp_username'),
+            "password" => $notifiable->extra_attributes?->get('smtp_password'),
+            "timeout" => $notifiable->extra_attributes?->get('smtp_timeout'),
+            "local_domain" => null,
+        ]);
+    }
+}
diff --git a/app/Notifications/Channels/DiscordChannel.php b/app/Notifications/Channels/DiscordChannel.php
index 77709ec0b..06c8c0130 100644
--- a/app/Notifications/Channels/DiscordChannel.php
+++ b/app/Notifications/Channels/DiscordChannel.php
@@ -3,7 +3,6 @@
 namespace App\Notifications\Channels;
 
 use App\Jobs\SendMessageToDiscordJob;
-use App\Models\InstanceSettings;
 use Illuminate\Notifications\Notification;
 
 class DiscordChannel
@@ -11,14 +10,11 @@ class DiscordChannel
     /**
      * Send the given notification.
      */
-    public function send(object $notifiable, Notification $notification): void
+    public function send(SendsDiscord $notifiable, Notification $notification): void
     {
         $message = $notification->toDiscord($notifiable);
 
-        $webhookUrl = data_get(
-            InstanceSettings::get(),
-            'extra_attributes.discord_webhook'
-        );
+        $webhookUrl = $notifiable->routeNotificationForDiscord();
 
         dispatch(new SendMessageToDiscordJob($message, $webhookUrl));
     }
diff --git a/app/Notifications/Channels/SendsCoolifyEmail.php b/app/Notifications/Channels/SendsCoolifyEmail.php
new file mode 100644
index 000000000..e1698a1fe
--- /dev/null
+++ b/app/Notifications/Channels/SendsCoolifyEmail.php
@@ -0,0 +1,8 @@
+extra_attributes?->get('smtp_active') && $channels[] = CoolifyEmailChannel::class;
+        $notifiable->extra_attributes?->get('discord_active') && $channels[] = DiscordChannel::class;
+        return $channels;
     }
 
     /**
@@ -35,33 +39,16 @@ class TestMessage extends Notification
      */
     public function toMail(object $notifiable): MailMessage
     {
-        $smtp = [
-            "transport" => "smtp",
-            "host" => "mailpit",
-            "port" => 1025,
-            "encryption" => 'tls',
-            "username" => null,
-            "password" => null,
-            "timeout" => null,
-            "local_domain" => null,
-        ];
-        config()->set('mail.mailers.smtp', $smtp);
-
-        \Illuminate\Support\Facades\Mail::mailer('smtp')
-            ->to('ask@me.com')
-            ->send(new \App\Mail\ExampleMail);
-
-
-
         return (new MailMessage)
+                    ->subject('Coolify demo notification')
                     ->line('Welcome to Coolify!')
+                    ->error()
                     ->action('Go to dashboard', url('/'))
                     ->line('We need your attention for disk usage.');
     }
 
     public function toDiscord(object $notifiable): string
     {
-        ray('1111');
         return 'Welcome to Coolify! We need your attention for disk usage. [Go to dashboard]('.url('/').')';
     }
 
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 3129c24ce..be599237a 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -3,13 +3,11 @@
 namespace App\Providers;
 
 use App\Jobs\CoolifyTask;
-use Illuminate\Mail\MailManager;
 use Illuminate\Queue\Events\JobProcessed;
 use Illuminate\Support\Facades\Process;
 use Illuminate\Support\Facades\Queue;
 use Illuminate\Support\ServiceProvider;
 use Illuminate\Support\Str;
-use Symfony\Component\Mailer\Transport\Smtp\SmtpTransport;
 
 class AppServiceProvider extends ServiceProvider
 {
@@ -28,10 +26,6 @@ class AppServiceProvider extends ServiceProvider
      */
     public function boot(): void
     {
-        if (! $this->app->environment('production')) {
-            \Illuminate\Support\Facades\Mail::alwaysTo('noone@example.com');
-        }
-
         Queue::after(function (JobProcessed $event) {
             // @TODO: Remove `coolify-builder` container after the remoteProcess job is finishged and remoteProcess->type == `deployment`.
             if ($event->job->resolveName() === CoolifyTask::class) {
diff --git a/database/migrations/2023_03_20_112811_create_teams_table.php b/database/migrations/2023_03_20_112811_create_teams_table.php
index 77e7b840f..4396c8db7 100644
--- a/database/migrations/2023_03_20_112811_create_teams_table.php
+++ b/database/migrations/2023_03_20_112811_create_teams_table.php
@@ -16,6 +16,7 @@ return new class extends Migration
             $table->string('uuid')->unique();
             $table->string('name');
             $table->boolean('personal_team')->default(false);
+            $table->schemalessAttributes('extra_attributes');
             $table->timestamps();
         });
     }
diff --git a/database/migrations/2023_03_20_112813_create_instance_settings_table.php b/database/migrations/2023_03_20_112813_create_instance_settings_table.php
index 2d1826d30..a09288e21 100644
--- a/database/migrations/2023_03_20_112813_create_instance_settings_table.php
+++ b/database/migrations/2023_03_20_112813_create_instance_settings_table.php
@@ -20,16 +20,11 @@ return new class extends Migration
             $table->integer('public_port_min')->default(9000);
             $table->integer('public_port_max')->default(9100);
             // $table->string('custom_dns_servers')->default('1.1.1.1,8.8.8.8');
-
             $table->boolean('do_not_track')->default(false);
-
             $table->boolean('is_auto_update_enabled')->default(true);
             // $table->boolean('is_dns_check_enabled')->default(true);
             $table->boolean('is_registration_enabled')->default(true);
             $table->boolean('is_https_forced')->default(true);
-
-            $table->schemalessAttributes('extra_attributes');
-
             $table->timestamps();
         });
     }
diff --git a/resources/views/livewire/notifications/discord-settings.blade.php b/resources/views/livewire/notifications/discord-settings.blade.php
new file mode 100644
index 000000000..730293f2d
--- /dev/null
+++ b/resources/views/livewire/notifications/discord-settings.blade.php
@@ -0,0 +1,23 @@
+
diff --git a/resources/views/livewire/notifications/email-settings.blade.php b/resources/views/livewire/notifications/email-settings.blade.php
new file mode 100644
index 000000000..a87b10abb
--- /dev/null
+++ b/resources/views/livewire/notifications/email-settings.blade.php
@@ -0,0 +1,43 @@
+
diff --git a/resources/views/livewire/settings/discord-notifications.blade.php b/resources/views/livewire/settings/discord-notifications.blade.php
deleted file mode 100644
index d13e26e27..000000000
--- a/resources/views/livewire/settings/discord-notifications.blade.php
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/resources/views/livewire/settings/email-notifications.blade.php b/resources/views/livewire/settings/email-notifications.blade.php
deleted file mode 100644
index 4f3af4156..000000000
--- a/resources/views/livewire/settings/email-notifications.blade.php
+++ /dev/null
@@ -1,27 +0,0 @@
-
diff --git a/resources/views/settings.blade.php b/resources/views/settings.blade.php
index dbd8588f1..847b84673 100644
--- a/resources/views/settings.blade.php
+++ b/resources/views/settings.blade.php
@@ -4,11 +4,4 @@
     General
     
 
-    
-
-    Notifications
-    
-    
-
-    
 
diff --git a/resources/views/team.blade.php b/resources/views/team.blade.php
index 135c131d8..0cc1cf511 100644
--- a/resources/views/team.blade.php
+++ b/resources/views/team.blade.php
@@ -3,6 +3,10 @@
         Current Team
         Name: {{ session('currentTeam.name') }}
         
-
+        
+        Notifications
+        
+        
+        
     
 
diff --git a/routes/console.php b/routes/console.php
index 2de1715be..e05f4c9a1 100644
--- a/routes/console.php
+++ b/routes/console.php
@@ -1,9 +1,7 @@
  "smtp",
-        "host" => "mailpit",
-        "port" => 1025,
-        "encryption" => 'tls',
-        "username" => null,
-        "password" => null,
-        "timeout" => null,
-        "local_domain" => null,
-    ];
-    config()->set('mail.mailers.smtp', $smtp);
-
-    // For testing custom SMTP Mailer
-    \Illuminate\Support\Facades\Mail::mailer('smtp')
-        ->to('ask@me.com')
-        ->send(new \App\Mail\ExampleMail);
-
-    // For sending a notification
-//    \Illuminate\Support\Facades\Notification::send(
-//        \App\Models\User::find(1),
-//        new \App\Notifications\TestMessage
-//    );
-
+    $this->comment(Inspiring::quote());
 })->purpose('Display an inspiring quote');