Plugin Review: Ultimate Dashboard

Ok, folks- I’m pretty jazzed about a new plugin that I came across just this afternoon that I really think could change the game for #DoOO SPLOT/Site Template Builders and WordPress Multisite Administrators. My research for something like this began from an email I received from Coventry University asking about the extent that we could generate “getting started” language within new sub-sites of a WordPress Multisite. Coventry Admins were looking for ways in which they could guide beginner users, encourage them to build an “About Me” page as part of a larger Portfolio, and simply offer additional resources as users begin to settle into their new site.

The plugin I found is called Ultimate Dashboard and, as the title suggests, it allows you to customize and simplify your WordPress dashboard. There’s a free and a pro version, and quite a bit can be done with the free version. Check it out:

What I first see when installing WordPress-

What I see after playing with Ultimate Dashboard for a few minutes-

^ To Summarize the above, I was able to:

  • Remove the “Screen Options” and “Help” tabs from top right
  • Add a StateU Support admin page to the left dashboard menu bar and order it in the list
  • Completely remove existing WP Dashboard widgets
  • Create my own WP Dashboard widgets and order them
  • Alter the footer language

I’ll explain the steps I took below, but I was shocked with how simple and intuitive it was. Also, its pretty cool that you’re able to do so much with the free version alone.


How to Remove “Screen Options” and “Help” Tabs

