[{"data":1,"prerenderedAt":74},["ShallowReactive",2],{"api:\u002Fapi\u002Fconfig:en":3,"api:\u002Fapi\u002Fnotes:en":8,"api:\u002Fapi\u002Fprojects\u002Fdovod-concept:en":32},{"email":4,"lang":5,"name":6,"role":7},"hello@ewsirdev.example","en","Ewsirdev","Web developer: websites, landing pages and Go services",[9,16,22,27],{"slug":10,"lang":5,"title":11,"date":12,"summary":13,"project":14,"minutes":15},"double-booking","Double booking: a transaction plus a partial UNIQUE index","2026-10-20","How booking-slots protects against two clients booking the same time at once, and how that protection is tested.","booking-slots",1,{"slug":17,"lang":5,"title":18,"date":12,"summary":19,"project":20,"minutes":21},"lease-and-fencing","Lease and fencing: how a queue neither loses a job nor lets a zombie finish it twice","A worker can crash, stall, or wake up after its job was taken by someone else. How the lease and the lease token in job-queue deal with that on SQLite.","job-queue",2,{"slug":23,"lang":5,"title":24,"date":12,"summary":25,"project":26,"minutes":21},"p95-nearest-rank","p95 in an uptime monitor: the nearest-rank method and what it does not hide","How uptime-monitor computes p50\u002Fp95 latency and uptime, why the nearest-rank method was chosen, and where those numbers can mislead.","uptime-monitor",{"slug":28,"lang":5,"title":29,"date":12,"summary":30,"project":31,"minutes":21},"websocket-from-scratch","WebSocket on the standard library: what really happens under new WebSocket()","Why realtime-rooms has its own RFC 6455 layer, which protocol violations it checks, and why a library is still the better choice for production.","realtime-rooms",{"slug":33,"title":34,"type":35,"stack":36,"description":42,"highlights":43,"run":47,"hue":48,"og":49,"shots":50,"case":58,"case_lang":5,"prev":68,"next":71},"dovod-concept","Dovod: expert-firm landing concept","landing",[37,38,39,40,41],"Nuxt 4","Vue 3","TypeScript","CSS","GitHub Actions","A Nuxt 4 landing concept for a fictional expert-appraisal firm: service areas, a consultation form with a phone mask, a reviews carousel and a policy page. The company, reviews, figures and contacts are made up; the form sends nothing.",[44,45,46],"Form with a phone mask, validation and error hints; in the demo it states that nothing is sent","Endless reviews carousel with swipe and autoplay","Mobile action bar, responsive layout, skeleton overlay on top of server-rendered HTML","npm install && npm run dev",215,"\u002Fog\u002Fen\u002Fdovod-concept.jpg",{"desktop":51,"desktop_sm":52,"mobile":53,"dw":54,"dh":55,"mw":56,"mh":57},"\u002Fshots\u002Fdovod-concept-desktop.webp","\u002Fshots\u002Fdovod-concept-desktop-sm.webp","\u002Fshots\u002Fdovod-concept-mobile.webp",1280,800,390,844,{"about":59,"features":60,"run":61,"notes":63},[42],[44,45,46],[47,62],"# static: npm run generate, output in .output\u002Fpublic",[64,65,66,67],"Concept: the page carries a banner saying the company, reviews, figures and contacts are fictional.","No backend, the map is a placeholder, messenger buttons lead nowhere.","The privacy policy in the demo is a sample with zeroed-out details, not a legal document.","No tests or linter; CI checks install and static generation.",{"slug":69,"title":70},"bad-club-booking-app","Bad Club: seat booking for a gaming coworking space",{"slug":72,"title":73},"niche-landings","Catalog of 10 niche demo landing pages",1792697892726]