Cover Image for Revolt

Revolt

·

11 min read

Revolt is a React Native mobile application built with Expo that helps electric vehicle owners find nearby charging stations, plan trips with charging stops, and manage reservations seamlessly. (anneryeo/Revolt)

Co-created with Simonee Ezekiel (co-full stack dev), Regina Galfo (researcher), Nathan Mercado (researcher/data analytics dev), and Mark Ilagan (team lead, UI dev, researcher).


Getting started

24 hours to build it. 12 months to prove last year’s 2nd place was just the warm-up.

Last year, I joined Meralco’s IDOL Hackathon 2024 with barely any knowledge outside Python, Data Analytics, Machine Learning, the likes. I was still proud of what we did before, and even more so that I won at my first hackathon! Albeit 2nd place, my previous team and I still developed a useful solution—SmartGrid. But I was so nervous all the time, everyone knew how to develop web applications, and I was stuck with Jupyter Notebook, .py scripts, Tableau, and a dream.

SmartGrid ran short in development capabilities. I barely had a grasp on APIs and algorithm implementations, so my smart meter grid overload predictive analytics was creative at the time, yes; but it could’ve been better. The contenders were really amazing at the time too… so it made sense to be in the standing where I was then. (Hi Nico, Dhan— my podium batchmates) I was unprepared and honestly fresh out of a club.

This year I came back, sort of a way to see if I grew from who I was before… So, this is the story of the 24-hour sprint that finally let me beat last year’s version of me.

For the past year, I grinded a lot. I started studying systems architecture, AI modeling, algorithm solving.

Actually, re-joining the hackathon this year wasn’t in my bingo card. I didn’t really have anyone in mind to team up with, nor did I have a solid idea of what I wanted to build. There was, however, this gut feeling that I’ll be back. And that’s when Simonee messaged me on Facebook asking if I was joining, because their team is looking for one more core developer.

Don’t get me wrong, I love my team. But the first time we met, I felt so out of it. For one, I was a recurring participant, and a winner at that. Most would think it’s weird to re-join if you’ve already won. Worrying about how I would look like if I didn’t get to the podium at all, or if I was going to be stuck in 2nd place, or below. It’s valid. But I never really thought about it deeply... it was more of a; it is what it is thing. The second factor was that I was the only Mapuan in the team filled with UP students. It felt both an honor and a sort of horror. What if I underperform? What if I’m treated like an outsider? What if they expect too much from me because I won, and now I can’t deliver? The doubts were loud.

But soon enough, we got into our first meeting and the doubts just… disappeared. They were all nice, they were all smart. And we all discussed like equals, efficiently. Which contributed to our easy delivery and project write-up for the qualifications for this year’s hackathon. When deliberation day came, we were all nervous of being accepted or not, it was so funny honestly. I thought that I guess this is a better fate than losing on stage (denial).


The Hackathon Proper

Moving on to the day of the hackathon proper was another thing. I hadn’t been to the Meralco compound in A YEAR, so I got completely lost again when navigating their gates outside. I initially listened to my sister’s advice about dropping myself off at SM Megamall and attempt walking, but my bag was so heavy (darn gaming laptop), I couldn’t take it. So I had to book again, but this time an Angkas instead of Grab, so I can head to Ortigas Avenue faster (and cheaper). But in my haste I didn’t even get to double-check the gate pinned! And it was hard to turn around in Ortigas Ave. so I still had to walk after all… it was a stressful start.

Eventually I finally got to meet my team. Mark and Regina were already seated there, our other two teammates were running late since ‘Monee was still commuting from Los Banos, and Nathan had just finished an exam. The hackathon started at 9 AM, and I arrived around… 11 AM?

Everyone was already building and I’m there still wiping sweat off my forehead. And get this, with my full duffel bag, I forgot a single thing so important too. My adapter!!! I also had to run around asking the IT department if we could have an extra socket so I can charge my laptop… talk about a headstart.


The 24-hour sprint

Hour 0 to 2 (9 to 11 AM): Just got settled in.

Hour 3 to 7 (12 to 3 PM): Initializing repository and beginning the base of the React prototype set-up. The screens we needed based on the Figma UI design, talking with roaming employees, listening to their advice, doing extra research based on their suggestions to check out the regulations set by the Department of Energy (DOE). Setting up the pseudo-connections, actual connections, etc.

Hour 8 to 13 (4 PM to 8PM): We were still learning how to work around each other. GitHub branches, version controlling, me not understanding Mac, ‘Monee and Nathan arrive, we add more features, ‘Monee and I get to finally divide the primary development work.

Hour 14 to 19 (9 PM to 2 AM): Some hours in between, we were taking breaks, eating dinner and snacks, discussing what else needed to be done, etc. by 12 MN, Mark and Reg were prepping for the presentation by 9 AM. Also by this time, most of our UI and the prototype was done.

Except mine!!! Because systematically thinking about and actually executing the routing system that allows stop-overs whilst implementing a pricing system based on the distance, car make, hypothetical volt usage per charging stations (which also have their own types), was a lot. I based on existing routing APIs, but had trouble further working it out for our specific use-case. Which is probably why kuya Caloy was asking me how I plan to do it, haha.

It was also around this time that Mark managed to convince the rest of the team (except ‘Monee who was passed out on the couch) to put on some moisturizing masks after we freshen up for the night. I couldn’t be more grateful for it aside from his Chagee treat earlier. I think it was during this that I genuinely felt close with my team, it was a very fun experience! I don’t think anyone else would even think of openly vlogging and doing a whole skincare routine during a hackathon hahaha.

