[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"home-data":3,"blog-post-databases-acid-in-transactions":364,"i-solar:arrow-up-linear":372,"i-solar:heart-linear":374,"i-solar:share-linear":376},{"settings":4,"socialLinks":17,"projects":55,"testimonials":149,"experiences":178,"approachPhases":202,"skills":246},{"siteName":5,"siteDescription":6,"contactEmail":7,"heroTitle":8,"heroSubtitle":9,"heroDescription":10,"careerStartYear":11,"cvUrl":12,"projectsSectionTitle":13,"projectsSectionHint":14,"profileImage":15,"profileImageSmall":16},"Muhammad Mujahid — Frontend Web Developer","Crafting high-performance, accessible web applications with Vue, Nuxt & TypeScript — focused on clean architecture and great user experiences.","mohamed.mojahead@gmail.com","Hello I'm Muhammad Mujahid Frontend Web Developer","Crafting Web Experiences Since","I build high-performance, accessible web applications with Vue, Nuxt & TypeScript — focused on clean architecture and great user experiences.",2021,"https:\u002F\u002Feyyhyrdggmqxzmwnpaau.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fmedia\u002Fsettings\u002Fbf6a5c19-db50-4455-93da-f9f90bf0e448.pdf","A small selection of recent projects","And more 15+ other projects, Contact Me Now","https:\u002F\u002Feyyhyrdggmqxzmwnpaau.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fmedia\u002Fsettings\u002F906c75f9-b2fa-47f9-bf45-bb875554567c.jpg","https:\u002F\u002Feyyhyrdggmqxzmwnpaau.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fmedia\u002Fsettings\u002F099cabe5-8e20-4251-a2a1-78696db51aa8.png",[18,26,33,40,48],{"id":19,"name":20,"icon":21,"svgPath":22,"url":23,"sortOrder":19,"active":24,"createdAt":25,"updatedAt":25},1,"WhatsApp","simple-icons:whatsapp","\u002Fwha.svg","https:\u002F\u002Fwa.me\u002F201151547569",true,"2026-08-20T16:46:48.456Z",{"id":27,"name":28,"icon":29,"svgPath":30,"url":31,"sortOrder":27,"active":24,"createdAt":32,"updatedAt":32},2,"Instagram","lucide:instagram","\u002Finsta.svg","https:\u002F\u002Finstagram.com\u002Fthismujahid","2026-08-20T16:46:48.553Z",{"id":34,"name":35,"icon":36,"svgPath":37,"url":38,"sortOrder":34,"active":24,"createdAt":39,"updatedAt":39},3,"GitHub","lucide:github","\u002Fgit.svg","https:\u002F\u002Fgithub.com\u002Fthismujahid","2026-08-20T16:46:48.640Z",{"id":41,"name":42,"icon":43,"svgPath":44,"url":45,"sortOrder":41,"active":24,"createdAt":46,"updatedAt":47},4,"X","simple-icons:x","\u002Ftwit.svg","https:\u002F\u002Fx.com\u002Fmim_j2018","2026-08-20T16:46:48.729Z","2026-08-27T16:36:57.434Z",{"id":49,"name":50,"icon":51,"svgPath":52,"url":53,"sortOrder":49,"active":24,"createdAt":54,"updatedAt":54},5,"LinkedIn","lucide:linkedin","\u002Flink.svg","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fthismujahid\u002F","2026-08-20T16:46:48.818Z",[56,71,83,95,106,117,127,138],{"id":57,"title":58,"titleAr":59,"description":60,"descriptionAr":61,"image":62,"link":63,"iconLists":64,"collaborator":67,"sortOrder":68,"active":24,"createdAt":69,"updatedAt":70},9,"Digitaleka","ديجيتاليكا","Digitaleka is a trusted technology partner, providing businesses with mission-critical software solutions, including web and mobile applications.","ديجيتاليكا شركة رائدة وتعد شريكًا تقنيًا موثوقًا به، حيث تزود الشركات بحلول برمجية قوية وبالغة الأهمية، بما في ذلك تطبيقات الويب وتطبيقات الهاتف المحمول.","\u002Fdigitaleka.webp","https:\u002F\u002Fdigitaleka.de",[65,66],"logos:vue","logos:bootstrap",false,0,"2026-08-20T16:46:49.671Z","2026-08-22T11:38:16.660Z",{"id":19,"title":72,"titleAr":73,"description":74,"descriptionAr":75,"image":76,"link":77,"iconLists":78,"collaborator":24,"sortOrder":19,"active":24,"createdAt":81,"updatedAt":82},"InStock Website","منصة إنستوك","InStock is a digital electronic market store that offers a variety of electronic and non electronic products such as the simple home electronic devices, charge…","إنستوك هي أول منصة رائدة في مصر تلبي جميع احتياجات ومتطلبات العملاء من مواد ومستلزمات المختبرات العلمية والصناعية والطبية.","\u002Finstock.webp","https:\u002F\u002Finstock-app.com\u002Fen",[79,80,66],"logos:nuxt-icon","logos:typescript-icon","2026-08-20T16:46:48.908Z","2026-08-22T11:31:21.840Z",{"id":84,"title":85,"titleAr":86,"description":87,"descriptionAr":88,"image":89,"link":90,"iconLists":91,"collaborator":67,"sortOrder":27,"active":24,"createdAt":93,"updatedAt":94},6,"Die Sprachbrücke","الجسر اللغوي","Die Sprachbrücke is a translation office, offering professional language translation services for various industries and clients.","الجسر اللغوي هو مكتب ترجمة يقدم خدمات ترجمة لغوية احترافية لمختلف الصناعات والعملاء.","https:\u002F\u002Feyyhyrdggmqxzmwnpaau.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fmedia\u002Fprojects\u002Ff6bdeeb6-5d88-4349-95e4-b29b03de1550.png","https:\u002F\u002Fdev.digitaleka.de\u002Fen",[79,92,80],"logos:tailwindcss-icon","2026-08-20T16:46:49.384Z","2026-09-15T09:22:09.083Z",{"id":96,"title":97,"titleAr":98,"description":99,"descriptionAr":100,"image":101,"link":102,"iconLists":103,"collaborator":67,"sortOrder":34,"active":24,"createdAt":104,"updatedAt":105},8,"Al-Nassr FC","نادي النصر السعودي","Al-Nassr FC is a Saudi Arabian football club founded in 1955, known for its rich history, passionate fans, and international stars.","نادي النصر لكرة القدم هو نادٍ سعودي لكرة القدم تأسس عام 1955، ويشتهر بتاريخه العريق وجماهيره المتحمسة ونجومه العالميين.","\u002Fnassr.webp","https:\u002F\u002Falnassr.sa",[65,66],"2026-08-20T16:46:49.574Z","2026-09-04T14:54:04.346Z",{"id":41,"title":107,"titleAr":108,"description":109,"descriptionAr":110,"image":111,"link":112,"iconLists":113,"collaborator":67,"sortOrder":41,"active":24,"createdAt":115,"updatedAt":116},"Amico","أميكو","A leading company in the world of manufacturing hydraulic machinery and metal forming.","شركة رائدة في عالم تصنيع الآلات الهيدروليكية وتشكيل المعادن.","\u002Famico.webp","https:\u002F\u002Famicoeg.net",[79,80,114,92],"logos:vuetifyjs","2026-08-20T16:46:49.194Z","2026-09-15T09:28:47.501Z",{"id":49,"title":118,"titleAr":119,"description":120,"descriptionAr":121,"image":122,"link":123,"iconLists":124,"collaborator":24,"sortOrder":49,"active":24,"createdAt":125,"updatedAt":126},"Tayar","طيار","Tayar connects businesses with freelance riders for deliveries, offering real-time tracking, automated dispatch, flexible work, better pay, and insurance coverage.","تربط شركة طيار الطاعم والمحلات بطيارين التوصيل، وبتقدم خدمات التتبع في الوقت الفعلي، والإرسال الآلي، والعمل المرن، والتغطية التأمينية.","\u002Ftayar.webp","https:\u002F\u002Fgettayar.com",[65,66],"2026-08-20T16:46:49.286Z","2026-08-22T11:33:47.579Z",{"id":128,"title":129,"titleAr":130,"description":131,"descriptionAr":132,"image":133,"link":134,"iconLists":135,"collaborator":24,"sortOrder":49,"active":24,"createdAt":136,"updatedAt":137},11,"Starta Egypt","ستراتا لأنظمة التربة","Strata Soil Systems, established in 2015, is a subsidiary of SAMCRETE Corporation, rapidly growing in the Egyptian market. In collaboration with Maccaferri as its sole agent in Egypt, it delivers innovative, cost-effective geotechnical solutions that save time and cost.","شركة ستراتا لأنظمة التربة، التي تأسست عام ٢٠١٥، هي شركة تابعة لشركة سامكريت، وتشهد نمواً سريعاً في السوق المصرية. وبالتعاون مع شركة ماكافيري بصفتها الوكيل الحصري لها في مصر، تقدم الشركة حلولاً جيوتقنية مبتكرة وفعالة من حيث التكلفة، مما يوفر الوقت والمال.","https:\u002F\u002Feyyhyrdggmqxzmwnpaau.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fmedia\u002Fprojects\u002Ff6cff650-7bcf-44de-a9ef-4c780109df5f.png","https:\u002F\u002Fstrata-eg.com",[65,66],"2026-09-05T11:01:44.462Z","2026-09-05T11:13:19.133Z",{"id":139,"title":140,"titleAr":141,"description":142,"descriptionAr":143,"image":144,"link":145,"iconLists":146,"collaborator":67,"sortOrder":139,"active":24,"createdAt":147,"updatedAt":148},7,"Oriento","اورينتو","Oriento is a customizable sales platform offering comprehensive order, booking, and payment systems, along with marketing tools and various features.","أورينتو هي منصة مبيعات قابلة للتخصيص تقدم أنظمة شاملة للطلبات والحجز والدفع، بالإضافة إلى أدوات التسويق وميزات متنوعة.","\u002Foriento.webp","https:\u002F\u002Foriento.app",[65,66],"2026-08-20T16:46:49.480Z","2026-08-22T11:35:10.354Z",[150,157,164,171],{"id":19,"quote":151,"name":152,"title":153,"image":154,"link":155,"sortOrder":19,"active":24,"createdAt":156,"updatedAt":156},"Outstanding Frontend Developer :) I highly recommend Mohammed, or Mujahid as we call him, as a frontend developer. He is a highly skilled Vue.js expert with a strong work ethic and a dedication to delivering top-quality results. His honesty, reliability, and exceptional moral character make him a valuable team member. He consistently goes the extra mile to ensure projects are completed efficiently and to the highest standards. Anyone looking for a talented and trustworthy developer would be fortunate to work with him. Highly Recommended! He is our main Frontend developer, and we are happy to have him on our team.","Ahmed Ali","Founder & CEO, Digitaleka GmbH","\u002Fahmed-ali.jpeg","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fahmed-ali-51018a108","2026-08-20T16:46:49.774Z",{"id":27,"quote":158,"name":159,"title":160,"image":161,"link":162,"sortOrder":27,"active":24,"createdAt":163,"updatedAt":163},"Mujahid is an outstanding front-end developer and a crucial part of the Tayar team. From day one, they have demonstrated exceptional skill in building intuitive and high-performing user interfaces that enhance our platform's experience. Their attention to detail, problem-solving mindset, and ability to turn complex requirements into seamless designs make them a true asset. Whether optimizing performance, refining UI\u002FUX, or collaborating with the team, Mujahid consistently delivers top-notch results. Good luck bro for your next steps ❤️","Abanob Ramzy","Founder & CEO, Tayar","\u002Fbebo.jpeg","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdrbiboramzy","2026-08-20T16:46:49.879Z",{"id":34,"quote":165,"name":166,"title":167,"image":168,"link":169,"sortOrder":34,"active":24,"createdAt":170,"updatedAt":170},"محمد مجاهد دايما شخص ملتزم جدا وحريص دايما ان الشغل يطلع باعلى جوده ودايما متعاون وعمره ما كان بخيل في معلومه يعرفها .. بصراحه بعتبره اضافه كبيره لاي مكان يكون فيه واتمناله كل التوفيق في حياته الجايه","Diaa Sliem","Frontend Developer","\u002Fdiaa.jpeg","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdiaasliem","2026-08-20T16:46:49.980Z",{"id":96,"quote":172,"name":173,"title":174,"image":175,"link":176,"sortOrder":41,"active":24,"createdAt":177,"updatedAt":177},"من خلال تجربتي في الشغل مع محمد على InStock، حابب أشارك رأيي في شغل مهندس الـ Front-End ودوره في تطوير المنصة.\n\nكان ليه دور واضح في تحسين أداء الموقع وتطوير الـ Front-End بشكل مستمر، سواء من خلال إضافة Features جديدة أو تحسين الـ UI وتجربة المستخدم. كمان التطويرات اللي اتعملت خلت الموقع أكثر سلاسة وأسهل في الاستخدام، مع اهتمام كويس جدًا بالتفاصيل.\n\nبشكل عام، كان فيه تطور ملحوظ في المنصة خلال الفترة اللي اشتغلنا فيها، ومجهوده كان جزء مهم من التطور ده.","Sherif Romeeh","Product Manager at InStock","","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsherif-abdelfattah","2026-09-05T23:29:06.289Z",[179,187,194],{"id":19,"title":180,"titleAr":180,"description":181,"descriptionAr":182,"className":183,"thumbnail":184,"sortOrder":19,"active":24,"createdAt":185,"updatedAt":186},"Frontend Developer @ Digitaleka","From October 2021 until now, I have been working full-time and am responsible for the Web Frontend part of the company, building, developing and maintaining the applications and websites that clients request.","من أكتوبر 2021 ولحد الآن، شغال بدوام كامل ومسؤل عن جزء الـWeb Frontend في الشركة ببناء وتطوير وصيانة التطبيقات والمواقع الإلكترونية اللي العملاء بيطلبوها.","md:col-span-2","\u002Fexp1.svg","2026-08-20T16:46:50.075Z","2026-08-27T08:29:45.608Z",{"id":27,"title":188,"titleAr":188,"description":189,"descriptionAr":190,"className":183,"thumbnail":191,"sortOrder":27,"active":24,"createdAt":192,"updatedAt":193},"Frontend Developer @ Tayar","From January 2024 to March 2025, I worked part-time developing and maintaining the features needed for a pilot application only, as it was a Softwear House company.","من يناير 2024 إلى مارس 2025، كنت شغال بدوام جزئي في تطوير وصيانة الميزات اللي بيحتاجها تطبيق طيار فقط، كونها شركة Softwear House.","\u002Fexp4.svg","2026-08-20T16:46:50.176Z","2026-08-22T11:59:37.079Z",{"id":34,"title":195,"titleAr":195,"description":196,"descriptionAr":197,"className":198,"thumbnail":199,"sortOrder":34,"active":24,"createdAt":200,"updatedAt":201},"Freelancer","Since I started in 2020, I have been building different and unique web applications for different clients.","من أول ما بدأت في سنة 2020، وأنا ببني تطبيقات ويب مختلفة ومميزة لعملاء مختلفين.","md:col-span-3 mx-auto","\u002Fexp3.svg","2026-08-20T16:46:50.265Z","2026-08-22T12:02:28.221Z",[203,216,232],{"id":19,"title":204,"titleAr":205,"phase":206,"description":207,"descriptionAr":208,"animationSpeed":209,"background":210,"colors":211,"dotSize":34,"sortOrder":19,"active":24,"createdAt":214,"updatedAt":215},"Planning & Strategy","التخطيط ووضع الإستراتيجيات","Phase 1","We share some necessary information that allows me to know the basic information, the purpose of the website, and the target audience. We discuss things like the website structure, pages, how to navigate between them, content requirements, how to control it, as well as hosting and domain.","بنتشارك مع بعض المعلومات اللازمة الي تتيح ليا معرفة المعلومات الأساسية و الهدف من الويبسايت والجمهور المستهدف - بنتناقش في حاجات زي هيكلية الويبسايت والصفحات واسلوب التنقل بينها ومتطلبات المحتوى وطريقة التحكم فيه وكذلك الإستضافة والدومين.",5.1,"#064e3b",[212],[68,213,213],255,"2026-08-20T16:46:50.357Z","2026-08-22T11:52:53.944Z",{"id":27,"title":217,"titleAr":218,"phase":219,"description":220,"descriptionAr":221,"animationSpeed":34,"background":222,"colors":223,"dotSize":27,"sortOrder":27,"active":24,"createdAt":230,"updatedAt":231},"Development & Test","التطوير والإختبار","Phase 2","After agreeing on the implementation plan, I will start preparing my task list and begin implementing and testing it step by step, while ensuring that you have a link to directly preview the current progress on your website.","بعد الإتفاق على المخطط التنفيذي ببدأ اجهز قايمة المهام الخاصة بيا وابدأ في تنفيذها واختبارها مرحلة مرحلة مع الحفاظ على ان يكون معاك رابط للمعاينه المباشرة للتقدم الحالي في الويبسايت بتاعك","#831843",[224,227],[213,225,226],166,158,[228,213,229],221,247,"2026-08-20T16:46:50.454Z","2026-08-22T11:50:15.204Z",{"id":34,"title":233,"titleAr":234,"phase":235,"description":236,"descriptionAr":237,"animationSpeed":34,"background":238,"colors":239,"dotSize":34,"sortOrder":34,"active":24,"createdAt":244,"updatedAt":245},"Deployment & Launch","النشر والإطلاق","Phase 3","This is the moment we've been waiting for. Based on the planning we've done together and the design we've agreed upon, I've converted everything required into a premium version ready for launch and use, and we're starting to launch it on your hosting.","دي اللحظة المنتظرة دايما، بناءً على التخطيط اللي عملناه سوا والتصميم اللي اتوافق عليه، بكون حولت كل المطلوب لنسخة مميزة جاهزة للإطلاق والإستخدام وبنبدأ نطلقها على الإستضافة الخاصة بيك.","#0284c7",[240],[241,242,243],125,211,252,"2026-08-20T16:46:50.550Z","2026-08-22T11:47:56.481Z",[247,255,261,264,267,272,275,279,285,288,291,298,304,307,313,320,325,330,335,340,346,353,359],{"id":248,"name":249,"icon":250,"category":251,"proficiency":252,"sortOrder":68,"active":24,"createdAt":253,"updatedAt":254},24,"HTML","logos:html-5","Frontend","advanced","2026-10-07T12:51:22.202Z","2026-10-07T12:54:01.508Z",{"id":256,"name":257,"icon":258,"category":251,"proficiency":252,"sortOrder":68,"active":24,"createdAt":259,"updatedAt":260},25,"CSS","logos:css-3","2026-10-07T12:51:36.756Z","2026-10-07T12:54:18.996Z",{"id":19,"name":262,"icon":65,"category":251,"proficiency":252,"sortOrder":19,"active":24,"createdAt":263,"updatedAt":263},"Vue.js","2026-10-07T05:46:44.906Z",{"id":27,"name":265,"icon":79,"category":251,"proficiency":252,"sortOrder":27,"active":24,"createdAt":266,"updatedAt":266},"Nuxt.js","2026-10-07T05:46:44.986Z",{"id":268,"name":269,"icon":79,"category":251,"proficiency":252,"sortOrder":34,"active":24,"createdAt":270,"updatedAt":271},15,"Nuxt UI","2026-10-07T06:28:52.395Z","2026-10-07T11:33:08.032Z",{"id":41,"name":273,"icon":80,"category":251,"proficiency":252,"sortOrder":41,"active":24,"createdAt":274,"updatedAt":274},"TypeScript","2026-10-07T05:46:45.132Z",{"id":49,"name":276,"icon":277,"category":251,"proficiency":252,"sortOrder":49,"active":24,"createdAt":278,"updatedAt":278},"JavaScript","logos:javascript","2026-10-07T05:46:45.204Z",{"id":280,"name":281,"icon":282,"category":251,"proficiency":252,"sortOrder":49,"active":24,"createdAt":283,"updatedAt":284},22,"SCSS","logos:sass","2026-10-07T06:28:53.422Z","2026-10-07T11:33:25.953Z",{"id":84,"name":286,"icon":92,"category":251,"proficiency":252,"sortOrder":84,"active":24,"createdAt":287,"updatedAt":287},"Tailwind CSS","2026-10-07T05:46:45.276Z",{"id":139,"name":289,"icon":114,"category":251,"proficiency":252,"sortOrder":139,"active":24,"createdAt":290,"updatedAt":290},"Vuetify","2026-10-07T05:46:45.467Z",{"id":292,"name":293,"icon":294,"category":295,"proficiency":252,"sortOrder":96,"active":24,"createdAt":296,"updatedAt":297},12,"Firebase","logos:firebase-icon","Backend","2026-10-07T05:46:46.895Z","2026-10-07T11:42:37.350Z",{"id":299,"name":300,"icon":301,"category":251,"proficiency":252,"sortOrder":96,"active":24,"createdAt":302,"updatedAt":303},20,"zod","logos:zod","2026-10-07T06:28:53.133Z","2026-10-07T11:33:17.006Z",{"id":96,"name":305,"icon":66,"category":251,"proficiency":252,"sortOrder":96,"active":24,"createdAt":306,"updatedAt":306},"Bootstrap","2026-10-07T05:46:46.161Z",{"id":34,"name":308,"icon":309,"category":251,"proficiency":310,"sortOrder":57,"active":24,"createdAt":311,"updatedAt":312},"React","logos:react","beginner","2026-10-07T05:46:45.059Z","2026-10-07T11:32:51.598Z",{"id":314,"name":315,"icon":316,"category":251,"proficiency":310,"sortOrder":317,"active":24,"createdAt":318,"updatedAt":319},16,"Next.js","logos:nextjs-icon",10,"2026-10-07T06:28:52.540Z","2026-10-07T11:34:23.784Z",{"id":321,"name":322,"icon":323,"category":295,"proficiency":310,"sortOrder":128,"active":24,"createdAt":324,"updatedAt":324},23,"Prisma ORM","logos:prisma","2026-10-07T11:41:59.616Z",{"id":317,"name":326,"icon":327,"category":295,"proficiency":310,"sortOrder":128,"active":24,"createdAt":328,"updatedAt":329},"Supabase","logos:supabase-icon","2026-10-07T05:46:46.573Z","2026-10-07T11:34:46.653Z",{"id":57,"name":331,"icon":332,"category":295,"proficiency":310,"sortOrder":128,"active":24,"createdAt":333,"updatedAt":334},"Node.js","logos:nodejs-icon","2026-10-07T05:46:46.445Z","2026-10-07T11:34:33.786Z",{"id":336,"name":337,"icon":338,"category":295,"proficiency":310,"sortOrder":336,"active":24,"createdAt":339,"updatedAt":339},17,"PHP","logos:php","2026-10-07T06:28:52.683Z",{"id":341,"name":342,"icon":343,"category":295,"proficiency":310,"sortOrder":341,"active":24,"createdAt":344,"updatedAt":345},21,"Express.js","simple-icons:express","2026-10-07T06:28:53.276Z","2026-10-07T11:32:24.668Z",{"id":347,"name":348,"icon":349,"category":295,"proficiency":350,"sortOrder":280,"active":24,"createdAt":351,"updatedAt":352},13,"Laravel","logos:laravel","learning","2026-10-07T06:28:49.378Z","2026-10-07T11:33:35.557Z",{"id":354,"name":355,"icon":356,"category":295,"proficiency":350,"sortOrder":321,"active":24,"createdAt":357,"updatedAt":358},14,"MySQL","logos:mysql","2026-10-07T06:28:51.116Z","2026-10-07T11:33:44.324Z",{"id":128,"name":360,"icon":361,"category":295,"proficiency":350,"sortOrder":248,"active":24,"createdAt":362,"updatedAt":363},"PostgreSQL","logos:postgresql","2026-10-07T05:46:46.703Z","2026-10-07T11:34:01.215Z",{"slug":365,"title":366,"excerpt":175,"content":367,"coverImage":368,"publishedAt":369,"likes":27,"createdAt":370,"updatedAt":371},"databases-acid-in-transactions","Understanding ACID: Notes From My Database Fundamentals Journey","While learning database fundamentals, I came across a concept that shows up almost everywhere when talking about transactions: **ACID**.\n\nAt first, the four properties sounded like theoretical database terminology. But once I started looking at what can actually go wrong during a transaction, they made much more sense.\n\nSo this is my attempt to summarize ACID in a few simple points.\n\n## First, What Is a Transaction?\n\nA transaction is a group of database operations that should be treated as **one logical unit of work**.\n\nImagine transferring $100 from Account A to Account B.\n\nThe database needs to do at least two things:\n\n```text\nAccount A: -100\nAccount B: +100\n```\n\nThese are two separate database operations, but logically they represent **one operation: the transfer**.\n\nWhat happens if the first query succeeds and the second one fails?\n\nThat's exactly the kind of problem ACID tries to solve.\n\nACID stands for:\n\n- **A — Atomicity**\n- **C — Consistency**\n- **I — Isolation**\n- **D — Durability**\n\n## 1. Atomicity — All or Nothing\n\nAtomicity means a transaction either **completes entirely or doesn't happen at all**.\n\nBack to our transfer:\n\n```text\nA: 1000 → 900\nB: 500  → 600\n```\n\nSuppose the database subtracts $100 from A, then something goes wrong before adding it to B.\n\nWithout atomicity:\n\n```text\nA = 900\nB = 500\n```\n\nWe just lost $100.\n\nWith atomicity, if any part of the transaction fails, the database rolls the transaction back.\n\n```sql\nBEGIN TRANSACTION;\n\nUPDATE accounts\nSET balance = balance - 100\nWHERE id = 'A';\n\nUPDATE accounts\nSET balance = balance + 100\nWHERE id = 'B';\n\nCOMMIT;\n```\n\nIf something fails before `COMMIT`, the transaction can be rolled back.\n\nThe important idea is simple:\n\n> Either everything happens, or nothing happens.\n\n## 2. Consistency — Keep the Database Valid\n\nConsistency means a transaction should move the database from **one valid state to another valid state**.\n\nSuppose our system has a rule:\n\n```text\nbalance >= 0\n```\n\nIf Account A has only $50, transferring $100 should not leave us with:\n\n```text\nbalance = -50\n```\n\nThe transaction must respect the rules and constraints that define valid data.\n\nThese could include:\n\n- Primary keys\n- Foreign keys\n- Unique constraints\n- Check constraints\n- Application-level business rules\n\nOne important distinction I learned here is that **consistency doesn't magically understand your business**.\n\nThe database only knows about the rules you define.\n\nIf you don't define or enforce a rule somewhere, the database cannot protect it for you.\n\n## 3. Isolation — Transactions Shouldn't Step on Each Other\n\nThis was probably the most interesting part for me.\n\nDatabases don't normally process one transaction at a time.\n\nMany transactions can run concurrently.\n\nImagine two users trying to buy the **last item in stock**.\n\nBoth transactions read:\n\n```text\nstock = 1\n```\n\nTransaction A thinks:\n\n```text\nGreat, I can buy it.\n```\n\nTransaction B thinks the same thing.\n\nNow both try to update the stock.\n\nWithout proper isolation, concurrent transactions can interfere with each other and produce incorrect results.\n\nIsolation controls **how much one transaction can see or interfere with the work of another transaction**.\n\nThis is where concepts such as these start appearing:\n\n- Dirty Reads\n- Non-repeatable Reads\n- Phantom Reads\n- Lost Updates\n\nAnd this leads to isolation levels such as:\n\n```text\nRead Uncommitted\nRead Committed\nRepeatable Read\nSerializable\n```\n\nHigher isolation usually gives stronger correctness guarantees, but it can also reduce concurrency.\n\nSo isolation is partly about finding the right balance between:\n\n```text\nCorrectness \u003C------> Concurrency\n```\n\n## 4. Durability — Committed Means Committed\n\nSuppose a transaction completes successfully and the database tells us:\n\n```text\nCOMMIT successful\n```\n\nThen the server immediately loses power.\n\nWhat happens to our transaction?\n\nDurability means that once the database confirms a transaction has been committed, **that data should survive crashes and restarts**.\n\nDatabases achieve this using mechanisms such as transaction logs and Write-Ahead Logging (WAL).\n\nA simplified idea is:\n\n```text\nWrite the change to a durable log\n        ↓\nConfirm the transaction\n        ↓\nPersist\u002Fupdate the actual data pages\n```\n\nSo even if the machine crashes at an unfortunate moment, the database can use its log during recovery to reconstruct committed changes.\n\nThat's an important distinction:\n\n**COMMIT doesn't simply mean \"the value changed in memory.\"**\n\nIt means the database has reached a point where it can guarantee that the committed transaction won't disappear after a crash.\n\n## Putting It All Together\n\nGoing back to our $100 transfer:\n\n```text\nA → Atomicity\nBoth balance updates happen, or neither happens.\n\nC → Consistency\nThe transaction must leave the database in a valid state.\n\nI → Isolation\nOther concurrent transactions shouldn't corrupt the transfer.\n\nD → Durability\nOnce committed, the transfer survives a crash.\n```\n\nThe way I currently think about ACID is this:\n\n> ACID is not really about memorizing four definitions. It's about protecting transactions from four different categories of failure.\n\n**Atomicity** protects us from partial execution.\n\n**Consistency** protects us from invalid states.\n\n**Isolation** protects us from concurrency problems.\n\n**Durability** protects us from losing committed data.\n\nOnce I started thinking about ACID in terms of the problems each property is trying to prevent, the concept became much easier to understand.","https:\u002F\u002Feyyhyrdggmqxzmwnpaau.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fmedia\u002Fblog\u002F857988a8-032c-4a9b-b428-af789ca4d441.jpeg","2026-10-06T21:00:00.000Z","2026-10-07T13:34:28.505Z","2026-10-07T14:56:39.423Z",{"left":68,"top":68,"width":248,"height":248,"rotate":68,"vFlip":67,"hFlip":67,"body":373},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M12 20L12 4M6 10L12 4L18 10\"\u002F>",{"left":68,"top":68,"width":248,"height":248,"rotate":68,"vFlip":67,"hFlip":67,"body":375},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M2 9.1371C2 14 6.01943 16.5914 8.96173 18.9109C10 19.7294 11 20.5 12 20.5C13 20.5 14 19.7294 15.0383 18.9109C17.9806 16.5914 22 14 22 9.1371C22 4.27416 16.4998 0.825464 12 5.50063C7.50016 0.825464 2 4.27416 2 9.1371Z\"\u002F>",{"left":68,"top":68,"width":248,"height":248,"rotate":68,"vFlip":67,"hFlip":67,"body":377},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\u003Cpath d=\"M9 12C9 13.3807 7.88071 14.5 6.5 14.5C5.11929 14.5 4 13.3807 4 12C4 10.6193 5.11929 9.5 6.5 9.5C7.88071 9.5 9 10.6193 9 12Z\"\u002F>\u003Cpath stroke-linecap=\"round\" d=\"M14 6.5L9 10\"\u002F>\u003Cpath stroke-linecap=\"round\" d=\"M14 17.5L9 14\"\u002F>\u003Cpath d=\"M19 18.5C19 19.8807 17.8807 21 16.5 21C15.1193 21 14 19.8807 14 18.5C14 17.1193 15.1193 16 16.5 16C17.8807 16 19 17.1193 19 18.5Z\"\u002F>\u003Cpath d=\"M19 5.5C19 6.88071 17.8807 8 16.5 8C15.1193 8 14 6.88071 14 5.5C14 4.11929 15.1193 3 16.5 3C17.8807 3 19 4.11929 19 5.5Z\"\u002F>\u003C\u002Fg>"]