
Mutiara Islam App is a PPDB (new student admission) system built for Raudhatul Athfal Mutiara Islam Kendari, built from feeling that a generic Google Form fell short and carried none of the school's own branding. It replaces that manual process, Google Forms plus a spreadsheet for tracking, with a centralized registration form for parents and a full admin dashboard for the school, both running from a single Next.js codebase split across two subdomains
A scrollable look at the finished site, exactly as a visitor would browse it

Desktop

Mobile
The tools and technologies that came together to bring this project to life










Each project draws on a mix of disciplines, here’s how they came together on this one
A closer look at what the finished product offers, the obstacles along the way, and what came out of it
Routing Two Subdomains From One Codebase
The public registration form and the admin dashboard needed to live on two different subdomains while sharing a single Next.js deployment, solved with a routing layer that rewrites requests based on the incoming host header
A Dropdown That Rendered Dark Inside a Light Page
Select dropdowns render through a portal outside the page's own styling context, so they defaulted to a dark theme even inside an otherwise light-mode page, fixed by explicitly overriding their color classes per context
Browser Autofill Overriding Field Colors
Selecting a saved value from the browser's autofill suggestions bypassed the form's usual field styling, requiring dedicated CSS rules covering both the WebKit-specific and standard autofill states, plus the active state
Emails Not Sending Before the Function Froze
The hosting platform could freeze the server function before the email notification finished sending, fixed by wrapping it in a background task that keeps running after the response is already sent
Adapting to a Framework Rename Mid-Build
A major framework version upgrade mid-project renamed a core routing convention and changed a cache invalidation API, requiring the routing and caching logic to be adjusted to the new conventions
How this project changed things for the business and its users after launch
Centralized registration system
Images under 200KB
PageSpeed green across all 4 categories
One-click WhatsApp follow-up
One-click registration toggle
Zero infrastructure cost
Before
Registration ran through a generic Google Form and a spreadsheet, with no branding of its own and manual work needed to track status, follow up with parents, and keep records organized
After
A centralized system now handles registration, status tracking, and admin workflows in one place, removing manual spreadsheet upkeep
Before
High-resolution images across the site, not just one section, risked slowing down every page
After
Every image across the site is compressed to WebP and kept under 200KB, keeping pages fast without a visible drop in quality
Before
Early performance was inconsistent across the four Google PageSpeed categories
After
Continuous optimization of images, JS, and CSS delivery brought all four categories into the green
Before
Following up with each parent meant manually finding their WhatsApp number in a spreadsheet
After
A one-click WhatsApp button with a pre-filled greeting template speeds up admin follow-up directly from the dashboard
Before
The manual process had no clean way to signal that registration was closed between admission cycles
After
Admins can toggle registration open or closed directly from the dashboard, automatically showing visitors a closed message
Before
A dedicated admission system risked adding an ongoing hosting or software cost for the school
After
Built entirely on free tiers, hosting and Google Sheets as the database, keeping infrastructure cost at zero