[{"data":1,"prerenderedAt":919},["ShallowReactive",2],{"work-page-en":3,"work-en":16},{"id":4,"title":5,"body":6,"description":7,"extension":8,"meta":9,"navigation":10,"path":11,"seo":12,"stem":14,"__hash__":15},"workPage\u002Fen\u002Fwork.yml","Cases",null,"Thirteen case studies. Most of it runs in production today, which says more than any screenshot.","yml",{},true,"\u002Fen\u002Fwork",{"title":5,"description":13},"Case studies from SolwareX: SaaS products, custom webstores, game systems, docs platforms and bots, all built by one engineer.","en\u002Fwork","DTyJRfu1RNuct9hUf692BnPLOpPNwHkhN4DZgjRDomY",[17,122,191,292,355,420,482,544,612,678,737,798,854],{"id":18,"title":19,"body":20,"category":97,"description":98,"extension":99,"featured":10,"image":100,"meta":101,"navigation":10,"order":102,"outcome":103,"path":104,"problem":105,"role":106,"seo":107,"stack":108,"status":118,"stem":119,"type":120,"url":84,"video":6,"__hash__":121},"work\u002Fen\u002Fwork\u002Fmychar.md","MyChar",{"type":21,"value":22,"toc":89},"minimark",[23,28,32,36,39,64,67,71,74,78],[24,25,27],"h2",{"id":26},"problem","Problem",[29,30,31],"p",{},"Anyone building a personal brand, whether a creator, a small business or a gamer, wants a page that actually looks like them, not one of three templates everyone else uses. Mainstream link-in-bio tools give almost no design control and no depth, so every profile blends into the next.",[24,33,35],{"id":34},"what-we-built","What we built",[29,37,38],{},"A highly customizable link-in-bio platform where people design their own page instead of picking from a handful of templates. It goes deep on personalization for everyone, and for creators and gamers it adds live platform integrations most tools ignore:",[40,41,42,46,49,52,55,58,61],"ul",{},[43,44,45],"li",{},"Deep customization: layouts, fonts, colors, backgrounds, effects, custom cursors and community-made skins",[43,47,48],{},"Live integrations with Twitch, YouTube and Discord, including viewer and member counts",[43,50,51],{},"A connected Spotify player, clips, setup and gear lists, and a game library with in-game handles",[43,53,54],{},"Comments, friends and achievement badges",[43,56,57],{},"Analytics: views, clicks, top links, countries, live visitors",[43,59,60],{},"Custom domains provisioned automatically through the Vercel API for the top tier",[43,62,63],{},"Free, Pro and Elite tiers on Stripe, with both subscription and lifetime pricing plus add-ons",[29,65,66],{},"Under the hood it carries the production plumbing a real SaaS needs: rate limiting, plan guards, grace-period handling, secured cron jobs and instant search-engine pings via IndexNow.",[24,68,70],{"id":69},"stack","Stack",[29,72,73],{},"Nuxt with TypeScript, Supabase (auth, database, storage), Stripe with webhooks, Resend with react-email templates, the Discord, Twitch, YouTube and Spotify APIs, and a companion discord.js bot on MongoDB.",[24,75,77],{"id":76},"outcome","Outcome",[29,79,80,81,88],{},"MyChar is live at ",[82,83,87],"a",{"href":84,"rel":85},"https:\u002F\u002Fmychar.gg",[86],"nofollow","mychar.gg"," with more than 500 users across free and paid tiers. SolwareX built it and steers where it goes, and a small crew of familiar people helps carry the day-to-day support, so client work never competes with our own products for attention. It is also the clearest proof we can hand a SaaS client: the same team, the same stack, a product you can sign up for today.",{"title":90,"searchDepth":91,"depth":91,"links":92},"",2,[93,94,95,96],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"saas","A highly customizable link-in-bio SaaS for anyone building a personal brand, with deep design control, live platform integrations and subscription or lifetime pricing through Stripe.","md","\u002Fimg\u002Fwork\u002Fmychar.webp",{},1,"Live at mychar.gg with 500+ users; SolwareX builds and grows it, with a small crew of familiar people on the day to day.","\u002Fen\u002Fwork\u002Fmychar","Link-in-bio tools all look the same and box you in: a few templates, little design control, no depth.","SolwareX: design, build, deploy, maintain, support, docs",{"title":19,"description":98},[109,110,111,112,113,114,115,116,117],"Nuxt","TypeScript","Supabase","Stripe","Discord API","Twitch API","YouTube API","Spotify API","Vercel","live","en\u002Fwork\u002Fmychar","SaaS","y05yjLWZHezSaBGu8_f-g-KBC9FMqjxNwkOopRQ2u8M",{"id":123,"title":124,"body":125,"category":175,"description":176,"extension":99,"featured":10,"image":177,"meta":178,"navigation":10,"order":91,"outcome":179,"path":180,"problem":181,"role":106,"seo":182,"stack":183,"status":118,"stem":187,"type":188,"url":189,"video":6,"__hash__":190},"work\u002Fen\u002Fwork\u002Frxscripts.md","RX Scripts store",{"type":21,"value":126,"toc":169},[127,129,132,134,137,150,152,155,157,160,166],[24,128,27],{"id":26},[29,130,131],{},"Selling digital products to game servers means payment processing, instant delivery, license management and support at volume. Tebex solves payments, but its hosted storefronts are slow, generic and barely rank in search. For a premium catalog, the storefront was the weakest link in the funnel.",[24,133,35],{"id":34},[29,135,136],{},"A fully self-made storefront on the Tebex Headless API: our own design, domain, page structure and SEO, with baskets, coupons, gift cards, bundles and subscriptions. The interface is built with Nuxt and PrimeVue, and the store sells a self-built catalog of more than 150 scripts.",[29,138,139,140,144,145,149],{},"Around the storefront sit two companion pieces with their own case studies: a ",[82,141,143],{"href":142},"\u002Fcases\u002Frx-docs","self-made documentation portal"," at docs.rxscripts.xyz, and the ",[82,146,148],{"href":147},"\u002Fcases\u002Frx-bot","RX Discord bot"," that handles delivery, licensing and support.",[24,151,70],{"id":69},[29,153,154],{},"Nuxt with PrimeVue and TypeScript on the Tebex Headless API, with Google Analytics for insight into what converts.",[24,156,77],{"id":76},[29,158,159],{},"More than 20,000 customers, a Discord community of 10,000+ members and 300+ five-star reviews, with two themes repeating in those reviews: installation takes minutes and support actually helps.",[161,162,163],"blockquote",{},[29,164,165],{},"\"The support here is top tier. I asked could webhooks be added to the script for all sales and it was done with the next update.\"\nbig_dawg13, verified customer review",[29,167,168],{},"The store, delivery and first-line support run unattended day to day, which is what lets a commercial catalog run without a company behind it.",{"title":90,"searchDepth":91,"depth":91,"links":170},[171,172,173,174],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"webstore","A custom e-commerce storefront on the Tebex Headless API with automated delivery and licensing, built with Nuxt and PrimeVue.","\u002Fimg\u002Fwork\u002Frxscripts.webp",{},"20,000+ customers and 300+ five-star reviews; payments, delivery and first-line support run without anyone touching them.","\u002Fen\u002Fwork\u002Frxscripts","Hosted Tebex templates capped the brand: slow, generic and invisible to search engines.",{"title":124,"description":176},[109,184,185,110,186],"PrimeVue","Tebex Headless API","Netlify","en\u002Fwork\u002Frxscripts","Webstore","https:\u002F\u002Frxscripts.xyz","_PJqi6evVJc8FONbc7xfnWrMEnou5qPsefn9yRj74nA",{"id":192,"title":193,"body":194,"category":269,"description":270,"extension":99,"featured":271,"image":272,"meta":273,"navigation":10,"order":274,"outcome":275,"path":276,"problem":277,"role":106,"seo":278,"stack":279,"status":118,"stem":288,"type":289,"url":251,"video":290,"__hash__":291},"work\u002Fen\u002Fwork\u002Fone-inventory.md","One Inventory",{"type":21,"value":195,"toc":263},[196,198,201,203,206,226,234,236,244,246,255,260],[24,197,27],{"id":26},[29,199,200],{},"Inventory systems are the most replaced resource on FiveM servers. The incumbents force admins into config files for every item and shop, break on framework updates, and turn migration from an old inventory into a weekend of manual work. Owners kept switching because nothing removed those causes.",[24,202,35],{"id":34},[29,204,205],{},"One Inventory attacks each replacement reason directly:",[40,207,208,211,214,217,220,223],{},[43,209,210],{},"Items, weapons, shops and stashes configured in-game through an admin panel, no Lua editing",[43,212,213],{},"A migration importer that carries over stashes, gloveboxes, trunks and player slots from existing inventories",[43,215,216],{},"Compatibility with ESX, QBCore and QBox, plus ox_lib, ox_target and qb-target",[43,218,219],{},"Theme customization for colors, sounds, fonts and slot behavior",[43,221,222],{},"0.00ms idle performance, anti-duplication and server-authoritative operations",[43,224,225],{},"Weekly updates, a public roadmap and beta pricing with a lifetime price lock",[29,227,228,229,233],{},"The interface is a Vue NUI built with shadcn-style components and Tailwind CSS. Licensing and support run through the ",[82,230,232],{"href":231},"\u002Fcases\u002Fonestudios-bot","One Studios Discord bot",", which includes an AI assistant that answers questions straight from the product documentation.",[24,235,70],{"id":69},[29,237,238,239,243],{},"Lua for game logic, Vue with shadcn-style components and Tailwind CSS for the interface, sold through the ",[82,240,242],{"href":241},"\u002Fcases\u002Fonestudios-store","One Studios store",".",[24,245,77],{"id":76},[29,247,248,249,254],{},"Sold at ",[82,250,253],{"href":251,"rel":252},"https:\u002F\u002Fonestudios.gg",[86],"onestudios.gg"," under the tagline \"the one you stop replacing\", with a Discord community of more than 1,000 members around it.",[161,256,257],{},[29,258,259],{},"\"Most complete and advanced inventory you can find on the market. Recommended!\"\nadrian_1950, verified customer review",[29,261,262],{},"The in-game configuration approach removed the main reason server owners kept switching systems, which is exactly what the product was scoped to do.",{"title":90,"searchDepth":91,"depth":91,"links":264},[265,266,267,268],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"fivem","A premium FiveM inventory system configured fully in-game, sold under the One Studios brand. Vue NUI built with shadcn-style components and Tailwind.",false,"\u002Fimg\u002Fwork\u002Fone-inventory.webp",{},3,"Sold at onestudios.gg to a 1,000+ member community, with reviews calling it the most complete inventory on the market.","\u002Fen\u002Fwork\u002Fone-inventory","FiveM server owners replace their inventory more than any other system: config-file surgery, broken migrations, framework lock-in.",{"title":193,"description":270},[280,281,282,283,284,285,286,287],"Lua","Vue","shadcn\u002Fui","Tailwind CSS","FiveM","ESX","QBCore","QBox","en\u002Fwork\u002Fone-inventory","FiveM Script","https:\u002F\u002Fwww.youtube-nocookie.com\u002Fembed\u002FV-22-GgU_T8","Wc8oDPQNDyFOSx5gqp9w9y1WQNUDL7N4LU95M3S2lLA",{"id":293,"title":242,"body":294,"category":175,"description":343,"extension":99,"featured":10,"image":344,"meta":345,"navigation":10,"order":346,"outcome":347,"path":348,"problem":349,"role":106,"seo":350,"stack":351,"status":118,"stem":353,"type":188,"url":251,"video":6,"__hash__":354},"work\u002Fen\u002Fwork\u002Fonestudios-store.md",{"type":21,"value":295,"toc":337},[296,298,301,303,306,320,322,328,330],[24,297,27],{"id":26},[29,299,300],{},"One Inventory is positioned as the premium option in its market. Premium positioning dies on a generic storefront: the store is the first thing a prospect sees, before any feature list. It needed its own design language, fast pages and a checkout that does not bounce buyers to a foreign-looking domain mid-purchase.",[24,302,35],{"id":34},[29,304,305],{},"A second self-made storefront on the Tebex Headless API, separate from RX Scripts and built around a single flagship product:",[40,307,308,311,314,317],{},[43,309,310],{},"A product-led landing experience: feature tour, verified reviews, roadmap and beta pricing with a lifetime price lock",[43,312,313],{},"Package and checkout flow through the Headless API on the brand's own domain",[43,315,316],{},"The changelog and full product documentation built straight into the site, so customers never leave it to find answers",[43,318,319],{},"Purchase-to-Discord wiring, so buying connects the customer to licensing and support immediately",[24,321,70],{"id":69},[29,323,324,325,327],{},"Nuxt with TypeScript and Pinia on the Tebex Headless API, integrated with the ",[82,326,232],{"href":231}," for delivery and entitlements.",[24,329,77],{"id":76},[29,331,332,333,336],{},"Live at ",[82,334,253],{"href":251,"rel":335},[86]," as the complete sales channel for the product line, docs and changelog included. Building the second store on the foundations of the first took a fraction of the time, which is the argument for custom-but-reusable engineering over one-off templates.",{"title":90,"searchDepth":91,"depth":91,"links":338},[339,340,341,342],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"A second custom Tebex Headless storefront with the changelog and product documentation built straight into the site.","\u002Fimg\u002Fwork\u002Fonestudios-store.webp",{},4,"Live at onestudios.gg as the complete sales channel for One Inventory, from landing page to checkout to docs.","\u002Fen\u002Fwork\u002Fonestudios-store","A premium product needs a premium storefront; a stock Tebex template would undercut the entire positioning.",{"title":242,"description":343},[109,185,110,352,117],"Pinia","en\u002Fwork\u002Fonestudios-store","P6g2oYbqa3thD68RC7jvDl0u7eeaV9Ugfr1Y92AwBaA",{"id":356,"title":357,"body":358,"category":97,"description":406,"extension":99,"featured":271,"image":407,"meta":408,"navigation":10,"order":409,"outcome":410,"path":411,"problem":412,"role":106,"seo":413,"stack":414,"status":416,"stem":417,"type":120,"url":418,"video":6,"__hash__":419},"work\u002Fen\u002Fwork\u002Fgetgiven.md","GetGiven",{"type":21,"value":359,"toc":400},[360,362,365,367,370,387,389,392,394,397],[24,361,27],{"id":26},[29,363,364],{},"Community giveaways meant spreadsheets, manual winner picks and accusations of rigged results. Checking that entrants actually joined the Discord server was manual work, and no organizer could prove a draw was fair after the fact.",[24,366,35],{"id":34},[29,368,369],{},"A platform that made giveaways verifiable end to end:",[40,371,372,375,378,381,384],{},[43,373,374],{},"Provably fair draws: the winner derives from a hash published before the draw, so any participant can verify the result independently",[43,376,377],{},"Entry actions with automatic verification: Discord joins, site visits, secret codes, daily bonus entries",[43,379,380],{},"A dashboard with live participant tracking, scheduling, re-rolls and CSV winner exports",[43,382,383],{},"A free tier plus premium at 9.99 per month through Stripe",[43,385,386],{},"Discord verification and auto-join wired into the platform itself",[24,388,70],{"id":69},[29,390,391],{},"Nuxt with Nuxt UI Pro, Supabase for auth and database plus Deno edge functions, Stripe, and the Discord API.",[24,393,77],{"id":76},[29,395,396],{},"GetGiven has been in production since 2023, shortly after RX Scripts: more than 11,000 users, over 1,000 giveaways hosted and 42,000+ participants verified and drawn. The fairness mechanism did its job: zero disputes about winner selection.",[29,398,399],{},"The platform still runs for its users today. Active feature development stopped in 2026 when MyChar became the SaaS getting the new ideas, and that is a deliberate part of how SolwareX works: a product reaches the point where it runs on its own, keeps serving its users, and the building energy moves to the next thing.",{"title":90,"searchDepth":91,"depth":91,"links":401},[402,403,404,405],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"A giveaway SaaS with provably fair draws, Discord verification and Stripe premium. Running since 2023 and still serving its users today.","\u002Fimg\u002Fwork\u002Fgetgiven.webp",{},5,"11,000+ users, 1,000+ giveaways and 42,000+ participants, with zero draw disputes; still running for its users while MyChar takes the new-feature focus.","\u002Fen\u002Fwork\u002Fgetgiven","Community giveaways ran on spreadsheets and trust: no verification, no proof the draw was fair.",{"title":357,"description":406},[109,111,112,113,415,117],"Deno edge functions","maintenance","en\u002Fwork\u002Fgetgiven","https:\u002F\u002Fgetgiven.com","U_CewCcGropgmuJp7nK8NigEEH0HmY-MbucDOB_k_J0",{"id":421,"title":422,"body":423,"category":465,"description":466,"extension":99,"featured":10,"image":467,"meta":468,"navigation":10,"order":469,"outcome":470,"path":471,"problem":472,"role":106,"seo":473,"stack":474,"status":118,"stem":478,"type":479,"url":480,"video":6,"__hash__":481},"work\u002Fen\u002Fwork\u002Frx-docs.md","Documentation",{"type":21,"value":424,"toc":459},[425,427,430,432,435,449,451,454,456],[24,426,27],{"id":26},[29,428,429],{},"Selling 150+ scripts to thousands of server owners means the same questions arrive every day: how do I install this, what does this config option do, which framework versions work. Answering them one ticket at a time does not scale, and buyers who cannot find answers quietly stop buying.",[24,431,35],{"id":34},[29,433,434],{},"A self-made documentation platform, separate from the store but part of the same ecosystem:",[40,436,437,440,443,446],{},[43,438,439],{},"Per-product documentation with installation guides, configuration references and code samples",[43,441,442],{},"Full-text search, so a customer finds the answer faster than a ticket gets picked up",[43,444,445],{},"The public fmLib documentation, so third-party developers can build against our library",[43,447,448],{},"AI-readable exports via llms.txt, which means the documentation also feeds AI tooling, including the support assistant in the One Studios bot",[24,450,70],{"id":69},[29,452,453],{},"Nuxt with Nuxt Content and Nuxt UI Pro, plus nuxt-llms for the machine-readable exports.",[24,455,77],{"id":76},[29,457,458],{},"The portal answers the questions that used to fill the ticket queue, before they become tickets. It is a large part of why reviews keep repeating that installation takes minutes: the answer to almost every setup question is one search away, day and night.",{"title":90,"searchDepth":91,"depth":91,"links":460},[461,462,463,464],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"custom","A self-made documentation platform at docs.rxscripts.xyz: per-product guides, code samples and AI-readable exports.","\u002Fimg\u002Fwork\u002Frx-docs.webp",{},6,"Customers install and configure without opening a ticket, and the docs feed the AI support assistant.","\u002Fen\u002Fwork\u002Frx-docs","A catalog of 150+ scripts generates the same setup questions endlessly; every answered ticket is time not spent building.",{"title":422,"description":466},[109,475,476,477,186],"Nuxt Content","Nuxt UI Pro","nuxt-llms","en\u002Fwork\u002Frx-docs","Website","https:\u002F\u002Fdocs.rxscripts.xyz","XNvnOHXzWaxG9NXg5e1TJSOb4TG9YS5Z56KNDTrwHUU",{"id":483,"title":484,"body":485,"category":269,"description":530,"extension":99,"featured":271,"image":531,"meta":532,"navigation":10,"order":533,"outcome":534,"path":535,"problem":536,"role":106,"seo":537,"stack":538,"status":118,"stem":541,"type":542,"url":189,"video":6,"__hash__":543},"work\u002Fen\u002Fwork\u002Ffivem-scripts.md","FiveM script catalog",{"type":21,"value":486,"toc":524},[487,489,492,494,497,514,516,519,521],[24,488,27],{"id":26},[29,490,491],{},"Roleplay servers live or die on their scripts, and most marketplace resources fail in one of three ways: they drag server performance down, they lock into a single framework, or they take a weekend to install. Server owners wanted systems that drop in, run light and keep working after framework updates.",[24,493,35],{"id":34},[29,495,496],{},"More than 150 scripts for the community and webstores since 2023, all held to the same standard:",[40,498,499,502,505,508,511],{},[43,500,501],{},"Complete gameplay systems rather than single-feature snippets, sold individually and as bundles",[43,503,504],{},"One codebase supporting ESX, QBCore and QBox through our fmLib abstraction layer",[43,506,507],{},"Modern NUI interfaces: the early ones in React, everything since in Vue",[43,509,510],{},"Open dependencies, so integrating with other resources takes minutes",[43,512,513],{},"Documentation with every script, updated through the RX Scripts store",[24,515,70],{"id":69},[29,517,518],{},"Lua for game logic, Vue for the interfaces (React in the early years), fmLib for framework abstraction, MySQL for persistence.",[24,520,77],{"id":76},[29,522,523],{},"The catalog runs on hundreds of active servers and generates most of the 300+ five-star reviews on the store. Two things repeat across those reviews: installation takes minutes, and the scripts stay fast under real player load. That reputation is what the One Studios premium brand was later built on.",{"title":90,"searchDepth":91,"depth":91,"links":525},[526,527,528,529],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"Over 150 scripts created for the community and webstores since 2023: complete gameplay systems, drop-in installs, one codebase for three frameworks.","\u002Fimg\u002Fwork\u002Ffivem-scripts.webp",{},7,"150+ scripts shipped, running on hundreds of active servers and carrying the bulk of the 300+ five-star reviews on RX Scripts.","\u002Fen\u002Fwork\u002Ffivem-scripts","Marketplace scripts are heavy, framework-locked or painful to install; server owners wanted drop-in systems that stay fast.",{"title":484,"description":530},[280,281,539,284,285,286,287,540],"React","MySQL","en\u002Fwork\u002Ffivem-scripts","FiveM Scripts","5iDsEBXt7POqDl2sd3MvtgiFE7FnwUSAHfLR8yF_i3o",{"id":545,"title":546,"body":547,"category":269,"description":598,"extension":99,"featured":271,"image":599,"meta":600,"navigation":10,"order":601,"outcome":602,"path":603,"problem":604,"role":605,"seo":606,"stack":607,"status":118,"stem":609,"type":610,"url":583,"video":6,"__hash__":611},"work\u002Fen\u002Fwork\u002Ffmlib.md","fmLib",{"type":21,"value":548,"toc":592},[549,551,554,556,559,573,576,578,587,589],[24,550,27],{"id":26},[29,552,553],{},"Any FiveM script that wants a real market has to support ESX, QBCore and QBox. Without an abstraction layer that means three code paths for players, items, money and notifications in every single resource. Triple the surface, triple the bugs, triple the maintenance.",[24,555,35],{"id":34},[29,557,558],{},"The abstraction layer we wanted to exist, released as open source:",[40,560,561,564,567,570],{},[43,562,563],{},"One API wrapping the major frameworks, so a script written against fmLib runs on all three unchanged",[43,565,566],{},"Wrappers for commonly used resources on top of the framework layer",[43,568,569],{},"Extra modules for tasks every script needs, on the Lua side and as React-based NUI components on the web side",[43,571,572],{},"Public documentation at docs.rxscripts.xyz\u002Ffmlib",[29,574,575],{},"It is the foundation under our own commercial catalog, which keeps it maintained and tested in production rather than sitting as a demo repository.",[24,577,70],{"id":69},[29,579,580,581,586],{},"Lua with React-based web and NUI utilities, published on ",[82,582,585],{"href":583,"rel":584},"https:\u002F\u002Fgithub.com\u002Fmeesvrh\u002FfmLib",[86],"GitHub"," under an open license.",[24,588,77],{"id":76},[29,590,591],{},"fmLib has been downloaded more than 23,000 times, carries the multi-framework support for every script we sell and is free for any FiveM developer to build on. Writing that support once, properly, is a large part of why our scripts install in minutes instead of days.",{"title":90,"searchDepth":91,"depth":91,"links":593},[594,595,596,597],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"An open-source Lua and web library that lets one FiveM codebase run on ESX, QBCore and QBox without rewrites.","\u002Fimg\u002Fwork\u002Ffmlib.webp",{},8,"23,000+ downloads; carries framework compatibility for the whole commercial catalog, free for any FiveM developer.","\u002Fen\u002Fwork\u002Ffmlib","Supporting three FiveM frameworks meant three code paths in every script, and three times the bugs.","SolwareX: design, build, maintain, docs",{"title":546,"description":598},[280,539,284,608],"Open source","en\u002Fwork\u002Ffmlib","FiveM Library","vWBfxjIKN23DeiZ-S4FPzfqAgvlSpZScQ32AoUEWyrg",{"id":613,"title":614,"body":615,"category":660,"description":661,"extension":99,"featured":271,"image":6,"meta":662,"navigation":10,"order":663,"outcome":664,"path":665,"problem":666,"role":106,"seo":667,"stack":668,"status":118,"stem":675,"type":676,"url":6,"video":6,"__hash__":677},"work\u002Fen\u002Fwork\u002Frx-bot.md","RX Scripts Discord bot",{"type":21,"value":616,"toc":654},[617,619,622,624,627,644,646,649,651],[24,618,27],{"id":26},[29,620,621],{},"The RX Scripts community lives on Discord: that is where customers verify purchases, ask about orders and open support tickets, in every timezone and far from only in English. Doing that by hand stops working long before 10,000 members, and off-the-shelf bots cannot talk to a Tebex store.",[24,623,35],{"id":34},[29,625,626],{},"A custom bot wired directly into the store:",[40,628,629,632,635,638,641],{},[43,630,631],{},"Tebex integration: purchase verification and order lookups, so customers link their purchases and get their roles without waiting for a human",[43,633,634],{},"A ticket system with searchable HTML transcripts of every support conversation",[43,636,637],{},"Automatic translation of support replies through DeepL, so non-English customers get help in their own language",[43,639,640],{},"Reviews, statistics and suggestion commands that keep the community engaged",[43,642,643],{},"A role selector and community easter-egg events for fun between releases",[24,645,70],{"id":69},[29,647,648],{},"discord.js on Node.js with MongoDB for state, the Tebex API for orders and entitlements, and the DeepL API for translations.",[24,650,77],{"id":76},[29,652,653],{},"The bot carries first-line support for a community of more than 10,000 members around the clock. Order checks, ticket intake and language barriers are handled before a human looks at anything, which is the only way one person can support a 20,000-customer store.",{"title":90,"searchDepth":91,"depth":91,"links":655},[656,657,658,659],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"discord","The commerce and support bot behind the RX Scripts community: Tebex order lookups, tickets with transcripts, translated replies and community events.",{},9,"First-line commerce support for a 10,000+ member community runs around the clock without a human on shift.","\u002Fen\u002Fwork\u002Frx-bot","A 10,000+ member store community generates order questions, support tickets and language barriers around the clock.",{"title":614,"description":661},[669,670,671,672,673,674],"discord.js","Node.js","MongoDB","Tebex API","DeepL API","Zap Hosting","en\u002Fwork\u002Frx-bot","Discord Bot","0ofrF4AWMBvhXwAZDAza5VL5gDsMKnVVRaNZTi5ME7c",{"id":679,"title":232,"body":680,"category":660,"description":725,"extension":99,"featured":271,"image":6,"meta":726,"navigation":10,"order":727,"outcome":728,"path":729,"problem":730,"role":106,"seo":731,"stack":732,"status":118,"stem":735,"type":676,"url":6,"video":6,"__hash__":736},"work\u002Fen\u002Fwork\u002Fonestudios-bot.md",{"type":21,"value":681,"toc":719},[682,684,687,689,692,709,711,714,716],[24,683,27],{"id":26},[29,685,686],{},"One Inventory customers expect support that matches the premium positioning. The catch: most questions asked in tickets are already answered in the documentation. Making customers wait for a human to copy-paste a docs link is slow for them and wasteful for the team.",[24,688,35],{"id":34},[29,690,691],{},"A support bot whose centerpiece is a real AI assistant, not a canned-reply macro:",[40,693,694,697,700,703,706],{},[43,695,696],{},"Documentation ingestion: the bot reads the product docs, including PDF content, and indexes them with vector embeddings",[43,698,699],{},"An AI answer pipeline on the Claude API with retrieval, so answers come from the actual documentation instead of hallucinated guesses",[43,701,702],{},"Configurable instructions, so the assistant answers in the brand's tone and knows when to hand off to a human",[43,704,705],{},"Tebex purchase verification for licensing and customer roles",[43,707,708],{},"Tickets with searchable transcripts, reviews, statistics and suggestion commands",[24,710,70],{"id":69},[29,712,713],{},"discord.js on Node.js with MongoDB, the Claude API for answering, VoyageAI embeddings for retrieval over the docs, and the Tebex API for entitlements.",[24,715,77],{"id":76},[29,717,718],{},"Common questions get a correct, sourced answer in seconds at any hour. The human queue shrinks to the problems that genuinely need a person, which is exactly what premium support should feel like from a one-person brand.",{"title":90,"searchDepth":91,"depth":91,"links":720},[721,722,723,724],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"A support bot with an AI assistant that ingests the product docs and answers customer questions instantly, built on the Claude API.",{},10,"The repetitive half of the ticket queue is answered instantly by AI, from the actual docs, with humans handling only what needs them.","\u002Fen\u002Fwork\u002Fonestudios-bot","A premium product promises premium support, but most support questions are already answered in the documentation.",{"title":232,"description":725},[669,670,671,733,734,672,674],"Claude API","VoyageAI","en\u002Fwork\u002Fonestudios-bot","izuHreIGr0Q3parM_Mg6qyUnU-0HsYbvAzTILdWe4Bg",{"id":738,"title":739,"body":740,"category":660,"description":788,"extension":99,"featured":271,"image":6,"meta":789,"navigation":10,"order":790,"outcome":791,"path":792,"problem":793,"role":106,"seo":794,"stack":795,"status":118,"stem":796,"type":676,"url":6,"video":6,"__hash__":797},"work\u002Fen\u002Fwork\u002Fmychar-bot.md","MyChar Discord bot",{"type":21,"value":741,"toc":782},[742,744,747,749,752,772,774,777,779],[24,743,27],{"id":26},[29,745,746],{},"A product community on Discord needs structure before it grows, not after: new members need onboarding, questions need an orderly intake instead of scattered DMs, and engagement needs a reason to happen. None of that runs itself.",[24,748,35],{"id":34},[29,750,751],{},"A modular community bot where each concern is its own module:",[40,753,754,757,760,763,766,769],{},[43,755,756],{},"A ticket system with transcripts for support intake",[43,758,759],{},"Giveaways for community engagement and launch moments",[43,761,762],{},"A role selector, so members pick their own interests and notification preferences",[43,764,765],{},"Rules and welcome modules that onboard every new member consistently",[43,767,768],{},"A suggestions module, so feature ideas from the community land in one structured place",[43,770,771],{},"Server-boost perks that reward the members who support the server",[24,773,70],{"id":69},[29,775,776],{},"discord.js on Node.js with MongoDB, structured as independent modules so features can be added or removed per community.",[24,778,77],{"id":76},[29,780,781],{},"The MyChar server onboards members, collects product feedback and handles support intake without manual moderation work. The suggestions module doubles as a product research channel: ideas from the community feed directly into what gets built next.",{"title":90,"searchDepth":91,"depth":91,"links":783},[784,785,786,787],{"id":26,"depth":91,"text":27},{"id":34,"depth":91,"text":35},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"The community bot for the MyChar server: tickets, giveaways, role selection, suggestions, welcomes and boost perks.",{},11,"The MyChar community onboards, engages and gets support without manual moderation work.","\u002Fen\u002Fwork\u002Fmychar-bot","A growing product community needs structure from day one: onboarding, support intake and engagement do not run themselves.",{"title":739,"description":788},[669,670,671,674],"en\u002Fwork\u002Fmychar-bot","8SHtwwYnBL-AzwH-nvukhVVL8sAqbGGjuF__BLxmq_k",{"id":799,"title":800,"body":801,"category":269,"description":839,"extension":99,"featured":271,"image":840,"meta":841,"navigation":10,"order":842,"outcome":843,"path":844,"problem":845,"role":846,"seo":847,"stack":848,"status":849,"stem":850,"type":851,"url":852,"video":6,"__hash__":853},"work\u002Fen\u002Fwork\u002Ffiverr.md","Fiverr freelance (rejoxdev)",{"type":21,"value":802,"toc":833},[803,805,808,812,815,818,820,823,825],[24,804,27],{"id":26},[29,806,807],{},"Before RX Scripts existed, custom FiveM work meant freelancing: find a client, scope the job, deliver, repeat. It works, and it teaches you to scope and communicate fast, but every month starts from zero.",[24,809,811],{"id":810},"what-i-built","What I built",[29,813,814],{},"A freelance practice on Fiverr under the name rejoxdev, delivering custom FiveM scripts to server owners: scoping each request, building it, delivering it working and supporting it after.",[29,816,817],{},"The numbers did the marketing: for a while I was the top FiveM scripting seller on the platform, and the profile carries 72 reviews from delivered jobs.",[24,819,70],{"id":69},[29,821,822],{},"Lua for FiveM, against the frameworks clients ran, mostly ESX and QBCore in that era.",[24,824,77],{"id":76},[29,826,827,828,832],{},"Freelancing proved the demand and built the audience, and that raised the obvious question: why win the same trust one gig at a time? I stepped over from freelancing to my own webstore, and that store became ",[82,829,831],{"href":830},"\u002Fcases\u002Frxscripts","RX Scripts",". The Fiverr chapter is closed, but it is where scoping, client communication and delivering beyond expectation were learned, and those carry into every client project today.",{"title":90,"searchDepth":91,"depth":91,"links":834},[835,836,837,838],{"id":26,"depth":91,"text":27},{"id":810,"depth":91,"text":811},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"Where the commercial story started: freelance FiveM development on Fiverr, top scripting seller with 72 reviews, before moving to my own store.","\u002Fimg\u002Fwork\u002Ffiverr.webp",{},12,"Top FiveM scripting seller on the platform for a while, 72 reviews; the audience that RX Scripts was built on.","\u002Fen\u002Fwork\u002Ffiverr","Custom FiveM work was in demand, but every freelance client had to be won one gig at a time.","Solo freelancer: scoping, build, delivery, support",{"title":800,"description":839},[280,284,285,286],"archived","en\u002Fwork\u002Ffiverr","Freelance","https:\u002F\u002Fwww.fiverr.com\u002Frejoxdev?public_mode=true","znLFKjJWd6Ke-Uuhf4RU8V_Ea6ZOrknJEnYV7FVhkIk",{"id":855,"title":856,"body":857,"category":465,"description":902,"extension":99,"featured":271,"image":903,"meta":904,"navigation":10,"order":905,"outcome":906,"path":907,"problem":908,"role":909,"seo":910,"stack":911,"status":915,"stem":916,"type":917,"url":6,"video":6,"__hash__":918},"work\u002Fen\u002Fwork\u002Fauthorization-tool.md","Achmea Bank internal tooling",{"type":21,"value":858,"toc":896},[859,861,864,866,869,883,886,888,891,893],[24,860,27],{"id":26},[29,862,863],{},"At Achmea Bank, the process for designing authorizations consisted of manual steps spread across multiple teams. At that scale, a routine internal process becomes slow and error-prone, and every handoff is a chance for details to drift.",[24,865,811],{"id":810},[29,867,868],{},"An internal web application that brought the authorization design process into one place:",[40,870,871,874,877,880],{},[43,872,873],{},"A full-stack application with a RESTful API at its core",[43,875,876],{},"Built for scale and maintainability under the bank's engineering and security standards",[43,878,879],{},"Requirements refined continuously with cross-functional teams",[43,881,882],{},"Delivered with documentation so internal teams could keep building on it",[29,884,885],{},"The specifics stay under NDA, as they should at a bank.",[24,887,70],{"id":69},[29,889,890],{},"Full-stack web development around a RESTful API, inside Achmea's enterprise toolchain, with formal code review and security requirements.",[24,892,77],{"id":76},[29,894,895],{},"The application streamlined the internal authorization workflow and was handed over documented. For client work the relevant part is the discipline it trained: enterprise review culture, security requirements and multi-team alignment, applied since to every project I take on alone.",{"title":90,"searchDepth":91,"depth":91,"links":897},[898,899,900,901],{"id":26,"depth":91,"text":27},{"id":810,"depth":91,"text":811},{"id":69,"depth":91,"text":70},{"id":76,"depth":91,"text":77},"An internal web application that streamlined the authorization design process at a Dutch bank. Details under NDA.","\u002Fimg\u002Fwork\u002Fachmea.webp",{},13,"Delivered to enterprise standards and adopted by internal teams; specifics stay under NDA.","\u002Fen\u002Fwork\u002Fauthorization-tool","Authorization design ran on manual steps spread across teams, slow and error-prone at bank scale.","Full-stack developer within cross-functional teams",{"title":856,"description":902},[912,913,914],"Full-stack web","REST API","Enterprise standards","nda","en\u002Fwork\u002Fauthorization-tool","Web App","x7HeE_BkuXzHSIQRjNrJSL-rGlJcd7y31NQbhTwQCRs",1786202351780]