Creating Your Own Kingdom
There is a saying that goes - "Don't build castles in other people’s kingdoms", meaning that you should not build a following on a platform that you do not control. So I decided to make this corner of the internet as my kingdom, and here I can build my own blog, which would serve as my castle. I finally get to launch it. I hope you like what you see, and my wish for this small corner of the internet - is to serve as an inspiration one day, even if it is only for a single person.
Before starting with random ramblings of an inexperienced blogger and writer, I would like to give some key points about myself:
- I started my journey more than half a year ago as an experienced backend engineer mostly with ETL processes (dealing mostly with big data and aggregations of said data). I worked with C# and .NET, and I only worked in a corporate environment.
- I had to quit my job because I wanted the freedom to travel, and change the country I was living in. (Many reasons for that which I won't elaborate here)
- I wanted to build my own applications where I can express myself both in ways of design, in user experience, and learn some business skills. In general I wanted to create programs that don't suck.
- I chose the web as my target environment, as it seemed to me a good place to start building applications if my goal is portability first, and wide target audience. Plus - HTML and CSS provide great abstractions for building UIs.
With all that being said, I can give you a brief rundown of my incomplete work (or failures, if you will) before I started working on my blog;
- I started working on web applications with the premise of having everything keyboard-controlled, with clear UI indicators.
- The idea was to hone my skills with simple applications, such as a note-taking app, to see how fast I can build something reasonable that fits my requirements. The idea was to learn through building simple things all the skills necessary for creating fully-fledged applications. I wanted to be able to ship fast, and efficiently, without sacrificing on quality (but not overcommitting to something that will not work).
- After a few months, I realized I might have set myself the bar too high. My app was either ugly, was lacking backend features, needed architecture changes to be local-first approach and background-syncing, I was inexperienced with HTML, CSS, JS, TS, Svelte (my chosen framework), and everything together was just spreading me too thin. I was solving way too many issues one after another, and while making progress, I could barely see results that I would find motivating.
- Even though I failed in completing my first app - I realized I can build basic tools for myself. It is significant because before I started my journey, one of my goals was to be able to spin applications/tools that I would find useful and would have GUI — building console apps was just not good enough for me. Now I find myself with an itch to build an app that would allow me to draw and modify simple 2D polygons, and I could actually do it! So I made myself a tool that I use in my free time in order to "draw".
- I realized that even then, when I created something that I find useful and for fun, I felt a bit demotivated because it looked like garbage — I lacked the skills to make things that look good, and I wanted to change that.
- I decided to start creating a blogging website as I thought nothing can get simpler than that, and there I could actually work mainly on my design skills and construct a working "plug-and-play" solution that would allow programmatic marking of UI elements in such a way that they will be easily accessed by keyboard and also have some visible indication. I wanted my website to feel not only like a blog, but also like an app or a video game, yet keep full website functionality. The two should not interfere but serve as options for people to choose how they want to use it.
Which brings us here: A simple website that has a lot going on under the hood, and a lot that needs to be developed still. It is designed to be navigable by keyboard, you can try hovering over a paragraph, and start moving around with the arrow keys, you can use space or g to mark a paragraph, just to remember where you stopped reading (I did not add persistency yet, so unfortunately, as of the time of writing, marks are lost on refresh).
In a way, it took me way too long to finish. But I also know I got to a point where I feel that something good was accomplished. I still don't have proper 2D grid navigation, I still do not have a command argument line invocable by pressing '/', but I do have a nifty debugging console that serves as a place for me as a developer to inspect my website and see how shit breaks — because, at some point, I got way too tired of reading console logs.
Most importantly — this blog serves as my playground, to test my ideas for features, for design, for performance improvements. For understanding how SSR and SSG can be combined in order to get the best of all worlds, why CSS is better than JS even for simple stuff, and a bunch of shit that I learned that can fill this blog with content for weeks. It also serves as a place for me to express myself in writing — whenever I feel like I have something to say, I can write it here, and have my thoughts expressed out in the open. I can choose how to present my ideas in images, animations, UI elements, or all of the above.
I also could focus on simplicity. I do not have formal design training, but I know when something is done well when I use it. I chose a two-color scheme which all my website would follow. I decided to add animation as graphics to my posts because I thought it is easier to remember sometimes posts by a visual cue rather than text alone. Plus I really like creating simple procedural animations so I can also practice that alongside my writing and coding.
I have created a small castle, in my own kingdom. And that is priceless. Here I can expand my castle, and add features to my blog. Or build different castles in form of tools, or other websites, where I can explore and present different topics. But all is connected, all is within my kingdom.
If you made it so far to the bottom of this post, I thank you — for you already have done more than I can humbly take for granted. This website is my first independent complete work — the only work I can actually say that I am proud about — as it is 100% mine. And you — the reader — found my writing engaging enough to read it to the end; the end of my first post, of my first completed website, marking my first step to success. And for that, I thank you.