You are browsing as a guest. Sign up (or log in) to start making projects!

DoMax

@DoMax

Joined June 1st, 2026

  • 25Devlogs
  • 6Projects
  • 5Ships
  • 75Votes
A software developer and enthusiast from Lithuania! I'm interested in making passion projects and solving real-world problems that are relevant today. And keeping my codebases tidy :P
Open comments for this post

3h 56m 21s logged

Storytime!

I feel like every project I make I face a similar set of limitations. So, let’s make a recap of the first stage of this project!

Very lucky unlucky day

As usual, I’m facing API issues. I enjoy making app extensions less and less due to restrictive rules they enforce. To make it clear, initially I had a specific set of plans at which my extension would excel compared to others:

  • No timeout logic, instead handling tab switching based on specific key inputs (this will be important later)
  • Save/load tab history from storage for access after restoring tabs
  • Unlimited tab history
  • Indication of the tab that will be switched
  • Ctrl+Tab override

However, only one of those I was able to accomplish, with another one planned for the second stage of this project:

  • Unlimited tab history
  • Ctrl+Tab (planned for later)

Spending a lot of time, I at least made sure the extension functions well, with no memory termination and with each window having its own tab access history.

Why other things failed?

Well at first, Manifest V3 greatly reduced the amount of stuff that can be accessed by Chrome’s API. On top of that, chrome:// pages can’t be anyhow monitored or modified due to essential safety. This posed many issues, one of which was the inability to detect the press of a modifier key, so I had to go one of two ways:

  1. Build an OS-level keylogger which communicates with the extension through an open bridge, but I turned it down because:
    • It’s a threat to security
    • Python on the host computer is required (in order for me to retain a single codebase for each platform)
  2. Or just resort back to carefully adjusted keypress timeouts

I chose the second option.
I spent a whole day trying to save and load tab history, but the problem is that Chrome:

  1. Doesn’t expose any method to etch the data to a saved session
  2. Figuring out when history should be loaded, when saved to disk, and how to conect fast RAM with slow disk I/O is a true pain due to asynchronous nature Chrome is built on

And, any tab indication falls short because Chrome doesn’t have any API to reliably highlight tabs without selecting them.

Next steps?

Next thing I will most likely do is make the provisioning system that overrides Ctrl+Tab shortcut and installs the extension automatically.

The extension itself is memory safe and very useful as is. I don’t plan to update it anyhow besides changing the current branding.

0
0
4
Open comments for this post

2h 6m 38s logged

The bitter truth

What I wasn’t able to accomplish

Due to Chrome’s very restrictive API, there are things that will not be implemented as promised. Things such as:

  • Holding modifier key freezing the queue (instead, I resorted to using timeouts)
  • Indication of what will be the tab switched

Not all hope is lost!

Having said the limitations of Chrome’s API, I was able to fulfill these things:

  • Unlimited tab queue (or at least enough for any normal usage, I haven’t pushed the extension to the limits of RAM usage)
  • Intuitive usage (timeout seems appropriate, and the extension works)
  • Clean and modern development flow

What’s left to implement before moving to provisioning?

Before I start coding the Python applet that would provision this extension, I want to also solve these problems:

  • Implement restoring tab order upon closing and reopening the browser
  • Adding any newly added tab to the top of the queue
  • Fiddle around with timings to find what’s the best for intuitive usage that doesn’t get in the way
0
0
2
Open comments for this post

47m 35s logged

A new project begins!

What’s it about?

I’m sick of not being able to switch recent tabs in most of Chrome-based browsers! And the problem with the existing extensions is that they don’t memorize more than 5 tabs, and use a timing-based system, which requires very fast shortcut tapping. I’m on a mission to change this.

How will this extension differ from others?

On top of my goals of making an unlimited tab queue and fix the timing issues, the extension will be 100% free and open source, also I don’t plan to release it on any extension store, because I have a different install method in mind.

How will I install it then?

I want to make a beautiful Python CLI or GUI wrapper that installs and provisions the extension. Things like:

  1. Ctrl+Tab shortcut setup
  2. Installation
  3. Information on what will be changed inside the system

