[{"data":1,"prerenderedAt":137},["ShallowReactive",2],{"work-n-hub":3,"work-siblings-n-hub":99},{"id":4,"title":5,"accent":6,"body":7,"completedAt":80,"cover":81,"coverAlt":82,"description":13,"extension":83,"external":80,"liveUrl":80,"meta":84,"navigation":85,"order":86,"path":87,"role":88,"seo":89,"stack":90,"status":94,"stem":95,"summary":96,"year":97,"__hash__":98},"work\u002Fwork\u002Fn-hub.md","N Brand Portal","#1d4ed8",{"type":8,"value":9,"toc":72},"minimark",[10,14,19,22,41,45,48,54,57,65,69],[11,12,13],"p",{},"N Brand Portal is the asset library I built for my own project work, once the same question came up often\nenough to notice: which logo file is the current one. Every team answers it the same wrong way at\nfirst, by asking in chat and waiting for whoever exported it last.",[15,16,18],"h2",{"id":17},"the-problem-underneath-the-brief","The problem underneath the brief",[11,20,21],{},"Brand assets scatter by default. A logo gets exported once, lives on someone's desktop, and gets\nre-exported slightly differently the next time it is needed because the original is nowhere\nfindable. Color values get retyped by hand into a new file and drift a shade at a time. The fix is\nnot a better naming convention, it is removing the situation a naming convention was trying to\npatch: there has to be exactly one place that is unambiguously current.",[23,24,25,31,36],"metric-row",{},[26,27],"metric",{"label":28,"note":29,"value":30},"Place assets live","Replaces a shared drive, a Slack thread, and whoever exported the file last.","1",[26,32],{"label":33,"note":34,"value":35},"Formats per asset","SVG, PNG, and a print ready PDF, generated from the same source file rather than re-exported by hand.","3",[26,37],{"label":38,"note":39,"value":40},"Version numbers in filenames","The portal always serves current, so nothing is named final-v3-actually-final.svg.","0",[15,42,44],{"id":43},"how-it-is-built","How it is built",[11,46,47],{},"Next.js on the front end, assets stored in blob storage and indexed by metadata rather than folder\nstructure, so a search for a color name or a logo variant returns the same result regardless of\nwho uploaded it or when. Every asset is generated in its three formats at upload time instead of\non request, which keeps the portal fast and keeps a designer from ever exporting a PDF by hand\nagain.",[49,50],"shot",{"alt":51,"caption":52,"src":53},"The asset library grid, showing logo variants beside a row of brand color swatches with their hex values.","Search and filter sit above the grid, because a small library still gets slow to scan by eye once it holds every past variant.","\u002Fwork\u002Fn-hub\u002Fshot-library.png",[11,55,56],{},"There is no approval workflow. A small team does not need one, and adding one would slow down the\nexact task, grabbing the current logo, that the portal exists to speed up.",[58,59,62],"callout",{"title":60,"tone":61},"The part worth repeating","accent",[11,63,64],{},"A brand portal earns its keep by being the place nobody has to ask about, not by being the place\nthat reviews what goes into it. Governance and speed trade against each other, and a small team\nshould spend that trade on speed.",[15,66,68],{"id":67},"what-i-would-keep","What I would keep",[11,70,71],{},"Generating every format once at upload rather than leaving it to whoever needs the asset next.\nThe portal being fast to search matters less than it never producing a slightly wrong export\nagain.",{"title":73,"searchDepth":74,"depth":75,"links":76},"",2,3,[77,78,79],{"id":17,"depth":74,"text":18},{"id":43,"depth":74,"text":44},{"id":67,"depth":74,"text":68},null,"\u002Fwork\u002Fn-hub\u002Fcover.png","The N Brand Portal asset library, showing a searchable grid of logo files and brand color swatches.","md",{},true,6,"\u002Fwork\u002Fn-hub","Design and build, end to end",{"title":5,"description":13},[91,92,93],"Next.js","React","Tailwind CSS","ongoing","work\u002Fn-hub","An internal brand portal holding the logos, color tokens, and templates a small team actually needs, so the approved asset stops living in an eight month old Slack thread.",2026,"TxrXx26GwrLmXSWMyygtGf6iWbmtUx6cf0aW5TEOqo4",[100,104,108,112,116,120,121,125,129,133],{"path":101,"title":102,"summary":103},"\u002Fwork\u002Fwayta-peru","Wayta Perú","A bilingual travel operator site where the marketing page, the blog, and the studio the client edits in are one deployment.",{"path":105,"title":106,"summary":107},"\u002Fwork\u002Fpersonae","Personae","A persona library built on IBM Carbon, where every profile links out to its research and every reader can flag a claim that no longer holds.",{"path":109,"title":110,"summary":111},"\u002Fwork\u002Farsonistai","ArsonistAI","An AI design consultancy with two audiences on one homepage, enterprises hiring for AI augmented product work, and individual designers buying tools off the shelf.",{"path":113,"title":114,"summary":115},"\u002Fwork\u002Fhcit","HCIT","A five vertical AI and infrastructure integrator whose site had to make enterprise grade credibility legible without turning into an alphabet soup of sub brands.",{"path":117,"title":118,"summary":119},"\u002Fwork\u002Flynne","Lynne","A lead capture first booking site for a solo telehealth counseling practice, sized to get one action in front of a visitor rather than a full site's worth of pages.",{"path":87,"title":5,"summary":96},{"path":122,"title":123,"summary":124},"\u002Fwork\u002Freductivist","Reductivist","A minimalist goods brand selling a handful of well made objects, where the real commerce problem was resisting the urge to add a fourth product to the homepage.",{"path":126,"title":127,"summary":128},"\u002Fwork\u002Fpattern-library","Pattern Library","Four hundred and twenty two documented interaction patterns across web, mobile, and cross platform concerns, with the rationale that makes each one work.",{"path":130,"title":131,"summary":132},"\u002Fwork\u002Fflow-society-mx","Flow Society MX","An e-bike tour operator in Jalisco, with a six step booking flow, a per departure availability calendar, and an operator dashboard behind it.",{"path":134,"title":135,"summary":136},"\u002Fwork\u002Fcytron-motorcycles","Cytron Motorcycles","A Tokyo motorcycle brand invented end to end, drawn as a working prototype and then built as the site that prototype had been arguing for.",1789230933897]