Building Page.ly Part5: Growing forward
This is the fifth and final installment of a mulitpart part series where we aim to share with you some of the technical aspects of what powers the Managed WordPress Hosting system we developed here at page.ly, how we started, the recent server improvements and a bit on the things to come. [Part 1] [Part 2] [Part 3] [Part 4]
Out with the old
So we have deployed a new server stack and continue to tune it for optimal performance and scalability. What’s left to do you ask?
Our business dashboard, has performed it’s duties well all these years but it is time to be retired. This handy little system I coded in Code Igniter (as is 99% of page.ly) and has pretty much allowed us to perform nearly any task needed without ever hitting the command line. We can pull up accounts, orders, domains and DNS. Manage affiliates, resellers, and track our growth.
Here is a sample page from the current dashboard we are retiring. Just a note, the CC number is only the last 4 digits and pulled from Authorize.net with an API call, we never sit on this data.
It ain’t pretty but it does the job. We’ll show you what we are replacing it with a few pixels down.
From a system management and app deployment angle the current setup works, but is slow, and error prone in it’s old age. It worked exceptionally well when managing 500 domains, and adding 2-3 a day. It is really straining when managing thousands of domains and adding 10-20 a day.
A new backend
Remember up thru page.ly v2 we were utilizing the Plesk SOAP API to manage vhost deployments on specific web nodes, and then with page.ly v3 we bashed together some scripts to replace Plesk. Those are temporary fixes as we have some very exciting things in the works.
The whole deployment and management system is due for a rewrite, so that is exactly what we are doing. This rewrite includes:
- Reseller management (deployment and management of accounts on behalf of resellers)
- Account management (account ownership, logins, external services)
- Domain management (DNS, aliases, swapping)
- Billing system (order intake, invoicing, payment handling, receipts, notifications)
- DNS management (already at Dynect)
- Domain registration
- App provisioning system (installing new apps, file system, database)
- Reporting/logging (nagois, munin, puppet)
- Affiliate management
- Infrastructure management (auto scaling, auto cloning, config management)
- Product management (plans, packages, upgrades, custom items)
- Support Integration (tying zendesk into our dashboard)
- and everything else…
As you can see there is much more that goes into a functional and successful WordPress Hosting business then just installing the WordPress app.
We are happy to say we are about 60% through the rewrite of all page.ly systems as I write this post, and we are aiming for a Feb20th launch date. The entire system is built upon a Code Igniter powered REST API.
One API to rule them all.
Okay so it is actually more than one. We took the philosophy of making everything in page.ly a RESTful service. So we have a API specifically for the installer and server/system processes, and another for account/user related functions, and another specifically for job queuing, etc. This approach allows us to:
- Decouple code
- Maintain narrowly defined unit tests
- Craft lightweight REST client apps and GUI’s
- Document it and make it accessible to partners.
Partners will gain deeper and more meaningful integration with page.ly
We are pretty excited about this. We do a few things exceptionally well, deploy and manage WordPress. We dont do themes, or plugins, or marketing, or SEO. People that do those things may also want to include hosting as an offering but really don’t want to mess with the technical stuff.
By exposing many of our core provisioning and account management API endpoints to authorized partners they can easily add page.ly managed hosting to their checkout process, on their site. Additionally more developer savvy partners may ping the API to generate reports and lists of their current customers, manage aspects of those customers, and manage their integration points into page.ly such as defining which themes, plugins, or content is pre-installed on their new customer sites. All these things can also be done via our new Brains GUI we’ll show you below if the partner is less then code savvy.
This API is also the underpinnings of a entirely new page.ly service we are working on for Q2.
The new Brains
So that old clunky dashboard is being retired and the backend behind it as well. We wanted a new GUI that was light, responsive, and worked well with our new API service methodology. Enter Bootstrap by Twitter. Our Code Igniter client apps serve up the data and Bootstrap makes it easy to interact with.
What’s ahead for us
Through Q1 of 2012 we’ll be focusing on continued refinements and improvements to the system architecture we deployed with page.ly v3 and deploying the new API and Brains of page.ly v4. Come Q2 and through the summer we will be expanding our offerings with new products and packages aimed at various markets yet staying close to our core competency of managed Software-as-a-Service.
While we have you...Learn More
Did you know Pagely has a number of managed solutions to help big brands scale WordPress?
By the time this goes to press I will likely be a new first-time father. What a trip this journey has been. From failed concept in 2006, to a second go in 2009, to insane growth and success in 2010, to server madness in 2011, to a bright future for our bootstrapped company and parenthood in 2012.
Why are we bootstapping page.ly?
In 2010 we had some dialog with a much larger and well know hosting company that wanted to acquire page.ly. In 2011 the same thing again with another company. Also in 2011 we flirted with the idea of raising funds. In all cases we came back to the same conclusion: We like what we do, we like doing it our way, and we like doing it on our terms. We have a vision of the type of company page.ly will grow-up to be. That vision does not include maximizing profit with gimmicks at the expense of customers to appease a board or make our earn-out. That vision does not include a ‘win at all costs’ mindset that pushes integrity and professionalism aside.
Our vision is to be the best at what we do, provide a real service, and treat our customers and employees as we would wish to be treated, with fairness and honesty. These values are compatible with a healthy profit, not exclusionary to it. Could we achieve this with outside capital, sure. Are we going to waste time trying to convince a VC to play along, probably not. Someday perhaps. I am not anti VC, but I am anti getting into bed with someone that may not share our set of values.
I hope you enjoyed and got some value out of this series of posts. We tried not to get too technical or bore you with all the business details of our story. We look forward to what’s next and are immensely proud of what we have done this far. And finally we hope you will consider joining us on our journey and give Page.ly a try for your WordPress hosting needs. Cheers.