[{"data":1,"prerenderedAt":454},["ShallowReactive",2],{"site-settings":3,"\u002Fprojects\u002Ftalkback":56,"projects":136},{"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":120,"iconLabel":58,"liveUrl":121,"meta":122,"navigation":123,"path":124,"position":125,"repoUrl":126,"role":127,"seo":128,"stack":129,"stem":133,"timeline":134,"__hash__":135},"projects\u002Fprojects\u002Ftalkback.md","Talkback",{"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",{},"A friendlier interface for talking to language models.",[63,72,74],{"id":73},"the-problem","The problem",[68,76,77],{},"Chat interfaces inherited the terminal: a log, a prompt, and a blinking cursor. None of that is how conversation actually feels.",[63,79,81],{"id":80},"what-i-did","What I did",[83,84,85,89,92],"ul",{},[86,87,88],"li",{},"Explored turn-taking as motion rather than as stacked bubbles.",[86,90,91],{},"Gave replies a settling animation so arrival reads as thinking, not as printing.",[86,93,94],{},"Prototyped voice input as a first-class mode instead of a microphone icon.",[63,96,98],{"id":97},"outcome","Outcome",[68,100,101],{},"An exploration, not a product. Two of the interaction ideas ended up in client work.",{"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},"Independent Project, 2025",{"src":112,"alt":113,"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",1024,768,"An exploration of how AI chat could feel less like a terminal and more like a conversation with a curious friend.","md",false,null,"i-lucide-bot","https:\u002F\u002Fexample.com",{},true,"\u002Fprojects\u002Ftalkback",6,"https:\u002F\u002Fgithub.com","Independent Project",{"title":58,"description":116},[130,131,132],"Nuxt","Motion","Web Speech API","projects\u002Ftalkback","2025","CBIudEWOas7phx4-Ow58IF3WINAIzsoNMJGj6-fokUE",[137,196,250,307,366,419],{"id":138,"title":139,"body":140,"byline":176,"cover":177,"description":182,"extension":117,"featured":123,"gallery":119,"headline":146,"icon":183,"iconLabel":184,"liveUrl":121,"meta":185,"navigation":123,"path":186,"position":187,"repoUrl":119,"role":188,"seo":189,"stack":190,"stem":193,"timeline":194,"__hash__":195},"projects\u002Fprojects\u002Floom.md","Loom",{"type":60,"value":141,"toc":170},[142,144,147,149,152,154,165,167],[63,143,66],{"id":65},[68,145,146],{},"An AI writing companion that thinks alongside you, allowing you to capture ideas, edits, and drafts in one focused space.",[63,148,74],{"id":73},[68,150,151],{},"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,153,81],{"id":80},[83,155,156,159,162],{},[86,157,158],{},"Mapped the writing session as one continuous surface rather than a document plus an assistant.",[86,160,161],{},"Designed an inline suggestion model where edits appear as reversible diffs in place.",[86,163,164],{},"Built the prototype in Nuxt with a streaming edit pipeline and optimistic rendering.",[63,166,98],{"id":97},[68,168,169],{},"Drafting sessions stayed in one window. Testers described the assistance as \"quiet\", which was the whole point.",{"title":103,"searchDepth":104,"depth":104,"links":171},[172,173,174,175],{"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":178,"alt":179,"width":180,"height":181},"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",{},"\u002Fprojects\u002Floom",1,"Design Engineer",{"title":139,"description":182},[130,22,191,192],"Tailwind CSS","OpenAI API","projects\u002Floom","Jan – Jun 2024","ThXVvOXfhjmSTLePAYvf8ssiakNoAv0nnPffR_pXlw4",{"id":197,"title":198,"body":199,"byline":235,"cover":236,"description":239,"extension":117,"featured":123,"gallery":119,"headline":205,"icon":240,"iconLabel":198,"liveUrl":121,"meta":241,"navigation":123,"path":242,"position":104,"repoUrl":119,"role":243,"seo":244,"stack":245,"stem":247,"timeline":248,"__hash__":249},"projects\u002Fprojects\u002Fatlas.md","Atlas Studio",{"type":60,"value":200,"toc":229},[201,203,206,208,211,213,224,226],[63,202,66],{"id":65},[68,204,205],{},"A two week brand and product sprint for a creative studio.",[63,207,74],{"id":73},[68,209,210],{},"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,212,81],{"id":80},[83,214,215,218,221],{},[86,216,217],{},"Ran a two day positioning workshop and cut the messaging down to a single sentence.",[86,219,220],{},"Built an identity system — type scale, palette, grid — small enough that the team could extend it alone.",[86,222,223],{},"Shipped the marketing site and a lightweight client portal on the same tokens.",[63,225,98],{"id":97},[68,227,228],{},"One system, three surfaces, and a team that stopped asking which logo to use.",{"title":103,"searchDepth":104,"depth":104,"links":230},[231,232,233,234],{"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":237,"alt":238,"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":198,"description":239},[246,130,191,131],"Figma","projects\u002Fatlas","Feb 2025, two weeks","ZuKVny93_zEC_K0GfJNcW2BbzE6x-fdToHHs_xS09sc",{"id":251,"title":252,"body":253,"byline":289,"cover":290,"description":293,"extension":117,"featured":123,"gallery":119,"headline":259,"icon":294,"iconLabel":252,"liveUrl":121,"meta":295,"navigation":123,"path":296,"position":297,"repoUrl":126,"role":298,"seo":299,"stack":300,"stem":304,"timeline":305,"__hash__":306},"projects\u002Fprojects\u002Frhythm.md","Rhythm",{"type":60,"value":254,"toc":283},[255,257,260,262,265,267,278,280],[63,256,66],{"id":65},[68,258,259],{},"Calm analytics for indie founders.",[63,261,74],{"id":73},[68,263,264],{},"Analytics dashboards optimise for exploration. Most solo founders do not want to explore — they want to know whether last week went well.",[63,266,81],{"id":80},[83,268,269,272,275],{},[86,270,271],{},"Replaced the dashboard with a single weekly email written in sentences, not charts.",[86,273,274],{},"Picked four metrics and refused to add a fifth.",[86,276,277],{},"Built the aggregation on Nitro tasks against SQLite so the whole thing runs on one small box.",[63,279,98],{"id":97},[68,281,282],{},"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":284},[285,286,287,288],{"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":291,"alt":292,"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,"Founder & Designer",{"title":252,"description":293},[130,301,302,303],"Nitro","SQLite","Resend","projects\u002Frhythm","2024 – present","_50p2fqrfL87mGAWtn43g-vOMNeBKTb37y4Xok39JVA",{"id":308,"title":309,"body":310,"byline":346,"cover":347,"description":350,"extension":117,"featured":123,"gallery":351,"headline":316,"icon":353,"iconLabel":309,"liveUrl":119,"meta":354,"navigation":123,"path":355,"position":356,"repoUrl":119,"role":357,"seo":358,"stack":359,"stem":363,"timeline":364,"__hash__":365},"projects\u002Fprojects\u002Fgroove.md","Groove",{"type":60,"value":311,"toc":340},[312,314,317,319,322,324,335,337],[63,313,66],{"id":65},[68,315,316],{},"Reimagining the booking flow for a music school, assisting thousands of students in finding the right lessons.",[63,318,74],{"id":73},[68,320,321],{},"Booking a lesson took eleven screens and asked for payment details before showing a single available slot.",[63,323,81],{"id":80},[83,325,326,329,332],{},[86,327,328],{},"Instrumented the funnel and found two thirds of the loss happened before any teacher was shown.",[86,330,331],{},"Rebuilt the flow around availability first: pick a time, then a teacher, then pay.",[86,333,334],{},"Shipped a shared calendar component covering both the student and the admin side.",[63,336,98],{"id":97},[68,338,339],{},"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":341},[342,343,344,345],{"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":348,"alt":349,"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","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.",[352],{},"i-lucide-wand-2",{},"\u002Fprojects\u002Fgroove",4,"Lead Designer",{"title":309,"description":350},[360,22,361,362],"Vue","Storybook","Playwright","projects\u002Fgroove","Mar – Nov 2023","q0Hzm2fsj7sM7jsYLSGkBI_hOIFm679UGgGGSMdTq1A",{"id":367,"title":368,"body":369,"byline":176,"cover":405,"description":408,"extension":117,"featured":118,"gallery":119,"headline":375,"icon":409,"iconLabel":368,"liveUrl":119,"meta":410,"navigation":123,"path":411,"position":412,"repoUrl":126,"role":188,"seo":413,"stack":414,"stem":416,"timeline":417,"__hash__":418},"projects\u002Fprojects\u002Ffieldnote.md","Fieldnote",{"type":60,"value":370,"toc":399},[371,373,376,378,381,383,394,396],[63,372,66],{"id":65},[68,374,375],{},"A pocket sized research tool for design teams that want to get out of their docs and into the world.",[63,377,74],{"id":73},[68,379,380],{},"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,382,81],{"id":80},[83,384,385,388,391],{},[86,386,387],{},"Designed capture around one thumb: a quote, a tag, done.",[86,389,390],{},"Made everything offline-first with IndexedDB so a basement interview still works.",[86,392,393],{},"Added a synthesis view that clusters by tag instead of by session.",[63,395,98],{"id":97},[68,397,398],{},"Notes stopped being re-typed. Themes emerged from the tags rather than from memory.",{"title":103,"searchDepth":104,"depth":104,"links":400},[401,402,403,404],{"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":406,"alt":407,"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.","i-lucide-layers",{},"\u002Fprojects\u002Ffieldnote",5,{"title":368,"description":408},[130,415,191],"IndexedDB","projects\u002Ffieldnote","Sep – Dec 2024","xZOe8JZex_6l2AllsIEdi9-L_A1SrxuL2JAckJyGiis",{"id":57,"title":58,"body":420,"byline":110,"cover":450,"description":116,"extension":117,"featured":118,"gallery":119,"headline":70,"icon":120,"iconLabel":58,"liveUrl":121,"meta":451,"navigation":123,"path":124,"position":125,"repoUrl":126,"role":127,"seo":452,"stack":453,"stem":133,"timeline":134,"__hash__":135},{"type":60,"value":421,"toc":444},[422,424,426,428,430,432,440,442],[63,423,66],{"id":65},[68,425,70],{},[63,427,74],{"id":73},[68,429,77],{},[63,431,81],{"id":80},[83,433,434,436,438],{},[86,435,88],{},[86,437,91],{},[86,439,94],{},[63,441,98],{"id":97},[68,443,101],{},{"title":103,"searchDepth":104,"depth":104,"links":445},[446,447,448,449],{"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},{},{"title":58,"description":116},[130,131,132],1788852690852]