About
I design, build, and run things myself.
Karnel Labs is a software studio where Karnel personally plans, develops, and operates every product. The work spans desktop apps, web services, and AI-powered SaaS tools — all shipped to real users, then refined through what running them in production reveals.
About the operator
A full-stack developer working across web, desktop, and CLI. Background in Unity game clients and Python/Node.js backends, currently focused on Rust-based Tauri desktop apps and SaaS products that combine cloud LLMs (Gemini, Claude) with local models.
Because every step — planning, design, implementation, deployment, operations — is owned by one person, every technical choice can be explained back to its tradeoff. The blog posts here are records of those decisions and the failures along the way.
Focus areas
- Desktop apps — Lightweight (usually under 5 MB) security tools built with Tauri v2 + Rust
- Web / SaaS — Next.js, Astro, Cloudflare Workers, Supabase
- Chrome extensions — WXT framework, focused on e-commerce and content automation
- AI integration — Routing between Gemini API, Claude API, and local Qwen/Llama models
- CLI tools — Python and TypeScript-based automation pipelines
- Games — Unity multiplayer (Netcode for GameObjects, R3, MVVM)
Shipped products
Products Karnel Labs has shipped or is actively running through 2026. All of them are used personally by the author and updated based on real user feedback.
- Repasta — A SaaS that converts content bidirectionally between blog posts and Instagram carousels using AI. Subscription billing via Toss Payments, Chrome extension, and routing across local and cloud AI models. (repasta.karnellabs.com)
- KeyBox — An offline-only secret manager built with Tauri v2, Rust, and AES-256-GCM. 3 MB installer; one master password protects API keys and tokens.
- Marginy — A Chrome extension for e-commerce sellers that calculates real net profit by accounting for fees, return rates, and storage costs across platforms.
- PromoEngine — A Python CLI that takes one piece of source content and adapts it for five channels (Reddit, Twitter, blog, etc.) automatically.
Why this blog exists
Posts here document the concrete decisions made while shipping real products — why Tauri over Electron, whether Cloudflare's free tier can actually run a SaaS, what kind of workflow survives solo development. The hope is to save someone going down the same path some time. Numbers and failure cases from real shipped products, not generic how-to articles.
Every post is written personally. AI assistance is limited to translation and proofreading; the technical judgments, code examples, and reasoning come only from real product work.
How I work
- Ship small, iterate fast — Get an MVP out within 2–4 weeks, then let user response drive the next move.
- Keep operating costs low — Cloudflare and Supabase free tiers plus usage-based AI APIs minimize fixed cost.
- Add dependencies cautiously — Before installing a package, ask whether implementing it directly is feasible.
- Write down what you learn — So the same problem isn't solved twice.
Get in touch
Open to project work, collaboration, and feedback on any post.
- Email: contact@karnellabs.com
- GitHub: github.com/karnelian