About Tabzero

Tabzero is a free extension for the Google Chrome web browser created by Alexander Griffioen. It overrides the default ‘new tab’ page with an application designed to keep you informed and productive.

Background

The year was 2005 and as a rookie web developer, I marveled at the possibilities of Windows XP's Active Desktop feature. Active Desktop, for you millennials out there, allowed Windows users to set any web page as their desktop wallpaper while maintaining its interactivity. It seemed like the perfect excuse for a pet project and so I set out to create a productivy widget designed to run as a wallpaper. The widget was an integrated to-do list and notepad, and I named it Wallnote.

With the demise of Active Desktop in Windows Vista, I pivoted the tool into a web service to be set as your default start page. I added a search bar similar to the one found in Tabzero today, along with some features for exporting your content. I also renamed it to Nutshell, for no good reason. The tool served roughly 4,000 users when I decided to sunset it in 2014 due to donations consistently falling short of expenses.

But I missed it.

Early 2019, in a new effort to explore some fancy web technologies*, I decided to reincarnate Nutshell as a Chrome extension that would replace Chrome’s standard new tab page. It is Nutshell reimagined, using the latest technologies. I also added RSS feeds so it’s impossible to miss the news you care about.

I hope you find Tabzero useful. If you do, please consider a donation to keep the lights on. Feedback and questions are welcome at alex.griffioen@gmail.com.

* For the techies out there: The Tabzero Chrome extension is powered by Vue.js. This website, as well as the RSS aggregation, are running on the Laravel PHP framework.

