[{"data":1,"prerenderedAt":1255},["ShallowReactive",2],{"navigation":3,"blog":48,"\u002Fblog":61,"$f7Td39Vonkf02bgvz57NR3EcUtcG7bggq1tBSUZMiX14":1253},[4,23],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Usage","\u002Fdocs\u002Fgetting-started\u002Fusage","1.docs\u002F1.getting-started\u002F3.usage","i-lucide-sliders",false,{"title":24,"path":25,"stem":26,"children":27,"page":22},"Essentials","\u002Fdocs\u002Fessentials","1.docs\u002F2.essentials",[28,33,38,43],{"title":29,"path":30,"stem":31,"icon":32},"Markdown Syntax","\u002Fdocs\u002Fessentials\u002Fmarkdown-syntax","1.docs\u002F2.essentials\u002F1.markdown-syntax","i-lucide-heading-1",{"title":34,"path":35,"stem":36,"icon":37},"Code Blocks","\u002Fdocs\u002Fessentials\u002Fcode-blocks","1.docs\u002F2.essentials\u002F2.code-blocks","i-lucide-code-xml",{"title":39,"path":40,"stem":41,"icon":42},"Prose Components","\u002Fdocs\u002Fessentials\u002Fprose-components","1.docs\u002F2.essentials\u002F3.prose-components","i-lucide-component",{"title":44,"path":45,"stem":46,"icon":47},"Images and Embeds","\u002Fdocs\u002Fessentials\u002Fimages-embeds","1.docs\u002F2.essentials\u002F4.images-embeds","i-lucide-image",{"id":49,"title":50,"body":51,"description":52,"extension":53,"meta":54,"navigation":55,"path":57,"seo":58,"stem":59,"__hash__":60},"blog\u002F3.blog.yml","Blog",null,"Discover the latest insights, tutorials, and updates from our team. Stay informed about web development trends, best practices, and innovative solutions.","yml",{},{"icon":56},"i-lucide-newspaper","\u002Fblog",{"title":50,"description":52},"3.blog","xU5p5VdJkx0QeTWiWoE__dOAG_p2L7hLKHVurHf_RyQ",[62,684,1069],{"id":63,"title":64,"authors":65,"badge":71,"body":73,"date":673,"description":674,"extension":675,"image":676,"meta":678,"navigation":679,"path":680,"seo":681,"stem":682,"__hash__":683},"posts\u002F3.blog\u002F1.bluetooth-pos.md","How I Architected a Modern POS System Using Laravel, Inertia.js, React, Midtrans, and Bluetooth Printing",[66],{"name":67,"to":68,"avatar":69},"Adi Sulaksono","https:\u002F\u002Fwww.github.com\u002Fadislksn\u002F",{"src":70},"\u002Fimg\u002Fprofile.png",{"label":72},"Laravel, React, POS",{"type":74,"value":75,"toc":659},"minimark",[76,80,104,115,120,123,151,154,185,189,192,250,304,359,362,366,372,386,444,451,455,466,469,486,530,534,537,567,570,574,577,603,607,610,613,642,645],[77,78,79],"p",{},"Building a point-of-sale system sounds straightforward until you actually ship one. Cashiers need speed. Owners need reports. Payments must be reliable. Receipts have to print instantly often over Bluetooth, on hardware that was never designed for the web.",[77,81,82,83,87,88,91,92,95,96,99,100,103],{},"This is how I architected a modern POS stack using ",[84,85,86],"strong",{},"Laravel"," on the backend, ",[84,89,90],{},"Inertia.js"," with ",[84,93,94],{},"React"," on the frontend, ",[84,97,98],{},"Midtrans"," for payments, and ",[84,101,102],{},"Bluetooth ESC\u002FPOS"," printing for thermal receipts.",[77,105,106],{},[107,108],"img",{"alt":109,"className":110,"height":112,"src":113,"width":114},"Modern point-of-sale terminal ready for checkout",[111],"rounded-lg",400,"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1742240216264-f0aac25ef4ba?w=1200&h=400&fit=crop",1200,[116,117,119],"h2",{"id":118},"why-this-stack","Why This Stack?",[77,121,122],{},"Most POS products are either legacy desktop apps or over engineered SaaS platforms. I wanted something in the middle:",[124,125,126,133,139,145],"ul",{},[127,128,129,132],"li",{},[84,130,131],{},"Fast UI"," for daily cashier workflows",[127,134,135,138],{},[84,136,137],{},"Single codebase"," for web admin and in-store checkout",[127,140,141,144],{},[84,142,143],{},"Indonesia ready payments"," via Midtrans",[127,146,147,150],{},[84,148,149],{},"Hardware support"," for Bluetooth thermal printers without native apps",[77,152,153],{},"Laravel + Inertia.js + React hit that balance. Laravel handles auth, inventory, orders, and webhooks. Inertia bridges server and client without a separate REST API layer for every screen. React delivers the interactive POS cart, product search, and checkout flow.",[155,156,157,167,176],"pictures",{},[158,159,160],"div",{},[77,161,162],{},[107,163],{"alt":164,"className":165,"height":112,"src":166,"width":112},"Developer workspace with laptop and code on screen",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1498050108023-c5249f4df085?w=400&h=400&fit=crop",[158,168,169],{},[77,170,171],{},[107,172],{"alt":173,"className":174,"height":112,"src":175,"width":112},"Payment terminal on a retail checkout counter",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1750262727446-759032bf283f?w=400&h=400&fit=crop",[158,177,178],{},[77,179,180],{},[107,181],{"alt":182,"className":183,"height":112,"src":184,"width":112},"Contactless card payment at point of sale",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1750263160599-53c7974bc79d?w=400&h=400&fit=crop",[116,186,188],{"id":187},"system-architecture","System Architecture",[77,190,191],{},"At a high level, the system splits into four layers:",[193,194,195,225],"tabs",{},[158,196,199],{"icon":197,"label":198},"i-lucide-layers","Layers",[124,200,201,207,213,219],{},[127,202,203,206],{},[84,204,205],{},"Presentation"," React pages rendered through Inertia.js (POS screen, product catalog, order history)",[127,208,209,212],{},[84,210,211],{},"Application"," Laravel controllers, form requests, policies, and service classes",[127,214,215,218],{},[84,216,217],{},"Domain"," Orders, line items, inventory movements, payment records, and receipt logs",[127,220,221,224],{},[84,222,223],{},"Integration"," Midtrans Snap\u002FCore API, Web Bluetooth ESC\u002FPOS, and optional queue workers",[158,226,229],{"icon":227,"label":228},"i-lucide-git-branch","Data Flow",[230,231,232,235,238,241,244,247],"ol",{},[127,233,234],{},"Cashier adds items to cart in React",[127,236,237],{},"Inertia posts checkout payload to Laravel",[127,239,240],{},"Laravel creates order + reserves stock inside a DB transaction",[127,242,243],{},"Midtrans payment token\u002Fcharge is generated when needed",[127,245,246],{},"Webhook confirms payment and marks order as paid",[127,248,249],{},"Frontend receives receipt payload and sends ESC\u002FPOS bytes to Bluetooth printer",[251,252,253,258,261,264,290,293],"picture-and-text",{},[254,255,257],"h3",{"id":256},"backend-laravel-as-the-source-of-truth","Backend: Laravel as the Source of Truth",[77,259,260],{},"Laravel owns every business rule. Products, categories, stock levels, discounts, tax, and user roles all live in the backend not in client-side state that can drift.",[77,262,263],{},"Key design choices:",[124,265,266,272,278,284],{},[127,267,268,271],{},[84,269,270],{},"Service classes"," for checkout, stock deduction, and payment reconciliation",[127,273,274,277],{},[84,275,276],{},"Database transactions"," so an order never commits without consistent inventory",[127,279,280,283],{},[84,281,282],{},"Policies"," to separate cashier, supervisor can, and owner permissions",[127,285,286,289],{},[84,287,288],{},"Webhook endpoint"," for Midtrans with idempotent payment status updates",[77,291,292],{},"The POS React app stays thin: it renders UI and sends validated payloads. Laravel decides what is allowed.",[294,295,297],"template",{"v-slot:image":296},"",[77,298,299],{},[107,300],{"alt":301,"className":302,"height":112,"src":303,"width":112},"Dashboard and analytics on a laptop screen",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1460925895917-afdab827c52f?w=400&h=400&fit=crop",[251,305,307,311,314,328,350],{":reverse":306},"true",[254,308,310],{"id":309},"frontend-inertiajs-react-for-the-pos-experience","Frontend: Inertia.js + React for the POS Experience",[77,312,313],{},"Inertia.js removed the need to build and maintain a separate REST API for every admin screen. Laravel returns page props; React renders them. For the POS floor, that meant:",[124,315,316,319,322,325],{},[127,317,318],{},"Instant product search and barcode friendly input",[127,320,321],{},"Cart state with quantity edits, notes, and discounts",[127,323,324],{},"Optimistic UI where safe, with server confirmation on checkout",[127,326,327],{},"Shared layouts for admin vs. cashier views",[77,329,330,331,335,336,335,339,335,342,345,346,349],{},"React components are organized by domain: ",[332,333,334],"code",{},"Cart",", ",[332,337,338],{},"ProductGrid",[332,340,341],{},"PaymentModal",[332,343,344],{},"ReceiptPreview",", and ",[332,347,348],{},"PrinterStatus",". Shared hooks handle keyboard shortcuts critical when cashiers process dozens of orders per hour.",[294,351,352],{"v-slot:image":296},[77,353,354],{},[107,355],{"alt":356,"className":357,"height":112,"src":358,"width":112},"Tablet-based point of sale on a wooden counter",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1762195954150-5db56b1d3a19?w=400&h=400&fit=crop",[77,360,361],{},"Decimal precision for money is handled server-side; the UI only displays formatted values from Laravel to avoid floating point bugs.",[116,363,365],{"id":364},"midtrans-payment-integration","Midtrans Payment Integration",[77,367,368,369,371],{},"For Indonesian merchants, ",[84,370,98],{}," is the practical choice. I integrated both:",[124,373,374,380],{},[127,375,376,379],{},[84,377,378],{},"Snap"," for hosted checkout flows when customers pay on a separate screen or link",[127,381,382,385],{},[84,383,384],{},"Core API"," for in-store scenarios where the POS triggers charge\u002Fstatus directly",[193,387,388,419],{},[158,389,392],{"icon":390,"label":391},"i-lucide-credit-card","Checkout Flow",[124,393,394,400,403,406,412],{},[127,395,396,397],{},"Create order in Laravel with status ",[332,398,399],{},"pending",[127,401,402],{},"Request Midtrans transaction token from backend (never expose server keys to React)",[127,404,405],{},"Open Snap modal or charge via Core API depending on payment method",[127,407,408,409],{},"Midtrans webhook hits ",[332,410,411],{},"\u002Fwebhooks\u002Fmidtrans",[127,413,414,415,418],{},"Laravel verifies signature, updates order to ",[332,416,417],{},"paid",", and emits receipt-ready event",[158,420,423],{"icon":421,"label":422},"i-lucide-shield-check","Reliability Rules",[124,424,425,435,438,441],{},[127,426,427,428,335,431,434],{},"Store ",[332,429,430],{},"order_id",[332,432,433],{},"transaction_id",", and raw webhook payload for audit",[127,436,437],{},"Treat webhooks as idempotent duplicate notifications must not double charge stock",[127,439,440],{},"Fail gracefully when payment expires; release reserved inventory",[127,442,443],{},"Log every state transition for end of day reconciliation",[77,445,446],{},[107,447],{"alt":448,"className":449,"height":112,"src":450,"width":114},"Payment terminal with card inserted at checkout",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1775750276384-123de61b4903?w=1200&h=400&fit=crop",[116,452,454],{"id":453},"bluetooth-thermal-printing-escpos","Bluetooth Thermal Printing (ESC\u002FPOS)",[77,456,457,458,461,462,465],{},"Printing was the hardest part of the stack. Most cheap thermal printers speak ",[84,459,460],{},"ESC\u002FPOS"," over Bluetooth Serial Port Profile (SPP). Browsers do not expose classic Bluetooth the way native apps do so I used the ",[84,463,464],{},"Web Bluetooth API"," where supported.",[77,467,468],{},"The flow:",[230,470,471,474,477,483],{},[127,472,473],{},"Laravel returns a normalized receipt DTO (store name, items, totals, payment method, timestamp)",[127,475,476],{},"A client-side encoder converts that DTO into ESC\u002FPOS byte commands",[127,478,479,482],{},[332,480,481],{},"navigator.bluetooth.requestDevice()"," pairs with the printer",[127,484,485],{},"Bytes stream to the printer characteristic; cashier gets paper in seconds",[193,487,488,512],{},[158,489,492],{"icon":490,"label":491},"i-lucide-printer","Receipt Contents",[124,493,494,497,500,503,506,509],{},[127,495,496],{},"Store header + address",[127,498,499],{},"Order number and cashier name",[127,501,502],{},"Line items with qty × price",[127,504,505],{},"Subtotal, discount, tax, grand total",[127,507,508],{},"Payment method (cash, QRIS, card via Midtrans)",[127,510,511],{},"Footer message and optional QR code",[158,513,516],{"icon":514,"label":515},"i-lucide-alert-triangle","Production Gotchas",[124,517,518,521,524,527],{},[127,519,520],{},"Web Bluetooth works best in Chromium browsers; always provide PDF\u002Femail fallback",[127,522,523],{},"Printer paper width (58mm vs 80mm) changes column layout encode both profiles",[127,525,526],{},"Reconnect logic matters; Bluetooth drops during busy hours",[127,528,529],{},"Test with real hardware early emulator bytes ≠ real printer behavior",[116,531,533],{"id":532},"database-inventory-model","Database & Inventory Model",[77,535,536],{},"A POS lives or dies on inventory accuracy. I modeled:",[124,538,539,545,555,561],{},[127,540,541,544],{},[84,542,543],{},"Products"," with SKU, price tiers, and active\u002Farchived state",[127,546,547,550,551,554],{},[84,548,549],{},"Stock movements"," as ledger entries (sale, restock, adjustment) instead of mutating a single ",[332,552,553],{},"qty"," column blindly",[127,556,557,560],{},[84,558,559],{},"Orders"," with polymorphic payment status and soft deletes for audit trails",[127,562,563,566],{},[84,564,565],{},"Shifts"," (optional) to tie cashiers to sessions and simplify daily closing reports",[77,568,569],{},"Every sale creates an order, order items, and outbound stock movements in one transaction. Refunds create inverse movements rather than deleting history.",[116,571,573],{"id":572},"what-i-would-do-differently","What I Would Do Differently",[77,575,576],{},"Shipping this taught me a few lessons worth sharing:",[124,578,579,585,591,597],{},[127,580,581,584],{},[84,582,583],{},"Start with printer compatibility tests"," before polishing the React UI",[127,586,587,590],{},[84,588,589],{},"Keep the POS offline tolerant"," cache product catalog locally for search when the network flickers",[127,592,593,596],{},[84,594,595],{},"Use queues"," for heavy report generation instead of blocking checkout",[127,598,599,602],{},[84,600,601],{},"Document Midtrans sandbox vs production"," config clearly; webhook URLs differ per environment",[116,604,606],{"id":605},"closing-thoughts","Closing Thoughts",[77,608,609],{},"A modern POS is not one feature it is orchestration. Laravel keeps business logic honest. Inertia.js and React make the cashier experience feel instant. Midtrans handles payments in a market specific way. Bluetooth printing closes the loop with a physical receipt customers expect.",[77,611,612],{},"If you are building something similar, optimize for the cashier first. Every extra click at checkout multiplies across thousands of transactions. Everything else reports, admin panels, integrations can iterate after the core loop is fast and reliable.",[155,614,615,624,633],{},[158,616,617],{},[77,618,619],{},[107,620],{"alt":621,"className":622,"height":112,"src":623,"width":112},"Card reader payment in a retail environment",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1556742049-0cfed4f6a45d?w=400&h=400&fit=crop",[158,625,626],{},[77,627,628],{},[107,629],{"alt":630,"className":631,"height":112,"src":632,"width":112},"POS system on counter with touchscreen interface",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1742240216264-f0aac25ef4ba?w=400&h=400&fit=crop",[158,634,635],{},[77,636,637],{},[107,638],{"alt":639,"className":640,"height":112,"src":641,"width":112},"Retail checkout with payment hardware",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1775750276384-123de61b4903?w=400&h=400&fit=crop",[643,644],"hr",{},[77,646,647],{},[648,649,650,651,658],"em",{},"Images from ",[652,653,657],"a",{"href":654,"rel":655},"https:\u002F\u002Funsplash.com",[656],"nofollow","Unsplash"," — free to use under the Unsplash License.",{"title":296,"searchDepth":660,"depth":660,"links":661},2,[662,663,668,669,670,671,672],{"id":118,"depth":660,"text":119},{"id":187,"depth":660,"text":188,"children":664},[665,667],{"id":256,"depth":666,"text":257},3,{"id":309,"depth":666,"text":310},{"id":364,"depth":660,"text":365},{"id":453,"depth":660,"text":454},{"id":532,"depth":660,"text":533},{"id":572,"depth":660,"text":573},{"id":605,"depth":660,"text":606},"2026-06-18","A full-stack walkthrough of building a production-ready point-of-sale from Laravel APIs and Inertia.js pages to Midtrans payments and ESC\u002FPOS Bluetooth receipt printing.","md",{"src":677},"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1742240216264-f0aac25ef4ba?w=640&h=360&fit=crop",{},true,"\u002Fblog\u002Fbluetooth-pos",{"title":64,"description":674},"3.blog\u002F1.bluetooth-pos","TjnnH0cfZJAgZibHeaO69F3mDlMYcNdjQtrMTw6uXRM",{"id":685,"title":686,"authors":687,"badge":690,"body":692,"date":673,"description":1061,"extension":675,"image":1062,"meta":1064,"navigation":679,"path":1065,"seo":1066,"stem":1067,"__hash__":1068},"posts\u002F3.blog\u002F2.dev-to-manager.md","10 Things I Had to Unlearn When Moving from Developer to Project Manager",[688],{"name":67,"to":68,"avatar":689},{"src":70},{"label":691},"Leadership, Career",{"type":74,"value":693,"toc":1044},[694,701,704,711,715,718,721,725,728,749,753,756,767,771,774,781,810,814,817,827,831,834,841,866,870,873,880,884,887,890,934,938,945,948,955,959,962,988,990,997,1000,1006,1035,1037],[77,695,696,697,700],{},"The hardest part of becoming a project manager was not learning Jira, writing status reports, or running standups. It was ",[84,698,699],{},"unlearning"," habits that made me a good developer, but actively worked against me as a leader.",[77,702,703],{},"When I moved from shipping features to shipping outcomes through other people, these ten beliefs had to go.",[77,705,706],{},[107,707],{"alt":708,"className":709,"height":112,"src":710,"width":114},"Team collaborating around laptops in a modern workspace",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1522071820081-009f0129c71c?w=1200&h=400&fit=crop",[116,712,714],{"id":713},"_1-if-i-want-it-done-right-i-should-do-it-myself","1. \"If I want it done right, I should do it myself\"",[77,716,717],{},"As a developer, this mindset saved deadlines. As a PM, it creates bottlenecks, burns you out, and signals distrust to your team.",[77,719,720],{},"Your job is not to be the fastest implementer in the room. It is to remove blockers, clarify priorities, and make sure the right person owns the work. Sometimes that means accepting an 85% solution that ships on time over a 100% solution only you could build three weeks late.",[116,722,724],{"id":723},"_2-more-hours-equals-more-progress","2. \"More hours equals more progress\"",[77,726,727],{},"Developers often equate deep focus time with output. Management runs on a different clock: alignment, communication, and decision latency.",[251,729,730,734,737,740],{},[254,731,733],{"id":732},"the-shift","The shift",[77,735,736],{},"I stopped measuring my day by lines of code or tickets closed. I started measuring whether the team knew what to do next, whether stakeholders had fewer surprises, and whether blockers died within 24 hours.",[77,738,739],{},"Long meetings feel unproductive until you realize one misaligned hour costs the team ten rework hours.",[294,741,742],{"v-slot:image":296},[77,743,744],{},[107,745],{"alt":746,"className":747,"height":112,"src":748,"width":112},"Colleagues discussing a project at a shared desk",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1600880292203-757bb62b4baf?w=400&h=400&fit=crop",[116,750,752],{"id":751},"_3-silence-means-everything-is-fine","3. \"Silence means everything is fine\"",[77,754,755],{},"In code, no errors often means success. In teams, silence usually means confusion, hesitation, or someone swallowing a concern until it becomes a production incident.",[77,757,758,759,762,763,766],{},"I had to unlearn waiting for problems to surface in standup and start asking direct questions: ",[648,760,761],{},"What is at risk? What are we assuming? Who is blocked?"," Good PMs listen for what is ",[84,764,765],{},"not"," being said.",[116,768,770],{"id":769},"_4-perfect-plans-prevent-failure","4. \"Perfect plans prevent failure\"",[77,772,773],{},"Developers love comprehensive specs. Project managers live in uncertainty. Scope shifts. Vendors slip. Priorities change after an executive email.",[77,775,776,777,780],{},"I unlearned the fantasy of the perfect upfront plan and embraced ",[84,778,779],{},"rolling planning"," enough detail for the next sprint or milestone, with explicit assumptions and a clear re-plan trigger when reality diverges.",[155,782,783,792,801],{},[158,784,785],{},[77,786,787],{},[107,788],{"alt":789,"className":790,"height":112,"src":791,"width":112},"Sticky notes and planning on a glass board",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1552664730-d307ca884978?w=400&h=400&fit=crop",[158,793,794],{},[77,795,796],{},[107,797],{"alt":798,"className":799,"height":112,"src":800,"width":112},"Team reviewing tasks on a kanban board",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1611224923853-80b023f02d71?w=400&h=400&fit=crop",[158,802,803],{},[77,804,805],{},[107,806],{"alt":807,"className":808,"height":112,"src":809,"width":112},"Project roadmap sketched on a whiteboard",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1531403009284-440f080d1e12?w=400&h=400&fit=crop",[116,811,813],{"id":812},"_5-technical-correctness-wins-every-argument","5. \"Technical correctness wins every argument\"",[77,815,816],{},"Being the smartest person about the stack feels good. It does not always move the project forward.",[77,818,819,820,823,824],{},"Stakeholders care about cost, risk, timeline, and user impact, not whether you chose the more elegant abstraction. I learned to translate technical trade-offs into business language: ",[648,821,822],{},"\"This adds two weeks but cuts outage risk.\""," ",[648,825,826],{},"\"We can ship Friday if we defer analytics to phase two.\"",[116,828,830],{"id":829},"_6-saying-yes-keeps-everyone-happy","6. \"Saying yes keeps everyone happy\"",[77,832,833],{},"Developers want to be helpful. PMs who say yes to everything guarantee failure quietly.",[77,835,836,837,840],{},"I had to unlearn people pleasing and get comfortable with ",[84,838,839],{},"structured no's"," no with a reason, no with an alternative, no with a timeline for when yes becomes possible. Protecting the team's capacity is part of the job, not a personality flaw.",[251,842,843,847,850,857],{":reverse":306},[254,844,846],{"id":845},"_7-my-value-is-my-output","7. \"My value is my output\"",[77,848,849],{},"Your calendar will fill with conversations that produce nothing visible in Git. That does not mean the day was wasted.",[77,851,852,853,856],{},"Facilitating a decision, resolving a cross-team dependency, or rewriting a vague requirement so engineering does not build the wrong thing that ",[648,854,855],{},"is"," the output now.",[294,858,859],{"v-slot:image":296},[77,860,861],{},[107,862],{"alt":863,"className":864,"height":112,"src":865,"width":112},"Manager leading a team meeting in a conference room",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1517245386807-bb43fd082920?w=400&h=400&fit=crop",[116,867,869],{"id":868},"_8-conflict-is-a-sign-something-is-broken","8. \"Conflict is a sign something is broken\"",[77,871,872],{},"In engineering, merge conflicts get resolved and you move on. In teams, healthy conflict is often the first sign people care enough to push back.",[77,874,875,876,879],{},"I unlearned treating disagreement as dysfunction. The goal is not zero conflict it is ",[84,877,878],{},"fast, respectful resolution"," with a documented decision and a committed next step.",[116,881,883],{"id":882},"_9-documentation-is-overhead","9. \"Documentation is overhead\"",[77,885,886],{},"As a developer, docs sometimes felt like a tax on shipping. As a PM, docs are how you scale yourself.",[77,888,889],{},"Decision logs, RACI clarity, meeting notes with action owners, and written scope boundaries prevent the same questions from eating the same hours every week. If it is not written down, it will be relitigated.",[193,891,892,913],{},[158,893,896],{"icon":894,"label":895},"i-lucide-file-text","Worth Writing Down",[124,897,898,901,904,907,910],{},[127,899,900],{},"Scope in \u002F scope out for each milestone",[127,902,903],{},"Decisions with date, owner, and rationale",[127,905,906],{},"Risk register with mitigation owners",[127,908,909],{},"Dependencies on other teams or vendors",[127,911,912],{},"Definition of done agreed with engineering",[158,914,917],{"icon":915,"label":916},"i-lucide-message-circle","Worth Saying Out Loud",[124,918,919,922,928,931],{},[127,920,921],{},"What changed since last week and why",[127,923,924,925,927],{},"What we are ",[84,926,765],{}," doing this sprint",[127,929,930],{},"Who owns the final call when opinions split",[127,932,933],{},"When the team should escalate vs. decide locally",[116,935,937],{"id":936},"_10-i-need-to-have-all-the-answers","10. \"I need to have all the answers\"",[77,939,940,941,944],{},"Developers are rewarded for solving problems. PMs are rewarded for ",[84,942,943],{},"framing problems"," so the right people can solve them.",[77,946,947],{},"I unlearned the pressure to instantly know the answer in every meeting. \"I do not know yet I will confirm by Thursday and update the channel\" is a valid, professional response. Credibility comes from follow through, not from bluffing.",[77,949,950],{},[107,951],{"alt":952,"className":953,"height":112,"src":954,"width":114},"Professional team planning session with notebooks and laptops",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1556767547-0a0255a3b90a?w=1200&h=400&fit=crop",[116,956,958],{"id":957},"what-actually-helped-me-transition","What Actually Helped Me Transition",[77,960,961],{},"Unlearning is only half the story. These habits accelerated the shift:",[124,963,964,970,976,982],{},[127,965,966,969],{},[84,967,968],{},"Stay technically literate"," not to code every feature, but to spot unrealistic estimates and respect engineering constraints",[127,971,972,975],{},[84,973,974],{},"Default to over communication early"," in a project; you can always reduce noise later",[127,977,978,981],{},[84,979,980],{},"Protect maker time"," for your team the way you once protected your own",[127,983,984,987],{},[84,985,986],{},"Ask engineers what they need from you"," the answer is rarely \"more meetings\"",[116,989,606],{"id":605},[77,991,992,993,996],{},"Moving from developer to project manager is not a promotion away from craft. It is a promotion into ",[84,994,995],{},"multiplier work"," your leverage comes through people, clarity, and judgment.",[77,998,999],{},"The best PMs I know still think like builders. They just unlearned the instinct to build everything alone.",[77,1001,1002,1003,1005],{},"If you are making this transition now: be patient with yourself. You are not becoming less technical. You are learning when ",[84,1004,765],{}," to be the one typing.",[155,1007,1008,1017,1026],{},[158,1009,1010],{},[77,1011,1012],{},[107,1013],{"alt":1014,"className":1015,"height":112,"src":1016,"width":112},"Handshake between colleagues after a successful meeting",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1521791136064-7986c2920216?w=400&h=400&fit=crop",[158,1018,1019],{},[77,1020,1021],{},[107,1022],{"alt":1023,"className":1024,"height":112,"src":1025,"width":112},"Team celebrating progress together in the office",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1528605248644-14dd04022da1?w=400&h=400&fit=crop",[158,1027,1028],{},[77,1029,1030],{},[107,1031],{"alt":1032,"className":1033,"height":112,"src":1034,"width":112},"Focused work session with laptop and coffee",[111],"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1497366216548-37526070297c?w=400&h=400&fit=crop",[643,1036],{},[77,1038,1039],{},[648,1040,650,1041,658],{},[652,1042,657],{"href":654,"rel":1043},[656],{"title":296,"searchDepth":660,"depth":660,"links":1045},[1046,1047,1050,1051,1052,1053,1056,1057,1058,1059,1060],{"id":713,"depth":660,"text":714},{"id":723,"depth":660,"text":724,"children":1048},[1049],{"id":732,"depth":666,"text":733},{"id":751,"depth":660,"text":752},{"id":769,"depth":660,"text":770},{"id":812,"depth":660,"text":813},{"id":829,"depth":660,"text":830,"children":1054},[1055],{"id":845,"depth":666,"text":846},{"id":868,"depth":660,"text":869},{"id":882,"depth":660,"text":883},{"id":936,"depth":660,"text":937},{"id":957,"depth":660,"text":958},{"id":605,"depth":660,"text":606},"The mental shifts that matter most when you stop writing code full-time and start leading people, timelines, and trade-offs instead.",{"src":1063},"https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1522071820081-009f0129c71c?w=640&h=360&fit=crop",{},"\u002Fblog\u002Fdev-to-manager",{"title":686,"description":1061},"3.blog\u002F2.dev-to-manager","InVLTdj5gH3idKf3Twt6uDmkYzlRZnnjSesJh8cNndc",{"id":1070,"title":1071,"authors":1072,"badge":1078,"body":1080,"date":1244,"description":1245,"extension":675,"image":1246,"meta":1248,"navigation":679,"path":1249,"seo":1250,"stem":1251,"__hash__":1252},"posts\u002F3.blog\u002F3.cryptocurrencies.md","The Rise of Cryptocurrencies",[1073],{"name":1074,"to":1075,"avatar":1076},"Emily pasek","https:\u002F\u002Ftwitter.com\u002Fbenjamincanac",{"src":1077},"https:\u002F\u002Fi.pravatar.cc\u002F128?u=5",{"label":1079},"Economy, Information Technology",{"type":74,"value":1081,"toc":1237},[1082,1085,1094,1098,1101,1104,1108,1111,1137,1141,1144,1170,1174,1177,1230,1234],[77,1083,1084],{},"In recent years, cryptocurrencies have emerged as a disruptive force in the world of finance and economics. Born out of the decentralized ethos of blockchain technology, cryptocurrencies have challenged traditional financial systems, offering new avenues for investment, transactions, and economic empowerment. This article explores the impact of cryptocurrencies on the economy and finance, examining their evolution, opportunities, and challenges.",[77,1086,1087],{},[107,1088],{"alt":1089,"className":1090,"height":1091,"src":1092,"width":1093},"computer",[111],600,"https:\u002F\u002Fpicsum.photos\u002Fid\u002F3\u002F1000\u002F600",1000,[116,1095,1097],{"id":1096},"the-evolution-of-cryptocurrencies","The Evolution of Cryptocurrencies",[77,1099,1100],{},"Bitcoin, introduced in 2009 by the pseudonymous Satoshi Nakamoto, marked the birth of cryptocurrencies. Initially met with skepticism, Bitcoin gradually gained traction, attracting attention from investors and technologists alike. Its underlying blockchain technology, a distributed ledger system, offered transparency, security, and immutability, laying the foundation for a new financial paradigm.",[77,1102,1103],{},"Since then, thousands of cryptocurrencies, including Ethereum, Ripple, and Litecoin, have proliferated, each with its unique features and use cases. Ethereum introduced smart contracts, enabling programmable transactions, while Ripple focused on facilitating cross-border payments. These diverse offerings have expanded the scope of cryptocurrencies, fueling innovation and experimentation in the financial sector.",[116,1105,1107],{"id":1106},"opportunities-in-cryptocurrencies","📈 Opportunities in Cryptocurrencies",[77,1109,1110],{},"Cryptocurrencies present numerous opportunities for individuals, businesses, and economies:",[124,1112,1113,1119,1125,1131],{},[127,1114,1115,1118],{},[84,1116,1117],{},"Financial Inclusion:"," Cryptocurrencies offer financial services to the unbanked and underbanked populations, bypassing traditional banking infrastructure and reducing transaction costs.",[127,1120,1121,1124],{},[84,1122,1123],{},"Decentralized Finance (DeFi):"," DeFi platforms leverage blockchain technology to provide decentralized alternatives to traditional financial services, including lending, borrowing, and trading, without intermediaries.",[127,1126,1127,1130],{},[84,1128,1129],{},"Investment Diversification:"," Cryptocurrencies serve as a hedge against traditional assets, providing diversification benefits and offering exposure to a nascent asset class with high growth potential.",[127,1132,1133,1136],{},[84,1134,1135],{},"Technological Innovation:"," The underlying blockchain technology of cryptocurrencies has applications beyond finance, including supply chain management, healthcare, and voting systems, driving innovation across industries.",[116,1138,1140],{"id":1139},"challenges-and-risks","📉 Challenges and Risks",[77,1142,1143],{},"Despite their potential, cryptocurrencies also face challenges and risks that warrant attention:",[124,1145,1146,1152,1158,1164],{},[127,1147,1148,1151],{},[84,1149,1150],{},"Volatility:"," Cryptocurrency markets are characterized by high volatility, subject to speculative trading, market manipulation, and sudden price fluctuations, posing risks to investors and stability.",[127,1153,1154,1157],{},[84,1155,1156],{},"Regulatory Uncertainty:"," Governments and regulatory bodies worldwide are grappling with the regulation of cryptocurrencies, raising concerns about legal compliance, taxation, and investor protection.",[127,1159,1160,1163],{},[84,1161,1162],{},"Security Concerns:"," Cryptocurrency exchanges and wallets are vulnerable to cyber attacks, theft, and fraud, necessitating robust security measures and risk management practices.",[127,1165,1166,1169],{},[84,1167,1168],{},"Environmental Impact:"," The energy-intensive mining process of cryptocurrencies, particularly Bitcoin, raises environmental concerns due to its carbon footprint and energy consumption.",[116,1171,1173],{"id":1172},"here-are-the-most-well-known-cryptocurrencies","Here are the most well-known cryptocurrencies",[77,1175,1176],{},"These cryptocurrencies are among the most recognized and widely used in the cryptocurrency ecosystem, each with its unique features and use cases.",[1178,1179,1180,1190,1198,1206,1214,1222],"card-group",{},[1181,1182,1187],"card",{"icon":1183,"target":1184,"title":1185,"to":1186},"i-simple-icons-bitcoin","_blank","Bitcoin (BTC)","https:\u002F\u002Fbitcoin.org\u002F",[77,1188,1189],{},"The first and most famous cryptocurrency, often considered a digital store of value and widely used as a medium of exchange.",[1181,1191,1195],{"icon":1192,"target":1184,"title":1193,"to":1194},"i-simple-icons-ethereum","Ethereum (ETH)","https:\u002F\u002Fethereum.org",[77,1196,1197],{},"A blockchain platform enabling developers to create smart contracts and decentralized applications (DApps).",[1181,1199,1203],{"icon":1200,"target":1184,"title":1201,"to":1202},"i-simple-icons-ripple","Ripple (XRP)","https:\u002F\u002Fripple.com\u002F",[77,1204,1205],{},"Focused on providing fast and inexpensive global payment solutions, especially for interbank transactions and cross-border payments.",[1181,1207,1211],{"icon":1208,"target":1184,"title":1209,"to":1210},"i-simple-icons-litecoin","Litecoin (LTC)","https:\u002F\u002Flitecoin.com\u002F\u002F",[77,1212,1213],{},"Known for faster transaction times and a more decentralized approach compared to Bitcoin.",[1181,1215,1219],{"icon":1216,"target":1184,"title":1217,"to":1218},"i-simple-icons-bitcoincash","Bitcoin Cash (BCH)","https:\u002F\u002Fbitcoincash.org",[77,1220,1221],{},"A fork of Bitcoin aimed at improving scalability and transaction processing capabilities.",[1181,1223,1227],{"icon":1224,"target":1184,"title":1225,"to":1226},"i-simple-icons-cardano","Cardano (ADA)","https:\u002F\u002Fcardano.org\u002F",[77,1228,1229],{},"A blockchain platform designed for enhanced security and scalability, supporting smart contract and DApp development.",[116,1231,1233],{"id":1232},"conclusion","Conclusion",[77,1235,1236],{},"Cryptocurrencies have emerged as a transformative force in the economy and finance, offering opportunities for innovation, inclusion, and investment. However, their adoption and integration into mainstream financial systems require addressing regulatory, security, and scalability challenges. As cryptocurrencies continue to evolve, their impact on the global economy will be shaped by technological advancements, regulatory developments, and market dynamics, paving the way for a decentralized and digitized financial future.",{"title":296,"searchDepth":660,"depth":660,"links":1238},[1239,1240,1241,1242,1243],{"id":1096,"depth":660,"text":1097},{"id":1106,"depth":660,"text":1107},{"id":1139,"depth":660,"text":1140},{"id":1172,"depth":660,"text":1173},{"id":1232,"depth":660,"text":1233},"2024-02-01","Transforming Finance and Economy",{"src":1247},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F1048\u002F640\u002F360",{},"\u002Fblog\u002Fcryptocurrencies",{"title":1071,"description":1245},"3.blog\u002F3.cryptocurrencies","z0SigD7SYbvLkpWw-Humx_2vI-TgyvLiawoA98J78YQ",{"url":1254},"https:\u002F\u002Fadislksn.web.id",1781800911079]