Case studyCasestudy

Aion 2 Daily Board

A daily and weekly checklist with live timers for my main and my alts, built to sit on a second screen while I play.

Een dagelijkse en wekelijkse checklist met live timers voor mijn main en mijn alts, gebouwd om op een tweede scherm te staan terwijl ik speel.

RoleRol
Product owner and builderProduct owner en bouwer
YearJaar
20262026
GameGame
Aion 2, Global Europe, YustielAion 2, Global Europe, Yustiel
FormVorm
One HTML file, no accountEén HTML-bestand, geen account

01Why I built itWaarom ik het bouwde

Aion 2 has a lot of dailies and weeklies, and they differ between a main and an alt. Some things are only worth doing on the main, some are shared across the server, and some are worth doing on every character. I kept losing track of which was which.

Aion 2 heeft veel dailies en weeklies, en ze verschillen tussen een main en een alt. Sommige dingen doe je alleen op de main, sommige worden over de hele server gedeeld, en sommige zijn de moeite waard op elk personage. Ik raakte steeds het overzicht kwijt.

I wanted a page I can keep on a second screen, tick things off, and keep an eye on the timers for events like the Shugo Festival. There are trackers on the internet, but I wanted one that knows my server, my characters and my way of playing, with a small pop-out window that alerts me.

Ik wilde een pagina die ik op een tweede scherm kan houden, waarop ik dingen kan afvinken en de timers van events zoals het Shugo Festival in de gaten houd. Er bestaan trackers op internet, maar ik wilde er één die mijn server, mijn personages en mijn manier van spelen kent, met een klein pop-outvenster dat me waarschuwt.

02What it doesWat het doet

Five areas. All screenshots are from the live board.

Vijf onderdelen. Alle screenshots komen uit het live bord.

W.01

One checklist per characterEén checklist per personage

Each character has its own tab. The main's list also holds everything that is server-wide, such as Duty Missions, the Daily Dungeon and the Shugo and Invasion keys, so you do those once. Alts only show what is worth doing on an alt. The list is split into Today and This week, shows only what is still open, and folds finished tasks away. Tasks you repeat have a counter.

Elk personage heeft een eigen tab. De lijst van de main bevat ook alles wat voor de hele server geldt, zoals Duty Missions, de Daily Dungeon en de Shugo- en Invasion-sleutels, zodat je die één keer doet. Alts tonen alleen wat de moeite waard is op een alt. De lijst is verdeeld in Vandaag en Deze week, toont alleen wat nog openstaat en vouwt afgeronde taken weg. Taken die je herhaalt hebben een teller.

images/aion2-board.jpgThe checklist for the main character with today and this week blocks
The main's checklist, with only what is open.De checklist van de main, met alleen wat openstaat.
W.02

Timers that feel like timersTimers die als timers voelen

A big ring clock counts down to the next event, and a timeline shows the next 6, 12 or 24 hours. Server time, the daily reset and the weekly reset sit next to each other. You can click a timer to pin it to the big clock and choose which timers you see at all.

Een grote ringklok telt af naar het volgende event, en een tijdlijn toont de komende 6, 12 of 24 uur. Servertijd, de dagelijkse reset en de wekelijkse reset staan naast elkaar. Je kunt op een timer klikken om hem op de grote klok vast te zetten en kiezen welke timers je überhaupt ziet.

Some events have a short window in which you can still join. The clock then switches to "Active to enter" and counts down the time left to get in. Alerts work per timer, with a sound and a desktop notification, and a pop-out tracker puts only the timers in a small window for the second screen.

Sommige events hebben een kort venster waarin je nog kunt meedoen. De klok schakelt dan over op "Active to enter" en telt de tijd af die je nog hebt om binnen te komen. Meldingen werken per timer, met geluid en een bureaubladmelding, en een pop-outtracker zet alleen de timers in een klein venster voor het tweede scherm.

images/aion2-timers.jpgThe ring clock and timeline with pinned timer
The ring clock and the timeline.De ringklok en de tijdlijn.
W.03

