« Home



September, 2018 - December, 2019




Rust, JavaScript



I created AbstractML in 8th grade, at the age of 14. Thus, its code quality falls below my current standards and remains unmaintained.

AbstractML marked my first open source project, attracting over 16,000 weekly visitors and 135 GitHub stars during its peak.


AbstractML arose with two main goals: to help newcomers to open-source software make their first contributions and to provide a way to develop web interfaces with a cleaner, more user-friendly syntax than HTML.

To achieve the first goal, helping beginners and more experienced programmers join the world of open-source software, AbstractML came with clear-cut contribution guides and examples, rich documentation, and a welcoming community.

For the second goal, I designed AbstractML without the parts of HTML I most hated at the time: dense clumps of text, numerous opening and closing tags, and the need to squeeze attributes between tags and text. To enforce this, the compiler allows for one tag per line and a strict grammar dictating indentation, attribute placement, and other formatting.