Hour 20 to 24 (3 AM to 9 AM): Last stretch! I was getting really tired and I still haven’t accurate done the routine system. The problem was the existing EV charging stations from OpenChargeMap wasn’t enough, I had to make fake parameters such as faster battery degradation just so that planning routes would actually suggest more stopping points. And we didn’t really have an actual EV API to base on, so I went with a standard Tesla Model 3 2023, Long Range EV. And then now there weren’t enough compatible chargers, and it’s just— a lot. Then even more chaos happened when we were all having problems with running the app on Expo Go, or having problems with merging our working branches on main due to merging conflicts.

Buuuuut, we managed to pull through.

Of course, the routing algorithm I pulled off isn’t near perfect, if at all doing what we intended. It just did… enough. Enough for us to pitch, and enough for me to understand that I grew, but I need to grow more.

We generated random sequences of charging stations alongside existing stations from OpenChargeMap so that we can exhibit cases where user, for example, wants to travel from Baguio to Manila and make sure that they can keep their electric vehicle adeptly charged. I’ll elaborate on the algorithms and technicalities in its correct heading. For now, let’s get on to judging!


Judging Hour

We got on that stage, I was thinking… will they recognize me? Will people look at me and say, that’s a person who’s come back for another run. And that can be good, or bad. Nathan was our opener, and I was the product demo presenter. It wasn’t bad, and I was proud of the product. But I’d have to admit that we went faster than we intended to at the time, but that was mostly because of our limited allotment to present.

The chair of judges were:

  • Ralph Menchavez: VP and Head, Commercial Strategy Management and Energy Solutions at Manila Electric Company. EV Adoption Program Manager.

  • Erzil Kho: SAVP & Head, ICT Governance Head at MERALCO; focusing on Risk Management, Asset Contract, and Vendor Management and Process and Performance Management

  • Jojo Reyes: Professional Electrical Engineer, MSEE, Vice President at MERALCO, Chairman of AESIEAP TWG on Smart Grid & Asset Mgmt, taking up PhD EEE at UP Diliman.

I had my share of experience with Sir Ralph and Sir Jo from my past run, and if I impressed them before, I needed to impress them again now. But I guess the biggest difference was that this time, I felt like I wasn’t standing lonesome. Funny or not, Team Koryinti made it all feel vastly different.

After our presentation, you know the first thing Sir Ralph told us?

How much?

Which in startups, businesses, basically translates to: “I’d actually pay for this.

It was phenomenal. That was it. But it made the whole team ‘lax and happy. And it was the fuel for me to really think of Revolt as not just a contest entry, but as a startup that I can add next to Clinivue (whose currently on hiatus). Suffice to say, I was also happy to know that they did recognize me again.


For the tech-heads… what really is Revolt?

Revolt is a full-stack EV charging platform that works for everyone — from someone with one home charger to nationwide charging networks.

Who It’s For and What They Get

Solo / Private Owners

  • List your charger in <5 minutes

  • Set your own price per kWh and connection fee

  • See every booking and exactly how much you earned

  • Get paid automatically (you keep ~97–98 %, we only take a tiny commission + ₱30 flat booking fee)

  • Zero paperwork, zero subscriptions

Enterprises and Large Networks

  • Manage hundreds of stations in one dashboard

  • Role-based access (ops, finance, admins)

  • Dynamic pricing rules, connector priority, fleet policies

  • Full revenue split visibility and automated payouts

  • Export everything to your existing BI tools

The Driver Experience

  1. Enter destination → Revolt pulls a real route (OpenRouteService)

  2. App scans for chargers along the exact corridor

  3. Smart optimizer picks the best stops based on:

    • Your car’s real charge curve

    • Charger speed vs price

    • Your preference: fewer stops (longer charges) or more stops (faster ones)

    • Guaranteed minimum arrival battery % you set

  4. See total trip time, total cost (energy + fees), and exact charging duration at each stop

  5. Tap to reserve a specific connector for a 15–30 min window

  6. Pay once, get a QR code, scan on arrival → charging starts

Everything is reserved, so no more “charger hogging” or arriving to a broken/unavailable station.

Business and Analytics Dashboard (Actually useful, but only current integration are usage line graphs per region)

  • Live utilization graphs (by hour/day)

  • Revenue breakdown: energy sold, connection fees, booking fees, our commission

  • Repeat-driver tracking and churn signals

  • “Where should I put the next charger?” recommendations based on unmet demand

  • One-click export or API access for big operators

  • Simple monthly payout PDF for small hosts

Tech Stack (Quick Overview)

  • Mobile app: React Native + Expo

  • Maps & routing: Mapbox + OpenRouteService

  • Charger data: OpenChargeMap + our own curated list

  • Backend: Node.js microservices (routing, reservations, payments, analytics)

  • Payments: Secured gateway with automatic split payouts

  • Everything designed to scale horizontally in Docker/K8s

Current Status and What’s Next

Built from scratch in a 24-hour hackathon and actually won 1st place. It’s open-source: github.com/anneryeo/Revolt — feel free to star, fork, or… roast the code.


What’s in for Revolt’s future?

If I were to think of a roadmap if I want to develop Revolt more…

  • Short-term: better route projection, deterministic mode (no randomness), cleaner code

  • Mid-term: fleet accounts, dynamic pricing, station-side mobile app for hosts

  • Long-term: SSO, SLA dashboards, deep BI integrations for enterprises

I think this is a really great idea to pursue as a startup, something I’ll have to consult with my team, and possibly in the future— Sir Ralph. For now, this is our mini contribution to making the Philippines a little greener 🌱

Last year’s 2nd-place trophy is now my metaphorical phone stand. This year’s 1st-place trophy… it’s out there to remind me, “Never stay the same person for 365 days.


With Revolt, let’s charge the future — one perfectly reserved connector at a time 🌱⚡️

— Anne Reyes (RYEO LABS) & Team Koryinti (Still not over Sir Ralph’s “How much?”)