[{"data":1,"prerenderedAt":408},["ShallowReactive",2],{"navigation":3,"index":25,"index-blogs":156,"mdc--62qw07-key":378,"mdc--ib2xo-key":390,"mdc-dd2hpn-key":399},[4],{"title":5,"path":6,"stem":7,"children":8,"page":24},"Blog","\u002Fblog","blog",[9,13,17,21],{"title":10,"path":11,"stem":12},"[object Object]","\u002Fblog\u002Ffrom-mockup-to-market","blog\u002Ffrom-mockup-to-market",{"title":14,"path":15,"stem":16},"How I Keep Reusing the Same Building Blocks Across Projects","\u002Fblog\u002Fhow-i-built-my-own-design-system-from-scratch","blog\u002Fhow-i-built-my-own-design-system-from-scratch",{"title":18,"path":19,"stem":20},"Why Clear Messaging Beats Clever Copy in Cold Traffic","\u002Fblog\u002Fpsychology-of-color-in-ui-design","blog\u002Fpsychology-of-color-in-ui-design",{"title":10,"path":22,"stem":23},"\u002Fblog\u002Fslow-design-in-fast-paced-digital-world","blog\u002Fslow-design-in-fast-paced-digital-world",false,{"id":26,"title":27,"about":28,"blog":31,"body":34,"description":35,"experience":36,"extension":60,"faq":61,"hero":98,"meta":132,"navigation":133,"path":134,"seo":135,"stem":138,"testimonials":139,"__hash__":155},"index\u002Findex.yml","Leo Bortoluzzi",{"title":29,"description":30},"About me","I work at the intersection of marketing, automation, AI, and development. Over the last 5+ years I have built client work, self-hosted tools, and conversion-focused systems for real offers.",{"title":32,"description":33},"Articles","Notes on automation, landing pages, paid traffic, and the systems behind them.",null,"I build websites, automations, and AI-assisted systems that help offers move faster from idea to execution.",{"title":37,"items":38},"Experience",[39,47,54],{"position":40,"date":41,"company":42},"Founder at","2024 - Present",{"name":43,"url":44,"logo":45,"color":46},"LuzziDev","https:\u002F\u002Fluzzi.dev","i-lucide-code-2","#DFB957",{"position":48,"date":49,"company":50},"Co-founder at","2021 - 2022",{"name":51,"logo":52,"color":53},"ROI Digital","i-lucide-trending-up","#60a5fa",{"position":40,"date":55,"company":56},"2020 - 2021",{"name":57,"logo":58,"color":59},"Fast Service Digital","i-lucide-rocket","#f97316","yml",{"title":62,"description":63,"categories":64},"Frequently Asked Questions","Short answers about how I work, what I build, and how to reach me.",[65,77,89],{"title":66,"questions":67},"Services & Process",[68,71,74],{"label":69,"content":70},"What do you build?","I build websites, landing pages, WhatsApp automation, custom workflows, and AI-assisted systems that support conversion-focused offers.\n",{"label":72,"content":73},"What types of projects do you take on?","I usually work on client projects that need fast execution and clean handoff, especially institutional sites, lead capture flows, and automation-heavy builds.\n",{"label":75,"content":76},"How do you approach a new project?","I keep the first version simple: define the offer, remove unnecessary steps, build the core flow, test it, and then iterate from there.\n",{"title":78,"questions":79},"Automation & AI",[80,83,86],{"label":81,"content":82},"What tools do you use?","My stack usually includes n8n, APIs, Supabase, Nuxt\u002FVue, WhatsApp integrations, and lightweight AI workflows when they actually save time.\n",{"label":84,"content":85},"Can you connect lead capture and follow-up?","Yes. That is one of the most common things I build, from form capture to routing, qualification, and automated follow-up.\n",{"label":87,"content":88},"Do you build self-hosted systems?","Yes, when a client needs more control, lower operating cost, or ownership over the whole stack.\n",{"title":90,"questions":91},"Availability",[92,95],{"label":93,"content":94},"How can I reach you?","The fastest way is email or LinkedIn. I keep both available in the footer and on the project pages.\n",{"label":96,"content":97},"Do you work on one-off builds?","Yes. I take on one-off projects when the scope is clear and the work fits my stack.\n",{"links":99,"images":104},[100],{"label":101,"to":102,"color":103},"View projects","\u002Fprojects","primary",[105,108,111,114,117,120,123,126,129],{"src":106,"alt":107},"\u002Fprofile.webp","Leo Bortoluzzi portrait",{"src":109,"alt":110},"\u002Fhero\u002Frandom-2.avif","Project mood image 2",{"src":112,"alt":113},"\u002Fhero\u002Frandom-3.avif","Project mood image 3",{"src":115,"alt":116},"\u002Fhero\u002Frandom-4.avif","Project mood image 4",{"src":118,"alt":119},"\u002Fhero\u002Frandom-5.avif","Project mood image 5",{"src":121,"alt":122},"\u002Fhero\u002Frandom-6.avif","Project mood image 6",{"src":124,"alt":125},"\u002Fhero\u002Frandom-7.avif","Project mood image 7",{"src":127,"alt":128},"\u002Fhero\u002Frandom-8.avif","Project mood image 8",{"src":130,"alt":131},"\u002Fhero\u002Frandom-9.avif","Project mood image 9",{},true,"\u002F",{"title":136,"description":137},"Leo Bortoluzzi | LuzziDev","Leo Bortoluzzi builds websites, automations, AI workflows, and paid-traffic systems for client work and self-hosted products.","index",[140,145,150],{"quote":141,"author":142},"I build client work ranging from WhatsApp automation to institutional websites, landing pages, and custom workflows.",{"name":43,"description":143,"avatar":144},"Freelance work",{"src":106,"alt":27},{"quote":146,"author":147},"In the DIY niche, we invested over R$ 600k in paid traffic and crossed R$ 1M in revenue.",{"name":51,"description":148,"avatar":149},"Co-founder case study",{"src":106,"alt":27},{"quote":151,"author":152},"The first business validated a focused paid-traffic offer with R$ 24k in spend and R$ 132k in revenue.",{"name":57,"description":153,"avatar":154},"First online business",{"src":106,"alt":27},"df8PB2-_ZUaocAbOdOKHQeZ4jdw7C_wvOf1YDwvdR2A",[157,239,304],{"id":158,"title":14,"author":159,"body":161,"date":231,"description":232,"extension":233,"image":234,"meta":235,"minRead":236,"navigation":133,"path":15,"seo":237,"stem":16,"__hash__":238},"blog\u002Fblog\u002Fhow-i-built-my-own-design-system-from-scratch.md",{"name":27,"avatar":160},{"src":106,"alt":27},{"type":162,"value":163,"toc":224},"minimark",[164,168,171,176,179,198,201,205,208,211,215,218,221],[165,166,167],"p",{},"When you build websites, automations, and lead flows often enough, the same problems show up again and again. A contact form needs validation. A WhatsApp flow needs a clean handoff. A landing page needs a short path to action. The work changes, but the patterns stay the same.",[165,169,170],{},"That is why I started treating repeated work as a small system instead of a fresh decision every time. I do not want every project to look identical, but I do want the pieces underneath it to be reliable.",[172,173,175],"h2",{"id":174},"start-with-the-repeated-parts","Start with the repeated parts",[165,177,178],{},"The first step is to list the things I keep rebuilding:",[180,181,182,186,189,192,195],"ul",{},[183,184,185],"li",{},"Hero sections with a clear CTA",[183,187,188],{},"Form capture and routing",[183,190,191],{},"Basic lead qualification",[183,193,194],{},"Notification and follow-up logic",[183,196,197],{},"Simple status handling for automation",[165,199,200],{},"Once those patterns are visible, they are easier to document and reuse.",[172,202,204],{"id":203},"standardize-only-what-repeats","Standardize only what repeats",[165,206,207],{},"I do not standardize everything. Only the parts that save time or reduce mistakes. That usually means the flow between the page, the form, the webhook, and the final output.",[165,209,210],{},"If a client needs something custom, I build that on top of the shared pieces instead of replacing the whole stack.",[172,212,214],{"id":213},"keep-the-system-small","Keep the system small",[165,216,217],{},"A good system should disappear into the work. If it becomes a project in itself, it stops helping.",[165,219,220],{},"My rule is simple: if a reusable piece does not make the next build faster or cleaner, it is probably too much.",[165,222,223],{},"That mindset has helped me move faster without losing control of the details.",{"title":225,"searchDepth":226,"depth":226,"links":227},"",2,[228,229,230],{"id":174,"depth":226,"text":175},{"id":203,"depth":226,"text":204},{"id":213,"depth":226,"text":214},"2025-06-02","A simple way to turn repeated client work into faster delivery without turning every project into a rigid template.","md","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1470&q=80",{},6,{"title":14,"description":232},"lYFAoigvj78szd71Es6gDNouTUfR9gWYlToFCVD2h6o",{"id":240,"title":18,"author":241,"body":243,"date":297,"description":298,"extension":233,"image":299,"meta":300,"minRead":301,"navigation":133,"path":19,"seo":302,"stem":20,"__hash__":303},"blog\u002Fblog\u002Fpsychology-of-color-in-ui-design.md",{"name":27,"avatar":242},{"src":106,"alt":27},{"type":162,"value":244,"toc":292},[245,248,251,255,258,261,265,268,279,282,286,289],[165,246,247],{},"When people arrive cold, they do not know the context yet. That means the page cannot afford to be clever before it is clear.",[165,249,250],{},"I have seen the same pattern across landing pages, lead flows, and WhatsApp handoffs: the cleaner the message, the easier the conversion.",[172,252,254],{"id":253},"message-match-matters","Message match matters",[165,256,257],{},"The landing page should continue the promise made in the ad or outreach message. If the visitor has to translate the idea again, friction goes up.",[165,259,260],{},"The result is usually the same: lower intent, slower action, and more wasted traffic.",[172,262,264],{"id":263},"one-action-is-enough","One action is enough",[165,266,267],{},"I prefer a page to do one job well instead of three jobs badly. That usually means:",[180,269,270,273,276],{},[183,271,272],{},"One primary CTA",[183,274,275],{},"One obvious next step",[183,277,278],{},"One short explanation of value",[165,280,281],{},"That does not mean the page has to be bland. It just has to be direct.",[172,283,285],{"id":284},"less-noise-more-trust","Less noise, more trust",[165,287,288],{},"Design still matters, but mostly because it helps reduce uncertainty. Good spacing, readable hierarchy, and a focused layout make the offer feel more believable.",[165,290,291],{},"The goal is not to impress the visitor. The goal is to help them understand the offer quickly enough to act on it.",{"title":225,"searchDepth":226,"depth":226,"links":293},[294,295,296],{"id":253,"depth":226,"text":254},{"id":263,"depth":226,"text":264},{"id":284,"depth":226,"text":285},"2025-04-15","Cold traffic needs one clear promise, one clear action, and a short path from ad to result.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1545239351-1141bd82e8a6?auto=format&fit=crop&w=1470&q=80",{},5,{"title":18,"description":298},"6vmLNdEWzXW4Hye2FkAlk9Hdp4pwAs1LgQ0oTW8D-Q8",{"id":305,"title":10,"author":34,"body":306,"date":34,"description":310,"extension":233,"image":34,"meta":367,"minRead":34,"navigation":133,"path":11,"seo":368,"stem":12,"__hash__":377},"blog\u002Fblog\u002Ffrom-mockup-to-market.md",{"type":162,"value":307,"toc":362},[308,311,314,318,321,324,328,331,346,349,353,356,359],[165,309,310],{},"I like to think about launches in reverse. Before I worry about scaling, I want to know whether the offer is clear, the page makes sense, and the next step is obvious.",[165,312,313],{},"That mindset came from working with cold audiences. If the message is vague or the path is long, the traffic will expose it immediately.",[172,315,317],{"id":316},"step-1-make-the-offer-easy-to-understand","Step 1: Make the offer easy to understand",[165,319,320],{},"The first question is not whether the design is pretty. It is whether a new visitor understands what they are getting and why it matters.",[165,322,323],{},"For me, that means one promise, one audience, and one call to action.",[172,325,327],{"id":326},"step-2-build-the-shortest-useful-path","Step 2: Build the shortest useful path",[165,329,330],{},"A launch page should do the minimum required to move someone forward:",[332,333,334,337,340,343],"ol",{},[183,335,336],{},"Explain the offer",[183,338,339],{},"Show enough proof or context",[183,341,342],{},"Capture the lead or action",[183,344,345],{},"Hand it off cleanly to the next system",[165,347,348],{},"If the flow needs extra explanation, I usually remove it.",[172,350,352],{"id":351},"step-3-watch-the-first-signal","Step 3: Watch the first signal",[165,354,355],{},"I do not need a full funnel to know if something is worth pursuing. I need the first signal: clicks, replies, form fills, or qualified conversations.",[165,357,358],{},"That signal tells me whether the traffic, copy, and workflow are aligned well enough to keep going.",[165,360,361],{},"Once the signal is there, scaling becomes a much simpler problem.",{"title":225,"searchDepth":226,"depth":226,"links":363},[364,365,366],{"id":316,"depth":226,"text":317},{"id":326,"depth":226,"text":327},{"id":351,"depth":226,"text":352},{},{"title":369,"description":310},{"From Offer to Launch":370,"description":371,"date":372,"image":373,"minRead":374,"author":375},"How I Validate Before I Scale","The workflow I use to test the offer, the page, and the follow-up before spending more budget.","2025-05-10","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1556740749-887f6717d7e4?auto=format&fit=crop&w=1470&q=80",8,{"name":27,"avatar":376},{"src":106,"alt":27},"zu23RtCQAYs4jhD5DeWXMZuLcrfeBCCxLoygO9BfyFc",{"data":379,"body":380},{},{"type":381,"children":382},"root",[383],{"type":384,"tag":165,"props":385,"children":386},"element",{},[387],{"type":388,"value":389},"text","I build websites, landing pages, WhatsApp automation, custom workflows, and AI-assisted systems that support conversion-focused offers.",{"data":391,"body":392},{},{"type":381,"children":393},[394],{"type":384,"tag":165,"props":395,"children":396},{},[397],{"type":388,"value":398},"I usually work on client projects that need fast execution and clean handoff, especially institutional sites, lead capture flows, and automation-heavy builds.",{"data":400,"body":401},{},{"type":381,"children":402},[403],{"type":384,"tag":165,"props":404,"children":405},{},[406],{"type":388,"value":407},"I keep the first version simple: define the offer, remove unnecessary steps, build the core flow, test it, and then iterate from there.",1776914396453]