Go to Ultimate Dashboard > Settings and check Remove Help Tab and Remove Screen Options Tab. Done. (On this page I also have the option to rename the Dashboard to something else, but I decided to keep it the same since any and all WordPress documentation will refer to it as a Dashboard.


Add a StateU Support admin page

Go to Ultimate Dashboard > Admin Pages and click Add New. Next you can begin adding in your content like any other WordPress post or page. I’m able to embed videos, add in images, headers, etc. I also set this as a Top Level Menu item, but it can be added as a submenu item to any parent menu item as well. Finally, I assigned it the #2 order so it would show up right underneath the Dashboard in the sidebar. I was able to customize the menu icon as well:


Removing Existing WordPress Dashboard Widgets

Go to Ultimate Dashboard > Settings and check All next to Remove All Widgets. The Pro version of this plugin allows you to easily remove third party plugin widgets (things like Elementor, Google Analytics, WooCommerce, etc) as well. However to work around this I quickly reenabled the ‘Screen Options’ tab, unchecked third party widgets there, and disabled the Screen Options tab again. Ha!


Creating my own Dashboard Widgets

Here’s where it really started getting fun. Ultimate Dashboard allows you to create three different types of Dashboard widgets with the free version: Text, Icon, and HTML. I tested all 3 and they’re beautiful!

Text Widget

Go to Ultimate Dashboard > Add New. Give your Widget a title, choose the Text Widget Type, add in your content and click Update. At the bottom you also have the option to set a fixed height, which may be recommended if you’ve got quite a bit of text.

Icon Widget

Go to Ultimate Dashboard > Add New. Give your Widget a title, choose the Icon Widget Type, and select the icon that you want to use. From there you can add in extra text that will fade in when you hover your mouse over the top right-hand question mark. The bottom field allows you to add a clickthrough URL for the widget. In this case I used a relative WordPress URL that points the user back to their individual ‘Add New Page’ section of the dashboard. (So cool!) Finally, click Update.

On my dashboard I also created another Icon Widget with an external link. So for example if you’ve got a class site or suite of resources that live outside of the WordPress instance that you want to point folks to, this works great.

HTML Widget

The final widget type works well if you quickly want to embed something without messing with formatting. Go to Ultimate Dashboard > Add New. Give your Widget a title, choose the HTML Widget Type, and paste in your HTML code:

The Pro version of this plugin has actual Video and Contact form widget types, but doing this through HTML is another great workaround.


Altering the footer language

Lastly, the Ultimate Dashboard plugin allows you to alter footer language in the dashboard from something like this:

…to this:

To do this, all you’ll need to do is go to Ultimate Dashboard > White Label and add in your own content to the Footer and Version Text fields.

The Pro version of the plugin way more customization options to allow you to brand the dashboard even further, which may be worth it for a large WordPress Multisite. But for admins that are looking to simplify the WordPress dashboard or offer guidance to new users in a Site Template, the free version may be all you need.


If anyone ends up using this plugin, please let me know! I’d be curious to see how you adopt it for your community.

Finding my footing in the Cloud

With the steady introduction and roll out of Reclaim Cloud, I’ve really just scraped the surface of the technical components and have spent more of my time focusing on how these new cloud offerings fit in with our existing suite of Reclaim Hosting products. There are quite a few differences between Reclaim Cloud and cPanel, but there are also some similarities, too. So while it may be helpful for some to ‘forget everything you thought you knew about hosting’ in order to get into this new Dockerized mindset, I find myself falling back on compare/contrast visuals and old gold hosting metaphors to make sense of it all. So for those of you who may be struggling to understand where Reclaim Cloud fits in, keep on reading!

Here’s a running list of the differences between cPanel and Jelastic PaaS (i.e. Reclaim Cloud) that have stuck out to me so far:

The other day the Sales team (i.e. Katie, Jim, and myself) had a brainstorming meeting discuss how we can talk about Reclaim Cloud has it relates to our other products. Aside from the obvious reasons it will be important to know the Cloud Hosting model inside and out, it will also be crucial to understand it in relation to what we currently offer and support. The fact that I can signup for a Shared Hosting cPanel account at Reclaim and install WordPress and Omeka, and then simultaneously head over to Reclaim Cloud and install the exact same applications will raise the question, “when would I use one over the other?” And by extension, “who is Reclaim Cloud for?”

I’m copying a piece of the Reclaim Cloud about page that has stuck with me:

The term “cloud” can get bandied about when it comes to the internet, but at its core Cloud Computing was inline with the vision that resources could scale seamlessly based on usage rather than some perceived notion of a high-water mark of usage. Like other utilities such as water, electricity, and gas, computing power would be a resource that you would pay for based on actual usage rather than projects. 

https://reclaim.cloud/about/

This got me thinking about the well-loved (or not-so-loved, lol) House metaphor. If we think of our web presence or website as our house, in which all rooms are a different page of your site, and your street address and directions to your house are essentially DNS records, the world of web hosting very quickly starts to take shape. For me, Reclaim Cloud now fits into this particular metaphor as a lightbulb, or more broadly, as my utilities. When I go to the store and buy a pack of lightbulbs, I do my research beforehand. I figure out which lightbulb is going to last the longest, which lightbulb is going to be the most energy-efficient, and which lightbulb is going to put out the best type of light based on my needs. I may even be willing to spend a little more money up front to make sure I check these boxes. Then when I come home, I don’t plan to install my lightbulbs, turn on all the lights, and then leave the house. I will turn these lights on and off as I walk into each room to conserve energy.

That is the main mindset shift between Reclaim Cloud and Shared cPanel Hosting. My current cPanel account has quite a few WP installs, some of which I use frequently and others I just spun up one day to test and then left there. In cPanel, there’s no additional cost to me to turn on all my lights and then leave the house. cPanel Shared Hosting is a fixed cost of 30 – 100 bucks a year, and I know that no matter what, that’s all I’ll owe at the end of the day. But if I’ve got a lot of big projects that require a lot of energy (i.e. resources), or if I want to play around with apps that aren’t compatible with cPanel’s infrastructure, I’ll begin to hit limits.

At Reclaim Cloud, I’m no longer confined to a single software stack. (In my last post I wrote in depth about creating new environments.) I can play around with almost any application out there, and I can temporarily turn them on and off as I see fit. Reclaim Cloud isn’t a fixed cost, but I’ll only pay for the exact resources that I use. This will keep me engaged with my web presence, constantly grooming it and evaluating what I’m using and what is a priority to me. And for big WordPress Multisite that’s sitting on a 32GB server simply due to the infrequent moments they have busy traffic day, Reclaim Cloud could be a cost saver since resources will automatically scale up and down with the traffic. This also means those pesky ‘Resource Limit Reached‘ errors in cPanel are no more!

I recently sat down with Tim and Jim to get their thoughts on all of this, and we ended up chatting for over an hour for Reclaim Today’s latest episode, 018: Cloud Q&A. Worth a listen if this conversation is of interest to you!

Reclaim Cloud: Setting up an Environment & Topology Wizard Overview

June’s Intentional Learning topic is Reclaim Cloud / Jelastic. This is my first time writing about Reclaim Cloud here so for those of you who don’t know what I’m talking about, Reclaim Cloud is a new service offered by Reclaim Hosting and scheduled to launch at the end of the summer. I’m completely new to cloud-native container-based hosting and there’s quite a bit to unpack in this new environment, so I plan to record some of my findings here. At times that may look like unorganized note-taking or word vomit, but I suppose its all in the name of #learning! My goal in all of this is to be able to translate and communicate the super powerful possibilities of Reclaim Cloud to a non-developer. (Hi, hello, former English major here.) And the first step to getting to that point is to fully understand it myself. I’m excited for you to join me on this journey, and in the meantime if you’re interested in learning more about Reclaim Cloud, I encourage you to read the following:

  1. Tim Owens, The Evolution of the Cloud
  2. Jim Groom, bava in the cloud with clusters

I was a little overwhelmed the first time I logged into the dashboard for Reclaim Cloud, so before really playing around with the available applications, I set out to make the dashboard feel less scary. This meant reading through documentation, creating test environments over and over again, and taking notes like I was back in college. But! The good news is I now feel like I have a solid (read: slightly better) grasp how navigate through Topology Wizard. Here’s some new language I’m now using:

Ordered from Smallest to Biggest
  • Cloudlet: Jelastic’s unit of measurement based on usage for pricing on an hourly basis; 128MB RAM & 400MHz CPU
    • Reserved Cloudlets: reserved in advance; always charged; can incur discounts when increased
    • Dynamic Cloudlets: your resource ‘ceiling’; only pay for what you use
  • Container (node): isolated virtualized instance; could be anything from an app server to a database to a load balancer; each container can be scaled vertically & horizontally
    • Vertical Scaling: paying only for the RAM & CPU that you use; your resources change dynamically according to your current demands.
    • Horizontal Scaling: automatically changes the # of containers within a layer based on incoming load; you can set custom conditions called “tunable triggers” for adding/removing containers as needed
  • Layer (node group): set of similar containers in a given environment; designed to perform different actions at once
  • Environment: interconnected container layers running application services; can be stopped, started, cloned, migrated, shared
  • Application: combination of environments for running a project. // note: a simple application will likely only need 1 environment to run properly.
  • Host: physical server or big virtual machines sliced into isolated containers
  • Environment Region: set of hosts orchestrated within a single isolated network; one type of hardware
  • Jelastic Platform: Group of environment regions where each one can be physically located in a different data center
Reclaim Cloud’s Topology Wizard

Ok, so there’s two main ways to ‘install’ or ‘set up’ a tool/application/etc. on Reclaim Cloud. The first is by using the one-click installers in the Marketplace (comparable to cPanel’s Installatron & pretty self-explanatory). The second is to create an environment manually using the Topology Wizard shown above. That’s what I’ve spent the majority of my time wrapping my head around so far.

The recommended order for setting up an environment:

  1. Choose Programming Language or Deployment Solution
  2. Configure Topology (layers structure)
  3. Configure Nodes resources & specific settings
  4. Review/Confirm/Create

1. Choosing Programming Language / Deployment Solution

From what I’ve gathered, choosing a programming language on Reclaim Cloud means to choose a Certified Container. These software stack versions are configured, updated and patched by Jelastic. Your options are Java, PHP, Ruby, Node.Js or Python.

The alternative option (i.e. the Docker tab) would be to choose a Jelastic System Container. This is the oldest container type; it is an operating system solution that behave like a standalone system, meaning it doesn’t require specialized software or custom images.

2. Configuring Topology

Configuring Topology comes next. You can choose from the following:

  • Load Balancers: stacks that operate as an entry point for the environment to distribute incoming requests and even the load across other containers
  • Application Servers: runs the application
  • Databases: database solutions to storage and manage data
  • Cache: caching system for speeding up applications by alleviating database load
  • Shared Storage: dedicated storage node
  • Elastic VPS: Virtual Private server on top of CentOS, Ubuntu or Debian
  • Build Node: a build automation tool for Java projects
  • Extra/Other: any of the tools mentioned above

Once that’s selected to preference, choose your method for SSL. You can 1) use the built-in SSL method; 2) upload your own SSL cert; 3) Install try Let’s Encrypt SSL Add-on afterwards in Marketplace.

