<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Leonal Sigar (Leo)</title>
    <description>The latest articles on DEV Community by Leonal Sigar (Leo) (@leonal_sigarleo_b5ad2c).</description>
    <link>https://dev.to/leonal_sigarleo_b5ad2c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3885977%2F3b4d697c-db87-414c-bf8b-30c2bb43939a.png</url>
      <title>DEV Community: Leonal Sigar (Leo)</title>
      <link>https://dev.to/leonal_sigarleo_b5ad2c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leonal_sigarleo_b5ad2c"/>
    <language>en</language>
    <item>
      <title>I built an Earth Day app around Malaysian daily habits</title>
      <dc:creator>Leonal Sigar (Leo)</dc:creator>
      <pubDate>Mon, 20 Apr 2026 15:05:03 +0000</pubDate>
      <link>https://dev.to/leonal_sigarleo_b5ad2c/i-built-an-earth-day-app-around-malaysian-daily-habits-9k7</link>
      <guid>https://dev.to/leonal_sigarleo_b5ad2c/i-built-an-earth-day-app-around-malaysian-daily-habits-9k7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mqwx5uqueyj3sxk7acz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mqwx5uqueyj3sxk7acz.png" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;EcoHabit.my&lt;/strong&gt;, a lightweight Earth Day web app that turns climate intent into small, realistic actions people can actually do today.&lt;/p&gt;

&lt;p&gt;The starting point was simple: a lot of eco apps feel interchangeable. They talk about sustainability in broad global language, but they are not grounded in the way people actually move, eat, buy takeaway, or use energy in Malaysia.&lt;/p&gt;

&lt;p&gt;So instead of building another carbon calculator, I built a &lt;strong&gt;low-friction daily action picker&lt;/strong&gt; with local context and globally readable English.&lt;/p&gt;

&lt;p&gt;Some of the actions are deliberately specific:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;take &lt;code&gt;LRT/MRT&lt;/code&gt; instead of solo Grab&lt;/li&gt;
&lt;li&gt;tapau lunch in your own &lt;code&gt;bekas&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;bring a tumbler for &lt;code&gt;kopi&lt;/code&gt; or &lt;code&gt;teh&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;carry a reusable bag for a &lt;code&gt;pasar&lt;/code&gt; run&lt;/li&gt;
&lt;li&gt;set the AC to &lt;code&gt;25°C&lt;/code&gt; instead of overcooling the room&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a welcome modal so first-time visitors do not hit an empty state&lt;/li&gt;
&lt;li&gt;a feed of practical actions with category filters and local nouns&lt;/li&gt;
&lt;li&gt;a lightweight personalized prompt so users can describe their situation and get a realistic next move&lt;/li&gt;
&lt;li&gt;points and streak tracking&lt;/li&gt;
&lt;li&gt;an anonymous community pledge wall with seeded entries&lt;/li&gt;
&lt;li&gt;a poster-style share card with a QR code back to the live app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything runs client-side with &lt;code&gt;localStorage&lt;/code&gt;, so there is no login, database, or setup friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Live app: &lt;a href="https://eco-habit-my-earth-day-mvp.vercel.app" rel="noopener noreferrer"&gt;EcoHabit.my&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video walkthrough: &lt;a href="https://github.com/LeonalSigar/EcoHabit.my-Earth-Day-MVP/blob/main/assets/demo-EcoHabit.mp4" rel="noopener noreferrer"&gt;Watch the demo video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy path:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the app and dismiss the welcome modal&lt;/li&gt;
&lt;li&gt;Use the personalized prompt or browse the action feed&lt;/li&gt;
&lt;li&gt;Complete 2-3 actions&lt;/li&gt;
&lt;li&gt;Add a pledge to the community wall&lt;/li&gt;
&lt;li&gt;End on the share card and QR-enabled export&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;GitHub repo: &lt;a href="https://github.com/LeonalSigar/EcoHabit.my-Earth-Day-MVP" rel="noopener noreferrer"&gt;EcoHabit.my-Earth-Day-MVP&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;plain CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I kept the stack intentionally small because this was built as a fast challenge MVP and needed to stay reliable during demo time.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I optimized for &lt;strong&gt;clarity, speed, and shareability&lt;/strong&gt; over technical breadth.&lt;/p&gt;

&lt;p&gt;Some of the most important decisions were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keep the app frontend-only so nothing can fail on auth, database setup, or external APIs&lt;/li&gt;
&lt;li&gt;seed both actions and community pledges so the experience feels alive immediately&lt;/li&gt;
&lt;li&gt;treat impact as &lt;strong&gt;indicative, not scientific&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;design around Malaysian daily habits, while keeping the UI understandable to global judges&lt;/li&gt;
&lt;li&gt;make the share card part of the product itself, not just a screenshot afterthought&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hardest problem was balancing local identity with legibility. I wanted the product to feel recognizably Malaysian without making international readers feel locked out. That is why the interface stays in English, but local terms like &lt;code&gt;tapau&lt;/code&gt;, &lt;code&gt;kopitiam&lt;/code&gt;, &lt;code&gt;pasar&lt;/code&gt;, and &lt;code&gt;TNB&lt;/code&gt; are embedded in context rather than dropped in unexplained.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am submitting this as an overall challenge entry and not targeting a sponsor-specific category.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Thought
&lt;/h2&gt;

&lt;p&gt;The question behind this project was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you make climate action feel closer, lighter, and more locally real?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;EcoHabit.my is my attempt at that answer: small choices, local context, and momentum over perfection.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
  </channel>
</rss>
