TL;DR: I'm not the person who should be in charge of this project, can anyone take over?

simplytest.me might be the best thing I have or will ever develop in my live. It was warmly accepted by the Drupal community which even allowed me to visit the US for the first time for DrupalCon Portland. Honestly, thanks, I really learned and grew a lot being part of this community.

But it's become pretty obvious that I really shouldn't be maintaining this project anymore. After no longer actively working with Drupal for years because the company switched to nodejs.. After several failed attempts to relaunch the project.. After starting other projects and getting interested in other technologies.. I just don't see how I can give this the time it deserves.

So instead of keeping the project in this state of minimal maintenance forever in the hopes "I might find the time some time" ... I decided to share my thoughts about the current state of the project.

I think the Drupal community deserves a better services than it is now.

But as far as I can see there's no real alternative to it yet though? Even though I've lost interest.. I still don't want to shut everything down if it's still useful to many people.. I'd like to have some sort of smooth transition for the users.

Maybe someone decides that their resolution for the new year is to take over responsibility of a free online service that is still being used by hundreds of people even in their daily work?

Maybe someone even wants to try making a fair business out of it that still allows launching sandboxes for free but offers more flexibility for a price?

Thoughts?

About the project

The current simplytest.me's code is completely open source on drupal.org but, as it was easier to handle this way, was always developed with only having simplytest.me itself in mind – ease of setup wasn't really a focus of the project.

The 7.x-1.x is the currently used release on the simplytest.me website.

The 8.x-2.x branch was my first try on porting it to D8, it was started back when Drupal 8 wasn't stable yet, so it's likely outdated.

The 8.x-3.x branch was started not so long ago with the help of yanniboi on github. I was hoping yanniboi would be able to take care of the hardest "drupal stuff" while I can concentrate on getting the new backend, which was supposed to be spawn.sh. Due to time constraints neither did happen. It was deployed as preview version on new.simplytest.me

. Note that the spawn.sh code has not been published so far as there were major scalability issues that I was not able to resolve.

The 7.x-1.x branch contains the simplytest installation profile with modules and the theme. It also contains the shellscripts that need to be deployed on a worker server. As mentioned, the setup instructions have not been maintained well over the years and setting up a worker server has become quite a pain. For that reason I started running the complete worker server within a LXD container that can be more easily duplicated and deployed.

The simplytest.me profile deals with launching sandboxes and tracks their status. It also keeps track of existing projects and versions on drupal.org, mostly through either the available JSON API (d.o project node) or simple HTML scraping (d.o cgit). When a person launches a sandbox the website creates an SSH connection to the worker server and executes the shellscript which builds the sandbox site. Looking back, doing this with SSH and Shellscripts seems really stupid now that I work on nodejs based REST APIs every day.

The build shellscripts check out the selected version (tag/branch) from git (a local git cache is used for speeding things up) and then tries to figure out the dependency based on the .info files (drupal core version, php version). Drupal core is fetched, makefiles are executed and composer dependencies are installed. After that some fancy shellscript magic figures out all the module dependencies and downloads them through git too. Finally drupal core is installed and the project that should be tested is enabled. A script is injected via php.ini that adds the little "you got so much time left" banner at the bottom of the sandbox.