Whoops! There was an error.
ErrorException (E_WARNING)
file_put_contents(/home/c1342w3/domains/tabzero.co/tabzero/storage/framework/sessions/LZzSeae0wxGCaJ6n4qYZUT3ZgeN9dI0KKrRT1jcn): failed to open stream: Disk quota exceeded ErrorException thrown with message "file_put_contents(/home/c1342w3/domains/tabzero.co/tabzero/storage/framework/sessions/LZzSeae0wxGCaJ6n4qYZUT3ZgeN9dI0KKrRT1jcn): failed to open stream: Disk quota exceeded" Stacktrace: #7 ErrorException in /home/c1342w3/domains/tabzero.co/tabzero/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #6 file_put_contents in /home/c1342w3/domains/tabzero.co/tabzero/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 #5 Illuminate\Filesystem\Filesystem:put in /home/c1342w3/domains/tabzero.co/tabzero/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php:83 #4 Illuminate\Session\FileSessionHandler:write in /home/c1342w3/domains/tabzero.co/tabzero/vendor/laravel/framework/src/Illuminate/Session/Store.php:129 #3 Illuminate\Session\Store:save in /home/c1342w3/domains/tabzero.co/tabzero/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:87 #2 Illuminate\Session\Middleware\StartSession:terminate in /home/c1342w3/domains/tabzero.co/tabzero/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:218 #1 Illuminate\Foundation\Http\Kernel:terminateMiddleware in /home/c1342w3/domains/tabzero.co/tabzero/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189 #0 Illuminate\Foundation\Http\Kernel:terminate in /home/c1342w3/domains/tabzero.co/tabzero/public/index.php:60
7
ErrorException
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
6
file_put_contents
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
122
5
Illuminate
\
Filesystem
\
Filesystem
put
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
83
4
Illuminate
\
Session
\
FileSessionHandler
write
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
129
3
Illuminate
\
Session
\
Store
save
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
87
2
Illuminate
\
Session
\
Middleware
\
StartSession
terminate
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
218
1
Illuminate
\
Foundation
\
Http
\
Kernel
terminateMiddleware
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
189
0
Illuminate
\
Foundation
\
Http
\
Kernel
terminate
/
public
/
index.php
60
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Write the contents of a file, replacing it atomically if it already exists.
     *
     * @param  string  $path
     * @param  string  $content
     * @return void
     */
    public function replace($path, $content)
    {
        // If the path already exists and is a symlink, get the real path...
        clearstatcache(true, $path);
 
        $path = realpath($path) ?: $path;
 
        $tempPath = tempnam(dirname($path), basename($path));
 
        // Fix permissions of tempPath because `tempnam()` creates it with permissions set to 0600...
        chmod($tempPath, 0777 - umask());
Arguments
  1. "file_put_contents(/home/c1342w3/domains/tabzero.co/tabzero/storage/framework/sessions/LZzSeae0wxGCaJ6n4qYZUT3ZgeN9dI0KKrRT1jcn): failed to open stream: Disk quota exceeded"
    
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Filesystem
/
Filesystem.php
     *
     * @param  string  $path
     * @return string
     */
    public function hash($path)
    {
        return md5_file($path);
    }
 
    /**
     * Write the contents of a file.
     *
     * @param  string  $path
     * @param  string  $contents
     * @param  bool  $lock
     * @return int
     */
    public function put($path, $contents, $lock = false)
    {
        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);
    }
 
    /**
     * Write the contents of a file, replacing it atomically if it already exists.
     *
     * @param  string  $path
     * @param  string  $content
     * @return void
     */
    public function replace($path, $content)
    {
        // If the path already exists and is a symlink, get the real path...
        clearstatcache(true, $path);
 
        $path = realpath($path) ?: $path;
 
        $tempPath = tempnam(dirname($path), basename($path));
 
        // Fix permissions of tempPath because `tempnam()` creates it with permissions set to 0600...
        chmod($tempPath, 0777 - umask());
Arguments
  1. "/home/c1342w3/domains/tabzero.co/tabzero/storage/framework/sessions/LZzSeae0wxGCaJ6n4qYZUT3ZgeN9dI0KKrRT1jcn"
    
  2. "a:3:{s:6:"_token";s:40:"t0QqqYuZl4R1gEPA0j4YQjdXWOF90wIoURVVI2S4";s:9:"_previous";a:1:{s:3:"url";s:24:"https://tabzero.co/about";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. 2
    
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
FileSessionHandler.php
    /**
     * {@inheritdoc}
     */
    public function read($sessionId)
    {
        if ($this->files->isFile($path = $this->path.'/'.$sessionId)) {
            if ($this->files->lastModified($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) {
                return $this->files->sharedGet($path);
            }
        }
 
        return '';
    }
 
    /**
     * {@inheritdoc}
     */
    public function write($sessionId, $data)
    {
        $this->files->put($this->path.'/'.$sessionId, $data, true);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function destroy($sessionId)
    {
        $this->files->delete($this->path.'/'.$sessionId);
 
        return true;
    }
 
    /**
     * {@inheritdoc}
     */
    public function gc($lifetime)
    {
        $files = Finder::create()
Arguments
  1. "/home/c1342w3/domains/tabzero.co/tabzero/storage/framework/sessions/LZzSeae0wxGCaJ6n4qYZUT3ZgeN9dI0KKrRT1jcn"
    
  2. "a:3:{s:6:"_token";s:40:"t0QqqYuZl4R1gEPA0j4YQjdXWOF90wIoURVVI2S4";s:9:"_previous";a:1:{s:3:"url";s:24:"https://tabzero.co/about";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
  3. true
    
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Store.php
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForUnserialize($data)
    {
        return $data;
    }
 
    /**
     * Save the session data to storage.
     *
     * @return bool
     */
    public function save()
    {
        $this->ageFlashData();
 
        $this->handler->write($this->getId(), $this->prepareForStorage(
            serialize($this->attributes)
        ));
 
        $this->started = false;
    }
 
    /**
     * Prepare the serialized session data for storage.
     *
     * @param  string  $data
     * @return string
     */
    protected function prepareForStorage($data)
    {
        return $data;
    }
 
    /**
     * Age the flash data for the session.
     *
     * @return void
Arguments
  1. "LZzSeae0wxGCaJ6n4qYZUT3ZgeN9dI0KKrRT1jcn"
    
  2. "a:3:{s:6:"_token";s:40:"t0QqqYuZl4R1gEPA0j4YQjdXWOF90wIoURVVI2S4";s:9:"_previous";a:1:{s:3:"url";s:24:"https://tabzero.co/about";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}"
    
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Session
/
Middleware
/
StartSession.php
        if ($this->sessionConfigured()) {
            $this->storeCurrentUrl($request, $session);
 
            $this->addCookieToResponse($response, $session);
        }
 
        return $response;
    }
 
    /**
     * Perform any final actions for the request lifecycle.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Symfony\Component\HttpFoundation\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        if ($this->sessionHandled && $this->sessionConfigured() && ! $this->usingCookieSessions()) {
            $this->manager->driver()->save();
        }
    }
 
    /**
     * Start the session for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Contracts\Session\Session
     */
    protected function startSession(Request $request)
    {
        return tap($this->getSession($request), function ($session) use ($request) {
            $session->setRequestOnHandler($request);
 
            $session->start();
        });
    }
 
    /**
     * Get the session implementation from the manager.
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
                continue;
            }
 
            [$name] = $this->parseMiddleware($middleware);
 
            $instance = $this->app->make($name);
 
            if (method_exists($instance, 'terminate')) {
                $instance->terminate($request, $response);
            }
        }
    }
 
    /**
     * Gather the route middleware for the given request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    protected function gatherRouteMiddleware($request)
    {
        if ($route = $request->route()) {
            return $this->router->gatherRouteMiddleware($route);
        }
 
        return [];
    }
 
    /**
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …6}
      #routeResolver: Closure() { …5}
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/about"
      #requestUri: "/about"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Http
/
Kernel.php
     */
    protected function dispatchToRouter()
    {
        return function ($request) {
            $this->app->instance('request', $request);
 
            return $this->router->dispatch($request);
        };
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    public function terminate($request, $response)
    {
        $this->terminateMiddleware($request, $response);
 
        $this->app->terminate();
    }
 
    /**
     * Call the terminate method on any terminable middleware.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Illuminate\Http\Response  $response
     * @return void
     */
    protected function terminateMiddleware($request, $response)
    {
        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(
            $this->gatherRouteMiddleware($request),
            $this->middleware
        );
 
        foreach ($middlewares as $middleware) {
            if (! is_string($middleware)) {
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …6}
      #routeResolver: Closure() { …5}
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/about"
      #requestUri: "/about"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    
/
home
/
c1342w3
/
domains
/
tabzero.co
/
tabzero
/
public
/
index.php
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
 
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
 
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);
 
$response->send();
 
$kernel->terminate($request, $response);
 
Arguments
  1. Request {
      #json: null
      #convertedFiles: null
      #userResolver: Closure($guard = null) { …6}
      #routeResolver: Closure() { …5}
      +attributes: ParameterBag {}
      +request: ParameterBag {#1}
      +query: ParameterBag {#1}
      +server: ServerBag {}
      +files: FileBag {}
      +cookies: ParameterBag {}
      +headers: HeaderBag {}
      #content: null
      #languages: null
      #charsets: null
      #encodings: null
      #acceptableContentTypes: array:4 [
        0 => "text/html"
        1 => "application/xhtml+xml"
        2 => "application/xml"
        3 => "*/*"
      ]
      #pathInfo: "/about"
      #requestUri: "/about"
      #baseUrl: ""
      #basePath: null
      #method: "GET"
      #format: null
      #session: Store {}
      #locale: null
      #defaultLocale: "en"
      -isHostValid: true
      -isForwardedValid: true
      basePath: ""
      format: "html"
    }
    
  2. Response {}
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
PHP_FCGI_CHILDREN
"0"
PATH
"/sbin:/usr/sbin:/bin:/usr/bin"
PWD
"/usr/local/safe-bin"
SHLVL
"0"
PHP_FCGI_MAX_REQUESTS
"0"
SCRIPT_NAME
"/index.php"
REQUEST_URI
"/about"
QUERY_STRING
""
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.1"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_URL
"/about"
REMOTE_PORT
"39698"
SCRIPT_FILENAME
"/home/c1342w3/domains/tabzero.co/private_html/index.php"
SERVER_ADMIN
"webmaster@tabzero.co"
CONTEXT_DOCUMENT_ROOT
"/home/c1342w3/domains/tabzero.co/private_html"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"https"
DOCUMENT_ROOT
"/home/c1342w3/domains/tabzero.co/private_html"
REMOTE_ADDR
"34.204.173.36"
SERVER_PORT
"443"
SERVER_ADDR
"89.188.29.44"
SERVER_NAME
"tabzero.co"
SERVER_SOFTWARE
"Apache/2"
SERVER_SIGNATURE
""
HTTP_ACCEPT_ENCODING
"gzip"
HTTP_CONNECTION
"close"
HTTP_HOST
"tabzero.co"
HTTP_IF_MODIFIED_SINCE
"Thu, 17 Oct 2019 04:50:30 EEST"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
SSL_TLS_SNI
"tabzero.co"
HTTPS
"on"
UNIQUE_ID
"XdbL-56jMz5PPoqLRwNqWAAAABw"
REDIRECT_STATUS
"200"
REDIRECT_SSL_TLS_SNI
"tabzero.co"
REDIRECT_HTTPS
"on"
REDIRECT_UNIQUE_ID
"XdbL-56jMz5PPoqLRwNqWAAAABw"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1574358015.3166
REQUEST_TIME
1574358015
APP_NAME
"Tabzero"
APP_ENV
"local"
APP_KEY
"base64:tL5iDAJ30ZywS0VrJjLM2iiSEa4bqpYmmBaqIfHuKUQ="
APP_DEBUG
"true"
APP_URL
"https://tabzero.co"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"localhost"
DB_PORT
"3306"
DB_DATABASE
"c1342w3_tabzero"
DB_USERNAME
"c1342w3_user"
DB_PASSWORD
"sh@mr0ck1981"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.mailtrap.io"
MAIL_PORT
"2525"
MAIL_USERNAME
"null"
MAIL_PASSWORD
"null"
MAIL_ENCRYPTION
"null"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
Key Value
PHP_FCGI_CHILDREN
"0"
PATH
"/sbin:/usr/sbin:/bin:/usr/bin"
PWD
"/usr/local/safe-bin"
SHLVL
"0"
PHP_FCGI_MAX_REQUESTS
"0"
SCRIPT_NAME
"/index.php"
REQUEST_URI
"/about"
QUERY_STRING
""
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.1"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_URL
"/about"
REMOTE_PORT
"39698"
SCRIPT_FILENAME
"/home/c1342w3/domains/tabzero.co/private_html/index.php"
SERVER_ADMIN
"webmaster@tabzero.co"
CONTEXT_DOCUMENT_ROOT
"/home/c1342w3/domains/tabzero.co/private_html"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"https"
DOCUMENT_ROOT
"/home/c1342w3/domains/tabzero.co/private_html"
REMOTE_ADDR
"34.204.173.36"
SERVER_PORT
"443"
SERVER_ADDR
"89.188.29.44"
SERVER_NAME
"tabzero.co"
SERVER_SOFTWARE
"Apache/2"
SERVER_SIGNATURE
""
HTTP_ACCEPT_ENCODING
"gzip"
HTTP_CONNECTION
"close"
HTTP_HOST
"tabzero.co"
HTTP_IF_MODIFIED_SINCE
"Thu, 17 Oct 2019 04:50:30 EEST"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
SSL_TLS_SNI
"tabzero.co"
HTTPS
"on"
UNIQUE_ID
"XdbL-56jMz5PPoqLRwNqWAAAABw"
REDIRECT_STATUS
"200"
REDIRECT_SSL_TLS_SNI
"tabzero.co"
REDIRECT_HTTPS
"on"
REDIRECT_UNIQUE_ID
"XdbL-56jMz5PPoqLRwNqWAAAABw"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1574358015.3166
REQUEST_TIME
1574358015
APP_NAME
"Tabzero"
APP_ENV
"local"
APP_KEY
"base64:tL5iDAJ30ZywS0VrJjLM2iiSEa4bqpYmmBaqIfHuKUQ="
APP_DEBUG
"true"
APP_URL
"https://tabzero.co"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"localhost"
DB_PORT
"3306"
DB_DATABASE
"c1342w3_tabzero"
DB_USERNAME
"c1342w3_user"
DB_PASSWORD
"sh@mr0ck1981"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.mailtrap.io"
MAIL_PORT
"2525"
MAIL_USERNAME
"null"
MAIL_PASSWORD
"null"
MAIL_ENCRYPTION
"null"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
0. Whoops\Handler\PrettyPageHandler