[{"data":1,"prerenderedAt":273},["ShallowReactive",2],{"work-project-selected-web":3,"work-all-nav":57},{"id":4,"title":5,"body":6,"client":39,"cover":40,"description":41,"displayOrder":42,"extension":43,"images":44,"liveLink":46,"meta":47,"navigation":48,"path":49,"role":50,"seo":51,"slug":52,"stem":53,"tag":54,"year":55,"__hash__":56},"work/work/selected-web.md","Selected Web",{"type":7,"value":8,"toc":32},"minimark",[9,14,18,22,25,29],[10,11,13],"h2",{"id":12},"challenge","Challenge",[15,16,17],"p",{},"I was building landing pages for several different clients and found myself rewriting the same layout components, slider behaviors, and animations from scratch every time.",[10,19,21],{"id":20},"solution","Solution",[15,23,24],{},"I put together a component library using React, Vite, and TypeScript. I styled them with Tailwind CSS and used Framer Motion for animations like glassmorphism reveals.",[10,26,28],{"id":27},"results","Results",[15,30,31],{},"I now use this library for all my client projects, which means I can deploy a new custom landing page in a fraction of the time.",{"title":33,"searchDepth":34,"depth":34,"links":35},"",2,[36,37,38],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"Various","/Selected Web Landing.png","React interfaces and landing pages.",6,"md",[40,45,40],"/Selected Web Dashboard.png",null,{},true,"/work/selected-web","Frontend Engineering",{"title":5,"description":41},"selected-web","work/selected-web","FRONTEND","2025","h6PZVhbsb6138i6edD19Cq-WclMgGkoXz3c97Dfq1jE",[58,97,137,175,213,236],{"id":59,"title":60,"body":61,"client":83,"cover":84,"description":85,"displayOrder":86,"extension":43,"images":87,"liveLink":46,"meta":89,"navigation":48,"path":90,"role":91,"seo":92,"slug":93,"stem":94,"tag":95,"year":55,"__hash__":96},"work/work/cashboard.md","Cashboard",{"type":7,"value":62,"toc":78},[63,65,68,70,73,75],[10,64,13],{"id":12},[15,66,67],{},"Most websites that list software and tools are full of paid ads, sponsored slots, and fake reviews. It makes finding actual good products very difficult.",[10,69,21],{"id":20},[15,71,72],{},"I built a directory (mycashboard.app) with no paid listings or ads. I included a simple filter so users can see which tools are actually available in their country, since a lot of services have regional limits.",[10,74,28],{"id":27},[15,76,77],{},"I launched it on Product Hunt and got a good response. The site gets steady traffic from community forums and organic search.",{"title":33,"searchDepth":34,"depth":34,"links":79},[80,81,82],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"Self-initiated","/Cashboard Landing.png","AI tool and rewards aggregator.",3,[84,88,84],"/Cashboard Dashboard.png",{},"/work/cashboard","Full-Stack Engineering",{"title":60,"description":85},"cashboard","work/cashboard","WEB APP","r1K_FNyNKCFSTPZEkzdlpUiy9LmfCpwMPLc0wB4C-x4",{"id":98,"title":99,"body":100,"client":122,"cover":123,"description":124,"displayOrder":125,"extension":43,"images":126,"liveLink":46,"meta":128,"navigation":48,"path":129,"role":130,"seo":131,"slug":132,"stem":133,"tag":134,"year":135,"__hash__":136},"work/work/crashful.md","Crashful",{"type":7,"value":101,"toc":117},[102,104,107,109,112,114],[10,103,13],{"id":12},[15,105,106],{},"Roughly 40% of car insurance claims are for minor damage that does not need an in person inspection. Even so, mid-sized insurance companies in the US pay a lot for manual site visits. Most automated tools on the market are built for massive enterprises and priced out of reach for smaller companies.",[10,108,21],{"id":20},[15,110,111],{},"We built a web app where users upload photos of their damaged cars, a custom vision model estimates the repair costs, and the insurance agent gets an automated report on their dashboard. It's priced per seat so mid-sized agencies don't have to pay enterprise rates.",[10,113,28],{"id":27},[15,115,116],{},"This won first place at the Context × Garaža AI hackathon in Belgrade. We're now turning it into a real business and setting up our first sales pipelines.",{"title":33,"searchDepth":34,"depth":34,"links":118},[119,120,121],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"Hackathon Team Project","/Crashful Landing.png","AI vehicle damage assessment for insurance companies.",1,[123,127,123],"/Crashful Dashboard.png",{},"/work/crashful","Full-Stack Engineering & Vision Integration",{"title":99,"description":124},"crashful","work/crashful","AI PLATFORM","2026","JP4lJsU0FIwxWuDbcnGVaogW5OP6-G68Cz9Cweky8iQ",{"id":138,"title":139,"body":140,"client":139,"cover":162,"description":163,"displayOrder":164,"extension":43,"images":165,"liveLink":46,"meta":167,"navigation":48,"path":168,"role":169,"seo":170,"slug":171,"stem":172,"tag":173,"year":135,"__hash__":174},"work/work/heyn.md","HEYN",{"type":7,"value":141,"toc":157},[142,144,147,149,152,154],[10,143,13],{"id":12},[15,145,146],{},"A new luxury eyewear reseller wanted to test the market quickly. They needed a clean site but did not want the cost and complexity of setting up a full online store like Shopify.",[10,148,21],{"id":20},[15,150,151],{},"I wrote a script to scrape product data and photos from suppliers. I then built a simple, fast landing page where users click to buy, which sends a direct message to the brand's Instagram account.",[10,153,28],{"id":27},[15,155,156],{},"We set up the site and catalog in just a few days, letting the owner test demand and make sales without managing a complicated inventory backend.",{"title":33,"searchDepth":34,"depth":34,"links":158},[159,160,161],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"/HEYN Landing.png","Eyewear catalog and brand setup.",4,[162,166,162],"/HEYN Dashboard.png",{},"/work/heyn","E-commerce Data Architecture & Asset Generation",{"title":139,"description":163},"heyn","work/heyn","ECOMMERCE","kzXk_SaIdohUUTonFiyh_n7U_buEBb4w0ltwv-NzR7k",{"id":176,"title":177,"body":178,"client":177,"cover":200,"description":201,"displayOrder":202,"extension":43,"images":203,"liveLink":46,"meta":205,"navigation":48,"path":206,"role":207,"seo":208,"slug":209,"stem":210,"tag":211,"year":55,"__hash__":212},"work/work/level8.md","Level8",{"type":7,"value":179,"toc":195},[180,182,185,187,190,192],[10,181,13],{"id":12},[15,183,184],{},"Most programming courses for kids are too theoretical and boring, which makes them lose interest quickly.",[10,186,21],{"id":20},[15,188,189],{},"I created a custom curriculum in Serbian for a private school called Level8. Instead of reading about code, the kids build things right away, using Scratch for games like Flappy Bird and Python's Turtle library to learn geometry.",[10,191,28],{"id":27},[15,193,194],{},"We teach small classes in New Belgrade. The kids write and debug their own small games, and they actually stay excited about it.",{"title":33,"searchDepth":34,"depth":34,"links":196},[197,198,199],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"/Level8 Landing.png","Programming and math school for children.",5,[200,204,200],"/Level8 Dashboard.png",{},"/work/level8","Curriculum & Tech Tutoring",{"title":177,"description":201},"level8","work/level8","EDUCATION","PBKUjLgXMWKHff1UVL0cWH65dDUoBEsz-bZEkLQKDnA",{"id":4,"title":5,"body":214,"client":39,"cover":40,"description":41,"displayOrder":42,"extension":43,"images":233,"liveLink":46,"meta":234,"navigation":48,"path":49,"role":50,"seo":235,"slug":52,"stem":53,"tag":54,"year":55,"__hash__":56},{"type":7,"value":215,"toc":228},[216,218,220,222,224,226],[10,217,13],{"id":12},[15,219,17],{},[10,221,21],{"id":20},[15,223,24],{},[10,225,28],{"id":27},[15,227,31],{},{"title":33,"searchDepth":34,"depth":34,"links":229},[230,231,232],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},[40,45,40],{},{"title":5,"description":41},{"id":237,"title":238,"body":239,"client":83,"cover":261,"description":262,"displayOrder":34,"extension":43,"images":263,"liveLink":46,"meta":265,"navigation":48,"path":266,"role":267,"seo":268,"slug":269,"stem":270,"tag":271,"year":135,"__hash__":272},"work/work/tapko.md","Tapko",{"type":7,"value":240,"toc":256},[241,243,246,248,251,253],[10,242,13],{"id":12},[15,244,245],{},"Local businesses need online reviews to survive, but customers rarely leave them because searching for the business online takes too long.",[10,247,21],{"id":20},[15,249,250],{},"I built NFC cards that customers tap with their phone to open the review page. I set up a redirect server (tapko.rs) for fast routing and added a basic dashboard to track how many taps the cards get.",[10,252,28],{"id":27},[15,254,255],{},"The cards are now active in several Belgrade businesses. I built the software, configured the servers, and launched the service on my own.",{"title":33,"searchDepth":34,"depth":34,"links":257},[258,259,260],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"/Tapko Landing.png","NFC cards and mobile hubs for local businesses.",[261,264,261],"/Tapko Dashboard.png",{},"/work/tapko","Full-Stack Engineering & Server Infrastructure",{"title":238,"description":262},"tapko","work/tapko","PRODUCT","sIq6pM5QIwV6Z7DXfuknSOOPyHyptqkC9SKqzWw8QXg",1782306579909]