[{"data":1,"prerenderedAt":456},["ShallowReactive",2],{"site-settings":3,"\u002Fprojects\u002Fgroove":56,"projects":135},{"id":4,"contact":5,"email":11,"extension":12,"footer":13,"jobTitle":16,"keywords":17,"location":25,"meta":26,"name":18,"nav":27,"ogImage":36,"sameAs":37,"socials":40,"stem":51,"telegram":52,"url":54,"__hash__":55},"settings\u002Fsettings\u002Fsite.yml",{"title":6,"description":7,"cta":8},"Let’s build something","Have a product to ship, an interface to rebuild, or an API that needs a front end? Tell me what you’re working on — I read every message.",{"label":9,"to":10},"See projects","\u002Fprojects","azizsobirovdev@gmail.com","yml",{"note":14,"byline":15},"2026 © Built with Nuxt","By AzizDev","Full Stack Developer",[18,16,19,20,21,22,23,24],"Aziz Sobirov","Vue developer","Nuxt developer","NestJS","TypeScript","Frontend developer Tashkent","Web developer Uzbekistan","Tashkent, Uzbekistan",{},[28,31,33],{"label":29,"to":30},"Home","\u002F",{"label":32,"to":10},"Projects",{"label":34,"to":35},"About","\u002Fabout","\u002Fog-image.png",[38,39],"https:\u002F\u002Fgithub.com\u002FAzizSobirov","https:\u002F\u002Ft.me\u002FAziz_Sobirov",[41,45,48],{"label":42,"href":43,"icon":44},"Email","mailto:azizdevuz@gmail.com","i-lucide-mail",{"label":46,"href":39,"icon":47},"Telegram","i-lucide-send",{"label":49,"href":38,"icon":50},"GitHub","i-lucide-github","settings\u002Fsite",{"username":53,"url":39},"@Aziz_Sobirov","https:\u002F\u002Fazizdev.uz","rZAK3A1w5iBtnBApGcVoM81340oKXT1OwOSld2vnqBE",{"id":57,"title":58,"body":59,"byline":110,"cover":111,"description":116,"extension":117,"featured":118,"gallery":119,"headline":70,"icon":121,"iconLabel":58,"liveUrl":122,"meta":123,"navigation":118,"path":124,"position":125,"repoUrl":122,"role":126,"seo":127,"stack":128,"stem":132,"timeline":133,"__hash__":134},"projects\u002Fprojects\u002Fgroove.md","Groove",{"type":60,"value":61,"toc":102},"minimark",[62,67,71,75,78,82,95,99],[63,64,66],"h2",{"id":65},"overview","Overview",[68,69,70],"p",{},"Reimagining the booking flow for a music school, assisting thousands of students in finding the right lessons.",[63,72,74],{"id":73},"the-problem","The problem",[68,76,77],{},"Booking a lesson took eleven screens and asked for payment details before showing a single available slot.",[63,79,81],{"id":80},"what-i-did","What I did",[83,84,85,89,92],"ul",{},[86,87,88],"li",{},"Instrumented the funnel and found two thirds of the loss happened before any teacher was shown.",[86,90,91],{},"Rebuilt the flow around availability first: pick a time, then a teacher, then pay.",[86,93,94],{},"Shipped a shared calendar component covering both the student and the admin side.",[63,96,98],{"id":97},"outcome","Outcome",[68,100,101],{},"Drop off fell by roughly half, and support tickets about \"where do I see times\" went away entirely.",{"title":103,"searchDepth":104,"depth":104,"links":105},"",2,[106,107,108,109],{"id":65,"depth":104,"text":66},{"id":73,"depth":104,"text":74},{"id":80,"depth":104,"text":81},{"id":97,"depth":104,"text":98},"Lead Designer, 2023",{"src":112,"alt":113,"width":114,"height":115},"https:\u002F\u002Fcdn.dribbble.com\u002Fuserupload\u002F43955214\u002Ffile\u002Foriginal-d4cde1de803e84b97d8892e3444c04b0.png?resize=1024x768&vertical=center","Groove music school booking flow mockup",1024,768,"I led a redesign of the lesson booking experience, cutting drop off in half and making the schedule feel like a calendar people actually want to open.","md",true,[120],{},"i-lucide-wand-2",null,{},"\u002Fprojects\u002Fgroove",4,"Lead Designer",{"title":58,"description":116},[129,22,130,131],"Vue","Storybook","Playwright","projects\u002Fgroove","Mar – Nov 2023","q0Hzm2fsj7sM7jsYLSGkBI_hOIFm679UGgGGSMdTq1A",[136,197,252,310,347,401],{"id":137,"title":138,"body":139,"byline":175,"cover":176,"description":181,"extension":117,"featured":118,"gallery":122,"headline":145,"icon":182,"iconLabel":183,"liveUrl":184,"meta":185,"navigation":118,"path":186,"position":187,"repoUrl":122,"role":188,"seo":189,"stack":190,"stem":194,"timeline":195,"__hash__":196},"projects\u002Fprojects\u002Floom.md","Loom",{"type":60,"value":140,"toc":169},[141,143,146,148,151,153,164,166],[63,142,66],{"id":65},[68,144,145],{},"An AI writing companion that thinks alongside you, allowing you to capture ideas, edits, and drafts in one focused space.",[63,147,74],{"id":73},[68,149,150],{},"Writing tools that bolt a chat panel onto a document force a constant context switch. Every suggestion arrives as a separate conversation the writer has to translate back into prose.",[63,152,81],{"id":80},[83,154,155,158,161],{},[86,156,157],{},"Mapped the writing session as one continuous surface rather than a document plus an assistant.",[86,159,160],{},"Designed an inline suggestion model where edits appear as reversible diffs in place.",[86,162,163],{},"Built the prototype in Nuxt with a streaming edit pipeline and optimistic rendering.",[63,165,98],{"id":97},[68,167,168],{},"Drafting sessions stayed in one window. Testers described the assistance as \"quiet\", which was the whole point.",{"title":103,"searchDepth":104,"depth":104,"links":170},[171,172,173,174],{"id":65,"depth":104,"text":66},{"id":73,"depth":104,"text":74},{"id":80,"depth":104,"text":81},{"id":97,"depth":104,"text":98},"Design Engineer, 2024",{"src":177,"alt":178,"width":179,"height":180},"https:\u002F\u002Fcdn.dribbble.com\u002Fuserupload\u002F46128964\u002Ffile\u002Fb92b9d268dd928642ca94bd49e32923a.jpg?resize=752x497&vertical=center","Loom AI writing companion mockup",752,497,"I designed Loom, a focused writing surface where ideas, edits, and drafts coexist without the chat clutter.","i-lucide-sparkles","LOOM","https:\u002F\u002Fexample.com",{},"\u002Fprojects\u002Floom",1,"Design Engineer",{"title":138,"description":181},[191,22,192,193],"Nuxt","Tailwind CSS","OpenAI API","projects\u002Floom","Jan – Jun 2024","ThXVvOXfhjmSTLePAYvf8ssiakNoAv0nnPffR_pXlw4",{"id":198,"title":199,"body":200,"byline":236,"cover":237,"description":240,"extension":117,"featured":118,"gallery":122,"headline":206,"icon":241,"iconLabel":199,"liveUrl":184,"meta":242,"navigation":118,"path":243,"position":104,"repoUrl":122,"role":244,"seo":245,"stack":246,"stem":249,"timeline":250,"__hash__":251},"projects\u002Fprojects\u002Fatlas.md","Atlas Studio",{"type":60,"value":201,"toc":230},[202,204,207,209,212,214,225,227],[63,203,66],{"id":65},[68,205,206],{},"A two week brand and product sprint for a creative studio.",[63,208,74],{"id":73},[68,210,211],{},"The studio had strong work and no coherent way to present it. Three different logos were in circulation and the site predated half the portfolio.",[63,213,81],{"id":80},[83,215,216,219,222],{},[86,217,218],{},"Ran a two day positioning workshop and cut the messaging down to a single sentence.",[86,220,221],{},"Built an identity system — type scale, palette, grid — small enough that the team could extend it alone.",[86,223,224],{},"Shipped the marketing site and a lightweight client portal on the same tokens.",[63,226,98],{"id":97},[68,228,229],{},"One system, three surfaces, and a team that stopped asking which logo to use.",{"title":103,"searchDepth":104,"depth":104,"links":231},[232,233,234,235],{"id":65,"depth":104,"text":66},{"id":73,"depth":104,"text":74},{"id":80,"depth":104,"text":81},{"id":97,"depth":104,"text":98},"Product & Brand Designer, 2025",{"src":238,"alt":239,"width":114,"height":115},"https:\u002F\u002Fcdn.dribbble.com\u002Fuserupload\u002F24599416\u002Ffile\u002Foriginal-1ae5075dcd129aebb16bdbca24b41ac7.png?resize=1024x768&vertical=center","Atlas Studio brand and product sprint mockup","End to end identity, marketing site, and a small product surface designed to feel quietly confident across every touchpoint.","i-lucide-compass",{},"\u002Fprojects\u002Fatlas","Product & Brand Designer",{"title":199,"description":240},[247,191,192,248],"Figma","Motion","projects\u002Fatlas","Feb 2025, two weeks","ZuKVny93_zEC_K0GfJNcW2BbzE6x-fdToHHs_xS09sc",{"id":253,"title":254,"body":255,"byline":291,"cover":292,"description":295,"extension":117,"featured":118,"gallery":122,"headline":261,"icon":296,"iconLabel":254,"liveUrl":184,"meta":297,"navigation":118,"path":298,"position":299,"repoUrl":300,"role":301,"seo":302,"stack":303,"stem":307,"timeline":308,"__hash__":309},"projects\u002Fprojects\u002Frhythm.md","Rhythm",{"type":60,"value":256,"toc":285},[257,259,262,264,267,269,280,282],[63,258,66],{"id":65},[68,260,261],{},"Calm analytics for indie founders.",[63,263,74],{"id":73},[68,265,266],{},"Analytics dashboards optimise for exploration. Most solo founders do not want to explore — they want to know whether last week went well.",[63,268,81],{"id":80},[83,270,271,274,277],{},[86,272,273],{},"Replaced the dashboard with a single weekly email written in sentences, not charts.",[86,275,276],{},"Picked four metrics and refused to add a fifth.",[86,278,279],{},"Built the aggregation on Nitro tasks against SQLite so the whole thing runs on one small box.",[63,281,98],{"id":97},[68,283,284],{},"Open rates sit far above what a dashboard login rate would ever be. The product is boring on purpose.",{"title":103,"searchDepth":104,"depth":104,"links":286},[287,288,289,290],{"id":65,"depth":104,"text":66},{"id":73,"depth":104,"text":74},{"id":80,"depth":104,"text":81},{"id":97,"depth":104,"text":98},"Founder & Designer, 2024",{"src":293,"alt":294,"width":114,"height":115},"https:\u002F\u002Fcdn.dribbble.com\u002Fuserupload\u002F47357856\u002Ffile\u002F75841fa59f32f05ca6c5ddf02d08dfe6.png?resize=1024x768&vertical=center","Rhythm calm analytics mockup","A weekly digest that turns raw product data into a simple narrative. Built so you can read it on a Sunday with coffee.","i-lucide-line-chart",{},"\u002Fprojects\u002Frhythm",3,"https:\u002F\u002Fgithub.com","Founder & Designer",{"title":254,"description":295},[191,304,305,306],"Nitro","SQLite","Resend","projects\u002Frhythm","2024 – present","_50p2fqrfL87mGAWtn43g-vOMNeBKTb37y4Xok39JVA",{"id":57,"title":58,"body":311,"byline":110,"cover":341,"description":116,"extension":117,"featured":118,"gallery":342,"headline":70,"icon":121,"iconLabel":58,"liveUrl":122,"meta":344,"navigation":118,"path":124,"position":125,"repoUrl":122,"role":126,"seo":345,"stack":346,"stem":132,"timeline":133,"__hash__":134},{"type":60,"value":312,"toc":335},[313,315,317,319,321,323,331,333],[63,314,66],{"id":65},[68,316,70],{},[63,318,74],{"id":73},[68,320,77],{},[63,322,81],{"id":80},[83,324,325,327,329],{},[86,326,88],{},[86,328,91],{},[86,330,94],{},[63,332,98],{"id":97},[68,334,101],{},{"title":103,"searchDepth":104,"depth":104,"links":336},[337,338,339,340],{"id":65,"depth":104,"text":66},{"id":73,"depth":104,"text":74},{"id":80,"depth":104,"text":81},{"id":97,"depth":104,"text":98},{"src":112,"alt":113,"width":114,"height":115},[343],{},{},{"title":58,"description":116},[129,22,130,131],{"id":348,"title":349,"body":350,"byline":175,"cover":386,"description":389,"extension":117,"featured":390,"gallery":122,"headline":356,"icon":391,"iconLabel":349,"liveUrl":122,"meta":392,"navigation":118,"path":393,"position":394,"repoUrl":300,"role":188,"seo":395,"stack":396,"stem":398,"timeline":399,"__hash__":400},"projects\u002Fprojects\u002Ffieldnote.md","Fieldnote",{"type":60,"value":351,"toc":380},[352,354,357,359,362,364,375,377],[63,353,66],{"id":65},[68,355,356],{},"A pocket sized research tool for design teams that want to get out of their docs and into the world.",[63,358,74],{"id":73},[68,360,361],{},"Research notes get taken on a phone in the field and then re-typed into a doc that evening. The re-typing is where the nuance dies.",[63,363,81],{"id":80},[83,365,366,369,372],{},[86,367,368],{},"Designed capture around one thumb: a quote, a tag, done.",[86,370,371],{},"Made everything offline-first with IndexedDB so a basement interview still works.",[86,373,374],{},"Added a synthesis view that clusters by tag instead of by session.",[63,376,98],{"id":97},[68,378,379],{},"Notes stopped being re-typed. Themes emerged from the tags rather than from memory.",{"title":103,"searchDepth":104,"depth":104,"links":381},[382,383,384,385],{"id":65,"depth":104,"text":66},{"id":73,"depth":104,"text":74},{"id":80,"depth":104,"text":81},{"id":97,"depth":104,"text":98},{"src":387,"alt":388,"width":114,"height":115},"https:\u002F\u002Fcdn.dribbble.com\u002Fuserupload\u002F30310902\u002Ffile\u002Foriginal-621e7fe47be9d11ee14544456c693bec.png?resize=1024x768&vertical=center","Fieldnote pocket sized research tool mockup","Capture quotes, tag patterns, and synthesize themes in one place. The interface stays out of the way so the thinking can happen.",false,"i-lucide-layers",{},"\u002Fprojects\u002Ffieldnote",5,{"title":349,"description":389},[191,397,192],"IndexedDB","projects\u002Ffieldnote","Sep – Dec 2024","xZOe8JZex_6l2AllsIEdi9-L_A1SrxuL2JAckJyGiis",{"id":402,"title":403,"body":404,"byline":440,"cover":441,"description":444,"extension":117,"featured":390,"gallery":122,"headline":410,"icon":445,"iconLabel":403,"liveUrl":184,"meta":446,"navigation":118,"path":447,"position":448,"repoUrl":300,"role":449,"seo":450,"stack":451,"stem":453,"timeline":454,"__hash__":455},"projects\u002Fprojects\u002Ftalkback.md","Talkback",{"type":60,"value":405,"toc":434},[406,408,411,413,416,418,429,431],[63,407,66],{"id":65},[68,409,410],{},"A friendlier interface for talking to language models.",[63,412,74],{"id":73},[68,414,415],{},"Chat interfaces inherited the terminal: a log, a prompt, and a blinking cursor. None of that is how conversation actually feels.",[63,417,81],{"id":80},[83,419,420,423,426],{},[86,421,422],{},"Explored turn-taking as motion rather than as stacked bubbles.",[86,424,425],{},"Gave replies a settling animation so arrival reads as thinking, not as printing.",[86,427,428],{},"Prototyped voice input as a first-class mode instead of a microphone icon.",[63,430,98],{"id":97},[68,432,433],{},"An exploration, not a product. Two of the interaction ideas ended up in client work.",{"title":103,"searchDepth":104,"depth":104,"links":435},[436,437,438,439],{"id":65,"depth":104,"text":66},{"id":73,"depth":104,"text":74},{"id":80,"depth":104,"text":81},{"id":97,"depth":104,"text":98},"Independent Project, 2025",{"src":442,"alt":443,"width":114,"height":115},"https:\u002F\u002Fcdn.dribbble.com\u002Fuserupload\u002F16560717\u002Ffile\u002Foriginal-c6f745d50302d66609bfe080f99f5396.png?resize=1024x768&vertical=center","Talkback friendlier AI chat interface mockup","An exploration of how AI chat could feel less like a terminal and more like a conversation with a curious friend.","i-lucide-bot",{},"\u002Fprojects\u002Ftalkback",6,"Independent Project",{"title":403,"description":444},[191,248,452],"Web Speech API","projects\u002Ftalkback","2025","CBIudEWOas7phx4-Ow58IF3WINAIzsoNMJGj6-fokUE",1788852690811]