Will all be shown and handled by the installation app


Stay tuned! If I succeed it will be a very nice extension for everyone and every machine!

0
0
4
Ship ✨ Blessed

After hours of intense rebuilding DoMax.lt, which was left untouched for almost a year, I managed to make it rise from the dead! This isn't your average, boring portfolio. Instead, I tried to house 12 unique projects and 14 exceptional blog posts that document my chaotic reality of building things.

From the highs of creating Matcha Linux and the tactical board game Onlinja, to the brutal honesty of how corporate APIs killed EchoTuner, DoMax.lt captures just how wild can turning ideas into real life get. This site also vaults valuable lessons from my projects that flopped you can't get anywhere else.

The entire website is fully decoupled, lightning-fast, and 100% free, open-source and forkable via GitHub so you can start building yours too!

  • 6 devlogs
  • 21h
  • 11.58x multiplier
  • 287 Stardust
Try project → See source code →
Open comments for this post

7h 2m 46s logged

The End?

After 7 hours and endless memories

After spending more than 7 hours , completing the library (which now consists of 12 unique projects and 14 amazing blog posts) and upgrading the viewing experience by MUCH, I can finally state that DoMax.lt is finally COMPLETE!

Of course, complete or not, blog library will continue to grow over the years.

Honestly, I feel very relieved about the fact that my own site now houses my greatest achievements with crazy stories to share, as new posts are written in a format of a memory tale.

I’m hoping the world is going to lean towards Open Source more and more.

What new blogs were added?

Posts and project descriptions for Matcha Linux and Onlinja are out!

I also remembered other successful projects I’m very proud of. One of them caused a snowball effect and started the biggest cross-class collaboration from students’ initiative my school has ever seen. I must mention that it was the first cross-class IT project, and heavily promoted by our school, so you might want to read about it here.

If I like the theme, can I fork it?

Yes! Like each and every one of my projects (like any other true open-source project) this is forkable, and even has instructions on how to make it truly yours. Check my site’s GitHub to learn more!


Visit DoMax.lt and see how ideas or strangest situations turn into real projects!

0
0
5
Open comments for this post

3h 37m 32s logged

Unexpected turn

A shift?

In the last devlog I told you I’d make posts about Matcha Linux and Onlinja. Well, I LIED, but let me explain:

I remembered that I had more interesting stories to uncover, and had to vent a bit xD

What I wrote about in my latest blog posts:

  • Pebble revival: I was thrilled to find out what the community has done in favor to preserve a smartwatch.
  • School project and beef with Wordpress: How Wordpress caused a very bumpy development journey, and what I’ve learned from it.

That’s it?

Structurally speaking, yes. From a visual standpoint you wouldn’t notice anything… Until you turn on dark mode - the site doesn’t change!

As a temporary solution I now force light mode on my website. In the future I will probably implement proper dark mode.

I also made sure building the site threw no errors I caused. Everything runs smoothly from one end to another.

I also made sure that when browsing a project, menu displays “Projects” as a selected option. Previously it was (for some reason) hardcoded to only be affected when viewing a blog post.

So are you NOW writing about Matcha Linux and Onlinja?

Yes! And then the site will be ready for a ship, with a possible additional blog post about my journey with Hack Club’s Sprig.


My life always results in something unusual and exciting (sometimes in goofy ways). To know more, check out DoMax.lt!

0
0
5
Open comments for this post

1h 40m 31s logged

What rises, has to fall

How a great project can be killed by bigger 3rd parties

Last year, during Summer of Making, one of my largest projects was definitely the EchoTuner - an AI playlist generator. I loved the idea and poured all of myself to it. However, it heavily relied on Spotify’s API that has now become fairly inaccessible due to poor corporate decisions. If you want to see how a project gets killed by a bigger player, read the newest blog here.

Another thing I updated was the About Me page. It features less cheap-talk and something that might actually be interesting to read. I highly suggest you checking it out.