3. Configuring Nodes Resources & Specifics

After setting topology structure, you can then adjust each particular layer by:

  1. toggling on/off
  2. configure vertical scaling (i.e. set reserved & dynamic cloudlets)
  3. configure horizontal scaling (i.e. define # of nodes within each layer; similar reserved/dynamic concept; choose scaling mode)
    • Stateful scaling mode- sub-sequential creation of new nodes; configuration settings are copied over from master container
    • Stateless scaling mode- simultaneous creation of nodes from the base image template
    • Stateless is faster because nodes are created at the same time, but configurations aren’t copied over. Therefore the stateful scaling mode is usually recommended. Also noticed that when you switch between different containers, the scaling mode changes by default. So unless you really know what you’re doing, I would think that the default mode is best.
  4. Configure additional settings (different options will show up depending on what programming language/ container you’ve selected. This might look like: Auto Clustering, Disk Limit, Restart Delay, High Availability, Public IPv4/IPv6
    • High Availability: due to DNS Round Robin load balancing across multiple data centers; configures 2 application clusters with the same content at different data centers so in case 1 data center goes offline, all incoming requests will be redirected to another region; binds multiple IPs to a single domain name
  5. Additional buttons for advanced configuration: variables, links, volumes, ports, command/entry point management

4. Reviewing and Confirming Environment Creation

After the configurations are done, you can review allocated resources and estimated costs for the environment you want to create. Reserved and Dynamic (or scaling limit) cloudlets are available for review.

As I begin to understand the environment wizard, I really begin to appreciate just how slick it is! I love that it color coordinates the reserved cloudlets based on the container they’re coming from. That was something I missed during my first glance.

You can also change the estimated cost from hourly to daily and monthly to get a estimated cost. So even if you hit your ceiling, you know exactly what to budget.

Final piece: create a subdomain name for your new environment and click ‘create’. Supposedly you can point and map Top Level Domains to the environment, but I’ll save that for another post once I figure it out. :)

Creating a Low Highlight behind Links

So this post came about because I was fidgeting with different WordPress themes and decided I wanted to set out and learn how to change the way my post links were appearing. I came across a theme that was highlighting the lower half of text and which looked kinda cool in my opinion. Here’s an example of it working on my personal site:

This quest led me to discover two new CSS functions: Linear Gradients and Transitions. I’m excited to now have these under my tool belt! I’ve never had any formal training for CSS, so this trial & error thing is how I’ve been learning. :)