The webserver is based on apache with php-cgi and su-exec which allows some basic separation between the sandboxes (it's a classic multi-site apache2 setup from the old days). Each sandbox is a vhost which are created, enabled and disabled as needed by the build scripts. The reason why not a more modern approach such as containers and VMs was used is simply that during the time simplytest.me was created there was no solution available that would have allowed simplytest.me to be free with the cost that such separated instances would come with.

I've always paid a lot of attention to writing readable and well (inline)documented code. While it's hard to set the project up, the maintenance itself has been quite easy. I'm honestly quite impressed how well it has been running with minimal maintenance so far. If you are interested and need help with the existing code base I'm absolutely willing to help to answer any questions about it as good as I'm still able too. Even if you'd want to reimplement everything from scratch, I think there are a lot of learnings that can be taken from simplytest.me's 7.x code.

Infrastructure

To run a basic simplytest.me service you'd need at least one worker instance (preferably with a lot of RAM) and one instance for the drupal website. The service is currently run on 4 servers, two of which are still sponsored (by maloon GmbH and Druid) and two of which I'm currently paying myself. Those two sponsors are currently directly paying the costs to the German hosting provider hetzner.de (which I can tell you from personal experience has a bad record with hard disks). Resources have become quite scarce recently as sponsors have been jumping off and I honestly don't have the energy to run after and find new ones. I can understand it very well though, why support a stagnating project? On a positive note: I did have many inquiries about sponsorship in the past. I postponed most of them as I didn't want to clatter simplytest.me with advertisements though.

Hetzner Root EX40 (~50€/month)

Hetzner Root EX41S-SSD (~50€/month)

Hetzner Root EX 4S (paid by maloon GmbH)

Hetzner Root EX40 (paid by Druid)

Domain simplytest.me (~50€/year)

Domain ply.st (~50€/year)

Wildcard SSL certificate (~100€/3 years, though letsencrypt might be able replace those soon)

Options

Someone takes over the project as-is. Ownership of Infrastructure will be transferred. I'll personally introduce and explain everything and answer any questions as long and good as I'm able too.

Someone replaces simplytest.me with their own service. As soon as there's a viable free alternative to simplytest.me I'd take steps to slowly forward the users more and more to it until I'm able to take simplytest.me down completely. If it makes sense the Domains can be transferred to ensure they point to the new service. If you plan to start integrating simplytest.me's functionality into an existing online service I'd be happy to advice you with my experiences from building and maintaining simplytest.me so far.

Whether I like it or not, if nothing happens, the else-branch would be to announce the shutdown of the simplytest.me service and hope the free market finds a solution to this problem within time :|.

Offers

1. Offered maintainership

42 Droids sees maintaining simplytest.me as a good way of giving back to the community

DRUD Tech would like to take over maintainership and run it on kubernets

We would be very excited to take over simplytest.me. We have been looking at ways to contribute back to Drupal and this seems like a great opportunity. We can dedicate the required resources to keep the service running and improve/update as required.
We would gladly keep the service free for all.

Please let me know if this is something you are interested in. Many thanks in advance, Gergely

I'm glad to see there's interest in both taking over the existing project and building modern alternatives to it! Thanks! :)

If you have any such plans it probably makes sense to get familiar the simplytest.me code base a bit. Installing the simplytest.me installation profile should be fairly easy but setting up a worker server has become very tedious due to missing/outdated documentation. For that reason I've exported a LXD container image that you can use get set up more easily.

Something like "lussoluca"'s suggestion to join forces with "composy.io" seems worth pursuing. I run debugacademy.com and would also be interested in maintaining simplytest.me - it has clear business value for us (makes Drupal more accessible to beginners) and we would be motivated to continue to make it easier to use and more accessible to developers.

I would love to turn it into a free teaching tool as much as a testing tool (testing a module on simpletest.me could offer thorough instructions listing how to install that same module locally, for example).

I'm also open to collaborating.

Thanks for all of your work, I have sent many people to the website over the years.

nerdsteinCreditAttribution: nerdstein as a volunteer and at CivicActions commented 24 December 2017 at 16:45

Patrick, to echo others comments - thank you! This has been a tool that has benefited countless people in the community. What a great contribution.

I’m happy to assume responsibility for this “as is” and work with others moving forward to split out the costs and make incremental improvements. Please use my contact form to connect and we can make this happen.

nod_CreditAttribution: nod_ at OVH commented 26 December 2017 at 10:02

Looks to me that the DA should "own" this but since several people are interested in helping out, maybe we should make an initiative out of this for coordination?

In any case I work at a hosting company now (OVH) so at least I can help with providing servers for free. I also have someone from my team who's very interested in building a docker-based solution for this with the rest of the community. I'll hang out in the slack channel if there are any questions.

nod_CreditAttribution: nod_ at OVH commented 26 December 2017 at 12:55

If we agree that simplytest.me or a similar solution became mission critical for Drupal and it's community, it could be taken care of by the DA as far as I understand it's charter. So might be good to have it coordinate efforts around this, but it could be a bad idea. I don't know maybe it's a model that doesn't work and they probably didn't plan for it in 2018 anyway.