Some visual elements have also been updated to keep consistency with design language (mostly hover events/animations).

Tomorrow I will become a writer

I have big plans for tomorrow. I’ll finally get all the missing bits together to post something about my best pair of projects I have ever made. They are Matcha Linux together with its full suite, and Onlinja, which is the best game you’ll ever play.

If you want to see great execution of simplicity, wait a day or two, a new devlog is on its way!

Is there anything beyond that?

No, I don’t think so. Unless some memory or idea comes to mind, I am not planning to post anything before shipping this site on Stardance.

That said, I already have many ideas for my other projects. We just have to wait! :D

0
0
5
Open comments for this post

2h 59m 55s logged

More uncovered

Quite interesting!

In today’s devlog - new posts! I thought about sharing unheard stories of a flop (Codebase Awareness Protocol) that I made some time ago, with all the reasons of WHY exactly did it fail, as well as a success (Raspbery Pi 1 optimization) and how I utilized an old device that’s in perfect condition.

Both are worth reading! You can click on the links above!

Bugs can’t hide from me!

In addition to 2 amazing blog posts, I both introduced and fixed a very obvious bug.

In attempt to make everything look beautiful, with hover animations, I forgot the fact that this site isn’t still fully decoupled . Some elements, instead of being reused, are coded in-place, without newer styling compatibility. Luckily, when I noticed, the fix was a simple line replacement.

Everything functions as it should, and the site feels more responsive than ever before.

Shaping the site

The site is forming beautifully with more content to come. I’m trying to re-read my old project information and catch memories that are floating around.

The goal is simple yet obvious - try to make reading my journey be fun and appealing.


DoMax.lt won’t stop growing, even after Stardance, so make sure to visit it once in a while! :D

0
0
7
Open comments for this post

3h 15m 45s logged

Something personal

What was I cooking?

Behind the scenes, I have greatly redesigned the About Page and added a new post for the Revival of DoMax.lt!

Within these pages is a more raw look at my technological journey, as well as how the site is going to be updated from now on.

Do I have any quick plans?

Absolutely! I MUST document the deprecation notice of EchoTuner and the challenges of making it.

NOTE: the website might not work at the time you’re reading this, but the auth flow should come back online

Speaking of challenges, one of my most challenging projects so far was Matcha Linux that you can view on Stardance too!

Next will probably come my less-known or failed projects, like CAP, Detention Loop, as well as some of group projects led by me (great example of this is SkyLink)


I think I’ll need some time to think about all of these projects and showcase everything about them. Stay tuned for further updates!

0
0
9
Open comments for this post

2h 0m 7s logged

Back to blogging!

In this devlog: how am I trying to revive my personal page - DoMax.lt!

Here I am again! Back to my personal page that’s quite old at this point. Almost a whole year without posting! Time to change that.

What technology am I using?

I am using Jekyll for page generation. Jekyll’s charm is very simple - it requires everything to be written in Markdown, while the template for a site can just be taken from elsewhere and modified (by editing or adding your own Markdown files). Super useful and super easy for anyone who doesn’t want to mess around setting up a Wordpress machine, but loves to tinker a bit.

THAT SAID - modifying the themes can sometimes be painful, as they’re not frequently updated. I got lucky - my chosen template wasn’t too cluttered up, but I remember having to put in some work to clean and update it to a usable, production-ready state.

The thing I am happy about though is my Docker workflow. It’s very convenient - lets me preview my page after editing anything locally. And rebuilds the container extremely fast too!

Since I said it’s not a new project, well then what IS new?

Glad you asked! I always missed a “Featured Projects” section and I want to shape this site not only for projects, but also standalone blogs. Now it was shaped to act only as a project showcase, but there are other things I’m passionate about.

What exactly am I planning to add next?

First of all:

  1. My pile of projects that I have finished to a usable state, but never showcased. They deserve more attention.
  2. A couple of blogs. I recently discovered that the old model Pebble Steel still works due to massive preservation efforts and I’m looking forward to getting the new Pebble Time 2, whch is a part of the reboot, also some Raspberry Pi and Alpine/Matcha Linux findings.