Linear Gradients

Now I had previously known that using background-color would highlight the entire text, but that wasn’t what I was after. Apparently, if you want to cut the highlight in half, you have to use what’s called a linear-gradient. It works something like this:

linear-gradient(angle, color-stop, color-stop)

I had to do a little reading to wrap my head around the ‘color-stop’ idea, but I found this article helpful if you care to read further. But to break it down, the angle is referring to the angle of the color line. This could be horizontal (my scenario) but it can also be vertical, at a 45° angle, or simply not specified. The next two sections, color-stop, color-stop are basically what’s used to customize the color gradient. You can specify using either length or percentage, and in my case we’ll want to use the latter.

p a {
background: linear-gradient(180deg, rgba(255,255,255,0) 65%, #E6DFE4 65%);
}

So this is what I’m using. I only want these changes to effect the links (a) in the main paragraph text (p). The background of the links (i.e. the highlight) will be a 180° angle (i.e. horizontal). In the second portion, I’m specifying that a little over the top half of the links will be transparent, while the bottom half will be a nice shade of pink. I encourage you to play around with the percentages so you can get a sense for how they work. I could have done 50%-50%, but I wanted the highlight to fall a little below the halfway mark so you could still read the text.

Incorporating a Hover Action

This next piece is pretty simple. Now that I’ve got the links where I want them, I wanted the highlight to completely fill the text when I hover over the link with my mouse. Like so:

This was done by using the background-color property that I mentioned above. Here’s what I used:

p a:hover {
	background-color: #E6DFE4;
}

Easy peasy, right? It’s just basically removing the linear gradient and doing a full blown highlight when I hover over the link. The only issue that I noticed, and it’s super picky, but it highlighted too quickly. Lol, I wish I wasn’t serious, but this led to my next discovery…

Adding a Transition

In reading this guide, I learned that transition properties allow you to change values over a specified duration rather than having them occur immediately. Just what I was looking for. Transition properties take the following form:

transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay];

For me, this translates to the following:

transition: all 0.8s ease;

I’ve only got one transition, but I’m calling all transition properties to keep it simple. I want the effect to take place over 0.8s and I want it to happen with ease! You can choose from a handful of predefined transition-timing-funtions like ease-in or step-start and I’ll link to them here. Finally, I don’t want to delay the animation so I left the final transition-delay out.

Now when I hover over links with my mouse, it just sort of fades in to a full highlight. *chef’s kiss*

The Final Product

