Skip to content
Magenta Ong.

more of what I madeExperiments / 2023—now

Miniprojects

Small builds, weekend experiments, and things I don’t think are full projects. Some are genuinely beginner stuff, some have hidden gems, and a few may get picked up again when I feel like it. Also forgive the cringe (if any).

Project index

Filter by tool

01 · Feb 2025 · Done

Movie Maybe?

A responsive movie search app with live trending data, debounce-optimised search, infinite loading, and Appwrite integration. I built this while following JavaScript Mastery on YouTube, then used it to understand how API-heavy React apps stay responsive.

React · Appwrite · Vite · TailwindCSS

What this taught me
  • Debounce stopped being an abstract optimisation once every keystroke was hitting the movie API.
  • Appwrite was enough backend for the small amount of data this app actually needed.
  • Infinite loading made me think about empty, loading, and failed states instead of only the happy path.

02 · Mar 2026 · Done

Is It Vegetarian?

A small React app that uses the OpenFoodFacts API and barcode scanning to check whether a food product is vegan, vegetarian, sattvic vegetarian, or neither.

React · Vite · TailwindCSS · OpenFoodFacts API

What this taught me
  • OpenFoodFacts is useful, but the ingredient data can be incomplete or super inconsistent, if I want this to be useful I'll have to likely include the contributing to OpenFoodFacts API in the app itself..
  • Camera permissions and barcode scanning behave differently enough on mobile to deserve real-device testing.
  • A confident wrong answer is bad, we don't want that.
  • OpenFoodFacts is not that useful for common Singapore products..to expand this I'll likely have to look into how apps like My Fitness Pal does it.

03 · Apr 2024 · Done

Calculator

A vanilla HTML, CSS, and JavaScript calculator from when I was just starting out. Tiny project, but it made DOM events feel less abstract.

HTML · CSS · JS

What this taught me
  • The DOM stopped feeling theoretical once every calculator button had to update one shared display.

04 · Oct 2025 · Done

Fragments Of You

A simple point-and-click visual novel inspired by Yoko Ogawa's The Housekeeper and the Professor. It explores memory, identity, and what people leave behind.

Godot

What this taught me
  • Godot scenes clicked once I treated each room and day as a piece I could swap instead of one giant level.
  • Area2D signals kept the point-and-click interactions much less tangled than checking everything manually.
  • I somehow.. didn't manage to resize the Area2D properly to different screen sizes? Which I think fked up the game a bit..

05 · May 2025 · Done

Customising my own shell

Learnt enough shell scripting to add folder:branch formatting to my terminal prompt and a commitlog helper that shows the latest 5 git commits.

Shell · Bash · Git

What this taught me
  • Customizing the shell prompt using PS1 to display directory and Git branch information
  • Writing shell functions and aliases to automate git-related tasks
  • Using basic Bash scripting techniques such as variables and command substitution

06 · Dec 2023 · Done

Naruto Landing Page

Back when I had just learnt CSS and decided to make a landing page for Naruto. Looking back at it is humbling, but in a good way.

CSS · HTML

What this taught me
  • Responsive CSS, difference between class and ID selector
  • 3D transform styles and CSS gradients
  • I learnt a lot of CSS here.

07 · Apr 2024 · Done

Flip It!

Press the button to flip the bottle. That’s literally it. I made this to learn useState and useEffect; it was one of my first React and Tailwind projects.

React · Tailwind

What this taught me
  • Understanding when to use inline styles vs Tailwind classes for animations
  • Managing time-based animations using useEffect and intervals
  • React state and event handling
  • I'm realising that I might not enjoy CSS as much as I used to.. cause I tend to forget it quite often T^T

08 · Jun 2026 · Still working on it

Obby

A Python CLI that reads markdown notes and turns them into a TODO list. I started it while exploring MCP servers and local LLMs, then kept making it more deterministic because I did not want the LLM to be the first tool for every tiny task.

Python · CLI

What this taught me
  • Python CLI tooling and file parsing
  • Designing deterministic task extraction before using LLM fallback
  • Exploring local LLMs and MCP server ideas