I don't expect the DA to put anyone on the development/maintenance of this, I'm only suggesting that we should aim to get the DA involved and ultimately handle it once they had time to plan for it.

Short term something similar to an initiative sounds like it'd work better.

Hi @patrickd. First, thank you for all of your help over the years! Simplytest.me is one of the first places I direct people to when they want to give Drupal a test spin or to explore a module's functionality before committing towards bringing it into a local codebase. I've also used the incredibly fast spin-up time (typically 45 seconds) as my benchmark to hit/beat when evaluating ddev's performance in spinning up local dev sites! :)

It looks like you already have quite a few offers on the table, but I wanted to throw my companies hat in the ring (DRUD Tech). This aligns with our stated goal of building/supporting tools that help empower developers to do more with less. Additionally, we're fully committed to Kubernetes and would eventually want to convert this over as well as open source it.

Please don't hesitate to reach out to me via the contact form. You may also get a few DM's from members of my team who are also highly motivated to take on this project!

That would be up to the lead, I guess, something like this: The initiative lead would take ownership and responsibility of simplytest.me as it is now and at the same time lead the initiative to maintain, rebuild or enhance the current service.

I've never been part of an initiative myself so there are probably a lot of things I don't know about doing something like that in a proper way. Personally, I've always found it quite difficult to get and keep people interested in helping with a project, I can imagine it requires a lot of talent and effort to lead an initiative successfully.

I'd be happy if anyone feels capable of doing so though. It would probably be better to leave this in the hands of multiple people than a single company or person.

As there have already been several offers of maintaining the service I'd like to make a decision until Mid January.

Do you have an idea which modules are using simplytest.me as a project demo by checking the referrers to the site? Those projects probably include some code to create some demo content and basic configuration on simplytest.me using simplytest_dependencies[] = demo_module.

Simplytest.me being a tool used for a project demo by module maintainers would be another reason to keep the initiative preferably in the hands of the Drupal Association if they show interest. I would like to see the possibility to use Simplytest.me as a module demo continued as this is one of the most interesting uses of the service.

In 2017 there were referrals from 214 drupal.org projects to simplytest.me

Hmm, I don't really see a reason why there should be a problem for these projects even if it is not in the hands of the association. Based on these numbers you might be able to argue that this counts as critical infrastructure for the Drupal project. Even so I would think it lies in the interest of the next maintainer to ensure that these demo links do not break for existing projects.

So far I have heard nothing from the DA, but I'm confident we'll be able to put this in good hands either way.

It seems logical to adopt within the Drupal infrastructure a private initiative that benefits the community so much like simplytest.me especially if the opportunity exists so clearly as now. I expected the D.A. to approach you already in an earlier stage and hope they still will even if it is late. If that doesn't happen then I agree a reliable private party is the only option left.

Anyway you Open Sourced your code already a long time ago which is great. Thanks for your efforts to leave the project in good hands.

short update from our side:
We're definitely interesting in giving Simplytest a future existence. I'm currently writing down a proposal on how that could work with Lagoon, what resources that amazee.io can provide and more. Give me 2-3 days :)

Our open source project, Lagoon, was always meant to support features like this and we’d love to see it happen.

While we wish we could simply step in to maintain the current simplytest.me while developing an upgraded version, amazee.io cannot accomplish this without help. Therefore we would like to offer to help organize and shape the efforts to develop a new project, while somebody else maintains the current simplytest.me until it can be replaced by this new tool.