p a {
	text-decoration: none !important;
	background: linear-gradient(180deg, rgba(255,255,255,0) 65%, #E6DFE4 65%);
}

p a:hover {
	background-color: #E6DFE4;
	transition: all 0.8s ease;
}

^I added one last line to the top which is essentially removing any previous text-decoration defined by my theme. Check out the GIF below to view this in action:

Building Culture at Reclaim

I feel like I’ve had writer’s block for weeks now. I’ve been most productive with the monotonous tasks that I had been putting off for some time. Some days I work for hours without moving, while other days I can’t sit still for more than a couple of minutes. There’s no doubt that we all have been coping differently with an anxiety-inducing global pandemic, and I have been no exception. But as the states are slowly starting to introduce phases of reopening, I finally feel hopeful that we’ll return to some sense of normalcy soon enough. And with that feeling, I can sense the writer’s block beginning to lift. I’m getting back to a place where I can reflect on the work that I’m doing and where my thoughts have been since mid-March.

As things start to return to normal, there’s one thing (read: more than a one, but I’d like to keep this blog post short) in particular that I don’t want to forget about how I’ve shifted during this time:

I have been paying more attention to the people I am supporting instead of the tools they have questions about. This is a lesson that I catch myself relearning all the time, and it cannot be overstated no matter how much we may think it goes without saying. This simple shift makes me more understanding and caring in my general correspondence and meetings. It makes me more observant, which as a result helps me anticipate problems and fix them before they even occur. Basically, I just become a much better human being and others benefit from it. It can be very easy to get wrapped up in the technology that we’re using, but it will never hurt to take a step back, breathe, and show grace.

With that in mind, I’ve had a chance to think more broadly about the type of manager I want to be for others at Reclaim Hosting. Where can I tweak and adjust and improve internal workings, and where do I need to sit back and listen more? How can I make sure that I’m ‘visible’ while working remotely? Where should I be showing grace and understanding, and where can I be holding others accountable? These reflections are healthy at any point, though I’m especially stoked to have had more down time to think through this over the last few weeks. Next Tuesday, one of our Customer Support Specialists, Katie Hartraft, will be joining Reclaim Hosting full time as an Account and Support Specialist. Her dual role will be the first of its kind at Reclaim, though not unlike others in the way that she will be wearing many hats. Katie will continue to support the good people of Reclaim Hosting for part of her time by answering tickets, writing documentation, etc., but she’ll slowly move into the account management and sales side of Reclaim for the other half of her time. Katie has plenty of experience with Domain of One’s One as a recent UMW grad, and she’s been killing it at Reclaim this last semester. I’m excited to work closely with her during this next chapter of her career, which also just happens to be a big milestone for Reclaim – a new hire for sales. :)

A full team meeting sans Tim/Jim :)

And on that note: Another noticeable shift at Reclaim has taken shape in the ability for Jim and Tim to slowly back out of the day-to-day and let the ship steer itself. My goal for them is to fully step back and become the Idea Guys while the day-to-day work moves on without them. I do think we’ve been well on our way to meet this goal for a while now, but in the last few weeks in particular the shift has felt real and attainable for the first time. This is most certainly a testament to the well-oiled-machine-of-a-team we’ve got going for us right now. Meredith as Customer Support Manager has beautifully handled growing pains as we’re moving into one of our busiest support years to date. Gordon, an all around workhorse, has been kicking ass on support and currently holds the sought-after lead on number of solved support tickets since the beginning of the year. Chris, meanwhile, is provisioning entire Domain of One’s setups in about 30 minutes. He’s a scripting genius, I tell you, and is no doubt keeping our sh*t secure, efficient and consistent across the board.

Jim and I recently spoke about these culture shifts, amongst other things, in our recent chat on DS106 Radio. He blogged about it here, and I’m attaching the recording below if you want to give it a listen.


whew. take that, writer’s block!

Community Highlight: SUNY Oneonta’s Pandemic Diary Project

I had to stop what I was doing today to write this post. I had just been in touch with Ed Beck, Teaching, Learning & Technology Center (TLTC) Instructional Designer at SUNY Oneonta, about this coming contract term for their Domain of One’s Own instance. Ed shared a super cool project that has come to fruition over the last few months, and I am in awe. Before jumping into that, I wanted to quickly share a little bit about SUNY Oneonta’s Domain of One’s Own setup:

