Services
Web apps, desktop apps, multi-site platforms and internal tools.
What I build, how it runs, and what you get.
Book a 30-min call(opens in a new tab)How I work
Scope. Build.Keep running.
Three phases, in order. The four steps behind them are further down.
The full processScope.
A fixed scope and price, agreed before any code is written.
- Fixed scope
- Clear price
- Sign-off
Build.
A staging link from the first week, so you watch it get built.
- Staging link
- Early feedback
- Signed release
Keep running.
Training for the people who use it, and I stay on for the updates.
- Training
- Written docs
- Updates
What I can do for you. Pick one or stack a few.
- 01 / 05
Web apps & platforms
A public site and the tools behind it.
One data model- Public portal and role-based CMS
- Staff intranet on its own deploy
- One side can't take the other down
- 02 / 05
Desktop apps
Installed, shared, and self-updating.
Updates itself- One installer, no browser
- Several desks, one database
- Signed releases
- 03 / 05
Multi-site platforms
One platform, many sites.
Built in the open- Each site sees only its own records
- Isolation enforced on the server
- Open source, in development
- 04 / 05
Internal tools
Know where everything is.
Full audit trail- Row-level security
- Bot protection
- Shipped as a container
- 05 / 05
Maintenance & updates
The part after launch.
Stays running- Updates after launch
- Backups and audit logs
- Training and written docs
Live update flow
One release. Every desk updated.
Tag a release and every installed copy offers it on its next launch. A new PC installs from the hosting PC, over the office network. From eBudget, now in testing.
- Tauri updater
- Signed releases
- Office network
- Release taggedNew version
- Signed installerBuilt and signed
- Checks on launchEvery installed copy
- Update offeredOne click to accept
- InstalledSame version everywhere
- New office PCFirst install
- Installer from hostOver the office network
- Connects to the cloudPostgres on Supabase
- Same recordsOne shared database
Built for
Named with each client’s permission. Yours would be too.
Client · 2026
Mines and Geosciences Bureau — Regional Office I
eBudget
Desktop budgeting and accounting, with a self-updating installer
Tauri 2 · Rust · React 19
Client · 2026
Municipality of Santol, La Union
LMIS
Legislative portal and role-based CMS, across three surfaces
Next.js 16 · TypeScript · Supabase
Own product · 2026
SENTRO
A single-barangay system, re-engineered into a platform
React 19 · TypeScript · Vite
Client · 2025
Mines and Geosciences Bureau — Regional Office I
eTracker
Document tracking with an audit trail and containerised deploys
Next.js 16 · TypeScript · Supabase
How I work
From first call to the updates after.
One developer from scope to support: you watch it get built, your team gets trained, and I stay on for the updates.
A fixed scope, written to be approved
A scope and a price your approval process can sign off without a second round of questions.
A staging link from the first week
You watch it get built. Feedback lands while changing something is still cheap, not at handover when it is not.
Training the people who will use it
The people who use it every day, not only the admin. Written documentation stays with you afterwards.
Updates after launch
I stay on after launch. Fixes, updates and new features come from the person who built it — no handover to a stranger.