Day Two: Stepping Away from UI to Tackle SEO, Security, and Automation

Day Two: Stepping Away from UI to Tackle SEO, Security, and Automation
Photo by Team Nocoloco / Unsplash

Today was all about upping our automation game, streamlining content distribution, and improving our overall site performance. From tightening up SEO and security to automating posts across platforms like Twitter, Discord, and Medium, the day was packed with progress. Here’s a full breakdown of what we accomplished during our 7-hour work session, and where we’re heading next.

1. SEO and Security Upgrades

We started the day with two crucial tasks that set the foundation for everything else: improving our SEO and enhancing site security.

SEO Enhancements
Search engine optimization is essential for any online content, and we wanted to make sure our blog is primed for discoverability. We focused on:

  • Meta Tags: Optimizing title tags and meta descriptions to be more descriptive, keyword-rich, and compelling for readers and search engines alike.
  • Internal Linking: Strengthening our internal linking structure to help both users and search engine bots navigate our content more effectively.
  • SEO-friendly URLs: We went through our URLs and cleaned them up, making sure they’re concise, descriptive, and include relevant keywords without being stuffed. This helps search engines understand our content better and boosts our rankings.

By following best practices for on-page SEO, we ensured our site is in a good position for long-term growth. The results from SEO changes take a few days to fully materialize, but it felt good to get ahead of it.

Security Enhancements
With SEO out of the way, we turned our attention to security—equally important, if not more so. Keeping user data safe and ensuring our website is secure is a top priority. We:

  • Improved SSL Configurations: Ensured our SSL certificates were up-to-date and enforced HTTPS site-wide, protecting our users’ data and improving trustworthiness.
  • Web Application Firewall (WAF): Tightened up our WAF settings to detect and block potential threats more effectively, from DDoS attacks to SQL injections.

By securing our site, we not only protect our readers but also maintain the integrity of our platform for contributors. With the groundwork laid in these two critical areas, we shifted gears toward automation.

2. Automating Real-Time Updates to Discord

After securing the essentials, our first automation task was to set up real-time notifications for our Discord community. The goal: whenever a new post goes live on the blog, our Discord server should automatically share it with our community, eliminating the need for manual updates.

Using Make (formerly Integromat), we connected our blog to Discord. Here’s how the automation works:

  1. Trigger: A new blog post is published.
  2. Action: A message is sent to a specified channel in Discord.

The message format includes the post title and a link, like this:

🚨 New article published: Post Title
Read it here: [Post URL]

This setup took some fine-tuning. We had to ensure the formatting was clean and consistent, but after a few adjustments, it was running smoothly. Now, our Discord community gets instant updates the moment a new article is live—no manual work required.

3. Automating Twitter Posts

Next, we tackled automation for Twitter. Social media is a huge channel for driving traffic, but manually posting every time a new blog goes live can be tedious. Automation was the perfect solution.

Setting up automation for Twitter required a bit more effort compared to Discord. Here’s why:

  • Twitter Developer Account: First, we had to create a Twitter Developer account and generate API keys to allow Make to post tweets on our behalf.
  • Authentication: Once we had the API keys, we authenticated Twitter with Make and set up a workflow that would trigger each time a new blog post goes live.

The tweets include the article title, a short message, and a link to the post:

🚨 New Blog Post: "Post Title" is live
Read more: [Post URL] #GrowOps #Cannabis

Now, with each new post, our Twitter feed stays fresh without any extra effort from the team, keeping our followers engaged and driving traffic back to our blog.

4. Integrating Medium

Medium is a powerful platform to expand our content’s reach, and the goal was to automate cross-posting from Ghost to Medium. Unlike Twitter, the Medium API was pretty straightforward to work with. After connecting Medium to Make, we set up an automation that:

  • Triggers when a new post is published on Ghost.
  • Cross-posts that content directly to Medium, without requiring manual intervention.

A key point to note here is that, unlike some other platforms, Medium works well with HTML, which is the native format for Ghost posts. This meant we didn’t need any HTML-to-Markdown conversion for Medium, making the integration even simpler. After a quick check to make sure everything looked good on Medium’s end, we were able to get this automation running smoothly.

Now, every time a blog post goes live on our site, it’s automatically published on Medium too—expanding our reach to a whole new audience.

5. Dev.to Integration: Still a Work in Progress

Next on the list was Dev.to, but this one proved to be more challenging. We managed to connect Dev.to’s API to Make, but unlike Medium, Dev.to requires posts to be in Markdown format. This presented some issues:

  • Markdown Conversion: The first hurdle was converting our Ghost content (in HTML) to Markdown, which isn’t always straightforward. We used Make’s HTML-to-Markdown converter, but ran into some issues with escaped characters and improper formatting of newlines and lists.
  • Error Feedback: On top of that, the Dev.to API wasn’t giving us useful error messages when the content failed to post. We’re still troubleshooting why certain posts aren’t going through.

For now, this integration is still a work in progress. Fine-tuning the Markdown formatting and troubleshooting the API responses will be top priorities in our next session. Once this is up and running, we’ll have yet another channel to distribute our content.

6. Wrapping Up the Day and What’s Next

By the end of the day, we had successfully automated content distribution to Discord, Twitter, and Medium, with some final polishing left for Dev.to. Next up:

  • Dev.to Troubleshooting: The first priority will be getting the Dev.to automation fully functional.
  • UI/UX Updates: Once we’ve cracked the Dev.to issue, we’ll dive back into the frontend work. The public pages are shaping up nicely, but a recent update broke the layout for the sidebar popout on the lot details page. Fixing that will be high on the list.

After spending a lot of time on frontend work, it was refreshing to switch gears to SEO, security, and automation. Automation, in particular, gives you an immediate sense of accomplishment—every task you automate is one less thing to worry about later. Now that we’ve got this foundation in place, we’re ready to tackle the next phase with renewed energy.

Final Thoughts

It was a productive day, to say the least. With SEO and security in a strong place, and content distribution automated for Discord, Twitter, and Medium, we’ve made significant strides. The next steps—refining the Dev.to integration and cleaning up the UI/UX—will keep us moving forward. Automation has already saved us time and mental effort, and I’m excited to keep building on this momentum.


Today's Humor Break: Why did the web developer go broke? Because they lost their domain in a bet!

Subscribe to Weed Garden Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]
Subscribe