It is unique in that the server’s Single Sign On integration is actually managed at the state level so that all interested SUNY campuses can participate. Ed has been spearheading this project, SUNY Create, from SUNY Oneonta, and last year I held a workshop on their campus where educators from SUNY Geneseo and SUNY Oswego joined as well. We spent two days thinking about what this joint initiative will mean as a community, the ways in which campus admins would need to communicate through policies and support, how it could scale, and how admins might lean on each other along the way. They’ve been growing steadily over the last year, and I’m so excited to see how it builds.

Enter one of SUNY Oneonta’s latest projects: The Semester of Living Dangerously: A Pandemic Diary Project for Housebound Students, Faculty and Staff of SUNY Oneonta. As the title suggests, this is a pandemic diary project for the SUNY Oneonta community to share their stories, experiences, perspectives and reflections about living through the Coronavirus pandemic. The post contributions that I’ve read through are so genuine, raw, and descriptive.

Here is a small collection of favorites:

I’ll admit that I found myself getting a bit emotional reading through so many different posts. I recognized my internal struggles in some of this writing, while some voices shared experiences that hadn’t even occurred to me. This project does a beautiful job in making an isolated community (both inside and outside of Oneonta) feel just a little less alone and a little more understanding, courageous, and educated. I also love that the authors can stay anonymous if they choose.

In addition to the powerful content on the front end, Ed was kind enough to share how he brilliantly set up the backend. He began by pimping out a WordPress install with a miniOrange SAML 2.0 SSO plugin. While the free version of the SSO plugin doesn’t allow for a custom login page, Ed created a cool workaround by setting up a separate contribute button on the homepage. He reconstructed the SSO clickthrough URL to allow folks to authenticate with their campus Single Sign On and then be redirected back to a new post page in the WordPress dashboard. All logged in users are given a WordPress user account and granted a Contributor WordPress role. So. Good. (And very similar to some of the DoOO user role workflows!) I hope Ed writes more about this in the future blog post he’s promised me. :)

Ed is also using the free PublishPress Plugin to give users more editing power (i.e. uploading images). The Better Notifications for WP plugin has allowed Ed to customize the types of emails that are being sent out to users when they first register, create a post, and have their post approved. He also added the SMTP Plugin for WordPress, which makes the emails look like their coming from a @oneonta.edu address as opposed to a @wordpress.com address, which keeps the emails out of spam folders. Finally, Ed has the User Switching plugin running which allows WP admins to switch into the dashboard of a contributor and see what the end user sees (– another similarity to the DoOO dashboard, and super helpful for troubleshooting).

The collaborative efforts from the SUNY Oneonta History Department, Milne Library, and the TLTC are so inspiring. The archive of stories they have built will undoubtedly become only more invaluable with time. At the time of writing this, the Pandemic Diaries site has just over 100 entries from Oneonta students, faculty and staff.

Filtering Alias Email Notifications into Slack

Ok, today I set out to revamp Sales team notifications for our reseller registrars. I’ll be documenting as I go, but will first share a little back story:

We have some Domain of One’s Own schools that register Top Level domains for all of their users, so keeping those domains separate from shared hosting and consolidated in their own reseller registrar account is crucial. But as you could imagine, we’ve got a handful of these reseller accounts to monitor, and all of these accounts have their own thresholds for funds. It’s important that we keep a solid buffer of funds in each account so X number of domain renewals and registrations can be handled on a given day.

Coming back to the notifications. Our registrar, Logicboxes, will send out email notifications when funds reach a certain threshold within each reseller account. Which sounds simple enough, right? I wish! Unfortunately the email address for these notifications is also the standard billing email address, so changing it to a personal email isn’t really possible. And to make matters worse, the email address is LOUD. So loud, in fact, that we avoid checking the inbox all together and have instead resorted to manually checking reseller account funds daily.

This works fine, but I don’t like it. Manually checking makes way for human error (who is checking what? where’s the communication around the work? what if someone forgets?) and it’s definitely not scalable if we bring in new employees or take on additional reseller accounts.

I should also mention that each reseller account has their own custom email address (school@reclaimhosting.com) which acts as an alias for our catch-all email address, info@reclaimhosting.com.

My idea here was to create a sales@reclaimhosting.com email account and begin routing some of these sales-related emails out of the catch-all info@reclaimhosting.com account and into their own inbox. (I’ve wanted to do this anyway for a while now.) From there, I want to filter/forward useful notifications (like the funds threshold notice) into our designated #sales slack channel. I don’t expect doing this will eliminate the desire to manually check on reseller accounts, but I’m hoping that it will create a failsafe and centralized space to talk about the work that’s happening.


