The developer's dilemma

Decide between using an existing service or platform and building your own service

I have a big problem now.

I am experimenting with various platforms to see if they are suitable for hosting my courses in the future.

The platform I am using is based on a static site that uses custom integrations and no-code tools (such as Airtable) for interaction. Payment and course registration are managed using Node.js service. You can call itJAMstack,Serverless, Or any fashionable term that is popular today.

In fact, each of my courses has several SAAS platforms, and all platforms are similar. I like to keep things simple and clear. When I first started, I was a course website.

Then, when I needed to make another course, I just copied the website and made another "version" of it.

Now the number of courses has jumped to 7, and it's time to revisit the overall infrastructure I use.

My first idea was to use a platform that I can use, which can be used as a centralized hub for course materials and provide functions that do not need to be built by myself.

Therefore, I went out and tried some popular services, including Teachable, Podia and many others.

But I encountered the so-called developer dilemma.

At first glance, these platforms are great. Well-designed, exquisite interface, radiant marketing, it really looks great.

Then I started using them.

I began to increase my frustration.

  1. "Looks great"
  2. "I like it overall, but that thing might be different"
  3. "The editor sucks"
  4. "I hope I can use the reduced price promotion"
  5. "There was an error. How could I be the only one encountering this error?"
  6. "Hey, support I encountered this problem"-"We have submitted it to the engineering team, and we will notify you in time"
  7. "Oh my God, I have spent a lot of time on this"

I am a lazy developer. I think this is my best technical ability.

When you are a lazy developer, over-designed software is not a problem. It will never happen. I just write the minimum code needed to perform the task.

I resist complexity.

Why is it so good? You cannot foresee tomorrow's needs, tomorrow's problems. Over time, I learned this.

As a contractor, I work on a very complex code base that I want to cry, and I try to oversimplify as much as possible when it is too complicated.

Being a lazy developer also makes me think a lot before writing software.

Because writing software is a responsibility.

You are writing the weight to bear in the future.

Supposing to continue my content about choosing a course platform above, I decide to write my own course platform.

This means I have to encode it first.

I need to make a decision. Maybe the right decision, maybe the wrong decision.

After building the software I dream about, I need to maintain the code in the future. I am responsible for this. There is no longer an "Ask for Support" button.

As developers, we have a strong ability to create the tools needed. But at the cost of responsibility.

But this is also an ownership problem. Do I want to rely on this particular platform in the next 5 to 10 years? What should I do if their decision is inconsistent with my decision? What if they raise the price? Can I get rid of it easily?

Ideally, I will always choose my own platform, not a platform managed by someone else. But I will always choose the simplest route.

For me, the biggest and most precious resource is time. By choosing existing solutions, I can have more time.

Should I spend a month writing my own course platform?

That is the current instance of the developer dilemma I face.

I tried all possible prefab solutions.

They all failed to fulfill their promises (or the impression of them in my heart) in one way or another.

I decided to write my own solution. Of course, the simplest solution.

More experimental tutorials: