[{"data":1,"prerenderedAt":1882},["ShallowReactive",2],{"services-list":3,"portfolio-featured":1340},[4,356,681,1009],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"id":11,"priceHint":12,"icon":13,"order":14,"highlight":15,"label":16,"mainImage":17,"features":18,"portfolioExamples":23,"body":27,"_type":350,"_id":351,"_source":352,"_file":353,"_stem":354,"_extension":355},"/services/landing-pages","services",false,"","Landing Pages","One clear offer, one primary action — shipped fast with performance and SEO baked in.","landing-pages","From $1.5k","landing",1,true,"Fastest to launch","https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&w=1600&q=80",[19,20,21,22],"Live in 1–3 weeks when copy and assets are ready","Layout and CTAs tuned for one conversion goal","Analytics, forms, and technical SEO wired from day one","SEO-ready architecture (SSR/ISR) and Performance Budgets",[24,25,26],"mobile-app-landing","polygraph-services-website","ozfame",{"type":28,"children":29,"toc":334},"root",[30,39,45,50,57,68,88,98,116,126,144,154,167,173,234,240,266,272,278,290,296,301,307,312,318,323,329],{"type":31,"tag":32,"props":33,"children":35},"element","h2",{"id":34},"our-process",[36],{"type":37,"value":38},"text","Our Process",{"type":31,"tag":40,"props":41,"children":42},"p",{},[43],{"type":37,"value":44},"We start with your goal - leads, signups, or demos - and reverse-engineer the story the page needs to tell. Discovery is short and concrete: audience, offer, proof, and the one action you want visitors to take. From there we wireframe the narrative, design for trust and scanability, and build with performance budgets so the page feels instant on real devices.",{"type":31,"tag":40,"props":46,"children":47},{},[48],{"type":37,"value":49},"You get weekly checkpoints, a staging link you can share with stakeholders, and a launch checklist that covers analytics, forms, and search indexing. After go-live we can iterate on copy and sections based on data - not guesses.",{"type":31,"tag":51,"props":52,"children":54},"h3",{"id":53},"process-at-a-glance",[55],{"type":37,"value":56},"Process at a glance",{"type":31,"tag":40,"props":58,"children":59},{},[60,66],{"type":31,"tag":61,"props":62,"children":63},"strong",{},[64],{"type":37,"value":65},"Strategy",{"type":37,"value":67}," - We lock the campaign goal, audience, offer, and the one conversion action the page must drive, then shape the story and section order before design or build.",{"type":31,"tag":69,"props":70,"children":71},"ol",{},[72,78,83],{"type":31,"tag":73,"props":74,"children":75},"li",{},[76],{"type":37,"value":77},"One-page brief (goal, audience, proof, primary CTA)",{"type":31,"tag":73,"props":79,"children":80},{},[81],{"type":37,"value":82},"Narrative / wireframe outline for above-the-fold and supporting sections",{"type":31,"tag":73,"props":84,"children":85},{},[86],{"type":37,"value":87},"SEO intent notes for the target URL and metadata",{"type":31,"tag":40,"props":89,"children":90},{},[91,96],{"type":31,"tag":61,"props":92,"children":93},{},[94],{"type":37,"value":95},"Development",{"type":37,"value":97}," - We design for trust and scanability, build against performance budgets, and keep you aligned with weekly checkpoints and a shareable preview.",{"type":31,"tag":69,"props":99,"children":100},{},[101,106,111],{"type":31,"tag":73,"props":102,"children":103},{},[104],{"type":37,"value":105},"Production-ready page built from agreed structure and designs",{"type":31,"tag":73,"props":107,"children":108},{},[109],{"type":37,"value":110},"Staging link for stakeholder review and async feedback",{"type":31,"tag":73,"props":112,"children":113},{},[114],{"type":37,"value":115},"Smooth forms plus analytics and conversion events hooked to your tools",{"type":31,"tag":40,"props":117,"children":118},{},[119,124],{"type":31,"tag":61,"props":120,"children":121},{},[122],{"type":37,"value":123},"Launch",{"type":37,"value":125}," - Go-live covers technical SEO basics, tracking, and forms so the page is measurable and indexable from day one.",{"type":31,"tag":69,"props":127,"children":128},{},[129,134,139],{"type":31,"tag":73,"props":130,"children":131},{},[132],{"type":37,"value":133},"Domain/DNS or hosting cutover notes (as applicable)",{"type":31,"tag":73,"props":135,"children":136},{},[137],{"type":37,"value":138},"Launch checklist: analytics verification, form submissions, redirects, indexing",{"type":31,"tag":73,"props":140,"children":141},{},[142],{"type":37,"value":143},"Device smoke pass on real phones and slow networks",{"type":31,"tag":40,"props":145,"children":146},{},[147,152],{"type":31,"tag":61,"props":148,"children":149},{},[150],{"type":37,"value":151},"Support",{"type":37,"value":153}," - After launch we can refine sections and copy using real traffic and event data - not guesswork.",{"type":31,"tag":69,"props":155,"children":156},{},[157,162],{"type":31,"tag":73,"props":158,"children":159},{},[160],{"type":37,"value":161},"Short handoff doc for editing content safely in your setup",{"type":31,"tag":73,"props":163,"children":164},{},[165],{"type":37,"value":166},"Optional iteration passes on layout, copy, or CTA tests scoped to outcomes",{"type":31,"tag":32,"props":168,"children":170},{"id":169},"tech-stack-used",[171],{"type":37,"value":172},"Tech Stack Used",{"type":31,"tag":40,"props":174,"children":175},{},[176,178,183,185,190,192,197,199,204,206,211,213,218,220,225,227,232],{"type":37,"value":177},"What you receive is built for ",{"type":31,"tag":61,"props":179,"children":180},{},[181],{"type":37,"value":182},"speed",{"type":37,"value":184}," and snappy perceived load, ",{"type":31,"tag":61,"props":186,"children":187},{},[188],{"type":37,"value":189},"strong performance",{"type":37,"value":191}," on real devices and networks, ",{"type":31,"tag":61,"props":193,"children":194},{},[195],{"type":37,"value":196},"SEO-ready",{"type":37,"value":198}," structure and metadata, ",{"type":31,"tag":61,"props":200,"children":201},{},[202],{"type":37,"value":203},"smooth forms",{"type":37,"value":205}," that connect to your CRM or marketing stack, ",{"type":31,"tag":61,"props":207,"children":208},{},[209],{"type":37,"value":210},"analytics and conversion tracking",{"type":37,"value":212}," you can act on, and ",{"type":31,"tag":61,"props":214,"children":215},{},[216],{"type":37,"value":217},"maintainability",{"type":37,"value":219}," - clear handoff, sensible structure, and editorial workflows your team can own when content changes often. ",{"type":31,"tag":61,"props":221,"children":222},{},[223],{"type":37,"value":224},"Lighthouse-optimized surfaces",{"type":37,"value":226}," and ",{"type":31,"tag":61,"props":228,"children":229},{},[230],{"type":37,"value":231},"search-engine ready metadata",{"type":37,"value":233}," are standard deliverables, not extras.",{"type":31,"tag":32,"props":235,"children":237},{"id":236},"why-choose-this",[238],{"type":37,"value":239},"Why Choose This",{"type":31,"tag":40,"props":241,"children":242},{},[243,245,250,252,257,259,264],{"type":37,"value":244},"Landing pages are where positioning meets execution. We optimize for ",{"type":31,"tag":61,"props":246,"children":247},{},[248],{"type":37,"value":249},"Core Web Vitals",{"type":37,"value":251},", ",{"type":31,"tag":61,"props":253,"children":254},{},[255],{"type":37,"value":256},"accessible",{"type":37,"value":258}," contrast and focus states, and ",{"type":31,"tag":61,"props":260,"children":261},{},[262],{"type":37,"value":263},"clear CTAs",{"type":37,"value":265}," - so your media spend and outbound efforts are not undermined by a slow or confusing page. You get a focused deliverable with a defined timeline, not an open-ended redesign.",{"type":31,"tag":32,"props":267,"children":269},{"id":268},"faq",[270],{"type":37,"value":271},"FAQ",{"type":31,"tag":51,"props":273,"children":275},{"id":274},"how-long-does-a-typical-landing-page-take",[276],{"type":37,"value":277},"How long does a typical landing page take?",{"type":31,"tag":40,"props":279,"children":280},{},[281,283,288],{"type":37,"value":282},"Most single-offer landing pages ship in ",{"type":31,"tag":61,"props":284,"children":285},{},[286],{"type":37,"value":287},"1–3 weeks",{"type":37,"value":289},", depending on copy readiness, brand assets, and integrations (CRM, analytics, scheduling).",{"type":31,"tag":51,"props":291,"children":293},{"id":292},"do-you-write-the-copy",[294],{"type":37,"value":295},"Do you write the copy?",{"type":31,"tag":40,"props":297,"children":298},{},[299],{"type":37,"value":300},"We can collaborate with your team, refine your draft, or partner with your copywriter. If you need full copy from scratch, we scope it as part of the engagement.",{"type":31,"tag":51,"props":302,"children":304},{"id":303},"will-it-rank-on-google",[305],{"type":37,"value":306},"Will it rank on Google?",{"type":31,"tag":40,"props":308,"children":309},{},[310],{"type":37,"value":311},"We implement technical SEO best practices - semantic structure, metadata, performance, and clean URLs. Ranking also depends on content quality and competition; we set the technical foundation and help you iterate.",{"type":31,"tag":51,"props":313,"children":315},{"id":314},"what-do-you-need-from-us-to-start",[316],{"type":37,"value":317},"What do you need from us to start?",{"type":31,"tag":40,"props":319,"children":320},{},[321],{"type":37,"value":322},"Brand basics (logo, colors, fonts), the primary conversion goal, any proof points (logos, metrics, testimonials), and access to your domain or hosting if we deploy for you.",{"type":31,"tag":51,"props":324,"children":326},{"id":325},"how-do-you-handle-seo-for-landing-pages",[327],{"type":37,"value":328},"How do you handle SEO for landing pages?",{"type":31,"tag":40,"props":330,"children":331},{},[332],{"type":37,"value":333},"We implement automated metadata, structured data (Schema.org), and ensure the page is crawlable using modern rendering strategies so your offer isn't invisible to Google.",{"title":8,"searchDepth":335,"depth":335,"links":336},2,[337,341,342,343],{"id":34,"depth":335,"text":38,"children":338},[339],{"id":53,"depth":340,"text":56},3,{"id":169,"depth":335,"text":172},{"id":236,"depth":335,"text":239},{"id":268,"depth":335,"text":271,"children":344},[345,346,347,348,349],{"id":274,"depth":340,"text":277},{"id":292,"depth":340,"text":295},{"id":303,"depth":340,"text":306},{"id":314,"depth":340,"text":317},{"id":325,"depth":340,"text":328},"markdown","content:services:landing-pages.md","content","services/landing-pages.md","services/landing-pages","md",{"_path":357,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":358,"description":359,"id":360,"priceHint":361,"icon":362,"order":335,"highlight":15,"label":363,"mainImage":364,"features":365,"portfolioExamples":369,"body":373,"_type":350,"_id":678,"_source":352,"_file":679,"_stem":680,"_extension":355},"/services/web-apps","Web Applications (SaaS)","SaaS and internal tools with auth, billing, and dashboards — scoped so v1 ships, then grows cleanly.","web-apps","Typical: $5k–$20k","saas","For growing startups","https://images.unsplash.com/photo-1551434678-e076c223a692?auto=format&fit=crop&w=1600&q=80",[366,367,368,22],"MVP scope you can afford; roadmap for what comes next","Roles, permissions, and core workflows implemented end-to-end","APIs and integrations your team can extend without a rewrite",[370,371,372],"saas-dashboard","fintech-platform","healthcare-portal",{"type":28,"children":374,"toc":664},[375,379,397,402,406,415,433,442,460,469,487,496,509,513,569,573,591,595,601,606,612,617,623,635,641,653,659],{"type":31,"tag":32,"props":376,"children":377},{"id":34},[378],{"type":37,"value":38},{"type":31,"tag":40,"props":380,"children":381},{},[382,384,389,390,395],{"type":37,"value":383},"We treat SaaS like a product, not a brochure. Discovery maps ",{"type":31,"tag":61,"props":385,"children":386},{},[387],{"type":37,"value":388},"users",{"type":37,"value":251},{"type":31,"tag":61,"props":391,"children":392},{},[393],{"type":37,"value":394},"jobs-to-be-done",{"type":37,"value":396},", and the smallest slice that proves value. We define data models and permissions early, prototype critical flows, and ship incrementally behind feature flags where it helps.",{"type":31,"tag":40,"props":398,"children":399},{},[400],{"type":37,"value":401},"Engineering runs in tight loops: vertical slices of functionality, automated checks, and staging environments you can demo to investors or pilot customers. Handoff includes documentation, deployment notes, and a sensible path for your next hire or agency to extend the system.",{"type":31,"tag":51,"props":403,"children":404},{"id":53},[405],{"type":37,"value":56},{"type":31,"tag":40,"props":407,"children":408},{},[409,413],{"type":31,"tag":61,"props":410,"children":411},{},[412],{"type":37,"value":65},{"type":37,"value":414}," - We map who the product serves, the jobs-to-be-done, and the smallest slice that proves value - then anchor permissions and data shape before the codebase grows.",{"type":31,"tag":69,"props":416,"children":417},{},[418,423,428],{"type":31,"tag":73,"props":419,"children":420},{},[421],{"type":37,"value":422},"Product brief: personas, core workflows, and non-goals for the MVP",{"type":31,"tag":73,"props":424,"children":425},{},[426],{"type":37,"value":427},"Roles, permissions, and data model sketch aligned to those workflows",{"type":31,"tag":73,"props":429,"children":430},{},[431],{"type":37,"value":432},"Milestone roadmap from first shippable slice to production-ready bar",{"type":31,"tag":40,"props":434,"children":435},{},[436,440],{"type":31,"tag":61,"props":437,"children":438},{},[439],{"type":37,"value":95},{"type":37,"value":441}," - We ship vertical slices (not horizontal “all APIs first”) with staging you can demo, plus checks on the paths that matter for trust and revenue.",{"type":31,"tag":69,"props":443,"children":444},{},[445,450,455],{"type":31,"tag":73,"props":446,"children":447},{},[448],{"type":37,"value":449},"Incremental builds on a staging environment (feature flags when helpful)",{"type":31,"tag":73,"props":451,"children":452},{},[453],{"type":37,"value":454},"Automated checks on agreed critical paths (sign-in, billing, core workflows)",{"type":31,"tag":73,"props":456,"children":457},{},[458],{"type":37,"value":459},"Payment, authentication, and third-party integrations as scoped",{"type":31,"tag":40,"props":461,"children":462},{},[463,467],{"type":31,"tag":61,"props":464,"children":465},{},[466],{"type":37,"value":123},{"type":37,"value":468}," - Production readiness means deployable artifacts, environment clarity, and a handoff your team - or the next vendor - can actually run with.",{"type":31,"tag":69,"props":470,"children":471},{},[472,477,482],{"type":31,"tag":73,"props":473,"children":474},{},[475],{"type":37,"value":476},"Deployment runbook (build, migrate, configuration, rollback mindset)",{"type":31,"tag":73,"props":478,"children":479},{},[480],{"type":37,"value":481},"Overview of how the product is structured and where new capabilities can plug in",{"type":31,"tag":73,"props":483,"children":484},{},[485],{"type":37,"value":486},"Access transfer checklist for hosting, data, and secrets (per agreement)",{"type":31,"tag":40,"props":488,"children":489},{},[490,494],{"type":31,"tag":61,"props":491,"children":492},{},[493],{"type":37,"value":151},{"type":37,"value":495}," - We can stay engaged for hardening, new modules, or knowledge transfer so velocity doesn’t stop when the launch party ends.",{"type":31,"tag":69,"props":497,"children":498},{},[499,504],{"type":31,"tag":73,"props":500,"children":501},{},[502],{"type":37,"value":503},"Handoff session(s) for engineers or product owners",{"type":31,"tag":73,"props":505,"children":506},{},[507],{"type":37,"value":508},"Optional retainer: security patches, performance, billing upgrades, admin tooling",{"type":31,"tag":32,"props":510,"children":511},{"id":169},[512],{"type":37,"value":172},{"type":31,"tag":40,"props":514,"children":515},{},[516,518,523,525,530,532,537,539,544,546,551,553,557,559,563,564,568],{"type":37,"value":517},"You get ",{"type":31,"tag":61,"props":519,"children":520},{},[521],{"type":37,"value":522},"fast, responsive",{"type":37,"value":524}," product surfaces for daily work; ",{"type":31,"tag":61,"props":526,"children":527},{},[528],{"type":37,"value":529},"performance",{"type":37,"value":531}," that holds up as usage and data grow; ",{"type":31,"tag":61,"props":533,"children":534},{},[535],{"type":37,"value":536},"secure access",{"type":37,"value":538}," (roles and sessions) without dumping complexity on users; ",{"type":31,"tag":61,"props":540,"children":541},{},[542],{"type":37,"value":543},"smooth flows",{"type":37,"value":545}," for forms, settings, and core tasks; ",{"type":31,"tag":61,"props":547,"children":548},{},[549],{"type":37,"value":550},"analytics and operational visibility",{"type":37,"value":552}," where you need to see usage, errors, or revenue; and ",{"type":31,"tag":61,"props":554,"children":555},{},[556],{"type":37,"value":217},{"type":37,"value":558}," - documentation and structure so your next hire or partner can extend the system without guessing. ",{"type":31,"tag":61,"props":560,"children":561},{},[562],{"type":37,"value":224},{"type":37,"value":226},{"type":31,"tag":61,"props":565,"children":566},{},[567],{"type":37,"value":231},{"type":37,"value":233},{"type":31,"tag":32,"props":570,"children":571},{"id":236},[572],{"type":37,"value":239},{"type":31,"tag":40,"props":574,"children":575},{},[576,577,582,584,589],{"type":37,"value":517},{"type":31,"tag":61,"props":578,"children":579},{},[580],{"type":37,"value":581},"maintainable",{"type":37,"value":583}," code, ",{"type":31,"tag":61,"props":585,"children":586},{},[587],{"type":37,"value":588},"predictable",{"type":37,"value":590}," milestones, and architecture that does not collapse at your first hundred paying customers. Security and reliability are baked into how we model roles, handle sessions, and validate inputs - not bolted on at the end.",{"type":31,"tag":32,"props":592,"children":593},{"id":268},[594],{"type":37,"value":271},{"type":31,"tag":51,"props":596,"children":598},{"id":597},"can-you-take-over-an-existing-codebase",[599],{"type":37,"value":600},"Can you take over an existing codebase?",{"type":31,"tag":40,"props":602,"children":603},{},[604],{"type":37,"value":605},"Yes. We start with a short audit: dependencies, deployment, data model, and risk areas - then propose a stabilization or rebuild plan.",{"type":31,"tag":51,"props":607,"children":609},{"id":608},"do-you-build-mvps-only",[610],{"type":37,"value":611},"Do you build MVPs only?",{"type":31,"tag":40,"props":613,"children":614},{},[615],{"type":37,"value":616},"We love MVPs, but we also extend products post–product-market fit: new modules, billing upgrades, admin tooling, and performance work.",{"type":31,"tag":51,"props":618,"children":620},{"id":619},"how-do-you-price-saas-projects",[621],{"type":37,"value":622},"How do you price SaaS projects?",{"type":31,"tag":40,"props":624,"children":625},{},[626,628,633],{"type":37,"value":627},"We scope by milestones tied to outcomes (e.g., auth + core workflow + billing) and give a ",{"type":31,"tag":61,"props":629,"children":630},{},[631],{"type":37,"value":632},"range",{"type":37,"value":634}," with assumptions. Changes in scope are handled transparently.",{"type":31,"tag":51,"props":636,"children":638},{"id":637},"what-about-mobile",[639],{"type":37,"value":640},"What about mobile?",{"type":31,"tag":40,"props":642,"children":643},{},[644,646,651],{"type":37,"value":645},"We can ship a ",{"type":31,"tag":61,"props":647,"children":648},{},[649],{"type":37,"value":650},"responsive web app",{"type":37,"value":652}," first, or align with a separate mobile initiative. Many teams validate with web before native apps.",{"type":31,"tag":51,"props":654,"children":656},{"id":655},"how-do-you-handle-seo-for-web-apps",[657],{"type":37,"value":658},"How do you handle SEO for Web Apps?",{"type":31,"tag":40,"props":660,"children":661},{},[662],{"type":37,"value":663},"We implement automated metadata, structured data (Schema.org), and ensure the application is crawlable using modern rendering strategies so your SaaS isn't invisible to Google.",{"title":8,"searchDepth":335,"depth":335,"links":665},[666,669,670,671],{"id":34,"depth":335,"text":38,"children":667},[668],{"id":53,"depth":340,"text":56},{"id":169,"depth":335,"text":172},{"id":236,"depth":335,"text":239},{"id":268,"depth":335,"text":271,"children":672},[673,674,675,676,677],{"id":597,"depth":340,"text":600},{"id":608,"depth":340,"text":611},{"id":619,"depth":340,"text":622},{"id":637,"depth":340,"text":640},{"id":655,"depth":340,"text":658},"content:services:web-apps.md","services/web-apps.md","services/web-apps",{"_path":682,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":683,"description":684,"id":685,"priceHint":686,"icon":687,"order":340,"highlight":15,"label":688,"mainImage":689,"features":690,"portfolioExamples":694,"body":696,"_type":350,"_id":1006,"_source":352,"_file":1007,"_stem":1008,"_extension":355},"/services/mobile-apps","Mobile Apps","iOS and Android from one codebase, aligned with your existing APIs and release process.","mobile-apps","Typical: $8k–$25k","mobile","iOS + Android together","https://images.unsplash.com/photo-1512941937669-90a1b58e7e9c?auto=format&fit=crop&w=1600&q=80",[691,692,693,22],"One codebase → both stores; shared logic with your web product","TestFlight / internal builds early so feedback is from real devices","Store listings, signing, and submission under your developer accounts",[24,695],"media-compressor",{"type":28,"children":697,"toc":992},[698,702,719,724,728,737,755,764,782,791,809,818,831,835,889,893,912,916,922,927,933,938,944,949,955,960,966],{"type":31,"tag":32,"props":699,"children":700},{"id":34},[701],{"type":37,"value":38},{"type":31,"tag":40,"props":703,"children":704},{},[705,707,712,713,717],{"type":37,"value":706},"Mobile products win or lose on ",{"type":31,"tag":61,"props":708,"children":709},{},[710],{"type":37,"value":711},"clarity",{"type":37,"value":226},{"type":31,"tag":61,"props":714,"children":715},{},[716],{"type":37,"value":529},{"type":37,"value":718},". We validate navigation and core tasks on-device early, define offline and notification needs up front, and align on analytics events before we chase edge cases.",{"type":31,"tag":40,"props":720,"children":721},{},[722],{"type":37,"value":723},"Build phases mirror product risk: shell app and auth, primary user journey, polish and accessibility, then store submission. You see TestFlight / internal tracks quickly so feedback is grounded in real taps, not mockups.",{"type":31,"tag":51,"props":725,"children":726},{"id":53},[727],{"type":37,"value":56},{"type":31,"tag":40,"props":729,"children":730},{},[731,735],{"type":31,"tag":61,"props":732,"children":733},{},[734],{"type":37,"value":65},{"type":37,"value":736}," - We nail navigation, the hero user journey, offline and notification expectations, and analytics events before we optimize secondary screens - so build effort tracks real product risk.",{"type":31,"tag":69,"props":738,"children":739},{},[740,745,750],{"type":31,"tag":73,"props":741,"children":742},{},[743],{"type":37,"value":744},"Information architecture and primary on-device task flow",{"type":31,"tag":73,"props":746,"children":747},{},[748],{"type":37,"value":749},"Offline, push notification, and deep-link requirements captured up front",{"type":31,"tag":73,"props":751,"children":752},{},[753],{"type":37,"value":754},"Analytics / event map tied to activation and retention goals",{"type":31,"tag":40,"props":756,"children":757},{},[758,762],{"type":31,"tag":61,"props":759,"children":760},{},[761],{"type":37,"value":95},{"type":37,"value":763}," - The app grows in layers - shell and auth, core journey, polish and accessibility - with early builds on real hardware so feedback is tactile, not hypothetical.",{"type":31,"tag":69,"props":765,"children":766},{},[767,772,777],{"type":31,"tag":73,"props":768,"children":769},{},[770],{"type":37,"value":771},"Cross-platform app integrated with your existing product APIs",{"type":31,"tag":73,"props":773,"children":774},{},[775],{"type":37,"value":776},"TestFlight / internal track builds for stakeholder and pilot testing",{"type":31,"tag":73,"props":778,"children":779},{},[780],{"type":37,"value":781},"Accessibility and platform-guideline checkpoints during polish",{"type":31,"tag":40,"props":783,"children":784},{},[785,789],{"type":31,"tag":61,"props":786,"children":787},{},[788],{"type":37,"value":123},{"type":37,"value":790}," - Store submission is treated as a release: assets, compliance, signing, and a clear versioning approach for reviewers and users.",{"type":31,"tag":69,"props":792,"children":793},{},[794,799,804],{"type":31,"tag":73,"props":795,"children":796},{},[797],{"type":37,"value":798},"Store listing pack (screenshots, descriptions, keywords, privacy copy inputs)",{"type":31,"tag":73,"props":800,"children":801},{},[802],{"type":37,"value":803},"iOS / Android build signing and submission checklist under your accounts",{"type":31,"tag":73,"props":805,"children":806},{},[807],{"type":37,"value":808},"Phased rollout or staged release plan with rollback considerations",{"type":31,"tag":40,"props":810,"children":811},{},[812,816],{"type":31,"tag":61,"props":813,"children":814},{},[815],{"type":37,"value":151},{"type":37,"value":817}," - Mobile is never “done” - OS releases, SDKs, and review policies move. We can keep you store-ready after v1.",{"type":31,"tag":69,"props":819,"children":820},{},[821,826],{"type":31,"tag":73,"props":822,"children":823},{},[824],{"type":37,"value":825},"Crash reporting and release channel notes from go-live",{"type":31,"tag":73,"props":827,"children":828},{},[829],{"type":37,"value":830},"Optional retainer: OS upgrades, dependency updates, review fixes, small feature batches",{"type":31,"tag":32,"props":832,"children":833},{"id":169},[834],{"type":37,"value":172},{"type":31,"tag":40,"props":836,"children":837},{},[838,839,844,846,850,852,857,859,864,866,871,873,877,879,883,884,888],{"type":37,"value":517},{"type":31,"tag":61,"props":840,"children":841},{},[842],{"type":37,"value":843},"one codebase path",{"type":37,"value":845}," to both major app stores (faster iteration than maintaining two separate native codebases for many product shapes), ",{"type":31,"tag":61,"props":847,"children":848},{},[849],{"type":37,"value":529},{"type":37,"value":851}," and responsiveness on real devices, ",{"type":31,"tag":61,"props":853,"children":854},{},[855],{"type":37,"value":856},"smooth core flows",{"type":37,"value":858}," (sign-in, forms, settings) tuned for thumbs and small screens, ",{"type":31,"tag":61,"props":860,"children":861},{},[862],{"type":37,"value":863},"analytics",{"type":37,"value":865}," aligned to activation and retention, reliable ",{"type":31,"tag":61,"props":867,"children":868},{},[869],{"type":37,"value":870},"push and deep links",{"type":37,"value":872}," where your product needs them, and ",{"type":31,"tag":61,"props":874,"children":875},{},[876],{"type":37,"value":217},{"type":37,"value":878}," through OS upgrades, store policy shifts, and ongoing releases - without trapping you in unmaintainable one-offs. ",{"type":31,"tag":61,"props":880,"children":881},{},[882],{"type":37,"value":224},{"type":37,"value":226},{"type":31,"tag":61,"props":885,"children":886},{},[887],{"type":37,"value":231},{"type":37,"value":233},{"type":31,"tag":32,"props":890,"children":891},{"id":236},[892],{"type":37,"value":239},{"type":31,"tag":40,"props":894,"children":895},{},[896,898,903,905,910],{"type":37,"value":897},"You ship ",{"type":31,"tag":61,"props":899,"children":900},{},[901],{"type":37,"value":902},"one codebase",{"type":37,"value":904}," for two stores, move faster than fully native duos for many product shapes, and keep ",{"type":31,"tag":61,"props":906,"children":907},{},[908],{"type":37,"value":909},"feature parity",{"type":37,"value":911}," saner as you iterate. We focus on store compliance, sensible permissions UX, and crash-free stability - not just “it works on my phone.”",{"type":31,"tag":32,"props":913,"children":914},{"id":268},[915],{"type":37,"value":271},{"type":31,"tag":51,"props":917,"children":919},{"id":918},"react-native-vs-native-how-do-you-decide",[920],{"type":37,"value":921},"React Native vs. native - how do you decide?",{"type":31,"tag":40,"props":923,"children":924},{},[925],{"type":37,"value":926},"If you need heavy platform-specific UI or bleeding-edge AR, native may win. For most SaaS and consumer apps, React Native hits the sweet spot for speed and cost.",{"type":31,"tag":51,"props":928,"children":930},{"id":929},"can-you-publish-under-our-developer-accounts",[931],{"type":37,"value":932},"Can you publish under our developer accounts?",{"type":31,"tag":40,"props":934,"children":935},{},[936],{"type":37,"value":937},"Yes. We guide you through certificates, signing, and listing assets; you retain account ownership.",{"type":31,"tag":51,"props":939,"children":941},{"id":940},"what-about-maintenance-after-launch",[942],{"type":37,"value":943},"What about maintenance after launch?",{"type":31,"tag":40,"props":945,"children":946},{},[947],{"type":37,"value":948},"We offer retainers for OS updates, dependency upgrades, crash triage, and small feature batches - so store reviews stay smooth year over year.",{"type":31,"tag":51,"props":950,"children":952},{"id":951},"do-you-integrate-with-our-existing-web-app",[953],{"type":37,"value":954},"Do you integrate with our existing web app?",{"type":31,"tag":40,"props":956,"children":957},{},[958],{"type":37,"value":959},"That is the default path: shared auth, shared data model, and consistent business rules across web and mobile.",{"type":31,"tag":51,"props":961,"children":963},{"id":962},"how-do-you-handle-seo-for-mobile-apps",[964],{"type":37,"value":965},"How do you handle SEO for mobile apps?",{"type":31,"tag":40,"props":967,"children":968},{},[969,971,976,978,983,985,990],{"type":37,"value":970},"We align ",{"type":31,"tag":61,"props":972,"children":973},{},[974],{"type":37,"value":975},"App Store / Play listing metadata and keywords",{"type":37,"value":977},", wire ",{"type":31,"tag":61,"props":979,"children":980},{},[981],{"type":37,"value":982},"deep links and universal links",{"type":37,"value":984}," so campaigns and search can land on the right screen, and when the product includes ",{"type":31,"tag":61,"props":986,"children":987},{},[988],{"type":37,"value":989},"web surfaces",{"type":37,"value":991},", we implement metadata, structured data (Schema.org), and performance budgets so those pages stay crawlable — your app is not invisible in store search or on Google.",{"title":8,"searchDepth":335,"depth":335,"links":993},[994,997,998,999],{"id":34,"depth":335,"text":38,"children":995},[996],{"id":53,"depth":340,"text":56},{"id":169,"depth":335,"text":172},{"id":236,"depth":335,"text":239},{"id":268,"depth":335,"text":271,"children":1000},[1001,1002,1003,1004,1005],{"id":918,"depth":340,"text":921},{"id":929,"depth":340,"text":932},{"id":940,"depth":340,"text":943},{"id":951,"depth":340,"text":954},{"id":962,"depth":340,"text":965},"content:services:mobile-apps.md","services/mobile-apps.md","services/mobile-apps",{"_path":1010,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":1011,"description":1012,"id":1013,"priceHint":1014,"icon":1013,"order":1015,"highlight":15,"label":1016,"mainImage":1017,"features":1018,"portfolioExamples":1022,"body":1024,"_type":350,"_id":1337,"_source":352,"_file":1338,"_stem":1339,"_extension":355},"/services/ecommerce","E-commerce","Storefronts where checkout feels credible on mobile and ops (fulfillment, email, support) stays integrated.","ecommerce","From $3k",4,"Built to sell","https://images.unsplash.com/photo-1556742049-0cfed4f6a45d?auto=format&fit=crop&w=1600&q=80",[1019,1020,1021,22],"Checkout flows tested for trust, errors, and thumb reach","Performance that holds up as catalog and traffic grow","Hooks for analytics, email, fulfillment, and the tools you already use",[1023,26],"ecommerce-platform",{"type":28,"children":1025,"toc":1323},[1026,1030,1061,1066,1070,1079,1097,1106,1124,1133,1151,1160,1178,1182,1236,1240,1264,1268,1274,1279,1285,1290,1296,1301,1307,1312,1318],{"type":31,"tag":32,"props":1027,"children":1028},{"id":34},[1029],{"type":37,"value":38},{"type":31,"tag":40,"props":1031,"children":1032},{},[1033,1035,1040,1041,1046,1047,1052,1054,1059],{"type":37,"value":1034},"Commerce is part product, part operations. We map ",{"type":31,"tag":61,"props":1036,"children":1037},{},[1038],{"type":37,"value":1039},"catalog complexity",{"type":37,"value":251},{"type":31,"tag":61,"props":1042,"children":1043},{},[1044],{"type":37,"value":1045},"fulfillment",{"type":37,"value":251},{"type":31,"tag":61,"props":1048,"children":1049},{},[1050],{"type":37,"value":1051},"tax/shipping",{"type":37,"value":1053}," assumptions, and ",{"type":31,"tag":61,"props":1055,"children":1056},{},[1057],{"type":37,"value":1058},"support",{"type":37,"value":1060}," workflows before we theme a pixel. Checkout flows get extra scrutiny - guest vs. account, error recovery, and mobile thumb reach.",{"type":31,"tag":40,"props":1062,"children":1063},{},[1064],{"type":37,"value":1065},"We implement, test purchases in sandbox modes, and rehearse edge cases (inventory edge states, failed payments, refunds). Launch includes monitoring hooks so you see conversion drops before they become revenue leaks.",{"type":31,"tag":51,"props":1067,"children":1068},{"id":53},[1069],{"type":37,"value":56},{"type":31,"tag":40,"props":1071,"children":1072},{},[1073,1077],{"type":31,"tag":61,"props":1074,"children":1075},{},[1076],{"type":37,"value":65},{"type":37,"value":1078}," - We treat the store as operations plus UX: catalog shape, fulfillment, tax/shipping rules, and how your team handles support - before we commit to theme or custom UI.",{"type":31,"tag":69,"props":1080,"children":1081},{},[1082,1087,1092],{"type":31,"tag":73,"props":1083,"children":1084},{},[1085],{"type":37,"value":1086},"Catalog / variant and collection structure outline",{"type":31,"tag":73,"props":1088,"children":1089},{},[1090],{"type":37,"value":1091},"Checkout decisions (guest vs. account, shipping zones, tax assumptions)",{"type":31,"tag":73,"props":1093,"children":1094},{},[1095],{"type":37,"value":1096},"Ops map: fulfillment, refunds, exchanges, and support touchpoints",{"type":31,"tag":40,"props":1098,"children":1099},{},[1100,1104],{"type":31,"tag":61,"props":1101,"children":1102},{},[1103],{"type":37,"value":95},{"type":37,"value":1105}," - We build the storefront experience, then prove it with sandbox checkouts and realistic failure paths so checkout feels trustworthy on mobile.",{"type":31,"tag":69,"props":1107,"children":1108},{},[1109,1114,1119],{"type":31,"tag":73,"props":1110,"children":1111},{},[1112],{"type":37,"value":1113},"Storefront experience wired to your commerce backend and catalog",{"type":31,"tag":73,"props":1115,"children":1116},{},[1117],{"type":37,"value":1118},"Staging shop with test payments and representative products",{"type":31,"tag":73,"props":1120,"children":1121},{},[1122],{"type":37,"value":1123},"Edge-case rehearsal notes (low stock, failed payment, refund flows)",{"type":31,"tag":40,"props":1125,"children":1126},{},[1127,1131],{"type":31,"tag":61,"props":1128,"children":1129},{},[1130],{"type":37,"value":123},{"type":37,"value":1132}," - Production cutover includes observability so you catch cart or payment friction before it silently costs revenue.",{"type":31,"tag":69,"props":1134,"children":1135},{},[1136,1141,1146],{"type":31,"tag":73,"props":1137,"children":1138},{},[1139],{"type":37,"value":1140},"Go-live runbook (DNS, domains, SSL, live payment configuration)",{"type":31,"tag":73,"props":1142,"children":1143},{},[1144],{"type":37,"value":1145},"Conversion and payment-error monitoring hooks",{"type":31,"tag":73,"props":1147,"children":1148},{},[1149],{"type":37,"value":1150},"Redirect / URL continuity plan when migrating platforms",{"type":31,"tag":40,"props":1152,"children":1153},{},[1154,1158],{"type":31,"tag":61,"props":1155,"children":1156},{},[1157],{"type":37,"value":151},{"type":37,"value":1159}," - Your team stays unblocked day-to-day with clear store runbooks and optional live handoff.",{"type":31,"tag":69,"props":1161,"children":1162},{},[1163,1168,1173],{"type":31,"tag":73,"props":1164,"children":1165},{},[1166],{"type":37,"value":1167},"Short runbooks: catalog updates, promotions, common customer issues",{"type":31,"tag":73,"props":1169,"children":1170},{},[1171],{"type":37,"value":1172},"Optional handoff calls for admins and support",{"type":31,"tag":73,"props":1174,"children":1175},{},[1176],{"type":37,"value":1177},"Retainer-friendly path for seasonal merchandising or integration tweaks",{"type":31,"tag":32,"props":1179,"children":1180},{"id":169},[1181],{"type":37,"value":172},{"type":31,"tag":40,"props":1183,"children":1184},{},[1185,1187,1191,1193,1197,1199,1204,1206,1211,1213,1218,1220,1224,1226,1230,1231,1235],{"type":37,"value":1186},"You get a store tuned for ",{"type":31,"tag":61,"props":1188,"children":1189},{},[1190],{"type":37,"value":182},{"type":37,"value":1192}," on browsing, cart, and checkout; ",{"type":31,"tag":61,"props":1194,"children":1195},{},[1196],{"type":37,"value":529},{"type":37,"value":1198}," that stays solid as catalogs and traffic grow; ",{"type":31,"tag":61,"props":1200,"children":1201},{},[1202],{"type":37,"value":1203},"search-friendly",{"type":37,"value":1205}," product and collection structure where it matters; ",{"type":31,"tag":61,"props":1207,"children":1208},{},[1209],{"type":37,"value":1210},"smooth, trustworthy checkout",{"type":37,"value":1212}," (especially on mobile); ",{"type":31,"tag":61,"props":1214,"children":1215},{},[1216],{"type":37,"value":1217},"analytics and ops integrations",{"type":37,"value":1219}," (email, fulfillment, support tools) scoped to how you run the business; and ",{"type":31,"tag":61,"props":1221,"children":1222},{},[1223],{"type":37,"value":217},{"type":37,"value":1225}," - documentation and patterns your team can follow without relying on hidden tribal knowledge. ",{"type":31,"tag":61,"props":1227,"children":1228},{},[1229],{"type":37,"value":224},{"type":37,"value":226},{"type":31,"tag":61,"props":1232,"children":1233},{},[1234],{"type":37,"value":231},{"type":37,"value":233},{"type":31,"tag":32,"props":1237,"children":1238},{"id":236},[1239],{"type":37,"value":239},{"type":31,"tag":40,"props":1241,"children":1242},{},[1243,1245,1250,1251,1255,1257,1262],{"type":37,"value":1244},"Shoppers abandon carts when pages feel slow or sketchy. We prioritize ",{"type":31,"tag":61,"props":1246,"children":1247},{},[1248],{"type":37,"value":1249},"sub-second perceived load",{"type":37,"value":251},{"type":31,"tag":61,"props":1252,"children":1253},{},[1254],{"type":37,"value":256},{"type":37,"value":1256}," product and cart UI, and ",{"type":31,"tag":61,"props":1258,"children":1259},{},[1260],{"type":37,"value":1261},"clear trust signals",{"type":37,"value":1263}," - policies, support, and payment badges - so your brand feels as credible as your product.",{"type":31,"tag":32,"props":1265,"children":1266},{"id":268},[1267],{"type":37,"value":271},{"type":31,"tag":51,"props":1269,"children":1271},{"id":1270},"can-you-migrate-from-an-old-platform",[1272],{"type":37,"value":1273},"Can you migrate from an old platform?",{"type":31,"tag":40,"props":1275,"children":1276},{},[1277],{"type":37,"value":1278},"Yes. We plan redirects, URL preservation where possible, customer and order data migration (where supported), and SEO continuity.",{"type":31,"tag":51,"props":1280,"children":1282},{"id":1281},"what-about-subscriptions-or-b2b-pricing",[1283],{"type":37,"value":1284},"What about subscriptions or B2B pricing?",{"type":31,"tag":40,"props":1286,"children":1287},{},[1288],{"type":37,"value":1289},"We scope complex pricing, quotes, and subscription lifecycles explicitly - those flows are custom by nature.",{"type":31,"tag":51,"props":1291,"children":1293},{"id":1292},"how-do-you-handle-performance-at-scale",[1294],{"type":37,"value":1295},"How do you handle performance at scale?",{"type":31,"tag":40,"props":1297,"children":1298},{},[1299],{"type":37,"value":1300},"Caching strategy, image pipelines, and lean theme/components are part of the default build - not optional extras.",{"type":31,"tag":51,"props":1302,"children":1304},{"id":1303},"do-you-train-our-team-to-manage-the-store",[1305],{"type":37,"value":1306},"Do you train our team to manage the store?",{"type":31,"tag":40,"props":1308,"children":1309},{},[1310],{"type":37,"value":1311},"We provide short runbooks for catalog updates, promotions, and common support tasks, plus optional handoff calls.",{"type":31,"tag":51,"props":1313,"children":1315},{"id":1314},"how-do-you-handle-seo-for-e-commerce",[1316],{"type":37,"value":1317},"How do you handle SEO for e-commerce?",{"type":31,"tag":40,"props":1319,"children":1320},{},[1321],{"type":37,"value":1322},"We implement automated metadata, structured data (Schema.org), and ensure the storefront is crawlable using modern rendering strategies so your catalog isn't invisible to Google.",{"title":8,"searchDepth":335,"depth":335,"links":1324},[1325,1328,1329,1330],{"id":34,"depth":335,"text":38,"children":1326},[1327],{"id":53,"depth":340,"text":56},{"id":169,"depth":335,"text":172},{"id":236,"depth":335,"text":239},{"id":268,"depth":335,"text":271,"children":1331},[1332,1333,1334,1335,1336],{"id":1270,"depth":340,"text":1273},{"id":1281,"depth":340,"text":1284},{"id":1292,"depth":340,"text":1295},{"id":1303,"depth":340,"text":1306},{"id":1314,"depth":340,"text":1317},"content:services:ecommerce.md","services/ecommerce.md","services/ecommerce",[1341,1384,1426,1460,1491,1553,1597,1627,1719,1764,1798],{"_path":1342,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1344,"description":1345,"order":1346,"isActive":7,"longDescription":1347,"category":1348,"tags":1349,"recommended":1355,"client":1356,"year":1357,"metrics":1358,"challenge":1370,"solution":1371,"results":1372,"body":1377,"_type":350,"_id":1381,"_source":352,"_file":1382,"_stem":1383,"_extension":355},"/portfolio/brand-website","portfolio","Brand Website","Stunning brand website with immersive storytelling, animations, and interactive elements.",8,"An award-winning brand website that combines cutting-edge technology with compelling storytelling to create an unforgettable digital experience.","Landing Page",[1350,1351,1352,1353,1354],"Nuxt","GSAP","Three.js","WebGL","Contentful",[25,26,24],"LuxBrand","2023",[1359,1363,1366],{"value":1360,"suffix":1361,"label":1362},300,"%","Time on site",{"value":1364,"suffix":1361,"label":1365},150,"Inquiries lift",{"value":1367,"suffix":1368,"label":1369},95,"+","Lighthouse score","The luxury brand needed a website that would stand out in a crowded market and convey their premium positioning while remaining performant.","We created an immersive experience using 3D elements and smooth animations while optimizing for performance through lazy loading and progressive enhancement.",[1373,1374,1375,1376],"FWA Site of the Day winner","300% increase in time on site","150% increase in inquiries","Lighthouse score of 95+",{"type":28,"children":1378,"toc":1379},[],{"title":8,"searchDepth":335,"depth":335,"links":1380},[],"content:portfolio:brand-website.md","portfolio/brand-website.md","portfolio/brand-website",{"_path":1385,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1386,"description":1387,"order":1388,"isActive":7,"longDescription":1389,"category":1390,"tags":1391,"recommended":1397,"client":1398,"year":1399,"url":1400,"metrics":1401,"challenge":1412,"solution":1413,"results":1414,"body":1419,"_type":350,"_id":1423,"_source":352,"_file":1424,"_stem":1425,"_extension":355},"/portfolio/ecommerce-platform","E-commerce Platform","A modern e-commerce platform with seamless checkout experience, inventory management, and analytics dashboard.",5,"We developed a comprehensive e-commerce solution that transforms online shopping into a seamless, enjoyable experience. The platform handles thousands of daily transactions with lightning-fast performance.","E-Commerce",[1392,1393,1394,1395,1396],"Vue.js","Node.js","PostgreSQL","Stripe","Redis",[370,371,372],"RetailCo","2024","https://example.com",[1402,1405,1408],{"value":1403,"suffix":1361,"label":1404},200,"Conversion rate lift",{"value":1406,"suffix":1361,"label":1407},40,"Cart abandonment down",{"value":1409,"suffix":1410,"label":1411},99,".9%","Peak sales uptime","The client needed a scalable e-commerce platform that could handle high traffic during sales events while maintaining fast page loads and a smooth checkout experience.","We built a modern JAMstack architecture with server-side rendering, implemented intelligent caching strategies, and created a streamlined checkout flow that reduced cart abandonment by 40%.",[1415,1416,1417,1418],"200% increase in conversion rate","40% reduction in cart abandonment","99.9% uptime during peak sales","\u003C 1 second page load times",{"type":28,"children":1420,"toc":1421},[],{"title":8,"searchDepth":335,"depth":335,"links":1422},[],"content:portfolio:ecommerce-platform.md","portfolio/ecommerce-platform.md","portfolio/ecommerce-platform",{"_path":1427,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1428,"description":1429,"order":1430,"isActive":7,"category":1431,"tags":1432,"recommended":1435,"client":8,"year":8,"metrics":1437,"challenge":1447,"solution":1448,"results":1449,"body":1453,"_type":350,"_id":1457,"_source":352,"_file":1458,"_stem":1459,"_extension":355},"/portfolio/fintech-platform","FinTech Platform","Financial technology platform with real-time trading, portfolio management, and market analysis.",9,"Web App",[1433,1434,1396],"React","Python",[370,1023,1436],"logify",[1438,1442,1445],{"value":1439,"suffix":1440,"label":1441},50,"ms","Target UI update latency",{"value":1443,"suffix":1368,"label":1444},15,"Markets & instruments",{"value":1409,"suffix":1410,"label":1446},"Platform uptime goal","The client needed a real-time trading and portfolio platform with low latency and reliable market data.","We built a React frontend with WebSocket-driven updates, Python backend for analytics, and Redis for real-time data and caching.",[1450,1451,1452],"Real-time portfolio and market updates","Low-latency order execution","Scalable, secure architecture",{"type":28,"children":1454,"toc":1455},[],{"title":8,"searchDepth":335,"depth":335,"links":1456},[],"content:portfolio:fintech-platform.md","portfolio/fintech-platform.md","portfolio/fintech-platform",{"_path":1461,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1462,"description":1463,"order":1464,"isActive":7,"category":1431,"tags":1465,"recommended":1468,"client":8,"year":8,"metrics":1469,"challenge":1478,"solution":1479,"results":1480,"body":1484,"_type":350,"_id":1488,"_source":352,"_file":1489,"_stem":1490,"_extension":355},"/portfolio/healthcare-portal","Healthcare Portal","Secure patient portal with appointment scheduling, medical records, and telemedicine features.",10,[1392,1466,1467],"Laravel","MySQL",[370,1436,371],[1470,1472,1475],{"value":1015,"suffix":8,"label":1471},"Core portal modules",{"value":1473,"suffix":1361,"label":1474},100,"Traffic encrypted in transit",{"value":1476,"suffix":1361,"label":1477},60,"No-show reduction target","The healthcare provider needed a secure, compliant patient portal for scheduling appointments, viewing records, and telemedicine visits.","We built a HIPAA-aware portal with authentication, appointment scheduling, medical records access, and integrated video consultations.",[1481,1482,1483],"Secure, compliant patient experience","Reduced no-shows with reminders and self-service","Streamlined telemedicine workflows",{"type":28,"children":1485,"toc":1486},[],{"title":8,"searchDepth":335,"depth":335,"links":1487},[],"content:portfolio:healthcare-portal.md","portfolio/healthcare-portal.md","portfolio/healthcare-portal",{"_path":1492,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1493,"description":1494,"order":335,"isActive":15,"longDescription":1495,"category":1431,"tags":1496,"client":1504,"year":1399,"metrics":1505,"recommended":1514,"image":1515,"highlights":1516,"overview":1521,"challenge":1522,"solution":1523,"features":1524,"technical":1532,"results":1540,"sidebarTitle":1545,"body":1546,"_type":350,"_id":1550,"_source":352,"_file":1551,"_stem":1552,"_extension":355},"/portfolio/logify","Live fleet ops — less phone tag, faster compliance handoffs","Internal real-time platform for trucking — IoT through NATS JetStream, fleet dashboards, FMCSA-oriented reporting, Keycloak, Postgres + Redis.","A real-time operational system that gives trucking and logistics teams a single place to see fleet activity and device telemetry as it happens, backed by a clear service and data architecture (NATS JetStream ingestion, core domain services, PostgreSQL and Redis, read replicas) and tooling to prepare reports for FMCSA compliance and submissions.",[1497,1498,1499,1500,1393,1501,1502,1394,1396,1503],"AWS","IoT","Next.js","TypeScript","Keycloak","NATS","Compliance","Confidential",[1506,1509,1512],{"value":1507,"suffix":1368,"label":1508},500,"Fleet assets on one map",{"value":1510,"suffix":1368,"label":1511},12,"Ingest & domain services",{"value":1409,"suffix":1410,"label":1513},"Ingest reliability goal",[370,372,371],"/images/portfolio/logify.jpg",[1517,1518,1519,1520],"Live fleet visibility - trucks, status, and key telemetry on one screen","FMCSA report preparation - structured outputs to support regulatory filings and audit-ready documentation from operational data","End-to-end path from edge IoT devices through NATS JetStream ingestion into core services and the UI","Enterprise access control with Keycloak and role-aligned permissions","Logify is an internal operations product for a trucking and logistics company. It aggregates activity and telemetry from vehicles and connected devices into a real-time dashboard so dispatchers, fleet managers, and leadership can see what the fleet is doing without switching tools or waiting for batch reports.\n\nIt is built for people who run day-to-day transport operations: where assets are, whether they are moving or idle, and whether device data looks healthy - trustworthy operational signal, not just a map.\n\nThe problem it solves is fragmentation and latency. Fleet reality is continuous and distributed, but many teams still depend on delayed exports, phone calls, or disconnected systems. Logify centralizes that stream of truth so decisions are based on current state, not yesterday’s spreadsheet.\n\nIt also reduces the compliance scramble: the same operational record set can be shaped into reports suitable for FMCSA-related requirements, so safety and regulatory roles spend less time re-keying data across portals and spreadsheets.\n","Trucks and IoT endpoints sit on variable networks. Payloads can arrive out of order, reconnect often, or burst after offline periods - the system has to tolerate gaps without corrupting operational views.\n\nIngestion runs through NATS JetStream so bursts and reconnects land in a durable queue before core services consume them - parsing, versioning, validation, and back-pressure have to stay strict so one bad frame or spike does not destabilize the pipeline.\n\nOperators need hierarchy and clear states - not a dump of fields. The UI must stay readable under high update rates without feeling jittery or overwhelming.\n\nDifferent roles see different slices of the fleet and sensitive data. Keycloak integration must be reliable in the browser and on APIs, with consistent enforcement so permissions are not duplicated or drift between frontend and backend.\n","A Next.js (TypeScript) frontend provides the dashboard; a Node.js backend owns normalization, business rules, and APIs consumed by the app. IoT traffic lands in NATS JetStream first, then flows into modular core services (users and access, fleet control, device registry, compliance, live tracking, session state) so spikes and retries do not starve the UI path.\n\nPersistence uses PostgreSQL (with read replicas for scale-out reads) and Redis for hot state and caching; core services stay the single place domain rules live, with storage details isolated behind clear boundaries.\n\nAuthentication uses standard OIDC/OAuth flows with Keycloak; tokens gate API access, and role claims drive visibility. Frontend checks improve UX; backend enforcement is the source of truth.\n\nThe dashboard is organized around fleet overview, per-asset detail, and state-first panels (moving, stopped, offline, degraded device) rather than raw sensor dumps.\n\nReporting layers turn normalized fleet and operational data into exportable packages aligned with what FMCSA workflows expect - separate from the live UI path so batch generation does not compete with real-time ingestion.\n\nPlatform observability covers API documentation (Swagger), centralized logging, deployment pipelines, real-time metrics, and alerting so operations can see ingestion health, service errors, and capacity signals alongside the product.\n",[1525,1526,1527,1528,1529,1530,1531],"Real-time truck monitoring: a live operational picture without manual refresh or reconciling multiple sources","Status and telemetry: location and activity-style signals with device health so 'is this truck working?' is answered from data","IoT ingestion: NATS JetStream queue between devices and core services for buffering, ordering where needed, and operational resilience","Role-based access: Keycloak identities; permissions match operational responsibility","Scalable Node.js backend: clear modules for more device types, rules, and consumers over time","Data tier: PostgreSQL cluster with read replicas; Redis for session and state cache","FMCSA-oriented reporting: compile and format operational data into reports intended for carrier submission and internal compliance review",[1533,1534,1535,1536,1537,1538,1539],"Near real-time UI: server push or subscribe model so the dashboard stays current without hammering the API","NATS JetStream: durable ingestion path from IoT into core services; back-pressure and replay-friendly handling for flaky networks","Modular backend: queue and transport handling separated from domain logic and HTTP handlers - easier tests and safer changes","PostgreSQL plus read replicas; Redis for cache and fast session or state reads alongside the primary store","Keycloak: short-lived access tokens, refresh handling in the app, server-side verification on protected routes","Observability: Swagger for API docs, centralized logging, metrics, alerting, and CI/CD-style deployment visibility","Performance: batched or throttled UI updates for high-frequency telemetry, lean API payloads",[1541,1542,1543,1544],"~60% less manual effort on FMCSA-facing report assembly (ops estimate)","One live view of fleet and device health instead of reconciling exports and calls","Durable IoT ingestion so reconnects and bursts do not corrupt operational state","Role-aware access (Keycloak) enforced consistently in UI and APIs","Impact",{"type":28,"children":1547,"toc":1548},[],{"title":8,"searchDepth":335,"depth":335,"links":1549},[],"content:portfolio:logify.md","portfolio/logify.md","portfolio/logify",{"_path":1554,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1555,"description":1556,"order":1015,"isActive":15,"longDescription":1557,"category":1431,"tags":1558,"recommended":1562,"client":8,"year":1399,"url":8,"metrics":1564,"image":1572,"gallery":1573,"challenge":1576,"solution":1577,"results":1578,"features":1583,"body":1590,"_type":350,"_id":1594,"_source":352,"_file":1595,"_stem":1596,"_extension":355},"/portfolio/media-compressor","Cross-platform compressor + download funnel — MVP in weeks","Electron app for local image/video compression (Windows, macOS, Linux) plus a landing page with installers and onboarding.","Media Compressor is a full product build - the Electron desktop application and its marketing landing page. The app compresses images and video locally on Windows, macOS, and Linux with a simple drag-and-drop interface, batch processing, and format support. The landing page explains the product, hosts installers, and guides users from download to first use.",[1559,1560,1561,1393],"Electron","Next","Desktop App",[24,26,1563],"brand-website",[1565,1568,1570],{"value":340,"suffix":1566,"label":1567}," wk","MVP to installers",{"value":340,"suffix":8,"label":1569},"Desktop OS targets",{"value":1510,"suffix":1368,"label":1571},"Compression presets & paths","/images/portfolio/media-compressor.jpg",[1574,1575],"/images/portfolio/media-compressor_gallery1.jpg","/images/portfolio/media-compressor_gallery2.jpg","The project required both a reliable desktop app for local media compression and a clear online presence - a single place to learn about the app, download it for each platform, and understand how to use it.","We developed the Media Compressor Electron app with a modern UI, support for common image and video formats, configurable compression options, and cross-platform installers. We then built a conversion-focused landing page that showcases the app, provides direct download links, and walks users through installation and basic usage.",[1579,1580,1581,1582],"MVP shipped in 3 weeks (desktop app + landing + installers)","Local-only compression — no uploads, faster handoffs for heavy files","One page for discovery, download per platform, and first-run guidance","Batch workflows and format options suitable for creative and marketing teams",[1584,1585,1586,1587,1588,1589],"Electron desktop app with drag-and-drop and batch compression","Image and video compression with format and quality options","Cross-platform builds and installers","Landing page with hero, feature highlights, and download CTAs","Install and usage instructions on the site","Download section with version and release notes",{"type":28,"children":1591,"toc":1592},[],{"title":8,"searchDepth":335,"depth":335,"links":1593},[],"content:portfolio:media-compressor.md","portfolio/media-compressor.md","portfolio/media-compressor",{"_path":1598,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1599,"description":1600,"order":1601,"isActive":7,"category":1602,"tags":1603,"recommended":1605,"client":8,"year":8,"metrics":1606,"challenge":1614,"solution":1615,"results":1616,"body":1620,"_type":350,"_id":1624,"_source":352,"_file":1625,"_stem":1626,"_extension":355},"/portfolio/mobile-app-landing","Mobile App Landing","High-converting landing page for a mobile application with app store integrations.",11,"Mobile App",[1499,1604],"Framer Motion",[26,1563,25],[1607,1609,1611],{"value":1367,"suffix":1368,"label":1608},"Lighthouse performance",{"value":335,"suffix":8,"label":1610},"Store CTAs above the fold",{"value":1612,"suffix":8,"label":1613},6,"Story & proof sections","The client needed a high-converting landing page to showcase their mobile app and drive downloads from the App Store and Google Play.","We designed and built a focused landing page with clear value proposition, feature highlights, social proof, and prominent app store CTAs using Next.js and Framer Motion for engaging animations.",[1617,1618,1619],"Clear path to app store downloads","Responsive, mobile-first layout","Fast load and strong conversion focus",{"type":28,"children":1621,"toc":1622},[],{"title":8,"searchDepth":335,"depth":335,"links":1623},[],"content:portfolio:mobile-app-landing.md","portfolio/mobile-app-landing.md","portfolio/mobile-app-landing",{"_path":1628,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1629,"description":1630,"order":340,"isActive":15,"longDescription":1631,"category":1348,"tags":1632,"recommended":1634,"client":1635,"year":1636,"url":1637,"image":1638,"metrics":1639,"highlights":1647,"overview":1652,"challenge":1653,"solution":1654,"architecture":1655,"dataFlowSteps":1674,"screenshots":1680,"gallery":1692,"results":1693,"features":1698,"technical":1707,"body":1712,"_type":350,"_id":1716,"_source":352,"_file":1717,"_stem":1718,"_extension":355},"/portfolio/ozfame","Course funnel that turns social traffic into paid signups","Landing and checkout flow for an online course — mentor story, proof, pricing, and payment on legacy rails.","A conversion-focused marketing landing page built to promote and sell an online course focused on social media growth, personal branding, and influencer marketing. The page presents the course mentor, training program, benefits, and pricing tiers in a layout designed to increase course registrations.",[1560,1633],"TailwindCSS",[25,1563,24],"OZFame","2025","https://webinars-azure.vercel.app/","/images/portfolio/ozframe.jpg",[1640,1643,1645],{"value":1641,"suffix":1361,"label":1642},32,"Checkout completion lift",{"value":1388,"suffix":8,"label":1644},"Pricing tiers live",{"value":340,"suffix":1566,"label":1646},"Build & handoff",[1648,1649,1650,1651],"Single conversion path from hero to checkout with clear context for cold traffic","Trust stack (mentor credentials, outcomes, testimonials) introduced before pricing ask","Legacy payment rails integrated without changing backend billing operations","Mobile-first page architecture tuned for social-first acquisition campaigns","OZFame needed a focused course-sales experience that could convert social traffic quickly without sacrificing trust. Most visitors arrived from short-form content and had low context, so the page had to explain the mentor, the program, and expected outcomes in a concise but credible way.\n\nWe structured the page as a narrative funnel: value proposition, mentor proof, audience fit, curriculum shape, pricing options, and checkout CTAs. The build stayed intentionally lean so the team could iterate copy and offers rapidly as campaigns changed.\n","The core challenge was balancing persuasion with clarity. The previous flow either overshared too early or pushed users to checkout before enough confidence had been established, which led to drop-off in the lower funnel.\n\nAnother constraint was payment infrastructure. The client had an existing checkout stack they wanted to keep, so the landing needed to connect into those legacy rails reliably while preserving attribution and user intent across the handoff.\n","We implemented the funnel in Next.js with reusable, campaign-friendly sections and CTA patterns. Hero messaging anchors the offer first, then progressively adds trust and program detail before exposing full pricing options.\n\nThe checkout transition was integrated into the current payment system rather than replaced, which reduced migration risk and sped up launch. Tailwind-based components made it easy for the team to adjust content blocks, testimonials, and pricing copy between campaign cycles without redesigning the whole page.\n",[1656,1662,1668],{"title":1657,"items":1658},"Frontend",[1659,1660,1661],"Next.js landing page with modular sections for hero, proof, curriculum, pricing, FAQ","Responsive component system optimized for mobile-first social traffic","CTA hierarchy that preserves one primary conversion path to checkout",{"title":1663,"items":1664},"Backend / Routing",[1665,1666,1667],"Route and parameter handoff into the existing checkout rails","Event-friendly links to preserve campaign context during payment transition","Deployment and preview workflow on Vercel for fast content iteration",{"title":1669,"items":1670},"Integrations",[1671,1672,1673],"Legacy payment stack kept as system of record for transactions","Marketing attribution inputs passed from landing to checkout","Testimonial and pricing content managed directly in page content blocks",[1675,1676,1677,1678,1679],"Social ad / creator traffic","Course landing narrative","Pricing selection","Legacy checkout","Paid signup",[1681,1684,1688],{"title":1682,"caption":1683,"image":1638},"Landing hero and value proposition","Above-the-fold section optimized for cold social traffic.",{"title":1685,"caption":1686,"image":1687},"Mid-page proof and offer context","Supporting sections that build trust before pricing.","/images/portfolio/ozframe_gallery1.jpg",{"title":1689,"caption":1690,"image":1691},"Conversion blocks and checkout CTA","Offer framing and transition point into payment.","/images/portfolio/ozframe_gallery2.jpg",[1687,1691],[1694,1695,1696,1697],"+32% checkout completion vs. previous funnel (client-measured)","Single path from hero to payment without losing the narrative","Mentor proof, testimonials, and pricing structured for cold traffic","Strong Core Web Vitals on Vercel; mobile-first layout throughout",[1699,1700,1701,1702,1703,1704,1705,1706],"Conversion-focused hero section","Mentor introduction","Target audience sections","Course curriculum overview","Pricing plans with integration to existing payment system","Testimonials","FAQ section","Multiple call-to-action blocks",[1708,1709,1710,1711],"Next.js (TypeScript) rendering with TailwindCSS utility-first component styling","Reusable section-level blocks to iterate campaigns without full page rewrites","Legacy checkout handoff strategy to avoid billing platform migration risk","Vercel deployment flow for rapid previews and production releases",{"type":28,"children":1713,"toc":1714},[],{"title":8,"searchDepth":335,"depth":335,"links":1715},[],"content:portfolio:ozfame.md","portfolio/ozfame.md","portfolio/ozfame",{"_path":1720,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1721,"description":1722,"order":1723,"isActive":15,"longDescription":1724,"category":1348,"tags":1725,"client":1726,"year":1399,"url":1727,"metrics":1728,"recommended":1735,"image":1736,"gallery":1737,"challenge":1740,"solution":1741,"results":1742,"features":1747,"body":1757,"_type":350,"_id":1761,"_source":352,"_file":1762,"_stem":1763,"_extension":355},"/portfolio/polygraph-services-website","Polygraph Services Website","A professional service website for a polygraph testing company in Ukraine. Presents services, explains the testing process, and enables clients to request consultations or book examinations.",7,"A service-oriented website for a company that provides professional polygraph (lie detector) testing services for businesses and individuals. The site clearly explains available services, builds trust through professional presentation, and simplifies contacting the company for consultations or booking tests. The design focuses on clarity, credibility, and conversion by highlighting expertise, confidentiality standards, and a structured testing process.",[1560,1633],"ProPolygraph","https://propolygraph.com.ua/",[1729,1731,1733],{"value":1346,"suffix":8,"label":1730},"Trust & conversion sections",{"value":1732,"suffix":1368,"label":1608},98,{"value":340,"suffix":8,"label":1734},"Test types with pricing",[26,1563,24],"/images/portfolio/polygraph-services-website.jpg",[1738,1739],"/images/portfolio/polygraph-services-website_gallery1.jpg","/images/portfolio/polygraph-services-website_gallery2.jpg","The client needed a professional online presence that would explain polygraph services to businesses and individuals, convey trust and confidentiality, and make it easy to request consultations or book examinations without overwhelming visitors.","We built a Next-based service website with a clear hero and service overview, pricing for different test types, a step-by-step process (consultation → agreement → testing → report), benefits and trust indicators, FAQ, and a contact/inquiry form. The layout is responsive and trust-focused, deployed on Vercel.",[1743,1744,1745,1746],"Clear service and pricing presentation","Structured process that builds confidence","Easy path from visitor to consultation request","Fast, responsive experience on Vercel",[1748,1749,1750,1751,1752,1705,1753,1754,1755,1756],"Hero section with service overview","Explanation of polygraph services","Pricing for different types of tests","Process description (consultation → agreement → testing → report)","Benefits and trust indicators","Contact information and inquiry form","Service-based landing structure","Trust-focused design","Responsive layout",{"type":28,"children":1758,"toc":1759},[],{"title":8,"searchDepth":335,"depth":335,"links":1760},[],"content:portfolio:polygraph-services-website.md","portfolio/polygraph-services-website.md","portfolio/polygraph-services-website",{"_path":1765,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1766,"description":1767,"order":1612,"isActive":7,"longDescription":1768,"category":1431,"tags":1769,"recommended":1773,"client":1774,"year":1399,"challenge":1775,"solution":1776,"results":1777,"metrics":1782,"body":1791,"_type":350,"_id":1795,"_source":352,"_file":1796,"_stem":1797,"_extension":355},"/portfolio/saas-dashboard","SaaS Dashboard","Intuitive dashboard for managing business analytics with real-time data visualization and reporting.","A comprehensive analytics dashboard that helps businesses make data-driven decisions with real-time insights and beautiful visualizations.",[1433,1770,1771,1772,1500],"D3.js","Tailwind","GraphQL",[1023,371,372],"AnalyticsPro","Users struggled with complex data interfaces that made it difficult to extract actionable insights from their business metrics.","We redesigned the entire user experience with a focus on simplicity and clarity, implementing intuitive data visualizations and customizable dashboards.",[1778,1779,1780,1781],"60% increase in user engagement","45% faster task completion","92% user satisfaction score","3x increase in daily active users",[1783,1785,1788],{"value":1476,"suffix":1361,"label":1784},"Engagement lift",{"value":1786,"suffix":1361,"label":1787},45,"Faster task completion",{"value":340,"suffix":1789,"label":1790},"x","Daily active users",{"type":28,"children":1792,"toc":1793},[],{"title":8,"searchDepth":335,"depth":335,"links":1794},[],"content:portfolio:saas-dashboard.md","portfolio/saas-dashboard.md","portfolio/saas-dashboard",{"_path":1799,"_dir":1343,"_draft":7,"_partial":7,"_locale":8,"title":1800,"description":1801,"order":14,"isActive":15,"longDescription":1802,"results":1803,"category":1431,"image":1805,"url":1806,"tags":1807,"recommended":1811,"client":1800,"year":1636,"metrics":1812,"highlights":1819,"overview":1824,"challenge":1825,"solution":1826,"architecture":1827,"dataFlowSteps":1843,"screenshots":1849,"features":1861,"technical":1868,"body":1875,"_type":350,"_id":1879,"_source":352,"_file":1880,"_stem":1881,"_extension":355},"/portfolio/x-lead","X-Lead","Bulk email verification inside Google Sheets — results in the grid, optional HubSpot handoff.","Spreadsheet addon for bulk email verification with integrated lead management and HubSpot sync — lightweight UI in the sheet, API-backed checks, and an admin surface for operations.",[1804],"Automated 3-stage validation that reduced bounce rates for early-adopter sales teams by an average of 22%.","/images/portfolio/x-lead.jpg","https://x-lead.vercel.app/",[1499,1808,1809,1500,1810],"Google Sheets API","HubSpot API","Tailwind CSS",[370,1436,695],[1813,1815,1817],{"value":340,"suffix":8,"label":1814},"Validation stages (syntax, MX, SMTP)",{"value":1388,"suffix":8,"label":1816},"Surfaces — addon, API, landing, admin, CRM",{"value":335,"suffix":8,"label":1818},"CRM touchpoints (contacts + pipeline status)",[1820,1821,1822,1823],"Verify email columns in bulk without exporting CSVs or switching tools","API performs syntax, MX, and SMTP-oriented checks; heavy work runs off the UI thread via a queue","HubSpot sync for contacts and pipeline status so verified leads land where sales already works","Admin dashboard for usage, logs, and accounts — separate from the marketer’s spreadsheet flow","X-Lead is a spreadsheet addon for teams that live in Google Sheets but still need trustworthy email data. Users select ranges or columns, run verification, and write results back into the grid — same file, same workflow, fewer copy-paste round trips to standalone tools.\n\nBehind the addon sits a verification API and a queue-backed processing path so large batches do not time out in the browser or hit provider rate limits naively. A Next.js landing page covers acquisition and onboarding; an authenticated dashboard gives operators visibility into jobs, failures, and usage.\n\nThe product deliberately meets sales and growth teams where they work. Verified rows can sync into HubSpot as contacts with appropriate lifecycle or deal signals, so the spreadsheet remains the scratchpad while the CRM stays the system of record.\n","Email verification products usually assume a web app or API-only integration. Sheet users expect instant feedback for small jobs but also run multi-thousand-row lists — the system has to feel responsive while still being honest about async work and partial failures.\n\nCRM sync adds another constraint: HubSpot objects and pipelines are easy to get wrong. Updates must be idempotent enough for re-runs, scoped to the right portal, and visible in admin logs when something misconfigures.\n","The addon talks to a dedicated verification API. Interactive checks can return quickly for small selections; bulk jobs are accepted as work items, processed by workers that implement syntax validation, MX lookup, and SMTP-oriented probing, then persist results for the sheet to poll or pull.\n\nThe Next.js app hosts the public landing (hero, product explanation, signup/install path) and the authenticated admin experience — metrics, job history, user-level usage, and integration health. Serverless or API routes handle auth boundaries and proxy sensitive operations.\n\nHubSpot integration uses the official APIs to upsert contacts and map verification outcomes to properties or stages the team configures. The addon does not replace HubSpot; it feeds it from the sheet with clear audit trails in the admin panel.\n",[1828,1833,1839],{"title":1657,"items":1829},[1830,1831,1832],"Google Sheets addon UI — bulk actions, progress, and per-row results in-grid","Marketing landing (Next.js) — hero, product narrative, install / trial CTAs","Authenticated dashboard — accounts, usage, logs, integration settings",{"title":1834,"items":1835},"Backend",[1836,1837,1838],"REST-style API for verification requests and job status","Queue and workers for batch processing, retries, and rate-aware outbound checks","Persistence for jobs, results, and audit data consumed by the admin app",{"title":1669,"items":1840},[1841,1842],"Google Sheets API — sidebar UI, triggers, and writing results to cells","HubSpot API — contacts, properties, and pipeline / status updates from verified rows",[1844,1845,1846,1847,1848],"Sheet addon","Verification API","Queue & workers","Results store","HubSpot CRM",[1850,1854,1857],{"title":1851,"caption":1852,"image":1853},"Addon in the spreadsheet","Bulk verification and per-row status without leaving the grid.","/images/portfolio/x-lead-sheet.jpg",{"title":1855,"caption":1856,"image":1805},"Landing page","Hero, product summary, and path to install or sign up.",{"title":1858,"caption":1859,"image":1860},"Admin dashboard","Usage, job history, and user-level visibility for operations.","/images/portfolio/x-lead-dashboard.jpg",[1862,1863,1864,1865,1866,1867],"Bulk email verification from the spreadsheet UI — select a range, run checks, read results in place","Fast, API-driven validation pipeline (syntax, MX records, SMTP-oriented probes as applicable)","Lead workflow — track verification outcomes alongside your columns before pushing to CRM","HubSpot integration for contacts and status / pipeline alignment after verification","Admin panel for monitoring usage, logs, integrations, and user activity","Next.js landing for marketing, pricing context, and onboarding",[1869,1870,1871,1872,1873,1874],"Next.js (TypeScript) for landing and dashboard; Tailwind for layout and component styling","API routes / serverless handlers for auth, job submission, and webhook-style HubSpot callbacks where needed","Addon uses Google Apps Script and the Sheets API for UI surfaces and cell writes; calls backend over HTTPS","Worker tier decouples SMTP and DNS-heavy work from request/response latency","HubSpot client implemented against current REST APIs; mapping layer keeps sheet columns and CRM properties explicit and testable","Structured logging in admin for failed jobs, integration errors, and re-sync operations",{"type":28,"children":1876,"toc":1877},[],{"title":8,"searchDepth":335,"depth":335,"links":1878},[],"content:portfolio:x-lead.md","portfolio/x-lead.md","portfolio/x-lead",1777088736579]