Creating a Sales Email & Setting up Alias Accounts

Reclaim Hosting runs mail though GSuite, so I started first by creating a new email account for sales@reclaimhosting.com. I had to remove the original sales@ alias first.

Next, I moved over all school@reclaimhosting.com aliases that were originally sitting on info@reclaimhosting.com. GSuite has a guide here if you’re interested.

Before doing anything else, I tested to make sure the aliases were working properly by sending an email from my personal email to school@reclaimhosting.com. It worked pretty immediately:


Setting up the Email App with Slack

Before connecting any email to Slack, I needed to first figure out what the ‘low funds in reseller account’ email notification looked like. To essentially generate the notification, I checked on the funds we had our reseller accounts, and then changed the threshold settings to a dollar less than that.

While waiting on those notifications to come through, I set up the forwarding email address in Slack. Using this guide, I went with the option to “Connect the Email app to your Workspace” because I wanted to have the option to choose which emails were being sent; I didn’t want to route the entire inbox into Slack.

Next, I chose the #sales channel since that’s where I want the notifications to arrive:

I went through integration settings, taking note of the custom email address that slack generated for me. That’s what I’ll use when filtering/forwarding specific ‘low funds’ emails.

After saving my settings, I tested the integration in Slack by sending a test email from my personal inbox to the custom address that the Slack Email App gave me:

The notification showed up beautifully in the #sales channel! By the way, I love that Slack allows you to upload a favicon and really customize how the notification comes in.

Defining Email Filters

The final piece was obviously to make sure that the proper notifications were being filtered into Slack. I didn’t want every email from sales@reclaimhosting.com coming into our #sales channel, just the ‘low funds’ notification. First, I set up my email forwarder in Gmail under Settings > Forwarding and POP/IMAP:

In this step you’ll have to confirm the forwarder email address with a confirmation code, but that wasn’t a problem since I previously tested the connection and the code came directly into Slack. From there I made sure the forwarder was disabled for the time being.

Next, I set up my filter rules in Gmail using this guide. By now I had received the ‘Low Funds’ notification from Logicboxes based on my new threshold settings so I was able to click filter messages like this next to the email:

I added in my simple filter settings (the Logicboxes email is actually coming from support@reclaimhosting.com) and clicked Create Filter:

On the following window, I gave it a quick Label, selected my forwarding address from the dropdown field, and then clicked Create Filter:

^I created a filter like this for each “school@reclaimhosting.com” email address.

The next ‘Low Funds’ notification came directly in the #sales Slack channel as planned. Woo!

Screenshot Scenes

Scenes from the last few weekswhich in some ways have felt like a blur, and in other ways have been great quality time.

Dual monitor setup to watch Tim share ds106.tv for the first time!

Playing Quiplash with some Reclaim peeps to keep our minds off the news.

Recording an extended presentation for #OER20 :: Session available here!

Participating in #OER20– a brilliant event put on remotely by the lovely ALT folks + my DS106radio tab which has been open frequently these days. :)

KaraOERoke with the #OER20 crew… and a live stream on ds106.tv to boot.

Wrapping up March (i.e. our WordPress month) and jumping into April– the month of migrations!

Tips on Working from Home

With news about Coronavirus updating seemingly by the hour (I feel like we’ve been living in a movie these last few weeks), a lot of schools/businesses/organizations/etc. have resorted to sending employees home to work remotely. Reclaim Hosting included. I feel incredibly lucky that my job has been remote for quite a while now so this shift has not felt as huge for me. On the other hand, I’ve received calls from friends and family asking me for recommendations on online collaborative and video chat tools, and there’s even been a shift in my email inbox as higher-ed staff are pulled into supporting their communities from afar.

While the Reclaim Hosting team is no stranger to online collaborative work as a distributed company, just this morning Meredith, Jim and I were discussing how difficult it can be to simply shift to the #remotelife. Working from home is great for the first few days. You can take advantage of working from your bed, enjoy your 10 second ‘commute’ to your laptop, work from your pajamas and snack all day long. But before you know it, your work life starts to blend with your home life, you haven’t showered in 3 days, you’re in a weird, semi-exhausted, mental funk and your home is no longer your place of Zen. (LOL. Can you tell I’ve been here once or twice…?)

