1
3 Comments

What are using for staging? This is my current tech stack. Judge if you will...

Yesterday, I put the first bit of effort to setup my new server and staging environment for my latest project log.fm.

Since log.fm is a podcast search engine that will create custom RSS feeds for podcasts people guest appeared on, it will have lots of data to parse. So naturally I want it to be fast.

Goals for the tech stack:

  • be in languages I am familiar with
  • but still learn some new technology
  • keep costs low to get it off the ground (using some great open source goodies)

Here is the tech stack I am working with for starting:

  • Main server: digital ocean droplet
  • Web hosting control panel: CyberPanel (its open source too!) and OpenLiteSpeed server
  • Codebase: PHP (and eventually some VueJS)
  • Databases: MySQL and ElasticSearch

Main server: Digital Ocean droplet
affordable VPS that I can easily scale up later. Root access to setup and install the tools for the background jobs and processing of the RSS feeds and podcast data (using things like supervisord)

Web hosting control panel: CyberPanel

  • open source
  • built in Python
  • uses OpenLiteSpeed server (which is super fast and accepts Apache mod_rewrite rules)

Databases: MySQL and ElasticSearch

  • MySQL for the persistent database storage (not the fastest, but does well at simple indexes by numbers) I am also the most familiar with it, so it helps getting off the ground faster. (plus if it is good enough for ConvertKit, then it is good enough for me!)
  • ElasticSearch to provided better search capabilities down the road (I have never used it before, but excited to learn and implement it)

Codebase: mostly PHP
I am the most familiar with and proficient in PHP, so that helps getting off the ground faster. Plus for a CRUD app, its handles the job decently well if you write efficient code.

  • plan on learning VueJS to use more of down the road (and for future projects)

After standing up my new server yesterday, and getting my staging environment setup, I was able to start testing the code base out on a live server that will be super close to the live production server down the road. Always great when you are not just working off the localhost server on your laptop, especially when trying to certain things.

Like say, ingesting over 250,000 podcast feeds and processing the data. This might surprise you, but my ISP didn't like me making 50k page requests overnight....

With that being said, what is your staging or production environment for your project?

Your thoughts on how I can make mine better? I am all ears!

  1. 1

    I'm using a JAM Stack. NuxtJS, GraphQL, MongoDB and Node. I just started learning to it made sense for me to stick to Javascript on the frontend as well as back. Really loving it and would recommend to all beginners.
    I find that a NoSQL solution like Mongo gives me the flexibility to scale my database design as I progress without having to think about the all columns I'd need in the traditional SQL model.
    ALl the best!

    1. 1

      Very cool. I did not know that Mongo is that different than something like MySQL. So I know that doing something like adding data into a record in MySQL would be a query like this: INSERT INTO table_name VALUES (col1, col2, col3)

      How would that differ in Mongo? Are you saying that the columns don't quite have o match to store the data?

      1. 1

        In a way, yes. Mongo uses key/value pairs to store data. So you can insert data into the database by referencing the field (column) in a document (row). If a field can be empty/null, you don't have to include it in the insert statement/code.

Trending on Indie Hackers
I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments How I Sourced 60% of Customers From Linkedin, Organically 12 comments Hero Section Copywriting Framework that Converts 3x 12 comments Promptzone - first-of-its-kind social media platform dedicated to all things AI. 8 comments How to create a rating system with Tailwind CSS and Alpinejs 7 comments