lifekit.sg
Compilation of essential toolkits for Singapore residents.
- Role
- No-Code Developer a.k.a Vibe Coder
- Year
- Feb 2025 to Feb 2025
- Discipline
- No-Code Development

Last weekend, I ventured beyond my usual role and discovered something amazing: I could build functional, useful tools simply by conversing with an AI. Despite having only a basic understanding of coding - I can distinguish JavaScript from CSS and recognise HTML and Python code - I challenged myself to build four practical apps for Singapore residents in one weekend with CursorAI.
Each project has its own backstory, rooted in my frustration with services often bundled with costly consultations. Every line of source code is available for free on my GitHub.
Singapore PR Eligibility Calculator
I noticed that online PR calculators were never truly "free" or simple - they often served as gateways to immigration consulting services, charging not only for the assessment but also for further advice. I wanted a tool that provided a rough idea of your eligibility without requiring personal data or leading to an expensive consultation.
What I built
A straightforward, client-side PR eligibility calculator that computes your score based on factors such as age, education, work experience, professional industry, and salary range. All calculations occur directly in your browser, ensuring your data remains private. It's a lightweight solution that offers a quick percentage estimate - no strings attached.
Environment setup
At the beginning of this journey, a significant amount of time was spent setting up the right environment. I had some experience doing light front-end development, but I had never built anything to the point where features were fully functional - it was mostly for mock-ups and visual direction.
Using Next.js as the framework made things much easier; I simply asked Claude to install it in the repository. Initially, I thought I could deploy directly to the server via Vercel, but I quickly realised I needed to create a GitHub account to sync my repository before deployment. Once everything was set up, I explained to Claude what I needed and provided calculations based on the official ICA PR Application Page and the Ministry of Manpower (MOM) Work Pass Framework. The scoring system was developed through an analysis of successful cases and publicly available information.
Tech stack
- Next.js: a React-based framework for server-rendered applications.
- TypeScript: a statically typed superset of JavaScript.
- Tailwind CSS: a utility-first CSS framework for styling.
- Jest: a testing framework for JavaScript and TypeScript applications.
- React Hook Form: form state and validation management.
- Zod: a TypeScript-first schema declaration and validation library.
Features
- Privacy-focused calculation: entirely client-side - your inputs never leave the browser.
- Modular point system: easily adaptable scoring criteria based on public data.
- User-friendly interface: as simple as possible while delivering clear feedback.
Singapore Tax Calculator
Tax calculators are another domain dominated by professional services. Many platforms tie tax calculations directly to consultations with tax experts or firms, meaning you often pay for a "quick estimate" that leads you down a consulting path. While accurate tax planning is important, sometimes you just want a rough estimate and a few tips on saving money - without being locked into a service contract.
What I built
A tax calculator that not only computes your tax liability according to Singapore's progressive tax system (for YA2024) but also provides suggestions on tax-saving opportunities through CPF cash top-ups and SRS contributions. The tool guides you on potential reliefs you might be missing, making it a practical aid for everyday financial planning.
Complex algorithm and calculation
Singapore's tax system is progressive, meaning different portions of income are taxed at different rates. Implementing this in code required handling progressive tax brackets (correctly applying tiered rates to different portions of taxable income), tax reliefs and deductions (factoring in CPF top-ups, SRS contributions, and other deductions while staying within statutory limits), edge cases (different relief eligibility conditions), and performance (keeping calculations fast and responsive across multiple input scenarios).
Claude 3.5 Sonnet context limit
When developing the tax calculation logic with Claude, one key challenge was its context limit - the model tends to forget earlier instructions when too many details are provided. Getting an accurate algorithm often took several attempts because Claude lost track of previous constraints or formula logic. Since tax calculations involve multiple interdependent rules such as relief caps, CPF limits, and tax brackets, ensuring consistency across different parts of the calculation was a challenge, and I had to repeatedly re-feed previous instructions and test different breakdowns to prevent gaps.
Tech stack
- Next.js, TypeScript, Tailwind CSS: the same core stack as the PR calculator.
- Chart.js: interactive, responsive charts for visual tax breakdowns.
- XLSX: exporting results to Excel-compatible formats.
- React Hook Form and Zod: form state management and robust input validation.
Features
- Dynamic tax bracket calculation: up-to-date brackets and progressive rates.
- Relief optimisation: CPF and SRS contributions calculated in real time.
- Visual insights: a Chart.js tax breakdown plus XLSX export for saving or printing results.
- Robust input validation: React Hook Form and Zod keep user input accurate and reliable.
Singapore Rent Map Dashboard
Rent prices in Singapore can feel like a mystery - if you're curious whether you're paying too much, you might find yourself comparing your situation to an expensive consulting report. There's a gap between raw data and actionable insight for everyday residents. I aimed to bridge that gap by creating an interactive tool that visually maps rental prices across neighbourhoods, allowing you to see exactly where you stand without needing professional advice.
What I built
A rent dashboard that pulls in official rental data and displays it on an interactive map. Using Supabase as the backend, the dashboard provides an immediate visual sense of rental trends across Singapore, making it easier to gauge whether your rent aligns with the market.
Cleaning up and standardising data with Python
Singapore's rental data comes from multiple sources, each with its own formatting, missing values, and inconsistencies. To make the data useful I had to normalise data formats (standardising column names, address formats, and rental values), handle missing and duplicate records, convert unstructured data into usable formats (geocoding addresses and categorising listings by property type, district, and lease terms), and automate the cleaning pipeline with Python - Pandas, NumPy, and GeoPandas - before feeding it into the Supabase backend.
Complex property-type filtering
One of the biggest challenges was a robust filtering system: multi-level filters for property type (HDB, Condo, Landed), district, price range, and lease term that dynamically adjust based on available data; mapping the URA dataset's diverse sub-categories (such as 3-room HDB and Executive Condos) to broader types; optimising Supabase queries and preprocessing data so dynamic filtering stays responsive; and keeping the UI intuitive, with clear dropdowns, sliders, and toggles that update the map and charts in real time.
Tech stack
- Next.js, TypeScript, Tailwind CSS: the same core stack.
- Leaflet: an open-source library for interactive maps, visualising rental data across Singapore.
- Supabase: an open-source backend providing the real-time database.
Features
- Data integration: datasets from data.gov.sg and eservice.ura.gov.sg, updated quarterly, with the system designed for manual updates in sync with the agencies' release schedules.
- Interactive mapping: a dynamic, user-friendly map interface.
- Geospatial data handling: Leaflet.js manages and displays the geospatial layer.
FlightTrack
For many expatriates and frequent travellers, keeping track of your days in and out of Singapore is crucial - especially concerning tax residency rules like the 183-day rule. Typically, tracking such details is part of a broader, often complex service offered by travel consultants or tax advisors. I wanted to create a tool that allows you to self-manage your travel records in a transparent, accessible way.
What I built
FlightTrack is a dashboard that helps users log their flights, calculate total days spent abroad, and monitor their tax residency status. With a focus on privacy and convenience, the app supports both guest access and full account logins, so even those seeking a temporary solution can benefit.
User authorisation
One of the key challenges was implementing an authorisation system that accommodates both registered users and guest access: manually setting up Firebase Authentication to handle different sign-in methods, including Google Sign-In and anonymous access, and ensuring guest data disappears after 24 hours - a system that stores temporary data while maintaining privacy and efficiency.
Date range picker integration
Another challenge was a seamless date range selection experience that aligns with how airline apps handle flight booking: an intuitive date picker that mirrors airline-style selections while integrating smoothly with the dashboard, and accurate date calculations for tracking total days spent abroad and their tax residency implications.
Tech stack
- Next.js, TypeScript, Tailwind CSS: the same core stack.
- Recharts: a React and D3 charting library for the dashboard visualisations.
- Firebase Authentication: secure user authentication, including Google Sign-In.
- Firestore: a NoSQL document database storing flight records.
Features
- Authentication and data management: Firebase Authentication and Firestore handle your flight records securely.
- Comprehensive flight management: add, edit, or delete flight entries, with country selection and flag visualisation.
- Insightful dashboard: Recharts displays key travel metrics like total flights, days abroad, and average stay durations.
- Tax residency insights: automatically calculates how your travel affects your Singapore tax residency.
- Guest mode: temporary 24-hour storage for users not ready to commit; full accounts get persistent tracking.
Reflection
Working with CursorAI was a bizarre yet transformative experience - it showed me that even with my limited coding background, I could build functional, useful tools simply by conversing naturally with an AI agent.
The weekend was filled with a mix of frustration, amazement, and humorous setbacks - like moments when Claude would get stuck in a loop and I'd find myself begging it to just fix the issue - alongside valuable lessons in modern tech stacks and integrations. I built these apps mostly for fun and to push the limits of the new AI tools that are now available.
It's incredible to witness the development of these tools and their potential. We are in an era where almost anyone can build digital solutions with just a bit of technological experience and strong AI conversational skills.
This entire experiment may soon become obsolete, given the rapid advancements in this field (at the time of writing, Claude 3.7 Sonnet has just launched!). CursorAI and other AI agents are further refining their capabilities, where AI can take over your machine and perform even more complex tasks autonomously.
I think we are still in the early stages of the future of product designing with AI. Every line of source code is available for free on my GitHub.
Next case study02
View all workMiCare
