Comprehensive IT services to support your business needs, including software development, system integration, cloud solutions, GIS, cybersecurity, and ongoing maintenance.
Collecting inspection, survey and sensor data is only useful when it's reliable and accessible. Narzary builds tools that transform raw field inputs into dashboards and reports so teams can make timely, evidence-based decisions.
We design secure cloud platforms, automated deployments and monitoring so systems remain available and auditable. That means fewer surprises on site and predictable, cost-conscious operations.
How data moves from the field to decisions matters. Here’s an example of a mobile inspection workflow, and the platform traits we deliver: reliable offline capture, secure sync, and fast analytics.
Ingest field reports, photos and sensor telemetry even when connectivity is intermittent; sync reliably when online.
Mobile clients work offline, queue changes locally and reconcile conflicts safely during sync.
Well-defined APIs and connectors enable integration with GIS, ERP and reporting systems.
Built-in observability, logging and alerting so teams get notified about critical incidents and data regressions.
Architected for scale: services and data storage that grow with your project and keep costs predictable.
Native support for geospatial data and tile maps used in planning and asset management workflows.
Fine-grained role and permission models for users and service accounts across projects.
Plugin points and webhooks let you trigger downstream workflows and automate reporting.
We design forms, labels and flows with accessibility in mind so public-facing projects are usable by everyone.
Interfaces support keyboard users and screen readers for broad accessibility coverage in field and office workflows.
Clear focus order and form interactions make data capture faster and reduce input errors on mobile devices.
We test flows using assistive tech and real-world scenarios to ensure the application works in practice for diverse users.
Our APIs, SDKs and deployment patterns are designed for engineering teams working on infrastructure projects. Clear contracts, examples and repeatable deployment recipes reduce friction between field teams and platform engineers.
Clear, versioned APIs and SDKs for stable integrations.
Examples, recipes and sample projects to get you started.
Hooks and extension points for custom business logic.
Patterns and guidance for hardened deployments and monitoring.
// Add styles with your preferred CSS technology
const TooltipContent = styled(Tooltip.Content, {
backgroundColor: "black",
borderRadius: "3px",
padding: "5px"
});
const PopoverContent = styled(Popover.Content, {
backgroundColor: "white",
boxShadow: "0 2px 10px -3px rgb(0 0 0 / 20%)",
borderRadius: "3px",
});
const DialogContent = styled(Dialog.Content, {
backgroundColor: "white",
boxShadow: "0 3px 15px -4px rgb(0 0 0 / 30%)",
borderRadius: "5px",
});
// Compose a custom Tooltip component
export const StatusTooltip = ({ state, label }) => {
return (
<Tooltip.Root>
<Tooltip.Trigger asChild>
<Text>
<Status variant={state} />
</Text>
</Tooltip.Trigger>
<Tooltip.Portal>
<TooltipContent>
<Tooltip.Arrow />
{label}
</TooltipContent>
</Tooltip.Portal>
</Tooltip.Root>
);
}; // Compose a Popover with custom focus and positioning
export const StatusPopover = ({ children }) => {
const popoverCloseButton = React.useRef(null);
return (
<Popover.Root>
<Popover.Trigger>View status</Popover.Trigger>
<Popover.Portal>
<PopoverContent
align="start"
collisionPadding={10}
onOpenAutoFocus={(event) => {
// Focus the close button when popover opens
popoverCloseButton.current?.focus();
event.preventDefault();
}}
>
{children}
<Popover.Close ref={popoverCloseButton}>
Close
</Popover.Close>
</PopoverContent>
</Popover.Portal>
</Popover.Root>
);
}; // Compose a Dialog with custom focus management
export const InfoDialog = ({ children }) => {
const dialogCloseButton = React.useRef(null);
return (
<Dialog.Root>
<Dialog.Trigger>View details</Dialog.Trigger>
<Dialog.Overlay />
<Dialog.Portal>
<DialogContent
onOpenAutoFocus={(event) => {
// Focus the close button when dialog opens
dialogCloseButton.current?.focus();
event.preventDefault();
}}
>
{children}
<Dialog.Close ref={dialogCloseButton}>
Close
</Dialog.Close>
</DialogContent>
</Dialog.Portal>
</Dialog.Root>
);
};We deliver solutions used by municipalities and contractors — small pilots ramp into district- or state-wide deployments with documented operations and data governance practices.
We provide implementation guides, operator training and handover materials so your teams can run and maintain systems after deployment.