[{"data":1,"prerenderedAt":454},["ShallowReactive",2],{"site-settings":3,"\u002Fprojects\u002Frhythm":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":118,"path":123,"position":124,"repoUrl":125,"role":126,"seo":127,"stack":128,"stem":133,"timeline":134,"__hash__":135},"projects\u002Fprojects\u002Frhythm.md","Rhythm",{"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",{},"Calm analytics for indie founders.",[63,72,74],{"id":73},"the-problem","The problem",[68,76,77],{},"Analytics dashboards optimise for exploration. Most solo founders do not want to explore — they want to know whether last week went well.",[63,79,81],{"id":80},"what-i-did","What I did",[83,84,85,89,92],"ul",{},[86,87,88],"li",{},"Replaced the dashboard with a single weekly email written in sentences, not charts.",[86,90,91],{},"Picked four metrics and refused to add a fifth.",[86,93,94],{},"Built the aggregation on Nitro tasks against SQLite so the whole thing runs on one small box.",[63,96,98],{"id":97},"outcome","Outcome",[68,100,101],{},"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":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},"Founder & Designer, 2024",{"src":112,"alt":113,"width":114,"height":115},"https:\u002F\u002Fcdn.dribbble.com\u002Fuserupload\u002F47357856\u002Ffile\u002F75841fa59f32f05ca6c5ddf02d08dfe6.png?resize=1024x768&vertical=center","Rhythm calm analytics mockup",1024,768,"A weekly digest that turns raw product data into a simple narrative. Built so you can read it on a Sunday with coffee.","md",true,null,"i-lucide-line-chart","https:\u002F\u002Fexample.com",{},"\u002Fprojects\u002Frhythm",3,"https:\u002F\u002Fgithub.com","Founder & Designer",{"title":58,"description":116},[129,130,131,132],"Nuxt","Nitro","SQLite","Resend","projects\u002Frhythm","2024 – present","_50p2fqrfL87mGAWtn43g-vOMNeBKTb37y4Xok39JVA",[137,196,251,286,345,399],{"id":138,"title":139,"body":140,"byline":176,"cover":177,"description":182,"extension":117,"featured":118,"gallery":119,"headline":146,"icon":183,"iconLabel":184,"liveUrl":121,"meta":185,"navigation":118,"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},[129,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":118,"gallery":119,"headline":205,"icon":240,"iconLabel":198,"liveUrl":121,"meta":241,"navigation":118,"path":242,"position":104,"repoUrl":119,"role":243,"seo":244,"stack":245,"stem":248,"timeline":249,"__hash__":250},"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,129,191,247],"Figma","Motion","projects\u002Fatlas","Feb 2025, two weeks","ZuKVny93_zEC_K0GfJNcW2BbzE6x-fdToHHs_xS09sc",{"id":57,"title":58,"body":252,"byline":110,"cover":282,"description":116,"extension":117,"featured":118,"gallery":119,"headline":70,"icon":120,"iconLabel":58,"liveUrl":121,"meta":283,"navigation":118,"path":123,"position":124,"repoUrl":125,"role":126,"seo":284,"stack":285,"stem":133,"timeline":134,"__hash__":135},{"type":60,"value":253,"toc":276},[254,256,258,260,262,264,272,274],[63,255,66],{"id":65},[68,257,70],{},[63,259,74],{"id":73},[68,261,77],{},[63,263,81],{"id":80},[83,265,266,268,270],{},[86,267,88],{},[86,269,91],{},[86,271,94],{},[63,273,98],{"id":97},[68,275,101],{},{"title":103,"searchDepth":104,"depth":104,"links":277},[278,279,280,281],{"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},[129,130,131,132],{"id":287,"title":288,"body":289,"byline":325,"cover":326,"description":329,"extension":117,"featured":118,"gallery":330,"headline":295,"icon":332,"iconLabel":288,"liveUrl":119,"meta":333,"navigation":118,"path":334,"position":335,"repoUrl":119,"role":336,"seo":337,"stack":338,"stem":342,"timeline":343,"__hash__":344},"projects\u002Fprojects\u002Fgroove.md","Groove",{"type":60,"value":290,"toc":319},[291,293,296,298,301,303,314,316],[63,292,66],{"id":65},[68,294,295],{},"Reimagining the booking flow for a music school, assisting thousands of students in finding the right lessons.",[63,297,74],{"id":73},[68,299,300],{},"Booking a lesson took eleven screens and asked for payment details before showing a single available slot.",[63,302,81],{"id":80},[83,304,305,308,311],{},[86,306,307],{},"Instrumented the funnel and found two thirds of the loss happened before any teacher was shown.",[86,309,310],{},"Rebuilt the flow around availability first: pick a time, then a teacher, then pay.",[86,312,313],{},"Shipped a shared calendar component covering both the student and the admin side.",[63,315,98],{"id":97},[68,317,318],{},"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":320},[321,322,323,324],{"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":327,"alt":328,"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.",[331],{},"i-lucide-wand-2",{},"\u002Fprojects\u002Fgroove",4,"Lead Designer",{"title":288,"description":329},[339,22,340,341],"Vue","Storybook","Playwright","projects\u002Fgroove","Mar – Nov 2023","q0Hzm2fsj7sM7jsYLSGkBI_hOIFm679UGgGGSMdTq1A",{"id":346,"title":347,"body":348,"byline":176,"cover":384,"description":387,"extension":117,"featured":388,"gallery":119,"headline":354,"icon":389,"iconLabel":347,"liveUrl":119,"meta":390,"navigation":118,"path":391,"position":392,"repoUrl":125,"role":188,"seo":393,"stack":394,"stem":396,"timeline":397,"__hash__":398},"projects\u002Fprojects\u002Ffieldnote.md","Fieldnote",{"type":60,"value":349,"toc":378},[350,352,355,357,360,362,373,375],[63,351,66],{"id":65},[68,353,354],{},"A pocket sized research tool for design teams that want to get out of their docs and into the world.",[63,356,74],{"id":73},[68,358,359],{},"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,361,81],{"id":80},[83,363,364,367,370],{},[86,365,366],{},"Designed capture around one thumb: a quote, a tag, done.",[86,368,369],{},"Made everything offline-first with IndexedDB so a basement interview still works.",[86,371,372],{},"Added a synthesis view that clusters by tag instead of by session.",[63,374,98],{"id":97},[68,376,377],{},"Notes stopped being re-typed. Themes emerged from the tags rather than from memory.",{"title":103,"searchDepth":104,"depth":104,"links":379},[380,381,382,383],{"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":385,"alt":386,"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":347,"description":387},[129,395,191],"IndexedDB","projects\u002Ffieldnote","Sep – Dec 2024","xZOe8JZex_6l2AllsIEdi9-L_A1SrxuL2JAckJyGiis",{"id":400,"title":401,"body":402,"byline":438,"cover":439,"description":442,"extension":117,"featured":388,"gallery":119,"headline":408,"icon":443,"iconLabel":401,"liveUrl":121,"meta":444,"navigation":118,"path":445,"position":446,"repoUrl":125,"role":447,"seo":448,"stack":449,"stem":451,"timeline":452,"__hash__":453},"projects\u002Fprojects\u002Ftalkback.md","Talkback",{"type":60,"value":403,"toc":432},[404,406,409,411,414,416,427,429],[63,405,66],{"id":65},[68,407,408],{},"A friendlier interface for talking to language models.",[63,410,74],{"id":73},[68,412,413],{},"Chat interfaces inherited the terminal: a log, a prompt, and a blinking cursor. None of that is how conversation actually feels.",[63,415,81],{"id":80},[83,417,418,421,424],{},[86,419,420],{},"Explored turn-taking as motion rather than as stacked bubbles.",[86,422,423],{},"Gave replies a settling animation so arrival reads as thinking, not as printing.",[86,425,426],{},"Prototyped voice input as a first-class mode instead of a microphone icon.",[63,428,98],{"id":97},[68,430,431],{},"An exploration, not a product. Two of the interaction ideas ended up in client work.",{"title":103,"searchDepth":104,"depth":104,"links":433},[434,435,436,437],{"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":440,"alt":441,"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":401,"description":442},[129,247,450],"Web Speech API","projects\u002Ftalkback","2025","CBIudEWOas7phx4-Ow58IF3WINAIzsoNMJGj6-fokUE",1788852690811]