Last year I started working on SlothCMS, it’s still in progress but it’s completely different project than when it started.
Lesson #1: The basics will change
More than a year ago SlothCMS was frameworkless PHP and Vue.js project. PHP was chosen because PHP is everywhere and seventh iteration of PHP is a quite good language. As for Vue.js, that’s entirely Sarah Drasner’s1 fault.
A year later SlothCMS is Python/flask project with Angular 8 on the front-end. The main reason to switch to them was technology fatigue. My day-job is software development, I am working during the day in Angular.js and Angular 7 so it isn’t sustainable to keep in working memory three different front-end frameworks.
Even though my day-job back-end language is Java, my programming language of choice is Python. Compared to Java Python is less verbose and a bit simpler to get used to. As for flask, I don’t find that much of a difference between using flask in Python and Spring or Guice in Java. Also my skills in Python aren’t that good to use Vanilla Python.
Lesson #2: You’ll be procrasti-learning
Today my plan was to work on threading and file creation. After an hour or so I went back to unfinished SQL course on udemy because going through code from yesterday it felt that there need to be done improvements. This was a feeling, nothing concrete, that I learned to trust after year and a half of working on a legacy product, parts of which are reaching point where they are beyond maintainable.
Another feeling that I am frequently experiencing is “I haven’t done this before”. It’s a partly lack of confidence, partly fear and partly lack of skills. First two one can only accept and acknowledge. Third one can be mitigated by doing courses, building smaller prototypes or going slowly.
Lesson #3: Command line debugging is your friend
The main thing that I find most useful is during debugging I have the same screen opened and it’s nearly impossible to get lost in a bigger project. Also my writing skills2 are better than my mouse skills, so inspecting variables is a lot easier than in IDE.
Lesson #4: There will be setbacks and rescoping aka patience
As I mentioned earlier, in this post and in previous one, SlothCMS came through a bit dramatic change. I had to learn a new language, Python, get better at SQL and Angular/TypeScript. Things haven’t been progressing as fast as planned. There were days when my mental health didn’t allow for working outside of my day-job. And a lot of other things that slowed everything down.
As for rescoping, SlothCMS won’t have in v1 its own templating engine because templating engine itself is a huge project that killed my previous efforts. Instead it will use Jinja templates. More rescoped things belong to IndieWeb even though I love them and want to be part of that movement, I am just one woman and can’t do everything at once.