And the rest we’ll see about!


To follow my journey, don’t forget to visit DoMax.lt and the other projects I am hosting or making :D

0
0
5
Ship

This is Onlinja, and it's probably one of the best "easy to understand, hard to master" board games you will ever play. It's built as a passion project, taking the game Linja as inspiration, but adapting it to be accessible anytime, anywhere!

This is the second ship and it focuses entirely on making the most out of this app as possible, without making it feel janky.

New additions are heavily impacted by community's own responses to what should be improved, such as clearer indication of turns, tutorial progress saving, and a bit of my own additions, such as the Settings tab and Post-Game Statistics.

While the game itself was kept true to its original core look and feel, the codebase underneath was heavily redefined! With new architecture decisions and SoC (separation of concerns) implementations, now it's not only easy to expand the code, but easy to use in-person too!

I really hope you will like this project and show much support for it. Let's grow a beautiful and open source world together!

  • 3 devlogs
  • 23h
  • 17.29x multiplier
  • 394 Stardust
Try project → See source code →
Open comments for this post

8h 53m 48s logged

You want it, I got it!

How feedback from the community helped me improve Onlinja

When I shipped Onlinja, I did not think about much. I had plans, and I still do, but the most important direction this project went to, I think, is the direction real users wanted the project to evolve in.

I am super glad that the community’s notes are actually reported back to the developers. And, to my surprise, many opinions were highly similar. This shows 2 aspects:

  1. I am doing something well, when most of the personalized reviews say they love the same features.
  2. I missed some crucial points, when the same reviews point out similar improvements to be made, even without knowing what others pointed out.

Happily, I wasn’t lazy and I read through the opinions. Not only did they make my heart warmer, but also shown that I was not moving forward with the right features.

What exactly did I improve?

Although the UI/UX experience was regarded as one of THE best by some, it lacked one thing - clarity when playing. Whose turn was it? No clear indication when a turn changed if you didn’t notice small text changing in the header when staring down to a monitor for minutes straight. This is now fixed.

Also, a very simple addition included a “save and resume” feature within the tutorial. Now, even if you refresh the tab or browser crashes, you can’t lose tutorial progress!

What won’t likely be implemented and why that makes me sad

All of the things I said seem great - feedback-based improvements, better clarity and quality-of-life updates that make a project be worth the time spent creating it. But the 2 features I wish I could’ve added were:

  1. BotLabs (custom bot maker)
  2. Post-game analysis (like in Chess.com)

First feature was impossible to make the way I wanted due to how the game’s layout is constructed. I sacrificed this feature for a better overall coding experience. It’s not as vital for the project to live, but sad that I could not implement it.

The second feature was entirely possible, but very difficult to plan out. What should be the data flow? What controls what? That led to me making a compromise - post-game statistics, that tell you these things:

  1. How many moves each player took?
  2. How many extra turns each player got?
  3. How many pieces ran all the way to the opponent’s base?

And I think it’s a fair update :)

In conclusion

I am very pleased with the reviews and Stardance in general. I get to create what I love and share it with people who might love it as well. I am happy that the feedback made me grow stronger and I am thankful for every single person that helped me improve this project anyhow, opening my eyes on what were the real issues.


This project is one of my most ambitious yet, and if you want to check it out, the latest version is out at Onlinja’s official site!

If you can, also follow me and star the project on GitHub!

0
0
2
Open comments for this post

8h 38m 36s logged

Control and power - that’s all that I’m after!

This devlog brings new ways to control your experience with Onlinja not only as a user, but also a developer.

Great news all along!