I’ve developed little habits in my daily routine over time that have helped me stay focused and productive, healthy, and organized. I thought I’d share some of these small tips for the Reclaim team and anyone else who is suddenly faced with working from home.

Get dressed for the day.

Believe it or not, there’s such a thing as dressing comfortably while also feeling professional. If there’s one thing that makes me feel ready to conquer the day, it’s getting out of my pajamas and actually getting ready for it. That, and coffee.

Have a clean workspace (outside of your bedroom).

Clear desk = clear mind, people. If you don’t use it regularly then move it out of sight. Give yourself some elbow room. And as tempting as it may seem, do not work from your bed. In fact, leave your bedroom altogether. Keep work and sleep separate.

Stand up.

This may sound silly, but taking time to stand and stretch is easy to forget when you’re not in an office and talking to coworkers. When working from home, my goal is to stand once an hour, at least. Go get a glass of water, stand up when you take phone calls, and take a walk while you’re eating your lunch! (There are even apps out there that will send you regular reminders to move.)

Double the screens, double the fun.

If you can pimp out your desk setup with a second monitor, it will change your life.

Find your ‘off’ switch.

When working from home, “leaving work” becomes a bit more complicated than simply leaving the office. Even though there are set hours in which I’m required to work, I used to find myself checking email, working on projects, and innocently “checking in” way into the evening and/or night. Not that finishing tasks or having an ambitious work ethic is a bad thing, but it’s good to turn work off after a certain point to have a bit of balance. Flipping the ‘off’ switch allows you to clear your head so you can rejoin your projects the next day with a fresh perspective. When you’re on the job, be on; when you’re off, be off.

Other helpful tips:

– Open the windows – let in natural light
– Get yourself some blue light-filtering glasses if you stare at screens all day
– Don’t snack. Stick with designated meal times
– At the end of your work day, make a list of the things that you want to tackle the following day. Get it on paper and out of your mind so you can officially check out.
– Name your distractions and limit them (i.e. social media, household chores, etc.)
– Drink water. All. Day. Long.

Custom Page Templates in WordPress

In an effort to start unpacking all things WordPress, I decided to start first with understanding how a few basic WP dashboard tools are working on the backend. Today I’m looking at Page Templates.

Now it’s one thing to troubleshoot the WordPress file system in little spurts as tickets present themselves, and another thing entirely to build out your own page template. So while this may seem like basic knowledge to some, is was quite empowering for me!

For this post and likely others, I’m playing with a WordPress install at https://labrumfield.com/custom/. The theme I’m using is called Aileron. (This is a completely random choice, but I did like that it was pretty simple in terms of overall design– I was looking for a blank slate to work with.)

You can use FTP or File Manager for this one. I’ll work in File Manager since this is pretty simple! I started first by navigating to the wp-content folder of my WordPress install, and then going further into my theme folder at themes>aileron.

The first thing I did was create a new file in the theme folder called laurenstemplate.php. I know very little about php, but I do know that every file needs a title. I added the following to my new file:

<?php /* Template Name: Lauren's Template */ ?>

After clicking save, I went back to my WordPress dashboard, created a new Page, and selected Lauren’s Template from the dropdown that now magically existed under Page attributes:

Now the live version of my new page looked like this:

…which makes sense, right? Because my laurenstemplate.php file is completely empty.

I didn’t want to recreate the wheel when adding content, and I know that WordPress is already looking to a template for pages called page.php, so I started by cloning that to my new file.

As shown in the gif above, you’ll want to copy the full page.php content, aside from the top title/description into your new template.php file. Make sure to remove you ?> from your top php opener if you need to, and then click save! Now when I reload my WordPress page using Lauren’s Template, this is what I see:

Woo! Now we’ve have something to work with. (Feel free to stop reading here if you don’t care about design changes for this specific theme.) But let’s say I want to remove the sidebar and center the page content. There’s a section in my code that’s calling the sidebar right here:

By simply removing the highlighted line the sidebar goes away, but the content is still pushed to the left. I’ve added some text (and an awesome gif that inspired our Roadshow) to the page to see the changes a little more clearly:

Upon inspecting the page further (I used right-click>Inspect Element in Google Chrome) I noticed that the content area of my site was pulling in columns, which also explained why simple CSS to make the site width set to 100% wasn’t changing anything:

In the code that I copied over to laurenstemplate.php, this is what I saw next to my content-area class:

I removed the aileron_layout_class so my code looked like this:

After clicking save, those changes to the template are now applied: