PageSourceSearch

https://masmoudi.dev/_nuxt/BIYc__So.js

js masmoudi.dev collected 2026-10-05 02:40:00 UTC 20,359 bytes, 1 lines download raw bytes

1const t={navigation:{home:{t:0,b:{t:2,i:[{t:3}],s:"Home"}},projects:{t:0,b:{t:2,i:[{t:3}],s:"Projects"}},about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},contact:{t:0,b:{t:2,i:[{t:3}],s:"Contact"}}},language:{switch:{t:0,b:{t:2,i:[{t:3}],s:"Switch Language to"}},en:{t:0,b:{t:2,i:[{t:3}],s:"English"}},de:{t:0,b:{t:2,i:[{t:3}],s:"Deutsch"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Français"}}},theme:{light:{t:0,b:{t:2,i:[{t:3}],s:"Light"}},dark:{t:0,b:{t:2,i:[{t:3}],s:"Dark"}}},home:{hero:{title:{main:{t:0,b:{t:2,i:[{t:3}],s:"Web Development"}},sub:{t:0,b:{t:2,i:[{t:3}],s:"& IT Consulting"}}},description:{t:0,b:{t:2,i:[{t:3}],s:"Innovative web solutions and AI integration for your business"}},cta:{learn_more:{t:0,b:{t:2,i:[{t:3}],s:"Learn More"}},contact:{t:0,b:{t:2,i:[{t:3}],s:"Contact"}}}},about:{title:{t:0,b:{t:2,i:[{t:3}],s:"About Me"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Web Developer & Consultant with over 8 years of experience"}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Learn More About Me"}}},services:{title:{t:0,b:{t:2,i:[{t:3}],s:"Services"}},web_dev:{t:0,b:{t:2,i:[{t:3}],s:"Web Development"}},consulting:{t:0,b:{t:2,i:[{t:3}],s:"IT Consulting"}},ai:{t:0,b:{t:2,i:[{t:3}],s:"SaaS Solutions"}}},projects:{title:{t:0,b:{t:2,i:[{t:3}],s:"Featured Projects"}},view_all:{t:0,b:{t:2,i:[{t:3}],s:"View All Projects"}},view_project:{t:0,b:{t:2,i:[{t:3}],s:"View Project"}}},testimonials:{title:{t:0,b:{t:2,i:[{t:3}],s:"What Clients Say"}}},cta:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ready to Start Your Project?"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Let's discuss how I can help bring your ideas to life"}},button:{t:0,b:{t:2,i:[{t:3}],s:"Get in Touch"}}}},projects:{title:{t:0,b:{t:2,i:[{t:3}],s:"My Projects"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Here are some of my key projects where I've tackled web development, AI integration, and problem-solving."}},tech_stack:{t:0,b:{t:2,i:[{t:3}],s:"Tech Stack"}},key_features:{t:0,b:{t:2,i:[{t:3}],s:"Key Features"}},view_project:{t:0,b:{t:2,i:[{t:3}],s:"View Project"}},seo:{title:{t:0,b:{t:2,i:[{t:3}],s:"Projects - Mohamed-Ali Masmoudi"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Discover my projects, from AI-powered platforms to productivity-enhancing tools."}}},items:{i18n_ai:{title:{t:0,b:{t:2,i:[{t:3}],s:"i18n-ai"}},description:{t:0,b:{t:2,i:[{t:3}],s:"AI-powered translation tool for i18n JSON files. Translates while preserving nested structure, supports multiple AI providers, and offers CSV import/export for easy management."}},features:[{t:0,b:{t:2,i:[{t:3}],s:"Multiple AI providers (OpenAI, Anthropic, Gemini, DeepSeek, XAI)"}},{t:0,b:{t:2,i:[{t:3}],s:"Preserves JSON structure and handles large files with chunking"}},{t:0,b:{t:2,i:[{t:3}],s:"Customizable translation settings (models, tone, context)"}},{t:0,b:{t:2,i:[{t:3}],s:"CSV import/export for reviewing translations"}},{t:0,b:{t:2,i:[{t:3}],s:"Smart handling of existing translations"}}]},ductize:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ductize"}},description:{t:0,b:{t:2,i:[{t:3}],s:"AI-powered no-code platform for service providers to effortlessly create websites, manage clients, and accept payments."}},features:[{t:0,b:{t:2,i:[{t:3}],s:"No-Code Website Builder"}},{t:0,b:{t:2,i:[{t:3}],s:"Integrated Payments (Stripe)"}},{t:0,b:{t:2,i:[{t:3}],s:"AI-powered Service Structuring"}},{t:0,b:{t:2,i:[{t:3}],s:"Client & Project Management"}},{t:0,b:{t:2,i:[{t:3}],s:"Fast & Scalable Cloud Deployment"}}]},collective_goals:{title:{t:0,b:{t:2,i:[{t:3}],s:"Collective Goals"}},description:{t:0,b:{t:2,i:[{t:3}],s:"A goal tracking platform that helps people stay motivated and accountable through group work."}},features:[{t:0,b:{t:2,i:[{t:3}],s:"Group Accountability"}},{t:0,b:{t:2,i:[{t:3}],s:"Progress Tracking"}},{t:0,b:{t:2,i:[{t:3}],s:"Community Support"}},{t:0,b:{t:2,i:[{t:3}],s:"Easy & Quick Setup"}}]},copy_splash:{title:{t:0,b:{t:2,i:[{t:3}],s:"CopySplash"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Browser extension for effortless copying and customizing images from Unsplash, optimized for content creators."}},features:[{t:0,b:{t:2,i:[{t:3}],s:"One-Click Image Copy"}},{t:0,b:{t:2,i:[{t:3}],s:"Easy Customization"}},{t:0,b:{t:2,i:[{t:3}],s:"Time-Saving Workflow"}},{t:0,b:{t:2,i:[{t:3}],s:"Seamless Unsplash Integration"}}]}}},footer:{description:{t:0,b:{t:2,i:[{t:3}],s:"Web Developer & IT Consultant building high-performance web applications and scalable solutions."}},quickLinks:{t:0,b:{t:2,i:[{t:3}
1],s:"Quick Links"}},legal:{t:0,b:{t:2,i:[{t:3}],s:"Legal"}},contact:{t:0,b:{t:2,i:[{t:3}],s:"Contact"}},location:{t:0,b:{t:2,i:[{t:3}],s:"Based in Germany"}},copyright:{t:0,b:{t:2,i:[{t:3}],s:"© 2024 Mohamed Ali Masmoudi. All rights reserved."}},imprint:{t:0,b:{t:2,i:[{t:3}],s:"Imprint"}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Privacy Policy"}}},about:{title:{main:{t:0,b:{t:2,i:[{t:3}],s:"Senior Web Developer"}},sub:{t:0,b:{t:2,i:[{t:3}],s:"& IT Consultant"}}},experience:{t:0,b:{t:2,i:[{t:3}],s:"With over eight years of experience in developing high-performance web applications, scalable SaaS platforms, and AI-driven solutions."}},expertise:{web_dev:{title:{t:0,b:{t:2,i:[{t:3}],s:"Web Development"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Vue.js, Nuxt, TypeScript"}}},ai:{title:{t:0,b:{t:2,i:[{t:3}],s:"AI Integration"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"ChatGPT, Prompt Engineering"}}},backend:{title:{t:0,b:{t:2,i:[{t:3}],s:"Backend & DevOps"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Node.js, Docker, Cloud"}}},consulting:{title:{t:0,b:{t:2,i:[{t:3}],s:"IT Consulting"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Strategy & Architecture"}}}},cta:{contact:{t:0,b:{t:2,i:[{t:3}],s:"Get in Touch"}},projects:{t:0,b:{t:2,i:[{t:3}],s:"View Projects"}}},sections:{tech_stack:{t:0,b:{t:2,i:[{t:3}],s:"Tech Stack"}},experience:{t:0,b:{t:2,i:[{t:3}],s:"Work Experience"}},languages:{t:0,b:{t:2,i:[{t:3}],s:"Languages"}},certifications:{t:0,b:{t:2,i:[{t:3}],s:"Certifications"}},current_projects:{t:0,b:{t:2,i:[{t:3}],s:"Current Projects"}}},experience_labels:{client:{t:0,b:{t:2,i:[{t:3}],s:"Client"}},project:{t:0,b:{t:2,i:[{t:3}],s:"Project"}},activities:{t:0,b:{t:2,i:[{t:3}],s:"Activities"}}},language_names:{german:{t:0,b:{t:2,i:[{t:3}],s:"German"}},english:{t:0,b:{t:2,i:[{t:3}],s:"English"}},french:{t:0,b:{t:2,i:[{t:3}],s:"French"}},arabic:{t:0,b:{t:2,i:[{t:3}],s:"Arabic"}}},languages:{german:{t:0,b:{t:2,i:[{t:3}],s:"Fluent"}},english:{t:0,b:{t:2,i:[{t:3}],s:"Fluent"}},french:{t:0,b:{t:2,i:[{t:3}],s:"Fluent"}},arabic:{t:0,b:{t:2,i:[{t:3}],s:"Native"}}},certifications:[{t:0,b:{t:2,i:[{t:3}],s:"Google UX Design Certification"}},{t:0,b:{t:2,i:[{t:3}],s:"ChatGPT Prompt Engineering for Developers"}},{t:0,b:{t:2,i:[{t:3}],s:"Career Coaching Certification"}},{t:0,b:{t:2,i:[{t:3}],s:"Licensed Practitioner of NLP"}},{t:0,b:{t:2,i:[{t:3}],s:"Project Management & Feedback Training"}}],work_experience:{nterra_2021:{summary:{t:0,b:{t:2,i:[{t:3}],s:"Leading role in developing an innovative network operator portal. Responsible for successful migration from Vue 2 to Vue 3, integration of state management and REST APIs. Focus on code quality and mentoring team members."}}},nterra_2019_2:{summary:{t:0,b:{t:2,i:[{t:3}],s:"Development and optimization of a company-wide ordering portal with focus on user experience and performance. Implementation of modern UI components and efficient data processing, coupled with continuous improvement of code quality."}}},nterra_2019_1:{summary:{t:0,b:{t:2,i:[{t:3}],s:"Optimization of user interface and performance of Conextrade.com through close collaboration with the UX team. Focus on responsive design and fast loading times while improving functionality."}}}},view_project:{t:0,b:{t:2,i:[{t:3}],s:"View Project"}},final_cta:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ready to Start Your Next Digital Project?"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Whether it's a custom web application, AI-powered SaaS solution, or professional IT consulting - I deliver innovative and reliable digital strategies that drive your business forward."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Contact Me"}}}},contact:{title:{t:0,b:{t:2,i:[{t:3}],s:"Contact"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Let's discuss your next project and turn your vision into reality."}},email:{title:{t:0,b:{t:2,i:[{t:3}],s:"Email"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Send me a message about your project."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Send Email"}}},call:{title:{t:0,b:{t:2,i:[{t:3}],s:"Video Call"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Book a Call for a personal discussion about your project."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Book a Call"}}}},cookie:{modal_title:{t:0,b:{t:2,i:[{t:3}],s:"Cookie Settings"}},modal_description:{t:0,b:{t:2,i:[{t:3}],s:"We use cookies to enhance your browsing experience and analyze our traffic. Please choose your cookie preferences below."}},bar_description:{t:0,b:{t:2,i:[{t:3}],s:"We use cookies to improve your experience on our site."}},bar_button:{t:0,b:{t:2,i:[{t:3}],s:"Cookie Settings"}},accept_button:{t:0,b:{t:2,i:[{t:3}],s:"Accept All"}},save_button:{t:0,b:{t:2,i:[{t:3}],s:"Save Settings"}},close_button:{t:0,b:{t:2,i:[{t:3}],s:"Close"}},decline_button:{t:0,b:{t:2,i:[{t:3}],s:"Decline All"}},necessary:{t:0,b:{t:2,i:[{t:3}],s:"Necessary Cookies"}},necessary_description:{t:0,b:{t:2,i:[{t:3}],s:"These cookies are essential for the website to function properly."}},preferences:{t:0,b:{t:2,i:[{t:3}],s:"Language Preference"}},preferences_description:{t:0,b:{t:2,i:[{t:3}],s:"This cookie remembers your preferred language setting to provide you with a better browsing experience."}}},seo:{landing:{title:{t:0,b:{t:2,i:[{t:3}],s:"Technical Consultant & AI Engineer"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Turning ideas into products. Full-Stack Development, AI Integration, and Technical Consulting. I help teams build, ship and scale complex technical products."}}}},error:{404:{title:{t:0,b:{t:2,i:[{t:3}],s:"Page not found"}},description:{t:0,b:{t:2,i:[{t:3}],s:"The page you're looking for doesn't exist or has been moved."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Back to home"}}}},landing:{hero:{title_line1:{t:0,b:{t:2,i:[{t:3}],s:"Turning ideas"}},title_line2:{t:0,b:{t:2,i:[{t:3}],s:"into products"}},title_line3:{t:0,b:{t:2,i:[{t:3}],s:"Vision into reality"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Technical Consultant & AI Engineer"}},description:{t:0,b:{t:2,i:[{t:3}],s:"I build web applications and AI systems. Over eight years as an enterprise consultant, now independent with three SaaS products of my own. Based in Germany."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Book a call"}},location:{t:0,b:{t:2,i:[{t:3}],s:"Based in Germany"}},scroll:{t:0,b:{t:2,i:[{t:3}],s:"Scroll"}}},intro:{title:{t:0,b:{t:2,i:[{t:3}],s:"About"}},statement:{t:0,b:{t:2,i:[{t:3}],s:"An idea, a stalled build, or an AI prototype that needs real users. I take it the rest of the way, and I stay until it runs."}},body:{t:0,b:{t:2,i:[{t:3}],s:"Over eight years building enterprise platforms for clients like Swisscom and Count+Care, and three SaaS products I run myself, taught me where most projects underestimate the work. Everything after the demo is the hard part. The edge cases, the security, the slow queries, the deploy that has to hold up on a Frid
1ay afternoon. You get senior engineering, honest scoping, and tools chosen to still make sense in five years. One person who owns the outcome, from the first call to the weeks after launch."}}},clients:{title:{t:0,b:{t:2,i:[{t:3}],s:"Trusted by"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Some of the companies I've built software for as a consultant."}}},stack:{title:{t:0,b:{t:2,i:[{t:3}],s:"My stack"}},description:{t:0,b:{t:2,i:[{t:3}],s:"I pick tools I can still maintain in five years."}}},work:{title:{t:0,b:{t:2,i:[{t:3}],s:"What I do"}},fullstack:{title:{t:0,b:{t:2,i:[{t:3}],s:"Full-Stack Development"}},description:{t:0,b:{t:2,i:[{t:3}],s:"I build web applications end to end, from the first sketch to production, and I stay around after launch. I choose the stack to fit the project rather than my habits, and I leave behind code that the next person can actually work in."}}},ai:{title:{t:0,b:{t:2,i:[{t:3}],s:"AI Integration"}},description:{t:0,b:{t:2,i:[{t:3}],s:"I add AI where it does real work, whether that is answering questions from your own documents, handling routine requests, or automating the steps your team repeats every day. It is built to meet GDPR from the start, and when your data cannot leave your own infrastructure, the models run there instead."}}},consulting:{title:{t:0,b:{t:2,i:[{t:3}],s:"Technical Consulting"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Over eight years of consulting for clients like Swisscom and Count+Care showed me where projects really fail. Unclear scope, the wrong stack, processes nobody follows. I help teams catch these problems early, with architecture reviews, stack decisions and working development workflows."}}},final20:{title:{t:0,b:{t:2,i:[{t:3}],s:"Delivering the Final 20%"}},description:{t:0,b:{t:2,i:[{t:3}],s:"AI tools get you to a demo in a weekend. They don't get you to production. The error states, accessibility, performance and monitoring still have to be built by someone. That gap is my specialty. I take projects that are 80% done and finish them."}}}},projects:{title:{t:0,b:{t:2,i:[{t:3}],s:"What I've built"}},intro:{t:0,b:{t:2,i:[{t:3}],s:"These are my own products. I built them and I still run them, which is where I learned what it actually costs to keep software alive. The open source tools started as problems I ran into in my own work."}},saas_title:{t:0,b:{t:2,i:[{t:3}],s:"My products"}},open_source_title:{t:0,b:{t:2,i:[{t:3}],s:"Open Source Projects"}},ductize:{name:{t:0,b:{t:2,i:[{t:3}],s:"Ductize"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://ductize.com"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Helps freelancers and service providers turn their services into products. Instead of selling hours, they package what they do into clear offers, let AI write the descriptions, set up client management and payments, and publish a working website in under 30 minutes. No code involved."}}},scenay:{name:{t:0,b:{t:2,i:[{t:3}],s:"Scenay"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://scenay.com"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Upload one product photo and the AI builds several photorealistic scenes around it. It saves online shops the cost of a full studio shoot when they need a product shown in different settings."}}},burnerbouncer:{name:{t:0,b:{t:2,i:[{t:3}],s:"BurnerBouncer"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://burnerbouncer.com"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Catches disposable email addresses at signup and blocks them. Every address is checked against a database of more than 100,000 throwaway domains, refreshed daily, with an answer back in under 100ms. It stops people from farming your free tier with fake accounts."}}},copy_splash:{name:{t:0,b:{t:2,i:[{t:3}],s:"copy-splash"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://chromewebstore.google.com/detail/unsplash-customizer/nphognmkdpdfenhobfmedbpdahegdklm"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Browser extension for tweaking Unsplash images before you grab them. You adjust an image right on the page, instead of downloading it, editing it somewhere else, and coming back."}}},i18n_mcp:{name:{t:0,b:{t:2,i:[{t:3}],s:"i18n-mcp"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://github.com/dalisys/i18n-mcp"}},description:{t:0,b:{t:2,i:[{t:3}],s:"An MCP server that hands your i18n translation files to an LLM. It updates translations, scans code for hardcoded strings, and keeps every language file consistent, watching for changes as you work."}}},universal_reranker:{name:{t:0,b:{t:2,i:[{t:3}],s:"n8n-nodes-universal-reranker"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://github.com/dalisys/n8n-nodes-universal-reranker"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Adds document reranking to n8n workflows. It works with Cohere's Rerank API and any OpenAI style rerank endpoint such as vLLM, LocalAI, or Infinity, and ships as two nodes for different jobs."}}},i18n_ai:{name:{t:0,b:{t:2,i:[{t:3}],s:"i18n-ai"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://www.npmjs.com/package/i18n-ai"}},description:{t:0,b:{t:2,i:[{t:3}],s:"An npm package that translates your i18n JSON files with AI. It chunks large files so big jobs do not choke, and it stays small and fast."}}}
1,n8n_community_mcp:{name:{t:0,b:{t:2,i:[{t:3}],s:"n8n-community-nodes-mcp"}},url:{t:0,b:{t:2,i:[{t:3}],s:"https://github.com/dalisys/n8n-community-nodes-mcp"}},description:{t:0,b:{t:2,i:[{t:3}],s:"An MCP server that puts n8n's community packages and official docs inside your AI assistant. Search community nodes, pull up official node docs, and read the n8n documentation without leaving your editor. Responses use a compact format to save tokens."}}}},languages:{title:{t:0,b:{t:2,i:[{t:3}],s:"Languages"}},german:{t:0,b:{t:2,i:[{t:3}],s:"German"}},english:{t:0,b:{t:2,i:[{t:3}],s:"English"}},french:{t:0,b:{t:2,i:[{t:3}],s:"French"}},arabic:{t:0,b:{t:2,i:[{t:3}],s:"Arabic"}}},writing:{title:{t:0,b:{t:2,i:[{t:3}],s:"Writing"}},heading:{t:0,b:{t:2,i:[{t:3}],s:"What building products teaches me"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Articles about AI in production, developer tooling and the lessons from running my own SaaS."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"All articles"}}},contact:{title:{t:0,b:{t:2,i:[{t:3}],s:"Let's work together"}},heading_line1:{t:0,b:{t:2,i:[{t:3}],s:"Have something"}},heading_line2:{t:0,b:{t:2,i:[{t:3}],s:"that needs to ship?"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Tell me what you're building."}},form:{name:{t:0,b:{t:2,i:[{t:3}],s:"Name"}},email:{t:0,b:{t:2,i:[{t:3}],s:"Email"}},company:{t:0,b:{t:2,i:[{t:3}],s:"Company"}},budget:{t:0,b:{t:2,i:[{t:3}],s:"Budget"}},budget_options:{undecided:{t:0,b:{t:2,i:[{t:3}],s:"Not sure yet"}},under_10k:{t:0,b:{t:2,i:[{t:3}],s:"Under €10k"}},"10k_25k":{t:0,b:{t:2,i:[{t:3}],s:"€10k to €25k"}},"25k_50k":{t:0,b:{t:2,i:[{t:3}],s:"€25k to €50k"}},over_50k:{t:0,b:{t:2,i:[{t:3}],s:"More than €50k"}}},type:{t:0,b:{t:2,i:[{t:3}],s:"What do you need?"}},type_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Pick one"}},type_options:{new_product:{t:0,b:{t:2,i:[{t:3}],s:"A new product or MVP"}},stalled_project:{t:0,b:{t:2,i:[{t:3}],s:"Take over a stalled project"}},ai_integration:{t:0,b:{t:2,i:[{t:3}],s:"AI integration or automation"}},consulting:{t:0,b:{t:2,i:[{t:3}],s:"Consulting or architecture review"}},other:{t:0,b:{t:2,i:[{t:3}],s:"Something else"}}},message:{t:0,b:{t:2,i:[{t:3}],s:"About the project"}},message_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"What are you building, where does it stand, and what do you need from me?"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"optional"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Send message"}},submitting:{t:0,b:{t:2,i:[{t:3}],s:"Sending"}},success_title:{t:0,b:{t:2,i:[{t:3}],s:"Message sent."}},success_body:{t:0,b:{t:2,i:[{t:3}],s:"Thanks. I read every message myself and will come back to you with next steps."}},error_body:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"Something went wrong on the way. Please try again, or email me at [email protected]."}},errors:{name:{t:0,b:{t:2,i:[{t:3}],s:"Please enter your name."}},email:{t:0,b:{t:2,i:[{t:3}],s:"Please enter a valid email address."}},type:{t:0,b:{t:2,i:[{t:3}],s:"Please pick what you need."}},message:{t:0,b:{t:2,i:[{t:3}],s:"Please add a few words about the project."}},verification:{t:0,b:{t:2,i:[{t:3}],s:"Please complete the verification below."}}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"I use your details only to answer your request."}},book_intro:{t:0,b:{t:2,i:[{t:3}],s:"Prefer to talk?"}},book_cta:{t:0,b:{t:2,i:[{t:3}],s:"Book a call"}},email_intro:{t:0,b:{t:2,i:[{t:3}],s:"Or email me directly"}}},imprint:{t:0,b:{t:2,i:[{t:3}],s:"Imprint"}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Privacy Policy"}},articles:{t:0,b:{t:2,i:[{t:3}],s:"Articles"}}}},blog:{title:{t:0,b:{t:2,i:[{t:3}],s:"Writing"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Notes from building software. Products, AI systems and what I learn along the way."}},back_home:{t:0,b:{t:2,i:[{t:3}],s:"Home"}},back_to_all:{t:0,b:{t:2,i:[{t:3}],s:"All articles"}},reading_time:{t:0,b:{t:2,i:[{t:3}],s:"min read"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"More articles are on the way."}},seo:{title:{t:0,b:{t:2,i:[{t:3}],s:"Writing - Mohamed-Ali Masmoudi"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Articles on building products, AI in production, and developer tooling by Mohamed-Ali Masmoudi."}}
1}}};export{t as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.