[{"data":1,"prerenderedAt":663},["ShallowReactive",2],{"projects-index-en-US":3},[4,163,332,472],{"id":5,"title":6,"body":7,"categories":146,"dateEnd":137,"dateStart":150,"description":151,"extension":152,"image":153,"link":154,"locale":155,"meta":156,"navigation":157,"path":158,"published":157,"seo":159,"slug":160,"stem":161,"__hash__":162},"projects\u002Fprojects\u002Fmedworks-longevity-membership.en-US.md","Longevity membership MVP for a premium LA clinic",{"type":8,"value":9,"toc":136},"minimark",[10,14,26,31,41,51,55,58,62,65,69,73,100,103,107,111,114,118,122,129],[11,12,6],"h1",{"id":13},"longevity-membership-mvp-for-a-premium-la-clinic",[15,16,17,21,22,25],"p",{},[18,19,20],"strong",{},"Stack:"," Adonis.js · Vue.js · Inertia.js · TypeScript · TailwindCSS · PostgreSQL · Render.com\n",[18,23,24],{},"Services:"," UI\u002FUX design · Full-stack development · Membership & credits system · MVP build",[27,28,30],"h2",{"id":29},"overview","Overview",[15,32,33,36,37,40],{},[18,34,35],{},"Medworks"," is a private longevity membership for a premium Los Angeles wellness clinic. We designed and built the whole platform — a calm, editorial storefront where the clinic's members buy a monthly membership, earn credits, book in-clinic services, and order peptides matched to their own health goals. It went from idea to ",[18,38,39],{},"over $10,000 in monthly recurring revenue within the first month",".",[42,43],"img",{"src":44,"loading":45,"className":46},"\u002Fimages\u002Fprojects\u002Fmedworks-product-catalog.png","lazy",[47,48,49,50],"mt-6","mx-auto","px-4","max-w-xl",[27,52,54],{"id":53},"the-client","The Client",[15,56,57],{},"Robert runs an established premium wellness clinic in LA with an existing base of clients. He could legally provide peptides to those members, and he wanted a secure, streamlined way for them to purchase and manage everything in one place — without the friction of a generic online store. The goal was a membership that grants monthly credits, which members spend on appointments and on peptides chosen for their health needs and lifestyle.",[27,59,61],{"id":60},"the-challenge","The Challenge",[15,63,64],{},"This is not a typical shop. Medworks sells an ongoing membership, not one-off products. Members pay monthly, receive credits, and spend them across in-clinic appointments and peptide orders. That meant getting a real credits system right — rollover rules, monthly caps, paid top-ups — alongside three clearly differentiated tiers, secure handling of a sensitive and regulated product, and a premium, editorial feel that earns trust at $500–$1,500 a month. On top of that, it had to ship fast and then keep evolving with paying members already on board.",[42,66],{"src":67,"loading":45,"className":68},"\u002Fimages\u002Fprojects\u002Fmedworks-membership-options.png",[47,48,49,50],[27,70,72],{"id":71},"the-strategy","The Strategy",[15,74,75,76,79,80,83,84,87,88,91,92,95,96,99],{},"We built Medworks as a single TypeScript monolith: ",[18,77,78],{},"Adonis.js"," on the back end, ",[18,81,82],{},"Vue.js"," on the front, tied together with ",[18,85,86],{},"Inertia.js"," so the whole product is fully typed end to end. That keeps the experience seamless for members and keeps the codebase fast and safe for us to change. ",[18,89,90],{},"TailwindCSS"," gives us a consistent design system, and ",[18,93,94],{},"PostgreSQL"," is the source of truth for memberships, credits, and orders. We host on ",[18,97,98],{},"Render.com",", which lets us redeploy frequently with zero downtime — exactly what you want when you're iterating in production with real members.",[15,101,102],{},"Keeping the membership and credits logic in our own backend means the business rules — the three tiers, monthly longevity credits, a one-month rollover capped at twelve, and $50 top-up credits — are fully owned and easy to adjust as the offer matures. We structured the member journey around clarity: a quiet, editorial storefront, a guided onboarding that walks each member from sign-up through medical form, PNOE test, and consultation, and a personal account where they can see their credit balance, order history, and reports at a glance.",[42,104],{"src":105,"loading":45,"className":106},"\u002Fimages\u002Fprojects\u002Fmedworks-member-account.png",[47,48,49,50],[27,108,110],{"id":109},"the-admin","The Admin",[15,112,113],{},"Member experience was the priority — and great member experience depends on a team that can respond fast. So we built Medworks its own admin alongside the storefront, giving the team full control of day-to-day operations without ever needing us in the loop. From one place they can manage members, adjust credit balances by hand when a member needs help, review subscriptions and product recommendations, and follow each person's PNOE history. Every credit movement is logged and traceable — a subscription refill, a booked appointment, a manual correction — so support can answer any member question with confidence. The result is an agile, empowered customer-service team that keeps the premium experience feeling personal at every touchpoint.",[42,115],{"src":116,"loading":45,"className":117},"\u002Fimages\u002Fprojects\u002Fmedworks-admin-credit-history.png",[47,48,49,50],[27,119,121],{"id":120},"the-results","The Results",[15,123,124,125,128],{},"Medworks crossed ",[18,126,127],{},"$10,000 in monthly recurring revenue by the end of the first month, and has grown from there."," The clinic now sells memberships, books services, and fulfills peptide orders through one platform it fully owns, with the flexibility to keep refining pricing and protocols as it scales.",[15,130,131,132,135],{},"The momentum is continuing. As of June 2026, Robert has brought us on to build the ",[18,133,134],{},"Medworks mobile app"," — an even more premium, direct line of communication between the clinic and its members.",{"title":137,"searchDepth":138,"depth":138,"links":139},"",2,[140,141,142,143,144,145],{"id":29,"depth":138,"text":30},{"id":53,"depth":138,"text":54},{"id":60,"depth":138,"text":61},{"id":71,"depth":138,"text":72},{"id":109,"depth":138,"text":110},{"id":120,"depth":138,"text":121},[147,78,82,86,148,94,149],"Full stack","Typescript","MVP","2026-01-23","Stack: Adonis.js · Vue.js · Inertia.js · TypeScript · TailwindCSS · PostgreSQL · Render.com\nServices: UI\u002FUX design · Full-stack development · Membership & credits system · MVP build","md","https:\u002F\u002Fimages.studioprats.com\u002Fcdn-cgi\u002Fimagedelivery\u002F4Ewkge9dUdpwStfFFsHDXA\u002Fb94e4b4b-6586-427e-0f63-afd3d59a4300\u002Fw=1536,format=auto,fit=scale-down,quality=85","https:\u002F\u002Fshop.healthbymedworks.com\u002F","en-US",{},true,"\u002Fprojects\u002Fmedworks-longevity-membership.en-us",{"title":6,"description":151},"medworks-longevity-membership","projects\u002Fmedworks-longevity-membership.en-US","oC8Sz_lG9qT4wEoVRwWyNvw3VTvrH6kkuVHWeqSoku4",{"id":164,"title":165,"body":166,"categories":316,"dateEnd":321,"dateStart":322,"description":323,"extension":152,"image":324,"link":325,"locale":155,"meta":326,"navigation":157,"path":327,"published":157,"seo":328,"slug":329,"stem":330,"__hash__":331},"projects\u002Fprojects\u002Ftuvaju-travel-booking.en-US.md","Travel tickets & tours booking MVP",{"type":8,"value":167,"toc":305},[168,171,179,181,184,186,189,191,194,196,199,251,256,259,273,277,283,286,290,293,297,301],[11,169,165],{"id":170},"travel-tickets-tours-booking-mvp",[15,172,173,175,176,178],{},[18,174,20],{}," Vue.js · Node.js · TypeScript · AdonisJS · PostgreSQL · Tailwind · Vite · Datadog · Cloudflare · Heroku\n",[18,177,24],{}," Product architecture · Full-stack development · UI\u002FUX · Observability · CI\u002FCD · AI-assisted delivery",[27,180,30],{"id":29},[15,182,183],{},"We built the MVP of a web app that lets a seasoned travel marketer sell attraction tickets and tours directly to travellers. It plugs into a ticketing provider's API for instant access to hundreds of attractions, tours and tickets, and it also lets the founder list his own hand-picked tours for healthier margins. We launched focused on Thailand, with the architecture built to scale to new countries soon.",[27,185,54],{"id":53},[15,187,188],{},"The founder once ran his own travel agency and is exceptional at marketing and traffic acquisition. He had the audience, the industry know-how and a clear commercial instinct — what he was missing was the technical foundation to turn that into a product he owns. Together we paired his travel expertise with modern tech so he could sell directly to customers instead of routing everyone through someone else's platform.",[27,190,61],{"id":60},[15,192,193],{},"Strong traffic only pays off if there's a product ready to receive it. The founder needed to aggregate live inventory from a ticketing provider, present hundreds of attractions and tours cleanly, and let people book — all while staying fast and trustworthy on mobile. There was no existing tech foundation and no design team, so the MVP had to be built to scale from day one without cutting corners on quality or experience.",[27,195,72],{"id":71},[15,197,198],{},"We made deliberate engineering choices to keep the product both fast to iterate and ready to grow:",[200,201,202,209,215,221,227,233,239,245],"ul",{},[203,204,205,208],"li",{},[18,206,207],{},"End-to-end TypeScript."," We built the full backend in TypeScript so it could share types and contracts with the TypeScript frontend — fewer integration bugs, faster changes.",[203,210,211,214],{},[18,212,213],{},"A backend built to scale."," We followed an event-based architecture paired with Domain-Driven Design and Hexagonal Architecture, keeping business logic clean and the system easy to extend country by country.",[203,216,217,220],{},[18,218,219],{},"A base-component design system."," On the frontend, a \"base component\" approach kept styles consistent across the project and UI bugs to a minimum.",[203,222,223,226],{},[18,224,225],{},"UI\u002FUX we owned end to end."," With no designer on the team, we implemented the full interface ourselves — loading and error states, form responses, instant feedback, safe error handling, and a fully responsive layout for a seamless mobile experience.",[203,228,229,232],{},[18,230,231],{},"An admin panel that runs the business."," We built a fully functional admin so the team can handle the day-to-day on their own — no developer or technical person in the loop. That independence is what lets them give end-users the fastest, best service possible.",[203,234,235,238],{},[18,236,237],{},"First-rate observability."," We set up telemetry and automatic bug catching with Datadog, so issues surface before users have to report them.",[203,240,241,244],{},[18,242,243],{},"A safety net of tests + CI\u002FCD."," Unit tests around business classes and behaviours, plus high-level HTTP end-to-end tests, all run through a full CI\u002FCD pipeline that tests and builds on every deploy.",[203,246,247,250],{},[18,248,249],{},"Security and speed."," Cloudflare guards against bots and brute-force attacks, and a CDN serves and transforms assets to cut users' data usage and improve Core Web Vitals like load speed.",[252,253,255],"h3",{"id":254},"ai-assisted-delivery","AI-assisted delivery",[15,257,258],{},"A small team shipped like a large one by leaning on AI the right way:",[200,260,261,264,267,270],{},[203,262,263],{},"We ran Claude and Codex in a concurrent, parallelised workflow — up to five agents working on different features at once, each handling its own coding, testing, documentation and deployment.",[203,265,266],{},"An automatic AI code-review action checks every change for quality and good patterns.",[203,268,269],{},"We followed the OpenSpec framework to document and scale the work in a structured way, independent of any particular model.",[203,271,272],{},"We wrote custom agent skills so the agents could debug and ship features faster and with more certainty.",[27,274,276],{"id":275},"testimonial","Testimonial",[278,279,280],"blockquote",{},[15,281,282],{},"Working with Ivan and Studio Prats has been great, specially the communication and the way he brought his own experience and feedback to the product.",[15,284,285],{},"— Dirk van der Zaan, Founder, Tuvaju",[27,287,289],{"id":288},"a-look-at-the-product","A look at the product",[15,291,292],{},"Curated destinations on the storefront, a detail page for every attraction and tour, real traveller reviews, and the admin behind it all that keeps inventory in sync.",[42,294],{"src":295,"loading":45,"className":296},"\u002Fimages\u002Fprojects\u002Ftuvaju-attraction-page.png",[47,48,49,50],[42,298],{"src":299,"loading":45,"className":300},"\u002Fimages\u002Fprojects\u002Ftuvaju-reviews.png",[47,48,49,50],[42,302],{"src":303,"loading":45,"className":304},"\u002Fimages\u002Fprojects\u002Ftuvaju-admin-attractions.png",[47,48,49,50],{"title":137,"searchDepth":138,"depth":138,"links":306},[307,308,309,310,314,315],{"id":29,"depth":138,"text":30},{"id":53,"depth":138,"text":54},{"id":60,"depth":138,"text":61},{"id":71,"depth":138,"text":72,"children":311},[312],{"id":254,"depth":313,"text":255},3,{"id":275,"depth":138,"text":276},{"id":288,"depth":138,"text":289},[147,82,317,148,318,94,149,90,319,320],"Node.js","AdonisJS","B2C","Travel","2026-02-01","2025-08-01","Stack: Vue.js · Node.js · TypeScript · AdonisJS · PostgreSQL · Tailwind · Vite · Datadog · Cloudflare · Heroku\nServices: Product architecture · Full-stack development · UI\u002FUX · Observability · CI\u002FCD · AI-assisted delivery","\u002Fimages\u002Fprojects\u002Ftuvaju-homepage.png","https:\u002F\u002Ftuvaju.com",{},"\u002Fprojects\u002Ftuvaju-travel-booking.en-us",{"title":165,"description":323},"tuvaju-travel-booking","projects\u002Ftuvaju-travel-booking.en-US","PnsjKXY5m3KqrE7PBy9o4trQLeqfodxt32PUWkN0NYU",{"id":333,"title":334,"body":335,"categories":458,"dateEnd":461,"dateStart":462,"description":463,"extension":152,"image":464,"link":465,"locale":155,"meta":466,"navigation":157,"path":467,"published":157,"seo":468,"slug":469,"stem":470,"__hash__":471},"projects\u002Fprojects\u002Fllamacarlos-e-commerce.en-US.md","E-commerce with linked services MVP",{"type":8,"value":336,"toc":453},[337,341,347,349,359,378,382,405,408,422,426,436,443],[11,338,340],{"id":339},"e-commerce-with-linked-services-mvp","E-commerce with Linked Services MVP",[15,342,343,346],{},[18,344,345],{},"Role:"," Full-stack Architecture & Implementation Lead",[27,348,30],{"id":29},[15,350,351,354,355,358],{},[18,352,353],{},"Llama Carlos"," is a telehealth community targeting the Latino population, helping people improve their well-being through guided education, product support, and personalized check-ins. When I joined, the team already had a strong mission, validated audience research, and a clear narrative—but they lacked the ",[18,356,357],{},"technical foundation"," to turn their concept into a functional service.",[15,360,361,362,365,366,369,370,373,374,377],{},"The main challenge was to launch an MVP ",[18,363,364],{},"quickly"," while keeping the system flexible enough to grow into a fully integrated digital health experience later on. The business needed not only a storefront to sell wellness products, but also a ",[18,367,368],{},"community space",", ",[18,371,372],{},"guided onboarding flows",", and a ",[18,375,376],{},"central backend orchestration layer"," to ensure data consistency across all touchpoints.",[27,379,381],{"id":380},"approach","Approach",[15,383,384,385,388,389,392,393,396,397,400,401,404],{},"To support both high iteration speed and long-term viability, I designed a lean architecture centered around a ",[18,386,387],{},"Shopify storefront"," for e-commerce, ",[18,390,391],{},"Circle.io"," for community engagement and educational content, ",[18,394,395],{},"Jotform"," for onboarding and health questionnaires, and a ",[18,398,399],{},"custom Node.js (Typescript) backend"," that acted as the ",[18,402,403],{},"source of truth"," and the glue that linked everything together.",[15,406,407],{},"This approach allowed us to:",[200,409,410,413,416,419],{},[203,411,412],{},"Launch a polished, functioning product experience within weeks rather than months.",[203,414,415],{},"Learn from real customer behavior immediately.",[203,417,418],{},"Add and modify features rapidly without destabilizing the system.",[203,420,421],{},"Keep ownership of the core business logic and user records in our backend, ensuring scalability and future extensibility.",[27,423,425],{"id":424},"result","Result",[15,427,428,429,431,432,435],{},"Within just a few weeks, ",[18,430,353],{}," was able to put a real product into users’ hands, begin gathering feedback, and refine the service based on lived experience—not assumptions. The architecture supported ",[18,433,434],{},"fast iteration",", clear feature expansion paths, and the operational workflows necessary to run the business from day one.",[15,437,438,439,442],{},"The MVP successfully bridged ",[18,440,441],{},"commerce, education, and guided care",", forming the foundation for a larger telehealth ecosystem to grow upon.",[15,444,445,446,449,450,40],{},"Now the store receives ",[18,447,448],{},"hundreds of users every day"," seamlessly, continuously experimenting with pricing, messaging, and community engagement strategies in order to ",[18,451,452],{},"scale the brand to sky-high awareness and impact",{"title":137,"searchDepth":138,"depth":138,"links":454},[455,456,457],{"id":29,"depth":138,"text":30},{"id":380,"depth":138,"text":381},{"id":424,"depth":138,"text":425},[459,460,148,149],"Back-end","Shopify","2025-07-13","2025-04-28","Role: Full-stack Architecture & Implementation Lead","https:\u002F\u002Fllamacarlos.com\u002Fcdn\u002Fshop\u002Ffiles\u002FPhone.png?v=1751850566&width=1080","https:\u002F\u002Fllamacarlos.com",{},"\u002Fprojects\u002Fllamacarlos-e-commerce.en-us",{"title":334,"description":463},"llamacarlos-e-commerce","projects\u002Fllamacarlos-e-commerce.en-US","2BI8HFg1tT8pXzoGbSxOi5HuZX7VsT_WOm7AXizPYYk",{"id":473,"title":474,"body":475,"categories":652,"dateEnd":653,"dateStart":654,"description":655,"extension":152,"image":636,"link":656,"locale":155,"meta":657,"navigation":157,"path":658,"published":157,"seo":659,"slug":660,"stem":661,"__hash__":662},"projects\u002Fprojects\u002Fvq-score-web-app.en-US.md","Web app calculating customers VQ Score",{"type":8,"value":476,"toc":646},[477,481,489,491,506,517,521,590,594,627,631,634,638,642],[11,478,480],{"id":479},"web-app-calculating-customers-vq-score","Web App Calculating Customers VQ Score",[15,482,483,485,486,488],{},[18,484,345],{}," Lead Full-stack Developer & UX\u002FUI Adviser\n",[18,487,20],{}," Vue.js, Node.js, Typescript, Tailwind, PostgreSQL, SQL, Monorepo, DigitalOcean, Figma, Datadog, Retool",[27,490,30],{"id":29},[15,492,493,494,497,498,501,502,505],{},"Developed the MVP version of ",[18,495,496],{},"VQ",", a web application used for calculating and presenting a ",[18,499,500],{},"\"Value Quotient\" (VQ) Score"," for users based on guided inputs and behavioral data. The goal of the project was to deliver a ",[18,503,504],{},"fast-to-iterate MVP"," with high code quality, strong observability, and a UX that guided users smoothly through the scoring process.",[15,507,508,509,512,513,516],{},"The product needed to validate core assumptions early, so ",[18,510,511],{},"rapid prototyping + real usage feedback"," were central to the development approach. I led the technical implementation and also provided ",[18,514,515],{},"UI\u002FUX guidance"," to refine flows, reduce friction, and align the scoring experience with brand tone.",[27,518,520],{"id":519},"responsibilities-contributions","Responsibilities & Contributions",[200,522,523,529,539,560,566],{},[203,524,525,528],{},[18,526,527],{},"Iterative Agile Development:","\nBuilt the product using a fast feedback loop where the client could continuously test the app and evolve product ideas collaboratively.",[203,530,531,534,535,538],{},[18,532,533],{},"End-to-End Type Safety:","\nImplemented a ",[18,536,537],{},"fully typed monorepo"," architecture — from PostgreSQL schema to backend services to the Vue frontend — ensuring reliability and maintainability.",[203,540,541,544,545,548,549],{},[18,542,543],{},"Observability & Usage Analytics:","\nSet up ",[18,546,547],{},"Datadog Real User Monitoring (RUM)"," to track:\n",[200,550,551,554,557],{},[203,552,553],{},"Frontend performance & errors",[203,555,556],{},"Backend logs & resource usage",[203,558,559],{},"User behavior and navigation flows\nThis allowed the client to make informed product decisions based on real user interaction data.",[203,561,562,565],{},[18,563,564],{},"Testing & CI\u002FCD:","\nAdded integration tests and wired them into the CI\u002FCD pipeline to ensure quality and reduce regression issues across deployments.",[203,567,568,534,571,574,575],{},[18,569,570],{},"Admin & Internal Tooling:",[18,572,573],{},"Retool","-based admin dashboard to provide instant visibility into:\n",[200,576,577,580,583],{},[203,578,579],{},"User activity",[203,581,582],{},"Score distributions",[203,584,585,586,589],{},"Operational & usage metrics\nThis was delivered in ",[18,587,588],{},"under 2 hours of engineering",", maximizing leverage and reducing development overhead.",[27,591,593],{"id":592},"impact","Impact",[200,595,596,606,613,620],{},[203,597,598,599,602,603,40],{},"Delivered a ",[18,600,601],{},"functional, testable MVP"," quickly, allowing the client to ",[18,604,605],{},"validate product assumptions with real users",[203,607,608,609,612],{},"Improved product decision-making through ",[18,610,611],{},"high observability and data-driven insights"," rather than guesswork.",[203,614,615,616,619],{},"Created a ",[18,617,618],{},"scalable codebase"," with strong correctness guarantees thanks to end-to-end typing.",[203,621,622,623,626],{},"Enabled the client to operate the product and review key business metrics ",[18,624,625],{},"with zero ongoing developer dependency"," through the Retool dashboard.",[27,628,630],{"id":629},"screenshots-of-the-app","Screenshots of the app",[15,632,633],{},"You may try it out yourself in the project link, or here are some attached screenshots:",[42,635],{"src":636,"loading":45,"className":637},"\u002Fimages\u002Fprojects\u002Fvq-score-screenshot-1.avif",[47,48,49,50],[42,639],{"src":640,"loading":45,"className":641},"\u002Fimages\u002Fprojects\u002Fvq-score-screenshot-2.avif",[47,48,49,50],[42,643],{"src":644,"loading":45,"className":645},"\u002Fimages\u002Fprojects\u002Fvq-score-screenshot-3.avif",[47,48,49,50],{"title":137,"searchDepth":138,"depth":138,"links":647},[648,649,650,651],{"id":29,"depth":138,"text":30},{"id":519,"depth":138,"text":520},{"id":592,"depth":138,"text":593},{"id":629,"depth":138,"text":630},[147,82,317,148,94,149,90],"2023-08-01","2023-02-01","Role: Lead Full-stack Developer & UX\u002FUI Adviser\nStack: Vue.js, Node.js, Typescript, Tailwind, PostgreSQL, SQL, Monorepo, DigitalOcean, Figma, Datadog, Retool","https:\u002F\u002Fapp.tryvq.com\u002F",{},"\u002Fprojects\u002Fvq-score-web-app.en-us",{"title":474,"description":655},"vq-score-web-app","projects\u002Fvq-score-web-app.en-US","mUtDv--J9OtHBYT243uGt4Hu98svTVpBYOIzCtQ6Sps",1782220047690]