[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content:products:en":3,"content:site:en":232,"content:team:en":250,"content:posts:en:all":315},[4,136],{"slug":5,"status":6,"order":7,"siteUrl":8,"logoUrl":9,"heroImageUrl":10,"accentColor":11,"stack":12,"launchedYear":19,"locale":20,"name":21,"tagline":22,"summary":23,"positioning":24,"metaTitle":25,"metaDescription":26,"audience":27,"features":36,"steps":67,"plans":77,"faq":96,"gallery":118},"qrenza","live",0,"https:\u002F\u002Fqrenza.jvdsoft.com","\u002Fmedia\u002Fproducts\u002Fqrenza\u002Flogo.svg","\u002Fmedia\u002Fproducts\u002Fqrenza\u002Fhero.webp","#6366f1",[13,14,15,16,17,18],"Laravel","React","TypeScript","PostgreSQL","Tailwind CSS","Vite",2026,"en","Qrenza","A digital catalog platform with QR menus and real-time orders","Catalog, ordering and analytics for any business with products or services. Customers scan a QR code and see the menu — no app, no paper, no waiting.","Qrenza replaces the paper menu and the spreadsheet: you keep categories, items, prices and photos in one place, and the customer opens the catalog from a QR code on the table, the counter or the shop window. Orders land on the dashboard straight from the customer’s phone, move through three status steps, and a table map shows where work is happening right now. It fits restaurants, cafés, bars, bakeries, shops, salons and studios — anyone with a list of what they sell.","Qrenza — QR menus and digital catalogs for business","Qrenza is a digital catalog platform: QR menus, real-time orders, table map, analytics, team roles and six languages. A JVD Soft product, live in production.",[28,29,30,31,32,33,34,35],"Restaurants","Cafés and coffee shops","Bars and night clubs","Bakeries and patisseries","Shops and grocery stores","Beauty and wellness","Salons and studios","Markets and kiosks",[37,40,43,46,49,52,55,58,61,64],{"title":38,"body":39},"Smart catalog","Categories and items with images, prices, descriptions and availability control — for menus, product catalogs or service lists.",{"title":41,"body":42},"Real-time orders","Customers order from the QR menu and the order appears on the dashboard instantly. Three status steps: new → preparing → ready.",{"title":44,"body":45},"Table management","A table map shows where the active orders are. Move an order between tables and follow every seat separately.",{"title":47,"body":48},"Live dashboard","Real-time statistics on active catalogs and daily operations, reachable from any device.",{"title":50,"body":51},"Analytics and reports","Revenue over time, top items, cancellation rate and the full order history in one dashboard.",{"title":53,"body":54},"Team roles","Owners, administrators and staff with the access level each needs. The whole team is managed from one place.",{"title":56,"body":57},"Six languages","The catalog can be read in the customer’s language — built for bilingual and tourist venues.",{"title":59,"body":60},"Your brand, your domain","Logo, favicon, colours, navigation style, custom domain, meta tags and a Google Analytics ID — no plugins needed.",{"title":62,"body":63},"Loyalty programme","Built-in points are awarded automatically for every order, so customers come back.",{"title":65,"body":66},"Embed anywhere","Drop the full catalog into any website as an iframe with a single snippet.",[68,71,74],{"title":69,"body":70},"Create an account","Sign up in seconds, no credit card. The 14-day trial starts immediately with full access to every feature.",{"title":72,"body":73},"Build the catalog","Add categories and items — products, dishes, services. Upload photos, set prices, write descriptions; drag to reorder.",{"title":75,"body":76},"Share the QR code","Print your unique QR code and put it anywhere — table, counter, shop window. Customers scan and browse instantly.",[78,86,91],{"name":79,"price":80,"note":81,"features":82,"popular":85},"[Start]","[amount]","\u002F mo",[83,84,84],"[Plan limit]","[What is included]",false,{"name":87,"price":80,"note":81,"features":88,"popular":90},"[Working]",[89,84,84],"[Everything in Start, plus]",true,{"name":92,"price":80,"note":81,"features":93,"popular":85},"[Team]",[94,84,95],"[Everything in Working, plus]","Priority support",[97,100,103,106,109,112,115],{"q":98,"a":99},"Is there a free trial?","Yes — 14 days with full access to every feature and no credit card. The trial starts the moment you sign up.",{"q":101,"a":102},"Can the catalog be updated in real time?","Yes. A change to a price, description or availability is visible to customers immediately — the QR code never needs reprinting, it always points at the current catalog.",{"q":104,"a":105},"Do customers need to install an app?","No. The catalog opens in the phone’s browser after scanning the QR code. The interface is mobile-first, so it works on any device.",{"q":107,"a":108},"Can I use my own domain?","Yes. Connect your own domain and set your logo, favicon and brand colours — the catalog looks like part of your own site.",{"q":110,"a":111},"Which businesses is Qrenza for?","Any business with a list of products or services: restaurants, cafés, bars, bakeries, shops, beauty salons, studios, markets and kiosks.",{"q":113,"a":114},"Can I track customer orders?","Yes. Every order moves through three status steps on the dashboard and the table map shows where it is. The full history stays in the system.",{"q":116,"a":117},"Where is the data stored?","On our infrastructure: sign-in with email and password or Google OAuth, token sessions with email confirmation, and access separated by role.",[119,124,128,132],{"src":120,"alt":121,"width":122,"height":123},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Forders.webp","Qrenza dashboard with live orders and the table map",1280,588,{"src":125,"alt":126,"width":122,"height":127},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Fmenu.webp","The Qrenza QR menu on a customer’s phone",572,{"src":129,"alt":130,"width":122,"height":131},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Fsettings.webp","Qrenza establishment settings: identity, theme, navigation, SEO",879,{"src":133,"alt":134,"width":122,"height":135},"\u002Fmedia\u002Fproducts\u002Fqrenza\u002Ffeatures.webp","The Qrenza platform feature grid",1020,{"slug":137,"status":6,"order":138,"siteUrl":139,"logoUrl":140,"heroImageUrl":141,"accentColor":142,"stack":143,"launchedYear":19,"locale":20,"name":144,"tagline":145,"summary":146,"positioning":147,"metaTitle":148,"metaDescription":149,"audience":150,"features":151,"steps":182,"plans":192,"faq":199,"gallery":215},"shiftplan",1,"https:\u002F\u002Fshifts.jvdsoft.com","\u002Fmedia\u002Fproducts\u002Fshifts\u002Flogo.svg","\u002Fmedia\u002Fproducts\u002Fshifts\u002Fhero.webp","#f97316",[13,14,15,16,17,18],"ShiftPlan","Smarter shifts, happier teams","Create, assign and publish work schedules in minutes. Your team gets notified automatically and conflicts are caught before they ship.","ShiftPlan replaces the spreadsheet and the \"who is on today?\" chat. Schedules are built on a calendar board with month, week and day views; shifts repeat on a rule, carry a colour, and can hold several people at once. The moment a schedule is published everyone sees their own shifts and gets a push notification about any change, while overlaps and double bookings are blocked as you type. Managers get shift statistics and a read on the team’s workload.","ShiftPlan — shift scheduling and team planning","ShiftPlan is shift scheduling for teams: calendar board, recurring shifts, colour coding, multiple assignees, instant notifications and workload analytics.",[],[152,155,158,161,164,167,170,173,176,179],{"title":153,"body":154},"Visual scheduling","Build and manage shifts on a clean calendar board with month, week and day views.",{"title":156,"body":157},"Recurring shifts","Shifts that repeat daily, weekly, monthly or on a custom schedule, created with one click.",{"title":159,"body":160},"Unlimited colours","Colour-code shifts with unlimited custom colours or pick from the preset palette.",{"title":162,"body":163},"Team management","Assign several employees to one shift, manage roles, and track who works when.",{"title":165,"body":166},"Analytics and insights","Shift statistics, per-employee schedules and a clear read on the team’s workload.",{"title":168,"body":169},"Smart notifications","Instant push alerts on every schedule change, so nobody misses a shift.",{"title":171,"body":172},"Conflict detection","Overlaps and double bookings are detected automatically and blocked before they are saved.",{"title":174,"body":175},"Mobile-first","The responsive interface works the same on phones, tablets and desktops.",{"title":177,"body":178},"End-to-end encrypted","All data is encrypted in transit and at rest — your schedules stay yours alone.",{"title":180,"body":181},"Compliant and backed up","GDPR, CCPA and SOC 2 compliant, with automatic daily backups you can restore from.",[183,186,189],{"title":184,"body":185},"Create shifts","Build the schedule on the calendar: add shifts, set times, assign employees.",{"title":187,"body":188},"Assign employees","Put one or several people on each shift, with colour coding for quick reference.",{"title":190,"body":191},"Notify your team","The team gets instant notifications about their schedule. Everyone stays in sync.",[193,195,197],{"name":79,"price":80,"note":81,"features":194,"popular":85},[83,84,84],{"name":87,"price":80,"note":81,"features":196,"popular":90},[89,84,84],{"name":92,"price":80,"note":81,"features":198,"popular":85},[94,84,95],[200,203,206,209,212],{"q":201,"a":202},"What does it cost to start?","You can start free and upgrade later — signing up does not require payment.",{"q":204,"a":205},"What happens if two shifts overlap?","Conflict detection finds overlaps and double bookings automatically and flags them instantly, before the schedule is published.",{"q":207,"a":208},"How does the team learn about changes?","Every employee gets an instant push notification. Updates arrive in real time, so the \"who is on today?\" thread disappears.",{"q":210,"a":211},"Does it work on a phone?","Yes. The interface is responsive and mobile-first — the same on phones, tablets and desktops.",{"q":213,"a":214},"How is schedule data protected?","Data is encrypted in transit and at rest, the service is GDPR, CCPA and SOC 2 compliant, and backups run daily.",[216,220,224,228],{"src":217,"alt":218,"width":122,"height":219},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Ffeatures.webp","ShiftPlan features: calendar, recurring shifts, colours, team",696,{"src":221,"alt":222,"width":122,"height":223},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Fhow.webp","The three steps of working in ShiftPlan",476,{"src":225,"alt":226,"width":122,"height":227},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Fwhy.webp","Why teams choose ShiftPlan",580,{"src":229,"alt":230,"width":122,"height":231},"\u002Fmedia\u002Fproducts\u002Fshifts\u002Fsecurity.webp","ShiftPlan security: encryption, compliance, daily backups",508,{"email":233,"salesEmail":233,"supportEmail":234,"phone":235,"telegram":236,"telegramUrl":237,"whatsappUrl":235,"githubUrl":238,"linkedinUrl":239,"locale":20,"footerAbout":240,"contactPromise":241,"whereBody":242,"officeCity":243,"workHours":244,"budgetRanges":245},"sales@jvdsoft.com","support@jvdsoft.com",null,"@jvdsoft_support","https:\u002F\u002Ft.me\u002Fjvdsoft_support","https:\u002F\u002Fgithub.com\u002FEvgeniyKiryanow","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fyevhenii-kirianov-54b8081ba\u002F","Full-cycle web development. Kyiv — working with clients in Ukraine, the EU and the US. Our own products, Qrenza and ShiftPlan, run on infrastructure we maintain ourselves.","Write however suits you — we answer within the working day. sales for new projects, support for our products.","Kyiv, Ukraine. We work remotely with clients in Ukraine, the EU and the US. Contract and NDA, invoiced from a Ukrainian sole trader or company.","Kyiv, Ukraine","Mon–Fri, 10:00–19:00 (Kyiv)",[246,247,248,249],"under [amount]","[amount] — [amount]","over [amount]","not sure yet",[251,288,303],{"slug":252,"order":7,"photoUrl":253,"avatarUrl":254,"email":233,"githubUrl":238,"telegramUrl":237,"linkedinUrl":239,"sinceYear":255,"skills":256,"languages":264,"locale":20,"name":267,"fullName":268,"tag":269,"role":270,"title":271,"bio":272,"longBio":273,"favouriteTask":274,"availability":275,"metaTitle":276,"metaDescription":277,"areas":278},"yevhenii-kirianov","\u002Fmedia\u002Fteam\u002Fyevhenii.webp","\u002Fmedia\u002Fteam\u002Fyevhenii-avatar.webp",2021,[257,258,15,259,14,260,17,13,261,262,16,263],"Vue 3","Nuxt 4","JavaScript (ES6+)","SCSS \u002F SASS","NestJS","Prisma","Docker",[265,266],"UA","EN","Yevhenii","Yevhenii Kirianov","frontend · full-stack","Frontend and full-stack, interfaces, product development","Full-stack engineer","I own the interfaces and frontend of our products — and on this site, the backend too. Strongest in Vue and Nuxt; on Qrenza and ShiftPlan I run the React side and how the whole thing looks and feels.","I have been writing for the web since 2021, mostly in Vue — it is where I started and still the tool I reach for when an interface gets complicated. At JVD Soft I take the frontend of both our products: Qrenza (a QR catalog with real-time ordering) and ShiftPlan (shift scheduling for teams). This site — Nuxt 4 with SSR and NestJS behind it — is mine as well, from the design tokens to the migrations. I like work where the result is visible: animation that does not stutter, a form that does not annoy anyone, a page that opens fast on a cheap phone.","Complex interfaces","available for new projects","Yevhenii Kirianov — full-stack engineer at JVD Soft","Full-stack engineer at JVD Soft: frontend of Qrenza and ShiftPlan, Vue and Nuxt, TypeScript, NestJS. What I own on a project and how to reach me directly.",[279,282,285],{"title":280,"body":281},"Interface and frontend","From mockup to production: components, states, animation, responsive behaviour, accessibility. Vue\u002FNuxt or React, depending on the project.",{"title":283,"body":284},"Product development","Not just markup: I take a task, agree the scope, cut a slice all the way through — interface, API, database — and ship it.",{"title":286,"body":287},"Speed and SEO","SSR, server-rendered content a crawler must see, metadata and structured data, a fast LCP on weak phones.",{"slug":289,"order":138,"photoUrl":235,"avatarUrl":235,"email":235,"githubUrl":235,"telegramUrl":235,"linkedinUrl":235,"sinceYear":235,"skills":290,"languages":291,"locale":20,"name":292,"fullName":292,"tag":293,"role":294,"title":295,"bio":296,"longBio":297,"favouriteTask":298,"availability":299,"metaTitle":300,"metaDescription":301,"areas":302},"vlad",[],[265,266],"Vlad","backend","Backend, databases, integrations","Backend engineer","One of the three engineers at JVD Soft. This profile is still being filled in — photo, stack and areas of ownership are on their way.","One of the three engineers at JVD Soft. The page exists but is not filled in yet: photo, stack, areas of ownership and contacts are added through the admin panel.","—","","Vlad — backend engineer at JVD Soft","Vlad is a backend engineer on the JVD Soft team. The profile is being filled in: stack, areas of ownership and contacts are coming shortly.",[],{"slug":304,"order":305,"photoUrl":235,"avatarUrl":235,"email":235,"githubUrl":235,"telegramUrl":235,"linkedinUrl":235,"sinceYear":235,"skills":306,"languages":307,"locale":20,"name":308,"fullName":308,"tag":309,"role":310,"title":311,"bio":296,"longBio":297,"favouriteTask":298,"availability":299,"metaTitle":312,"metaDescription":313,"areas":314},"dima",2,[],[265,266],"Dima","infrastructure","Infrastructure, deployment, monitoring","Infrastructure engineer","Dima — infrastructure engineer at JVD Soft","Dima is an infrastructure engineer on the JVD Soft team. The profile is being filled in: stack, areas of ownership and contacts are coming shortly.",[],{"items":316,"nextCursor":235,"hasNext":85,"total":382},[317,330,342,353,364,375],{"slug":318,"category":319,"tags":320,"coverImageUrl":235,"coverImageAlt":299,"readingMinutes":325,"featured":90,"publishedAt":326,"updatedAt":327,"locale":20,"title":328,"excerpt":329},"zero-downtime-deploy","devops",[321,322,323,324],"deploy","docker","postgres","ci-cd",9,"2026-07-28T09:00:00.000Z","2026-08-28T15:57:52.378Z","Zero-downtime deploys on a single server: what it actually takes","Zero downtime does not start with Kubernetes. It starts with migrations that are compatible with the old code, and a health check that tells the truth. Here is the order of operations on an ordinary VPS running docker compose.",{"slug":331,"category":332,"tags":333,"coverImageUrl":235,"coverImageAlt":299,"readingMinutes":337,"featured":85,"publishedAt":338,"updatedAt":339,"locale":20,"title":340,"excerpt":341},"website-cost-2026","money",[334,335,336],"budget","estimation","process",7,"2026-07-11T09:00:00.000Z","2026-08-28T15:57:52.399Z","What a website costs in 2026, and why the range is so wide","The same sentence — \"we need a website\" — can mean a week of work or three months. Here is what the price is actually made of, which line items vanish from cheap quotes, and what to ask before signing.",{"slug":343,"category":344,"tags":345,"coverImageUrl":235,"coverImageAlt":299,"readingMinutes":348,"featured":85,"publishedAt":349,"updatedAt":350,"locale":20,"title":351,"excerpt":352},"architecture-small-team","architecture",[344,346,347],"monolith","team",11,"2026-06-24T09:00:00.000Z","2026-08-28T15:57:52.490Z","Architecture for a team of three","Microservices cost a small team three times what the diagram suggests. What to choose when you have three developers and a product that must last years: a modular monolith, shared contracts, and boundaries you can see in the code.",{"slug":354,"category":336,"tags":355,"coverImageUrl":235,"coverImageAlt":299,"readingMinutes":359,"featured":85,"publishedAt":360,"updatedAt":361,"locale":20,"title":362,"excerpt":363},"taking-over-a-project",[356,357,358],"legacy","audit","handover",8,"2026-06-02T09:00:00.000Z","2026-08-28T15:57:52.583Z","Taking over a project from another team","The first two weeks on someone else’s code decide whether this becomes maintenance or permanent firefighting. The order: credentials, a reproducible run, a risk audit, stabilisation — and only then new features.",{"slug":365,"category":336,"tags":366,"coverImageUrl":235,"coverImageAlt":299,"readingMinutes":370,"featured":85,"publishedAt":371,"updatedAt":372,"locale":20,"title":373,"excerpt":374},"no-project-without-prototype",[367,368,369],"prototype","discovery","design",5,"2026-05-18T09:00:00.000Z","2026-08-28T15:57:52.681Z","Why we do not start a project without a prototype","A prototype is not a design stage, it is a way to make mistakes cheap. What it catches, how long it takes, and why \"let us go straight to design\" almost always costs more.",{"slug":376,"category":319,"tags":377,"coverImageUrl":235,"coverImageAlt":299,"readingMinutes":382,"featured":85,"publishedAt":383,"updatedAt":384,"locale":20,"title":385,"excerpt":386},"monitoring-for-three",[378,379,380,381],"monitoring","alerts","prometheus","uptime",6,"2026-04-30T09:00:00.000Z","2026-08-28T15:57:52.760Z","Monitoring for a team of three: the minimum that works","You do not need a full observability stack to stop hearing about outages from customers. Four signals, three notification channels, and one rule that prevents alert fatigue."]