# apptory.eu > Tools and apps for business and everyday life. Built fast, designed to last. apptory.eu is a solo developer portfolio shipping production software across business productivity and personal utility categories. The site is built with Astro 5 and Tailwind CSS v4, deployed on Cloudflare Pages. Zero client-side JS frameworks. Privacy-friendly analytics via Plausible (no cookies). --- ## Homepage Building tools to solve real problems. A collection of apps for business and everyday life, shipped fast, built with care. Three values: Ship fast (real products solving real problems, not endless prototypes), AI-augmented (AI as a force multiplier, from code generation to product features), Open process (lessons learned documented in the open). --- ## Apps ### Order Desk - URL: https://apptory.eu/apps/order-desk - Category: Business - Status: Live - Tagline: Purchasing workflows on autopilot Order Desk streamlines the entire purchasing workflow. Purchasers receive intelligent order suggestions, quickly assemble new orders using keyboard shortcuts, optimize quantities, and export finalized orders automatically. No manual data entry into downstream systems. ### Supplier Evaluation - URL: https://apptory.eu/apps/supplier-iso-evaluation - Category: Business - Status: Live - Tagline: Know which suppliers actually deliver ISO 9001:2015 (Clause 8.4) requires organizations to evaluate, monitor, and re-evaluate supplier performance with documented evidence. Auditors expect traceable records of how suppliers are scored and which criteria are applied. Supplier Evaluation makes this effortless. Delivery data is aggregated into a dashboard with KPIs for overall performance, quantity accuracy, quality, labeling compliance, and lead time consistency. Filter by date range, compare suppliers side by side, and spot underperformers through color-coded indicators. Export overview or detailed reports with one click, ready for the next audit. ### Netflix for macOS - URL: https://apptory.eu/apps/netflix-macos-app - Category: Personal - Status: Live - Source: https://github.com/lubikx/netflix-macos-app - Download: https://github.com/lubikx/netflix-macos-app/releases/latest - Tagline: Floating video player for netflix.com Browser picture-in-picture is too small to actually watch anything while working. This app gives you a resizable, always-on-top Netflix window with two modes: snap small for a compact floating player with hidden UI, or go big for the full Netflix experience. Toggle with a keyboard shortcut, auto-updates via Sparkle. ### Nebula.tv for macOS - URL: https://apptory.eu/apps/nebula-tv-macos-app - Category: Personal - Status: Live - Source: https://github.com/lubikx/nebula-macos-app - Download: https://github.com/lubikx/nebula-macos-app/releases/latest - Tagline: Floating video player for nebula.tv Nebula.tv is an independent streaming platform built by educational creators. Browser picture-in-picture is too small to actually watch anything while working. This app gives you a resizable, always-on-top Nebula.tv window that you can make as large as you need. Borderless design, keyboard shortcuts, minimal UI. Stays out of your way while keeping the video watchable. ### PPTart - URL: https://apptory.eu/apps/pptart - Category: Personal - Status: Beta - Tagline: Per-project Tart, isolated macOS VMs for autonomous dev Pptart (Per-Project Tart) is a Bash-based TUI launcher that manages per-project isolated macOS VMs. Built on Packer + Tart + Ansible. The base image ships with VS Code, Chrome, Raycast, and dotfiles pre-configured. Clone it per project, mount your directories, and get to work. When a project is done, delete the VM. No residue. Designed for fully autonomous Claude Code sessions. Each project gets its own VM where Claude can install, build, test, and break things without touching the host machine. Features: interactive purple-themed TUI (powered by gum), base image versioning with outdated VM detection, auto-mounts project dirs, secrets, and config into VMs, Ansible playbook runs on every login for consistency, VNC support for GUI automation during base builds, zero permission prompts via pre-approved TCC database. ### SecAI - URL: https://apptory.eu/apps/secai - Category: Personal - Status: Beta - Tagline: CV + LLM vision for security camera analysis Secai analyzes security camera footage to detect objects of interest using a two-stage pipeline. First, OpenCV does the heavy lifting with motion isolation via background subtraction, then template matching against known targets. Detections in a confidence gray zone get escalated to LLM vision (Claude or GPT) for a second opinion. The motion isolation step is what makes it work. Subtracting the static background from each frame and masking the moving object gives template matching something clean to work with. Runs against Tapo Cloud cameras, processes video with FFmpeg, parallelizes across 10 workers. Scans 1,200+ videos in about 20 minutes. Results get cached as JSON so historical queries are instant. ### SmartCC - URL: https://apptory.eu/apps/smartcc - Category: Personal - Status: Coming soon - Tagline: Smart session launcher for Claude Code SmartCC wraps the claude CLI with a session picker built on gum. Instead of typing claude --resume and guessing which session was which, you type cc and get a menu of recent sessions for the current project, sorted by last activity, with status icons showing what state each one is in. Sessions get classified automatically: interrupted (quit mid-tool), left open (read the response, walked away), cleanly ended with /exit. Active sessions show up as non-interactive info so you can't accidentally stomp on a running conversation. The naming trick is the most useful part. When you start a new session, SmartCC asks for a short purpose and injects it as the session title into Claude's own JSONL storage. Single Python script, no pip dependencies. Just gum from Homebrew and Python 3. --- ## Blurps Technical posts about building things. ### Revamping an accounting firm's website in one evening - URL: https://apptory.eu/blurps/revamping-dane-praha - Date: 2026-03-01 The site I was looking at had a debug toolbar visible in production. Tables for layout. No mobile support. Orange-on-dark color scheme from 2008. It was dane-praha.cz, a Prague accounting firm running Nette Framework. Functional, but frozen in time. Started after dinner on a Friday. The approach: don't port anything. Look at the existing content, figure out the 10 pages they need, build from scratch in Astro 5 with Tailwind v4. New design, new structure, new everything. The original scored 75 on Lighthouse accessibility. No alt text, no semantic HTML, table-based layout. Fixing accessibility wasn't extra work. Just building the new site correctly. Semantic elements, proper headings, alt attributes, sufficient contrast. Accessibility jumped to 95. SEO went from 91 to 100. JSON-LD on every page, llms.txt for AI crawlers, proper sitemap. Best Practices from 82 to 100. HSTS, nosniff, proper cache headers, zero client-side JavaScript. Performance went from 100 to 96 due to web fonts and more images. Fair trade. Forest green with gold accents, fully responsive for the first time. Ten pages deployed on Cloudflare Pages as static HTML. Finished before breakfast on Saturday. ### This site has no cookie bar - URL: https://apptory.eu/blurps/no-cookie-bar - Date: 2026-02-25 Notice anything missing? No popup asking you to "accept all cookies." No banner eating 30% of your screen. No "legitimate interest" toggles buried three clicks deep. This site doesn't have a cookie bar because it doesn't use cookies. Zero. Not "just essential cookies." Not "anonymized tracking cookies." Zero. The analytics run on Plausible, which counts visits without storing anything on your device. No fingerprinting, no cross-site tracking, no personal data collected. The entire payload is a single script under 1 KB. The GDPR doesn't require cookie consent for a site that doesn't set cookies. That's it. That's the whole trick. You don't need a Consent Management Platform. You just don't track people. The numbers still work. Plausible shows page views, referrers, countries, devices. Enough to know if a page is popular or dead. For a showcase site, aggregate traffic data is plenty. Skip all of it. Use privacy-friendly analytics. Ship a faster, cleaner site. Your visitors will never notice what's missing, and that's the point. ### Vibe coding a native Netflix macOS app in an afternoon - URL: https://apptory.eu/blurps/vibe-coding-netflix-app - Date: 2026-02-16 I had a working macOS app. A floating video player for Nebula.tv. I pointed Claude at the repo and said: make it work with Netflix. Four hours later, seven releases were on GitHub. That's not from scratch. The Nebula app already handled always-on-top windows, snap mode, keyboard shortcuts, auto-updates via Sparkle. The Netflix version needed DRM support, different DOM handling, and a UI that made sense for Netflix. Still a real app, just not a blank canvas. The entire build was 46 prompts across 2 sessions. Most of my inputs were five words or less. The project rename alone touched 32 files. I didn't open Xcode once. The first release went out at 3:30 PM. By 5 PM I was on v1.0.6 with a welcome sheet, debug overlay, and all the bugs squashed. The bugs were real, though. An about dialog that wouldn't dismiss when you clicked OK. You have to test everything. Every bug gets a test before it gets a fix. No regressions, ever. An afternoon for an auto-updating macOS app distributed on GitHub. But the honest takeaway isn't "AI is fast." It's that AI plus working code plus human direction is fast. Every app you ship makes the next one almost free to build. ### Building a website with Claude over a weekend - URL: https://apptory.eu/blurps/building-with-claude - Date: 2026-02-15 This website went from npm create astro to deployed over a weekend. Dark theme, content collections, app detail pages, responsive layout. About 3 hours of actual involvement, and I never touched the code. Step one: run Claude Code with --dangerously-skip-permissions. That flag name isn't a joke, but without it you're clicking "allow" on every file write. The flow dies. With permissions skipped, I described what I wanted, checked the browser, pointed out what sucked, and Claude fixed it. That's the entire job. My first prompt was "make the homepage look better." By Saturday night I was writing "featured app section, big card, glowing border on hover, icon left, description right, cyan links." The skill isn't coding anymore. It's knowing what you want and saying it precisely enough. A weekend, a website I actually like and update, and a lesson I keep relearning: front-load the context. Write a voice guide, set up a test suite, define the design constraints before you start prompting. That 5% of effort up front makes the other 95% feel like cheating. --- ## Revamps Website redesigns and upgrades. ### dane-praha.cz - URL: https://apptory.eu/revamps/dane-praha.cz - Client: Dane-Praha s.r.o. - Website: https://dane-praha.cz - Stack: Astro 5, Tailwind CSS v4, TypeScript, Cloudflare Pages - Lighthouse: Performance 96, Accessibility 95, Best Practices 100, SEO 100 Complete redesign of a Prague accounting firm's website. From a table-based Nette Framework site with no mobile support to a modern Astro 5 static site with full SEO, accessibility, and responsive design. The original dane-praha.cz ran on Nette Framework with a table-based layout, dark orange corporate styling, and zero mobile support. The debug toolbar was visible in production. No structured data, no sitemap, no accessibility considerations. It worked, but it was stuck in 2012. The rebuild replaced everything with Astro 5 and Tailwind CSS v4, deployed on Cloudflare Pages. 10 pages total: homepage, services, pricing, about, references, contact, legal, privacy, useful links, and a custom 404. Zero client-side JavaScript ships to the browser (the contact form and analytics are the only exceptions). The warm professional design pairs forest green with gold accents, replacing the dated dark orange look. SEO and GEO got proper treatment. Every page carries JSON-LD structured data (AccountingService, BreadcrumbList, Person, WebPage schemas as appropriate). An llms.txt file provides AI crawlers with a machine-readable site summary. The site scores 100 on Lighthouse best practices and SEO, up from 82 and 91 respectively. Accessibility jumped from 75 to 95 (WCAG AA compliant), and the site is fully responsive across all breakpoints for the first time. --- ## Contact - Email: hi@apptory.eu - URL: https://apptory.eu/contact - Response time: under 24 hours --- ## Technical - Stack: Astro 5, Tailwind CSS v4, Cloudflare Pages - Site: static, zero client-side JS frameworks - Analytics: Plausible (privacy-friendly, no cookies) - Structured data: JSON-LD on every page (WebSite, SoftwareApplication, Article, BreadcrumbList) - GEO: llms.txt for AI crawlers, robots.txt allows GPTBot, ClaudeBot, PerplexityBot - Security: HSTS, X-Frame-Options DENY, nosniff, referrer policy, permissions policy