Your own to-do, arranged your wayJe eigen to-do, op jouw manier ingedeeld

My to-do holds your own goals, for example "Get Golden crafter ring", with sub-tasks and no reset. The blocks Today, This week, My to-do and Notes can be dragged or moved up and down, and collapsed or expanded. The layout is remembered.

Mijn to-do bevat je eigen doelen, bijvoorbeeld "Get Golden crafter ring", met subtaken en zonder reset. De blokken Vandaag, Deze week, Mijn to-do en Notities kun je slepen of omhoog en omlaag verplaatsen, en in- of uitklappen. De indeling wordt onthouden.

images/aion2-todo.jpgThe personal to-do block with sub-tasks next to the notes block
My to-do, with sub-tasks.Mijn to-do, met subtaken.
W.04

An alt guideEen altgids

A guide explains what is shared with your main and what is not, what is worth doing every day and every week on an alt, what to leave for the main, and roughly how much Kina an alt can earn per week at different item levels.

Een gids legt uit wat met je main gedeeld wordt en wat niet, wat de moeite waard is om elke dag en elke week op een alt te doen, wat je voor de main laat liggen, en ongeveer hoeveel Kina een alt per week kan opleveren bij verschillende itemlevels.

images/aion2-alt-guide.jpgThe alt guide window explaining what is shared and what is not
The alt guide.De altgids.
W.05

Themes and backupThema's en back-up

There are six themes: Aion (steel and gold, the default), Paper, Lamp, Slate, Mist and Pixel. Everything can be exported and imported as a backup from the More menu.

Er zijn zes thema's: Aion (staal en goud, de standaard), Paper, Lamp, Slate, Mist en Pixel. Alles kan als back-up geëxporteerd en geïmporteerd worden via het Meer-menu.

images/aion2-themes.jpgThe board in the Aion theme and in the pixel theme
Aion and Pixel themes.Aion- en Pixelthema.

03Under the hoodOnder de motorkap

One file. A single static HTML file with inline CSS and plain JavaScript. No build step, no server, no account. State lives in the browser, so anyone who opens the page gets their own board.

Eén bestand. Eén statisch HTML-bestand met inline CSS en gewone JavaScript. Geen buildstap, geen server, geen account. De staat staat in de browser, dus iedereen die de pagina opent krijgt zijn eigen bord.

Resets. The day and week are computed from a reset hour in UTC (07:00 by default), with the week turning over on Wednesday. Pools such as nightmare keys and Shugo keys accrue per reset up to their cap, so the board is correct even after a week away.

Resets. De dag en week worden berekend vanaf een resetuur in UTC (standaard 07:00), waarbij de week op woensdag omslaat. Voorraden zoals nightmare-sleutels en Shugo-sleutels lopen per reset op tot hun maximum, dus het bord klopt ook na een week afwezigheid.

Events. Event times are defined in UTC, and events that follow server time use the Europe/Berlin offset so daylight saving is handled. Alerts use the Notification API, a Web Audio beep and a flashing page title. The pop-out tracker is the same file opened with a tracker mode.

Events. Eventtijden zijn in UTC gedefinieerd, en events die de servertijd volgen gebruiken de Europe/Berlin-offset, zodat zomertijd goed gaat. Meldingen gebruiken de Notification API, een Web Audio-piep en een knipperende paginatitel. De pop-outtracker is hetzelfde bestand geopend in trackermodus.

Data. Limits and event times come from community guides and sites that read the game files for the Global launch, so they can change with patches.

Data. Limieten en eventtijden komen uit community-gidsen en sites die de gamebestanden uitlezen voor de Global-launch, dus ze kunnen met patches veranderen.

Testing. I checked the reset and event logic in a headless browser with a mocked clock, so I could jump to a Wednesday or a daylight saving change without waiting for it.

Testen. Ik controleerde de reset- en eventlogica in een headless browser met een nagebootste klok, zodat ik naar een woensdag of een zomertijdwissel kon springen zonder erop te wachten.