We prepared an outline (https://github.com/amazeeio/lagoon/issues/191) for the architectural plan of Lagoon and simplytest on Github. We will put out a call for help, accept pull requests for Lagoon, do some of the work ourselves and collaborate with community members in sprints to get all the necessary pieces in place. We will be available for discussion and collaboration via Slack and Github and generally help coordinate the effort.

While this does not solve the problem of paying for the servers or maintaining the current form (by our estimates the new version will take ~6 months to develop) we believe this is a good way to move simplytest.me into the future and take the burden off of Patrick as well.

TL;DR:

To summarize we believe there are three steps to move forward:

- Someone steps forward to maintain simplytest.me and pay of the costs as it currently exists.
We (amazee.io and the community) organize an effort to build a new tool based on Lagoon and the current simplytest.me code, tests this tool and launches it
- Amazee.io can provide maintenance and management resources for the new project. If we find some other companies/people that would contribute to these efforts (time/money) that would be awesome.
- With the help of the community we can preserve the wonderful functionality of simplytest.me and offer even more usability to the outstanding Drupal community.

nerdsteinCreditAttribution: nerdstein as a volunteer and at CivicActions commented 18 January 2018 at 14:36

Would you be adverse to helping incrementally improve the current system? I question if the community is best served with a new tool or just incremental modernization of the current tool over time (which I noted in my post). Lagoon could be a great system to help with one aspect of the modernization. Other tools may be as well. Prioritizing the provisioning and teardown aspects of the system may be more efficient for your team instead of tackling a much larger issue in building a new tool. It would be great to see a team like amazee contribute in this way, as other community members can continue to participate in the other aspects of the tool (e.g. the servers or the front end UI).

While I'm very glad to see that amazee labs has made plans to work on a modernized or alternative version of the simplytest.me service my immediate concern is to ensure the current system is put into good hands as soon as possible in order to allow it to be more actively maintained again.

I'm nominating @nerdstein as new project owner as he has shown continued interest in taking over the project far beyond promising help and was in regular contact with me ever since.

Over the coming weekend I'll be working on further simplifying and updating the existing Infrastructure to ensure it is in a well maintained and low cost state before the transfer. I'm also working on a detailed maintenance manual that explains the ins and outs of the system and will hopefully help debug issues that may arise before the new owner is more familiar with the system. The transfer will be complete once i figured out how the domain ownership can be transferred while ensuring there'll be no down time to the service.

Also thanks to everyone else who offered their support in this matter, I hope you still consider supporting the projects maintenance and development if nerdstein accepts the ownership.

@nerdstein, are you willing to take responsibility of the project and do your best to provide the community with a service they deserve? :)

ressaCreditAttribution: ressa at Ardea commented 19 January 2018 at 16:24

Thank you so much for creating this incredible tool, @patrickd. It has saved me countless hours, and made my life so much easier. Good call on nominating @nerdstein as new project owner.
PS. @nerdstein's thoughts on the future of simplytest.me: http://nerdstein.net/blog/future-simplytestme

I'll add my thanks to @patrickd. I've been on a Drupal learning curve for 9 months, and the ability to spin up PoCs and prove myself wrong quickly and easily (and have the evidence destroyed in 24h) has been invaluable.

And kudos to @nerdstein for stepping up to evolve his vision - looking forward to where this goes!

Thanks for stepping in to maintain this important tool, Adam. To offset the associated costs, what if simplytest.me followed a model similar to the one dply.co uses? Just throwing this out there as an idea so that the financial burden is somewhat distributed instead of being reliant on just one person or organization. The service could remain free for everyone to use and test, but the costs would be potentially offset by the heavier users. DPLY's pricing model:
2 hrs: FREE
2 Days: $2
1 Week: $3
1 Month: $10
6 Months: $50

Obviously it wouldn't have to follow this exact cost structure, but it's reasonable and seems to be sustainable for dply.co.

nerdsteinCreditAttribution: nerdstein as a volunteer and at CivicActions commented 25 January 2018 at 15:18

Hey Adam Bernstein, (great name by the way, and nice to see you in here from our earlier discussions) - i'd recommend filing a new issue to help this discussion. I have been curious if there are other ways we can support the community in a sustainable way. Everything currently is volunteer and/or sponsored by companies in the community to keep it totally free. Money changes things and may require more dedicated people and/or resources to ensure the service is working properly. It's a big conversation, but one I would welcome if it serves people.

Hey Everyone, Apologies for being late this conversation. Thank you to @patrickd for the graceful transition. That takes thought and care.

Many of my team members called this project to my attention, saying that Tugboat - a pull request builder for Drupal, could be of help. We made a recent decision to sponsor Open Source projects and since Drupal is our bread and butter perhaps there's a role we can play? Since Tugboat isn't Open Source I imagine hardware support is the most meaningful offer.

No worries if this isn't a good fit, or if I'm derailing the conversation. If it is interesting, then @nerdstein maybe we could chat and see if there's enough overlap to support?