At some point the browser became too capable to ignore. My path to the web was an unusual one though: instead of leaving Pascal behind, I compiled it — via Smart Mobile Studio and DWScript — straight into JavaScript. The results are on the Web-Apps page.
Cards
Cards started with an honest admission: I enjoy relaxing with solitaire games, but after a while I always end up thinking about the logic underneath and how to automate solving them. So I wrote my own — an HTML5 web app inspired by gamedesign.jp’s “Card” game, playable online, with an Android version in the Play Store. The randomness keeps it honest; the solver keeps it interesting.
Lollipop
Lollipop is my favorite kind of software: invented together with my son. We came up with a paint-by-numbers game where the numbers can only be obtained by doing calculations — and it quietly boosted his addition, subtraction and multiplication skills into the thousands range. Creating the puzzles by hand cost real time, so naturally I wrote a generator that produces an SVG “Lollipop” for any desired word.
Ports and bridges
The Minesweeper game logic from the mini-games era was ported to JavaScript with Smart Mobile Studio, and a lot of supporting work happened around this bridge between worlds: a Pascal implementation of the HTML5 canvas, ts2pas for converting TypeScript definition files into Object Pascal headers, and JavaScript ports of my SOFA and HDF file libraries (WebSofa, WebHdf).
Looking back, this era was the hinge: the moment web technology entered my toolbox and never left. The frontends I build today are TypeScript and React — but they stand on a bridge built from Pascal.