03 · SaaS product · Live, early stage
ITCore: a multi-company help desk and device inventory
ITCore is a help desk and Windows device-inventory product that I designed, built and run myself. Staff raise requests from a Windows app, their phone or a browser. IT gets tickets, chat, announcements, PC health and reports in one place, separated per company.
itcore.dev: product site sup.itcore.dev: the app (sign-in required)
The problem
Supporting several companies at once, IT requests arrived through calls and messages with no shared record. There was no history of what was fixed, and no single view of the state of each PC.
Off-the-shelf help desks didn't fit a group where each company's data has to stay separate and staff need the tool in Mongolian, English or Chinese.
What I'm responsible for
- Product and data model design, including company separation and roles.
- API, web app and marketing site.
- Windows desktop app (Electron) and the ITCore Sentinel monitoring agent (Go).
- Hosting, releases, security controls and their tests.
Architecture
A small-team architecture: managed, serverless pieces so one person can operate it.
- Clients
- Web app (sup.itcore.dev)
- Windows desktop app (Electron, self-updating)
- ITCore Sentinel agent on each PC (Go)
- API
- Cloudflare Workers
- Tenant-scoped auth, 4 roles
- Sessions · CSRF checks · login rate limits
- Data
- Neon PostgreSQL
- Cloudflare R2 for attachments
- Per-company separation enforced in the API
- Public site
- itcore.dev
- Pricing in USD, MNT and CNY
- Downloads and plan requests
Engineering decisions
The agent reports, it never executes
Sentinel enrols with a token and sends health telemetry only. It accepts no remote commands. That limits the damage if the service or an account is ever compromised, and it makes the agent easier for a customer's IT team to approve.
Company separation in the API, not the UI
Every request is scoped to a company on the server, with four roles on top. Hiding things in the interface isn't treated as access control.
Serverless API and managed Postgres
Cloudflare Workers and Neon keep the operational load small enough for a single engineer, without running my own servers for the product.
A Call-IT button that works offline
People need IT most when the network is down, so the desktop app's Call-IT button works without a connection.
Technical challenges
Shipping quickly without breaking tenants
I shipped 90+ releases in the first four weeks. Integration tests cover the security-critical paths: password hashing (scrypt), HttpOnly sessions, CSRF checks, login rate limits and company isolation.
Getting the app onto PCs
The desktop app installs from a USB kit in about a minute and updates itself after that, so rollout doesn't depend on a software-distribution system the customer may not have.
Three languages from day one
The interface, notifications and invoices work in Mongolian, English and Chinese. Invoices are generated in USD, MNT or CNY at the current rate.
Current status
Built and deployed
- Tickets with status, priority, assignment, comments and attachments
- Chat, group chat and announcements with read receipts
- Company separation, 4 roles and tested security controls
- Windows desktop app with auto-update and offline Call-IT
- Sentinel agent: token enrolment and PC health check-ins every 15 minutes
- Technician reports and automatic invoices in three currencies
Early stage
- Live with published plans (from $35/month); adoption is still early, so I don't publish customer or usage numbers
- Device inventory is built from agent check-ins rather than a separate asset register
Not built yet
- Agents for macOS and Linux (Sentinel is Windows-only today)
- A documented public API for integrations
Outcomes so far
- releases in the first 4 weeks
- 90+
- languages: MN · EN · 中文
- 3
- agent check-in interval
- 15 min
- roles, with company isolation
- 4
- A working product in public: itcore.dev and the app at sup.itcore.dev.
- Security controls backed by integration tests, not just written in the code.
- A telemetry-only agent design that I can explain and defend to a customer's IT team.