With the latest update in Onlinja, new systems have launched:

  1. Settings System: A system where you can tweak your settings and default preferences for when you launch the app (also, replay the tutorial, as the old dedicated tab is now gone).
  2. Tab System: More important for developers, but now the development of Onlinja can speed up significantly because of a convenient tab making system.
  3. Major Architecture Overhaul: By working on the imports and general structure, the codebase can feel free of 400-lined files that choked the app.
  4. New Animations: Although it’s a side effect of that new Tab System, it makes the tab animations feel consistent, and the UX undoubtedly better.
  5. Mobile app issues fixed: Even when a dedicated app is not Onlinja’s primary choice for delivery, I will not abandon it as that’s why I picked React Native instead of normal React (this, and animation issues with normal React). So, now the mobile port functions almost exactly as intended, but if you want to have the designed experience, and are a fan of dedicated apps, you can always click “Add to home screen” in your browser!

That sounds great! What about BotLabs?

BotLabs are currently in the works. I am still thinking about how to make the architecture right and the UX smooth, but they’re soon to be implemented, letting users customize bots and make Bot vs Bot matches or have personalized bots to play against.


A playable demo is live with latest changes! Check out Onlinja’s official site!

0
0
10
Open comments for this post

5h 14m 26s logged

PWA and updated experience

That’s right, now you can enjoy Onlinja as a pseudo-standalone app!

By finally implementing PWA (Progressive Web Application) support to Onlinja, you can simply install it from any mobile browser.

Updated experience? What’s it about?

This update features several enhancements:

  1. The tutorial was revamped to be easier to follow for anyone. This means no more confusing terms and big text chunks where unnecessary.
  2. The app is now excluded from any dark mode settings (possible that some rare instances might change the color scheme, but popular plugins and systems should not alter any styling).
  3. Slight performance and UX tweaks to make the game feel smoother.

Any more updates planned?

Yes! I want to implement an analysis tool to every match or “Bot Labs” where everyone can tweak bot parameters and experiment with the algorithms freely. A second ship should be issued when these are implemented. Online crossplay isn’t in any of my near-future plans.


A huge thank you for everyone that supports, tests and anyhow helps me build this project!

0
0
8
Ship

After gifting Linja game to my dad on father's day, I fell in love with it. And I thought to myself - what if there was a digital version?

There was none when I started working on the project, so I decided to give it a shot myself.

Just imagine - two players face off across eight parallel lanes, calculating every shift in momentum, where one misstep can cause the opponent to leap past. A game, where you need to balance your positions and plan your moves. And, of course, have fun!

Inspired by the classic board game Linja, Onlinja brings minimalist, tactical warfare straight to your pocket.

Onlinja features Aggressive (one piece moves twice) and Strategic (two different pieces move) gameplay modes, smart UI, bots, and a lightweight mono-repository utilizing React Native/Expo for the frontend, plus a way to both learn the game and play with your friends, not only against highly competitive bots.

This game is very portable, as it was designed to be responsive to your screen size.

You can try out the Live Demo instantly at https://onlinja.domax.lt

Happy playing! I hope you enjoy this game and become a fan of Onlinja yourself!

  • 5 devlogs
  • 29h
  • 19.24x multiplier
  • 552 Stardust
Try project → See source code →
Open comments for this post

9h 49m 22s logged

How to play this game??

Great news! No more wondering of how this game works!

Today I implemented a fully working tutorial system to Onlinja, and it tells everyone about any aspect of the game you could think of. Onboarding will be really easy now!

What do I see there? A ship?

Correct! Only a good README, logos and deployment left until a ship can be made. The rest of time will be dedicated just for that.

What about standalone, non-web builds? This is React Native!

Well, I have some good news and some bad news. Good news is that when I tested it, the standalone app build succeeded. Bad news is that it’s full of visual bugs and inconsistencies with the web build. So web builds will be the primary target of this app before I dedicate a separate week just for transformation to a unified solution. But I see no priority for this as web builds work wonderfully!

0
0
5
Open comments for this post

7h 10m 1s logged

A very friendly update!

Want to play Onlinja with your friends? No problem, not anymore!

Today I finalized implementing the Pass & Play mode, together with some UI and bot logic enhancements. Gameplay is smoother than ever, offering a very pleasing experience!

UI upgrades? Finally!

After many thoughts of making the game not feel like a slideshow with very static-feeling updates, this devlog’s changes also include a whole new animation overhaul! With fade transitions and more movement the app finally feels responsive.

