Designing Katanium: A Newbie Insight

Jihad Dzikri Waspada is co-founder of Katanium. This article was originally published on author Medium post with permission.


I’m Jihad, currently working on Katanium as web developer, single-handedly, at the moment. I’m not the type of man who can do all alone, neither am I possessing an overwhelming knowledge in both backend and frontend technologies, just an adequate armed developer, but at least I know some ES6 implementations, a few on PHP stuff, and a little MySQL design capabilites. Plus, I haven’t worked on a professional contract for any company, except one, as a freelancer, for a two-months agreement. Great.

Well, being in encouragement to build a product, I decided to join the team as they were looking for a decent web developer. Katanium is a community driven website, focusing on bloggers to share their ideas and stories in order for them to give inspiration as well as getting inspired by the others. This product should fulfill some requirement including SEO friendliness (help promoting the bloggers), a good text editor, and some interactive little widgets. Let’s divide those reqs into pages:

  • SEO — blog post and user profile page
  • Good text editor — dashboard thingy (plus account settings, etc)
  • Little widgets — any page (like home, search page, etc)

It seems to me that only the pages in point 1 that require an appropriate attention in making them SEO friendly. We can leave the other pages suck at SEO, but we can still maximize the user experience with a delighting good interaction.
So I believe that choosing AngularJS (or Ember) is not a good option since it’s bad when it comes to SEO, and (I’m afraid) too overkill for such an interactive page. Besides, I don’t like it’s messy structure, it will just make the development proccess slower given their counter-intuitive APIs. Backbone? Too much boilerplate and a lil bit confusing to a newbie like me. My decision goes with Vue for its minimal configuration, intuituve APIs, web component concept, and obviously the small file size. Vue can be used both for SPA (point 2) and web widgets (point 3).

Baca juga: Jihad Waspada, Sharing Pengalaman Ngoding Selama Lima Tahun

Oh wait, there’s React. It is absolutely good for SPA (point 2), maintaining SEO (point 1, you can use React on the server). But i can’t guarantee point 3. And yeah, the classic startup problem, subscription cost of a VPN provider which generally is more expensive than shared hostings.

Talking about the backend, I decided to structure the tech as slim as possible, that’s the reason I’m using Slim Framework 3 to simply pass JSON data from the server to the browser (Vue instances). This ensures the product to be fast and interactive like we’re dreaming. But the problem with Slim 3 is it’s too slim that we have to configure the app organization manually, including folder structure, choosing DB adapter, working with cookies, and many many more. Yet, this problem can be a good solution for those who love designing the app all alone, like me. For instance, I can plug and unplug a DB adapter if I’m uncomfortable working with it. Unlike other frameworks, you cannot change Fluent/Eloquent when using Laravel or so-called Active Record when using CI.

To name a few, here’s some other examples on how I’m making Slim 3 as a “library” of libraries:

Down to date, I’m pretty happy with my technology stack. As a newbie in web development, I’m yet to find any other technology that matches the easiness and performant as Vue, as well as the independence that Slim offers. Has anybody got a different insight, feel free to comment below :)

Happy coding!

Jihad Dzikri Waspada is co-founder of Katanium. This article was originally published on author Medium post with permission.


Posting Komentar

Popular Post

Sebenarnya, +62282 Ini Nomor Siapa Sih? Kok Misterius.

Yuk Kenalan dengan Berbagai Jenis Power Plant yang Ada di Indonesia

Pengalaman Pengembalian Dana (Refund) Tiket Pesawat di Traveloka