Okay I’m back. I’ve taken a 3-6 month period with reduced work hours to “go learn stuff.” This means that I’m back on development for Floflo/Koohi’s yearly “f*** this website, I’m going to break everything I spent the last year attempting to stabilize.”
In this post I will be talking about plans for me and also the website. It may get slightly technical. You may or may not find it boring. Every section will have a summary: the SUMM will avoid any technical speak so that normal people and/or skimmers can read it.
1. Overhaul w/ Emphasis on SEO
When I swapped over to Koohi (a single page application), I had no idea what I was doing. The website has been almost completely invisible on Google because I didn’t set up SEO correctly. At the time, I ignored this because I didn’t even know how to make an SPA and that was enough for me.
However, over time the lack of SEO has made it impossible for the site to grow organically. It is, for all intents purposes, invisible except for when Vanilla or someone tells people on this forum that it’s cool.
SUMM: You literally cannot find this site on Google and that is bad. The following sections outline plans to fix this.
1.A Blog
The first thing I’ll be doing is creating a blog. I miss doing posts and find the work somewhat soulless when I’m literally just going full code monkey on the site.
The blog will cover topics related to both Japanese and coding. I don’t believe I’m a crack coder or (even a very good one, to be honest), but I think I have hit a point where I can explain my thought process and be confident that I’m not wrong (even if not optimal).
Like how Floflo was the application that I wish that I had when I was learning Japanese, the coding articles will be the kind of articles I wish I could’ve read when I was learning coding.
They’ll be focused on solving specific problems ex: “How was the v2 api designed, what was introduced to the new api and why?” “How do we do dictionary word lookups?” And then the lessons from the articles will be abstracted out so that they can be used on other people’s projects.
Japanese articles will be the same as usual - opinions, stats (I will be gathering new data), resources, etc.
I’m planning on using a headless CMS (sanity.io) and maybe NEXT.js or something.
SUMM: I will be (re)creating a blog. It will be hosted on its own subdomain. It will cover Japanese and coding, and its goal will be to pull in traffic from Google towards the main application.
1.B Main App
The main application is in an alright state. Planning on overhauling it a bit.
Appearance-wise, I would like it to look less sterile. Maybe just reintroduce some colors or something.
One of the biggest things I’ll be doing is rebuilding using Vue 3 and a state management library (Vuex). Vuex simplifies the process of passing data to child and sibling components and means that I don’t have to start crying into my hands when I decide it’s time for the 1500 line component to be split into different pieces.
This should make the app easier to expand. It should also make the app more debuggable (aside from the host of new bugs that will introduce xd) since you can do time travel and snap shots on the app. Also since the state is only mutatable in predictable ways (ex: “ADD_A_WORD”), you can be sure that there’s something wrong with adding a word, not adding a word on X page using Y method.
SUMM: In order to handle the SEO thing, it will have a host of new features. For example, the book and dictionary pages will have to become fully fleshed out. This means individual book pages, individual series pages, individual dictionary pages. All of these should be discoverable on Google.
2. Application Overhaul w/ Emphasis on Context
Even during Floflo, we knew that there was significant overlap between certain kinds of content. Consuming content that was related made it easier to improve your reading because you could spend less time learning words in isolation and therefore spend more time reading.
Previously, this was only available by using same-series books, but the next overhaul will expand this.
2.A Genre Lists
So one issue is that categorizations for content does not currently exist. I will introducing user voting so that we can categorize things by genres and tags (ex: romance, action, isekai, etc.). I cannot catalogue this by myself and I won’t try.
An automated process will use this information to manufacture “genre lists”. These will serve as something similar to the core 6k but for specific genres. They will contain 1) a word list and 2) a catalog of books used to comprise them. Words will be organized by frequency.
In addition to word frequency in book, you will also be able to see how a word ranks within your chosen genre lists, meaning you can determine if a word will be useful to learn based on the genre you’re focusing on.
The catalog will help you find a next book to read that’s has a genre similarity (and therefore probably a word similarity).
SUMM: Allowing users to tag books by categories/tags. Frequency-based lists will be created based on the books that belong to a tag. You can use these lists to find books with overlapping vocabularies, making reading new books easier. You can also learn from category lists directly.
2.B Sentences
In order to facilitate reading, I’ll be emphasizing context sentences in the next iteration of Koohi.
We’ll be doing this by leveraging Tatoeba’s corpus to create automatic context sentences. You will be able to lock in useful example sentences for specific cards.
In addition, I’ll also be introducing a parser (yes, failed to do that last iteration). The parser will automatically create a list out of text. Anything that you add from said list will have the sentence it belongs to added as a context sentence.
SUMM: Adding Tatoeba corpus for context sentences. Adding a parser which will create lists from text. Context sentences will be gathered from said text.
2.C Review Sets
Talked about this here: Weow! Koohi.cafe - A WK friendly SRS [300 vocabulary lists!] - #550 by Raionus
Anyway that pretty much sums up the plans. Currently working on step 1 and reworking the API so that it’s flexible enough to do what I want.