Anything more?

Yes! An architectural refactor and a bot logic upgrade was issued. This makes the game both easier to develop and the bot less prone to errors. Previously, if the second move of a turn was illegal, the bot (and the whole game) had no way of knowing and would just freeze. Today it’s been fixed!

So, when’s the ship?

Soon. Only thing left is a tutorial before playing to easily onboard everyone. As expected, I can’t dedicate myself fully towards this project and the first ship won’t include any networking code. But it might include an analysis tool inspired by chess.com, so stay tuned!

0
0
5
Open comments for this post

3h 9m 5s logged

A bot-tacular evening!

What’s new in today’s devlog

Finally I have implemented a working bot within Onlinja - it’s configurable, and damn it plays well!

The reason it can be so competitive is because it uses a deep-search minimax algorithm, always assuming you make the best move and making the best move itself (with some randomness sparkled on top). Also, it reacts to awards, where more benefit created for itself through several moves, even if 2 distinct move sequences create same amount of value in points, is valued higher for the bot. This helps create insane accuracy, exploitation of game features and more!

Note: there’s an easter egg hidden somewhere in plain sight, try to find it!

Next steps

Aside from the bot, I made the game capable of receiving different controller settings. A controller is the setting of who controls your opponent, current available settings being HUMAN, BOT and SERVER (for future implementation).

As the next step I’m planning to make a local one-phone mode to share like a physical board across 2 people.

Also, a pre-game tutorial awaits.

I’d very much love to implement more whacky gamemodes, that would include powerups, more configuration, different piece setups and more. But I am not sure how much time that would cost me.

Conclusion

With the first ship of Onlinja coming closer everyday, I am trying to make the user experience as polished as can be. I really hope everyone playing will enjoy this game as much as I do!

0
0
4
Open comments for this post

5h 22m 22s logged

User interface has been implemented!

The good

After long hours of development, countless design choices gone through and many thoughts of how to structure the project, its base has been laid and it finally features a working UI with an easy to understand UX.

The bad

It wasn’t easy to set correct boundaries and enginner instructions for AI in a way that it doesn’t have too much freedom hallucinating. After many iterations of edits within AGENTS.md file I hope it won’t eat as much time ever again (but I don’t know). Even though everything seems fine so far, nothing is promised this early in development, and the instruction document may change.

What does the current code offer?

In the current version of Onlinja players can’t do much - only play with themselves. This was done just to show off how the game will look.

Next devlog will most likely include the full bot implementation.

What are my further plans?

The first ship most likely won’t have any networking code (unless I can learn websockets within the next 5 days), but will offer a human-like bot.

Subsequent ships will offer enhanced online capabilities, accounts, leveling, and friend systems, as well as an anonymous mode. I want to make the game similar in mechanics to chess.com - a fully fledged Linja-inspired game, with an online hub!

0
0
6
Open comments for this post

3h 11m 42s logged

Today I started working on my project Onlinja!

Storytime

When I was searching gift ideas for father’s day I suddenly thought of board games. He loves them! And was learning chess at that time too.

Having no exact ideas in mind, I went searching. Many games were too complex for me to teach, and I wanted that game to be 3D-printable.

I stumbled upon Linja - an abstract and simple strategy game for 2 players. It’s no too popular, but I fell in love with it, made 3D files myself and printed it out! After gifting it, I feel like it’s very much underrated, so I got an idea!

The idea

The idea is simple - making a local bot and online application that lets anyone enjoy a Linja-inspired game from their phones and browsers!

The plan

The plan is to take React Native and target web, Android and iOS builds of the app, code a server architecture and a bot algorithm.

Why’s it a great project?

Not only will I be able to develop my skills in agent harness engineering, testing, web deelopment and websockets (things I haven’t touched yet), but the completed project will be fully functional and entertaining!


I have nothing to show off yet, as only the initialization stage is being completed, but I will update you all as soon as I finish doing something!

0
0
3
Loading more…

Followers

Loading…