04How I built itHoe ik het bouwde

The code was written together with an AI coding assistant (Claude) over many sessions. My part was knowing the game, deciding what matters, testing against my own play and steering the design.

De code is samen met een AI-codeerassistent (Claude) geschreven, over veel sessies. Mijn aandeel was het kennen van de game, beslissen wat ertoe doet, testen tegen mijn eigen spel en het ontwerp bijsturen.

I told the assistant what I needed in plain language, and reviewed each version on my own screen. The first version was too busy. I said so, and we rebuilt it calmer, with one character at a time and only the open tasks. From then on it was small steps: a timer I could pin, a to-do with sub-tasks, a clock that shows how long I still have to join an event. Each change was something I actually missed while playing.

Ik vertelde de assistent in gewone taal wat ik nodig had, en bekeek elke versie op mijn eigen scherm. De eerste versie was te druk. Dat zei ik, en we bouwden het rustiger opnieuw, met één personage tegelijk en alleen de openstaande taken. Daarna ging het in kleine stappen: een timer die ik kon vastzetten, een to-do met subtaken, een klok die laat zien hoe lang ik nog kan meedoen aan een event. Elke wijziging was iets wat ik tijdens het spelen echt miste.

05Challenges and what I learnedUitdagingen en wat ik leerde

Four short stories.

Vier korte verhalen.

The Daily Dungeon is weeklyDe Daily Dungeon is wekelijks

I first modeled the Daily Dungeon as a daily. It resets weekly. I caught it by checking the resets across several sources instead of trusting one.

Ik modelleerde de Daily Dungeon eerst als daily. Hij reset wekelijks. Ik ving het door de resets bij meerdere bronnen na te kijken in plaats van één bron te vertrouwen.

Lesson: verify against more than one source, and write down what stays unconfirmed.

Les: controleer bij meer dan één bron, en schrijf op wat onbevestigd blijft.

Two pools of keys, not oneTwee voorraden sleutels, niet één

Shugo keys looked like one pool. There is a server-wide pool and a separate per-character pool, with different daily gains and caps.

Shugo-sleutels leken één voorraad. Er is een voorraad voor de hele server en een aparte per personage, met verschillende dagelijkse aanwas en maxima.

Lesson: always ask what is shared and what is not. It is the question the whole tool is built around.

Les: vraag altijd wat gedeeld wordt en wat niet. Dat is de vraag waar de hele tool omheen is gebouwd.

Server time is not my timeServertijd is niet mijn tijd

Events follow the server clock, and Europe has daylight saving. A fixed offset would be an hour wrong for half the year.

Events volgen de serverklok, en Europa heeft zomertijd. Een vaste offset zou een half jaar lang een uur fout zitten.

Lesson: store times in UTC plus a rule, and let the platform do the conversion.

Les: sla tijden op in UTC plus een regel, en laat het platform de omrekening doen.

Too busy to useTe druk om te gebruiken

The first version showed everything at once and nothing stood out. A checklist you have to study is not a checklist.

De eerste versie toonde alles tegelijk en niets viel op. Een checklist die je moet bestuderen is geen checklist.

Lesson: show what is actionable now, fold the rest away, and let the person choose the layout.

Les: toon wat nu uitvoerbaar is, vouw de rest weg, en laat de gebruiker de indeling kiezen.

06Known limitsBekende beperkingen

  • Siege, Abyss boss and Arena times are assumed to follow Berlin server time. That is not confirmed for Europe.
  • Limits and event times can change with patches. Check the in-game countdowns when something looks off.
  • Your data lives in your own browser. Use the export button now and then.
  • Siege-, Abyss boss- en Arena-tijden volgen vermoedelijk de Berlijnse servertijd. Dat is voor Europa niet bevestigd.
  • Limieten en eventtijden kunnen met patches veranderen. Controleer de countdowns in de game als iets niet klopt.
  • Je gegevens staan in je eigen browser. Gebruik af en toe de exportknop.

Open the boardOpen het bord