Ongoing SaaS App Maintenance - Minor

Job ID: 40233074

Budget: $12 – $30 SGD

I run a production Telegram Mini App (TMA) with a Fastify/Node.js backend that handles sales order consolidation for a small business. The system is live with real users and needs ongoing maintenance, bug fixes, and occasional feature work.

Tech stack:

Backend: Fastify + TypeScript, PostgreSQL (hosted on Railway), Google Sheets integration, Telegram Bot API
Frontend: React 18 + TypeScript, Vite, Tailwind CSS, runs as a Telegram WebApp (Mini App)
Infra: GitHub for code, GitHub Actions for CI, deployed on Railway (backend) and Vercel/static hosting (frontend). Self-signed HTTPS certs for local dev.
Integrations: Telegram Bot (command handlers, webhooks), WhatsApp webhook listener, Google Sheets API for data sync
What you'd be doing:

Bug triage & fixes — I'll file issues with screenshots, logs, and expected behaviour. You diagnose, patch, test locally, and push with clear commit messages.
Dependency updates — Keep Node, npm packages, and Vite/React tooling current. Fix any breaking changes.
Database maintenance — PostgreSQL schema tweaks, query optimisation, connection resilience (the app already has server-error vs session-expired detection).
Mobile UI polish — The frontend runs inside Telegram's embedded WebView on iOS and Android. Dark mode, keyboard handling, safe-area insets, and touch target sizing all matter.
Session & auth — The app uses custom session management (not OAuth). Sessions are passed via URL params, headers, and cookies for Telegram WebView compatibility. You should understand why all three channels exist.
Minor features — CSV export, order filtering, product management, dashboard stats. Nothing greenfield — mostly extending what's already there.
Codebase structure you should know:

Backend: controllers, service, data, repos, middleware, modules
Frontend: src — React app with components/pages/, contexts/, hooks/, api/, styles/
Error handling: Custom ApplicationError class with categories and codes, centralised error handler middleware
Logging: Central logger with tags — all logs must use it
Telegram bot: Command registry pattern in commandHandlers.ts
Copilot instructions and architecture docs exist in copilot-instructions.md
What I expect:

Every fix pushed with clear commit messages and passes the test suite (npm test, npm run check)
You can work independently from a GitHub issue — I shouldn't need to hand-hold the debugging
Response time: acknowledge issues within 24h, patches within 48-72h for non-critical, same-day for production-breaking
Comfortable reading existing code patterns and following them (not rewriting everything your way)
Successful delivery means:

Clean git history with descriptive commits
No regressions — existing tests pass, no new Sentry/monitoring errors within 48h of deploy
Changes follow existing project conventions (error handling, logging, file structure)
Mobile-first testing — changes must work in Telegram WebView on both iOS and Android
Budget: Looking for ongoing hourly engagement, roughly 5-15 hours/month depending on issue volume. Happy to discuss a retainer arrangement after a trial period of 2-3 months.
Related categories: Node.js PostgreSQL Git Typescript GitHub