Story about Shroomok birth, or how growing mushrooms became a web project. First ideas, attempts, mistakes, and further transformations. Tech details. MediaWiki vs WordPress. Inspiration from Tailwind. Part one
Hello and welcome to the story of how Shroomok was born.
This is the first publication which is (almost) not related to Mushrooms topic.
I'd like to start sharing a little tales of what is happening behind the curtains of Shroomok project.
Also, Shroomok Development section will be filled up with feature releases, updates, changelog, and stuff like that. As far as I have a time and energy for writing such side-topic articles.
In this post I'm gonna recall my initial motives, decisions, mistakes, pain, and website transformations (which are still going on)
Since the immemorial humans have struggled to share information with each other. Approaches to do this has been changed a lot: from nodding/touching/biting/screaming to using sensible voice constructions. But the real tectonic shift was The Writing!
Nowadays, millions of people produce tons of content about their knowledge, ideas, and humble opinions online. Sometimes they receive feedback or advice on what to do and where to go :)
To do so we either use platforms such as twitter/dev.to/reddit/etc, or some of us choose the Samurai way with autonomous tools (e.g. self-hosted WordPress)
How often do you worry about the details of what's happening under the hood of someone's blog? Let me guess... never? Running a blog is a bloody trivial task from the tech point of view and no one cares what solutions have been used to deliver publications from author to reader, right?
However, common content project can turn out to be a truly rabbit hole.
How deep can it be?
You never know...
A few years ago I was blasted with the idea of growing mushrooms at home. There were a lot of guides, different subreddits, and communities (such as Shroomery.org) on the internet already. For me it was still not an easy task to do, although I knew the basics of some edible mushrooms growing, but had limited experience.
Every grower has different context and background. Each grow report is unique! It consists of many variables such as: chosen strain, spore print quality, substrate, environment conditions, cultivation technique, ability to buy particular equipment, etc. When somebody gives it a try to write down own experience, they usually skip a bunch of details that seem obvious for themselves, but may be completely unclear to readers.
I decided to log every single bit of my growing process, to describe prerequisite in details (which is important). It could be useful at least for myself. If I failed, I'd be able to analyse my report and figure out what to change for the next attempt.
I've been stuck with multiple stupid questions even before Cultivation was started. During the process, number of them was growing faster than my mushrooms did. Each step I had have to double-check.
Fungi is a pretty gentle creature. Especially, when one genus meets another: you want to grow Lion's Mane, but get Trichoderma contamination instead :)
I had enough courage to decide that I was able to accumulate information, personal observations (maybe get some insights), and combine all useful stuff into the new comprehensive guide for newbies (as I was)
...but I never wrote instructions, articles, or even blog posts.
Minimum Viable Product
You can always build a clumsy beast (what I did further) and fail on first step.
Instead, go simple and fast. Define the focus and move forward © Startup dogma that never gets old
First meaningful thing I could call "Shroomok" was the... Google Doc!
It was a good starting point with all functionality I needed for my personal diary. Cool! So, I have a tool for content creation, what's next? Nothing much left to do (hehe): to make more photos, to record videos, to write down each step accurately and thoroughly (with numbers; explaining why did I do exactly this in that way, and not another), and the most important - to grow mushrooms :)
Content was cultivating rapidly, although it was just raw material. It definitely was not ready for publication as is. However, some ideas on its look on the web were born before text editor job was done. Rough concept: some kind of tree (but mushroom) with fancy cap, and instruction steps all way down by the stem.
(this museum "masterpiece" is still available here)
It was easy task to do (easier than grow mushrooms): I've found free html templates with similar structure, reworked one (or two) of them to way I needed, added mushroom cap, changed colours, and that's it!
Mushroom cap, which is logo, which is Shroomok, was drawn just for fun. In my imagination, Shroomok should've been like a Sensei who can teach something. In that case - teach to grow shrooms!
* Since 24 of Feb 2022, logo colours on this page have been changed to Blue-Yellow in a sake of Ukrainians who fighting ruzzian invaders.
CMS & Harvest
Cultivation process has been successfully finished! I've harvested multiple mushroom flushes, made spore prints, etc. Google Doc counts up to 25+ ready for publication articles. Time to go live! ...but where and how?
First idea was to convert Google Docs to static html, to link pages between, inject Google Analytics, and upload it on hosting. It doesn't smell like overengineering, right? I said that articles were ready for publication, but in real, I improve them on regular basis. Even first articles are getting updates still.
Of course, I could transform Google Doc into html and upload results to server on each edit, but clever people invented more suitable tools for such purpose - Content Management Systems!
Don't waste your time - take WordPress
This is the first thought that popped into my head. To be honest, at that moment I already had a pretty unpleasant experience with this powerful CMS. Most likely, it caused by my laziness. I just didn't know how to cook it properly. Struggling with issues (especially malware) on WP projects is heavily imprinted in my memory. Personal bias against WordPress was the reason why I kept looking for other software.
(Looking back, I think WP would've been one of the best solutions at the time)
Meanwhile, I was wondering about the limits: how big my project could possibly grow. I wanted to start from just another blog, and then build something significant around!
It's hard to think about scalability when you have almost nothing. However, I definitely felt that Shroomok should become a Community with user generated content. Humans are power!
Inspiration came from PsychonautWiki project which is a niche encyclopedia based on MediaWiki software. Everybody can put effort into the content.
You are damn right: it's a Wikipedia from world of substances!
Concept of Wiki for Mushroom Cultivators seemed to me ambitious. That's exactly what I like :)
MediaWiki is not a regular content management system. It was created as a collaborative software based on conception when everyone can write own articles and edit pages created by others.
However, I didn't (and still don't) want to wake up in the morning and see changes on my own guide from internet users. Maybe, I'm wrong. Maybe, I must give people opportunity to add their thoughts, to fix something in my publications?
MediaWiki provides functionality to make content changes visible only on moderator's approve. Edit actions from newcomers are required to pass admin (my) review. Sounds good? But it's a whole new process that I have had to learn.
I decided to carry on fast and simple: to cut off main Wiki feature (with related headache and risks), and configure it as one-person blog. Collaboration functionality kept closed until further times :)
MediaWiki (MW) dressed in gorgeous responsive Citizen skin with dark-mode support was good enough for Shroomok's first public appearance!
Articles moved from Google Doc to MW's database. It seemed everything was looking good, except one thing: lack of navigation. No worries! Mushroom-stem template was waiting for that moment. I added links from each level of stem to related MW pages. This template became an entry point of the website.
In the last days of 2020 I allowed GoogleBot to index pages. Shroomok was born!
Very important part of content projects is... a content, obviously.
However, you can create 101% useful & engaging content and get zero audience as a result. This is not a reward I'm striving to :)
Most of 2021 I was trying to spread the word about my new project: YouTube channel, Reddit, Discord, etc. Along with that, work on content never stopped.
That's why I had no chance to invest much energy in work on technical part of Shroomok website, except of minor changes such as: embedded YouTube videos, comment system for anonymous users, infinite scroll, adding whole navigation into MW's sidebar, etc. Even those little tasks were not so easy to implement due to specific constraints of MediaWiki.
MediaWiki has its advantages: simple pages creation, editing history, powerful work with images, great visual editor. The feature I like very much: if your admin MW account has been hacked, the most dangerous possible scenario is to get unpleasant content changes (which can be reverted) and that's it!
And yet, sometimes I went crazy while tried to invent workarounds for implementation of functionality that is provided by WordPress from the box.
For example, MediaWiki doesn't allow you to set title, page url and h1 separately. By default, MW pages do not contain meta description tag as well.
A lot of ideas were postponed, some features got stuck on half way just because it could break MediaWiki.
Also, I wanted to redevelop Shroomok's UI/UX from scratch, but this rabbit hole seemed to me even deeper.
Lack of control over application led to frustration :(
Feeling of wrong choice kept coming to my head...
Once upon a time, during another Twitter-doomscrolling session, my eyes caught a post of one guy who shared a list of technologies he used for quick start of new projects. I guess it was a MERN stack + one name, which I've seen before, but never investigated... Tailwind!
My procrastination was interrupted by curiosity. I've opened Tailwind website and it blowed my mind!
I love attractive UI. I ain't so good at this craft, so great design makes me jealous sometimes :)
In general, Tailwind is a bundle of predefined CSS classes - many people can say. Everything you need is already provided by pure CSS. I cannot argue with that, but, what Tailwind gave to me is a fantastic documentation with great examples, which makes me able to develop interfaces I always wanted.
Tailwind inspired me to rework Shroomok UI completely!
Just another fancy skin for MediaWiki wouldn't solve any problem. It was my aesthetic desire.
I've started to think what exactly hurts me, what I want from Shroomok in the future, and about shortcuts to achieve these plans (including new UI).
First of all, I got hunger for 'normal' creative work: when you focus on final results (not on implementation details and workarounds), when you have a choice between bad & good solutions and hence you can find the balance. I missed fun.
The only possible way seemed to me was decoupling from MediaWiki.
But! The "lets-throw-out-MediaWiki-and-rewrite-everything-from-scratch" way didn't attract me at all. I knew that this brutal approach could lead to nothing but depression caused by amount of endless work. Moreover, I would like to keep some MediaWiki features I've mentioned before.
1. Shroomok application should be easy extendable/maintainable. I want to ship features and design changes quickly!
2. First renovated app version must be released as soon as possible. Something went wrong if development takes too long. Delay will definitely kill my motivation
3. Make migration from old Shroomok to the new one with least efforts. Keep content and same URL structure (redirects are pure evil for Google crawler)
4. To be still able to use MediaWiki visual editor, file uploads, text search
5. Possibility to rollback to previous (MediaWiki-only) version. Just in case
6. Tailwind! :)
It's been necessary to migrate pages one-by-one. This approach allows to catch bugs, to investigate user behaviour changes in Google Analytics, to confirm that job was done well.
Gradually closing MediaWiki to the public and leaving it as a protected admin panel is a kind of tricky tasks to do.
How to deal with it? It's better to overthink in the beginning than to pay overhead later.
To be continued...
Wondering if you know that some of your Trichoderma Pictures are actually Penicillium mold? You do realize there are other species of green mold, right? You're not a real mycologist, are you? You shouldn't be teaching mycology when your an amateur yourself. You're just here to profit off of people to buy your mycology supplies. Most of your content is misinformation. Sad thumbs Down👎