[{"data":1,"prerenderedAt":273},["ShallowReactive",2],{"work-project-tapko":3,"work-all-nav":56},{"id":4,"title":5,"body":6,"client":39,"cover":40,"description":41,"displayOrder":34,"extension":42,"images":43,"liveLink":45,"meta":46,"navigation":47,"path":48,"role":49,"seo":50,"slug":51,"stem":52,"tag":53,"year":54,"__hash__":55},"work/work/tapko.md","Tapko",{"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",{},"Local businesses need online reviews to survive, but customers rarely leave them because searching for the business online takes too long.",[10,19,21],{"id":20},"solution","Solution",[15,23,24],{},"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,26,28],{"id":27},"results","Results",[15,30,31],{},"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":35},"",2,[36,37,38],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"Self-initiated","/Tapko Landing.png","NFC cards and mobile hubs for local businesses.","md",[40,44,40],"/Tapko Dashboard.png",null,{},true,"/work/tapko","Full-Stack Engineering & Server Infrastructure",{"title":5,"description":41},"tapko","work/tapko","PRODUCT","2026","sIq6pM5QIwV6Z7DXfuknSOOPyHyptqkC9SKqzWw8QXg",[57,96,135,173,211,250],{"id":58,"title":59,"body":60,"client":39,"cover":82,"description":83,"displayOrder":84,"extension":42,"images":85,"liveLink":45,"meta":87,"navigation":47,"path":88,"role":89,"seo":90,"slug":91,"stem":92,"tag":93,"year":94,"__hash__":95},"work/work/cashboard.md","Cashboard",{"type":7,"value":61,"toc":77},[62,64,67,69,72,74],[10,63,13],{"id":12},[15,65,66],{},"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,68,21],{"id":20},[15,70,71],{},"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,73,28],{"id":27},[15,75,76],{},"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":78},[79,80,81],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},"/Cashboard Landing.png","AI tool and rewards aggregator.",3,[82,86,82],"/Cashboard Dashboard.png",{},"/work/cashboard","Full-Stack Engineering",{"title":59,"description":83},"cashboard","work/cashboard","WEB APP","2025","r1K_FNyNKCFSTPZEkzdlpUiy9LmfCpwMPLc0wB4C-x4",{"id":97,"title":98,"body":99,"client":121,"cover":122,"description":123,"displayOrder":124,"extension":42,"images":125,"liveLink":45,"meta":127,"navigation":47,"path":128,"role":129,"seo":130,"slug":131,"stem":132,"tag":133,"year":54,"__hash__":134},"work/work/crashful.md","Crashful",{"type":7,"value":100,"toc":116},[101,103,106,108,111,113],[10,102,13],{"id":12},[15,104,105],{},"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,107,21],{"id":20},[15,109,110],{},"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,112,28],{"id":27},[15,114,115],{},"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":117},[118,119,120],{"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,[122,126,122],"/Crashful Dashboard.png",{},"/work/crashful","Full-Stack Engineering & Vision Integration",{"title":98,"description":123},"crashful","work/crashful","AI PLATFORM","JP4lJsU0FIwxWuDbcnGVaogW5OP6-G68Cz9Cweky8iQ",{"id":136,"title":137,"body":138,"client":137,"cover":160,"description":161,"displayOrder":162,"extension":42,"images":163,"liveLink":45,"meta":165,"navigation":47,"path":166,"role":167,"seo":168,"slug":169,"stem":170,"tag":171,"year":54,"__hash__":172},"work/work/heyn.md","HEYN",{"type":7,"value":139,"toc":155},[140,142,145,147,150,152],[10,141,13],{"id":12},[15,143,144],{},"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,146,21],{"id":20},[15,148,149],{},"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,151,28],{"id":27},[15,153,154],{},"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":156},[157,158,159],{"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,[160,164,160],"/HEYN Dashboard.png",{},"/work/heyn","E-commerce Data Architecture & Asset Generation",{"title":137,"description":161},"heyn","work/heyn","ECOMMERCE","kzXk_SaIdohUUTonFiyh_n7U_buEBb4w0ltwv-NzR7k",{"id":174,"title":175,"body":176,"client":175,"cover":198,"description":199,"displayOrder":200,"extension":42,"images":201,"liveLink":45,"meta":203,"navigation":47,"path":204,"role":205,"seo":206,"slug":207,"stem":208,"tag":209,"year":94,"__hash__":210},"work/work/level8.md","Level8",{"type":7,"value":177,"toc":193},[178,180,183,185,188,190],[10,179,13],{"id":12},[15,181,182],{},"Most programming courses for kids are too theoretical and boring, which makes them lose interest quickly.",[10,184,21],{"id":20},[15,186,187],{},"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,189,28],{"id":27},[15,191,192],{},"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":194},[195,196,197],{"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,[198,202,198],"/Level8 Dashboard.png",{},"/work/level8","Curriculum & Tech Tutoring",{"title":175,"description":199},"level8","work/level8","EDUCATION","PBKUjLgXMWKHff1UVL0cWH65dDUoBEsz-bZEkLQKDnA",{"id":212,"title":213,"body":214,"client":236,"cover":237,"description":238,"displayOrder":239,"extension":42,"images":240,"liveLink":45,"meta":242,"navigation":47,"path":243,"role":244,"seo":245,"slug":246,"stem":247,"tag":248,"year":94,"__hash__":249},"work/work/selected-web.md","Selected Web",{"type":7,"value":215,"toc":231},[216,218,221,223,226,228],[10,217,13],{"id":12},[15,219,220],{},"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,222,21],{"id":20},[15,224,225],{},"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,227,28],{"id":27},[15,229,230],{},"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":232},[233,234,235],{"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,[237,241,237],"/Selected Web Dashboard.png",{},"/work/selected-web","Frontend Engineering",{"title":213,"description":238},"selected-web","work/selected-web","FRONTEND","h6PZVhbsb6138i6edD19Cq-WclMgGkoXz3c97Dfq1jE",{"id":4,"title":5,"body":251,"client":39,"cover":40,"description":41,"displayOrder":34,"extension":42,"images":270,"liveLink":45,"meta":271,"navigation":47,"path":48,"role":49,"seo":272,"slug":51,"stem":52,"tag":53,"year":54,"__hash__":55},{"type":7,"value":252,"toc":265},[253,255,257,259,261,263],[10,254,13],{"id":12},[15,256,17],{},[10,258,21],{"id":20},[15,260,24],{},[10,262,28],{"id":27},[15,264,31],{},{"title":33,"searchDepth":34,"depth":34,"links":266},[267,268,269],{"id":12,"depth":34,"text":13},{"id":20,"depth":34,"text":21},{"id":27,"depth":34,"text":28},[40,44,40],{},{"title":5,"description":41},1782306579807]