diff --git a/app/services/[slug]/ExpertisePageClient.tsx b/app/services/[slug]/ExpertisePageClient.tsx index 0928bc3c..986e5858 100644 --- a/app/services/[slug]/ExpertisePageClient.tsx +++ b/app/services/[slug]/ExpertisePageClient.tsx @@ -82,6 +82,8 @@ const bookingSubtext: Record = { "Tell us about your Angular project. Whether it\u2019s a new build, AngularJS migration, or performance optimization, we\u2019ll discuss architecture and give honest next steps.", "flutter": "Tell us about your Flutter project. Whether it\u2019s a new app, migration from native, or multi-platform expansion, we\u2019ll discuss architecture and give honest next steps.", + "go": + "Tell us about your Go backend requirements. Whether it\u2019s APIs, microservices, or a cloud-native migration, we\u2019ll discuss architecture and give honest next steps.", "react-native": "Tell us about your React Native project. Whether it\u2019s a new app, migration from native, or adding mobile to your React web app, we\u2019ll discuss architecture and give honest next steps.", "prometheus-monitoring": @@ -102,6 +104,7 @@ const technologyLogos: Record = { dotnet: "/technologies/dotnet-logo.svg", flutter: "/technologies/flutter-logo.svg", "react-native": "/technologies/react-logo.svg", + go: "/technologies/golang-logo.svg", }; // "What you get" content per technology - used in the hire section @@ -154,6 +157,15 @@ const whatYouGetContent: Record )} -
+
+ {/* Go: Secondary CTA between services grid and process timeline */} + {expertise.slug === "go" && ( +
+
+ +

+ Not Sure If Go Is Right for Your Project? +

+

+ We'll review your architecture and give an honest recommendation -- even if it means suggesting a different stack. +

+ + Schedule a Free Architecture Review + +
+
+
+ )} + + {/* React: Secondary CTA between services grid and decision framework */} + {expertise.slug === "react" && ( +
+
+ +

+ Ready to discuss your React project? +

+ + Schedule a Free Architecture Review + +

+ No sales pitch. Talk directly to our engineers. +

+
+
+
+ )} + {["frontend-development", "backend-development", "dotnet", "nextjs", "prometheus-monitoring", "istio-consulting", "thanos-long-term-storage"].includes(expertise.slug) && pageData.whoWeWorkWith && ( +
@@ -338,7 +404,7 @@ export default function ExpertisePageClient({ ) : ( @@ -384,8 +450,8 @@ export default function ExpertisePageClient({ )} {/* Mid-page CTA for dotnet/nextjs/nodejs/react/python/angular/flutter/react-native/prometheus-monitoring/istio-consulting - before Architecture section */} - {["dotnet", "nextjs", "nodejs", "react", "python", "angular", "flutter", "react-native", "prometheus-monitoring", "istio-consulting", "thanos-long-term-storage"].includes(expertise.slug) && ( -
+ {["dotnet", "nextjs", "nodejs", "react", "go", "python", "angular", "flutter", "react-native", "prometheus-monitoring", "istio-consulting", "thanos-long-term-storage"].includes(expertise.slug) && ( +
Prometheus Metrics Growing Faster Than Your Retention Budget? : expertise.slug === "istio-consulting" ? <>Not Sure If You Need a Service Mesh? - : <>Discuss Your {expertise.slug === "nextjs" ? "Next.js" : expertise.slug === "nodejs" ? "Node.js" : expertise.slug === "react" ? "React" : expertise.slug === "python" ? "Python" : expertise.slug === "angular" ? "Angular" : ".NET"} Project + : <>Discuss Your {expertise.slug === "nextjs" ? "Next.js" : expertise.slug === "nodejs" ? "Node.js" : expertise.slug === "react" ? "React" : expertise.slug === "go" ? "Go" : expertise.slug === "python" ? "Python" : expertise.slug === "angular" ? "Angular" : ".NET"} Project }

@@ -410,6 +476,8 @@ export default function ExpertisePageClient({ ? "Whether it\u2019s a new build, migration, or performance optimization, we\u2019re happy to talk through your situation." : expertise.slug === "nodejs" ? "Whether it\u2019s APIs, microservices, or a full backend migration, we\u2019re happy to talk through your situation." + : expertise.slug === "go" + ? "Whether it\u2019s APIs, microservices, or a cloud-native migration, we\u2019re happy to talk through your situation." : expertise.slug === "react" ? "Whether it\u2019s a new build, migration, or performance optimization, we\u2019re happy to talk through your situation." : expertise.slug === "python" @@ -458,7 +526,7 @@ export default function ExpertisePageClient({ )} {pageData.engagementModels && ( -

+
{/* "What you get" block with technology logo - before EngagementModels */} {whatYouGetContent[expertise.slug] && (
@@ -538,7 +606,7 @@ export default function ExpertisePageClient({ /> {/* Node.js / React / Python / Angular / Flutter: Pricing line + CTA after EngagementModels */} - {["nodejs", "react", "python", "angular", "flutter", "react-native"].includes(expertise.slug) && ( + {["nodejs", "react", "go", "python", "angular", "flutter", "react-native"].includes(expertise.slug) && (
{pageData.faqs.length > 0 && ( -
+
diff --git a/app/services/[slug]/ExpertisePageHero.tsx b/app/services/[slug]/ExpertisePageHero.tsx index e0bee0c1..6a289fd9 100644 --- a/app/services/[slug]/ExpertisePageHero.tsx +++ b/app/services/[slug]/ExpertisePageHero.tsx @@ -8,6 +8,7 @@ const heroCTAMap: Record = { "nextjs": { text: "Talk to a Next.js Engineer", href: "#book-call" }, "nodejs": { text: "Talk to a Node.js Engineer", href: "#book-call" }, "react": { text: "Talk to a React Engineer", href: "#book-call" }, + "go": { text: "Talk to a Go Engineer", href: "#book-call" }, "python": { text: "Talk to a Python Engineer", href: "#book-call" }, "angular": { text: "Talk to an Angular Engineer", href: "#book-call" }, "flutter": { text: "Talk to a Flutter Engineer", href: "#book-call" }, @@ -19,7 +20,7 @@ const heroCTAMap: Record = { const noSecondaryCTASlugs = [ "ai-engineering", "ai-agents", "dotnet", "nextjs", "nodejs", - "react", "python", "angular", "flutter", "react-native", + "react", "go", "python", "angular", "flutter", "react-native", "prometheus-monitoring", "istio-consulting", "thanos-long-term-storage", ]; @@ -90,6 +91,13 @@ const heroChildrenMap: Record = { { href: "#hire", text: "Need developers on your team?" }, ], }, + "go": { + badges: ["Free architecture review", "30-minute call", "Talk to engineers, not sales"], + links: [ + { href: "#services", text: "Need a system built?" }, + { href: "#hire", text: "Need Go developers on your team?" }, + ], + }, "python": { badges: ["Free architecture review", "30-minute call", "Talk to engineers, not sales"], links: [ diff --git a/app/services/[slug]/slug-sections/CustomStackTable.tsx b/app/services/[slug]/slug-sections/CustomStackTable.tsx index 7c9bd846..6514795d 100644 --- a/app/services/[slug]/slug-sections/CustomStackTable.tsx +++ b/app/services/[slug]/slug-sections/CustomStackTable.tsx @@ -127,9 +127,9 @@ const dataMap: Record = { }, react: { type: "three-column", - title: "Our", - highlight: "React", - afterHighlight: "Stack", + title: "React Technology", + highlight: "Stack", + afterHighlight: "We Use in Production", subtitle: "Every tool earns its place. Here\u2019s what we ship with and why.", whyHeader: "Why", @@ -196,7 +196,7 @@ const dataMap: Record = { }, ], bottomNote: - "We pick the tooling based on your project. A dashboard doesn\u2019t need Next.js and Vercel - React + Vite + CloudFront is faster to build and cheaper to run. A marketing site doesn\u2019t need Redux - server state with React Query is enough. The stack follows the problem.", + "Procedure picks the tooling based on your project. A dashboard doesn\u2019t need Next.js and Vercel - React + Vite + CloudFront is faster to build and cheaper to run. A marketing site doesn\u2019t need Redux - server state with React Query is enough. The stack follows the problem.", }, python: { type: "three-column", diff --git a/app/services/[slug]/slug-sections/FrameworkComparison.tsx b/app/services/[slug]/slug-sections/FrameworkComparison.tsx index dbfa4b77..3524eff7 100644 --- a/app/services/[slug]/slug-sections/FrameworkComparison.tsx +++ b/app/services/[slug]/slug-sections/FrameworkComparison.tsx @@ -48,8 +48,9 @@ const comparisonDataMap: Record = { ], bottomNote: ( <> - Many projects use both. A public marketing site on Next.js, an - authenticated dashboard on React + Vite, sharing the same component + Many projects use both. A public marketing site on{" "} + Next.js + , an authenticated dashboard on React + Vite, sharing the same component library and design system. We architect for this pattern regularly. ), diff --git a/app/services/[slug]/slug-sections/IntroStatement.tsx b/app/services/[slug]/slug-sections/IntroStatement.tsx index 4153fa31..49d57b95 100644 --- a/app/services/[slug]/slug-sections/IntroStatement.tsx +++ b/app/services/[slug]/slug-sections/IntroStatement.tsx @@ -19,6 +19,8 @@ const introStatements: Record = { "Procedure is a React Native development company that builds high-performance cross-platform mobile applications for fintech, media, and consumer-facing products where native-quality UX is a hard requirement. Since 2016, Procedure has shipped React Native apps processing real-time data, secure transactions, and media streams for clients including ESPN and KredX.", dotnet: "Procedure is a .NET development company that builds secure, high-availability backend systems, payment processing platforms, and enterprise APIs on the Microsoft stack. Since 2016, Procedure has delivered .NET solutions handling mission-critical transaction volumes for clients in payments, telecom, and fintech, including Pine Labs and MCLabs.", + go: + "Procedure is a software engineering consultancy based in Mumbai and San Francisco that builds Go microservices, APIs, and cloud-native infrastructure for product and platform teams.", }; export default function IntroStatement({ slug }: { slug: string }) { diff --git a/app/services/[slug]/slug-sections/TechDecisionTable.tsx b/app/services/[slug]/slug-sections/TechDecisionTable.tsx index 9447b4b6..61f4b2b4 100644 --- a/app/services/[slug]/slug-sections/TechDecisionTable.tsx +++ b/app/services/[slug]/slug-sections/TechDecisionTable.tsx @@ -63,9 +63,9 @@ const dataMap: Record = { }, react: { sectionId: "decision", - title: "Is React Right for Your", - highlight: "Project?", - subtitle: "The most popular frontend library isn\u2019t always the right one.", + title: "When to Choose React for Your", + highlight: "Project", + subtitle: "React is the most widely adopted frontend library in professional software development, with the largest ecosystem of third-party packages, component libraries, and developer tooling of any frontend technology. But the most popular library isn\u2019t always the right one.", cards: [ { label: "Dynamic, interaction-heavy UIs (dashboards, editors, tools)", @@ -89,46 +89,41 @@ const dataMap: Record = { }, ], bottomNote: ( -

- If SEO and page speed are your top priority,{" "} - - Next.js - {" "} - gives you server-side rendering, static generation, and edge functions - built on React. For structured enterprise apps with strict conventions,{" "} - - Angular - {" "} - provides routing, forms, and dependency injection out of the box. Need a - lightweight backend to pair with React?{" "} - - Node.js - {" "} - or{" "} - - Python - {" "} - depending on your workload. Not sure? That's what our{" "} - - architecture consultation - {" "} - is for. -

+
+

+ Choosing the Right Approach for Your Project +

+
+

+ Some projects start as “we need a React app” but turn out to need something slightly different. Here's how we help teams land on the right approach: +

+

+ If your project needs strong SEO and server-side rendering, we typically recommend{" "} + Next.js + {" "}- which is built on React, so your team still writes React components. +

+

+ If you need a cross-platform mobile app alongside your web app,{" "} + React Native + {" "}lets you share code across both. +

+

+ If your enterprise already runs{" "} + Angular + {" "}and wants consistency across teams, extending that investment can make more sense than introducing a new framework. +

+

+ Need a lightweight backend to pair with React?{" "} + Node.js + {" "}or{" "} + Python + {" "}depending on your workload. +

+

+ We'll always recommend what fits your situation. That's what the free architecture review is for. +

+
+
), }, python: { diff --git a/app/technologies/go/layout.tsx b/app/technologies/go/layout.tsx new file mode 100644 index 00000000..c7bde3c0 --- /dev/null +++ b/app/technologies/go/layout.tsx @@ -0,0 +1,36 @@ +import type { Metadata } from "next"; + +export const metadata: Metadata = { + title: + "Go Development Services | High-Performance APIs & Cloud-Native Systems", + description: + "Go development services for APIs, microservices, and cloud-native backends. Engineers who ship production Go on Kubernetes. Architecture review included.", + alternates: { + canonical: "/technologies/go", + }, + openGraph: { + title: + "Go Development Services | High-Performance APIs & Cloud-Native Systems", + description: + "Go development services for APIs, microservices, and cloud-native backends. Engineers who ship production Go on Kubernetes. Architecture review included.", + type: "website", + url: "/technologies/go", + }, + twitter: { + card: "summary_large_image", + title: + "Go Development Services | High-Performance APIs & Cloud-Native Systems", + description: + "Go development services for APIs, microservices, and cloud-native backends. Engineers who ship production Go on Kubernetes. Architecture review included.", + site: "@procedurehq", + creator: "@procedurehq", + }, +}; + +export default function GoLayout({ + children, +}: { + children: React.ReactNode; +}) { + return <>{children}; +} diff --git a/app/technologies/go/page.tsx b/app/technologies/go/page.tsx new file mode 100644 index 00000000..3f5977d9 --- /dev/null +++ b/app/technologies/go/page.tsx @@ -0,0 +1,28 @@ +import { notFound } from "next/navigation"; +import { + getTechnologyForListing, + getRelatedExpertiseForListing, +} from "@/lib/content"; +import ExpertisePageClient from "@/app/services/[slug]/ExpertisePageClient"; +import { ExpertisePageHero } from "@/app/services/[slug]/ExpertisePageHero"; + +export default function GoPage() { + const technology = getTechnologyForListing("go"); + + if (!technology) { + notFound(); + } + + const relatedPages = getRelatedExpertiseForListing( + technology.relatedExpertise || [], + ); + + return ( + } + /> + ); +} diff --git a/app/technologies/react/layout.tsx b/app/technologies/react/layout.tsx index 830c0efc..c6443b96 100644 --- a/app/technologies/react/layout.tsx +++ b/app/technologies/react/layout.tsx @@ -4,7 +4,7 @@ export const metadata: Metadata = { title: "React Development Services | 75+ Clients, 9+ Years", description: - "React development services for web applications, SPAs, dashboards, and component libraries. React 19, TypeScript, production-tested. Talk to engineers, not sales.", + "React development services for web apps, SPAs, and enterprise dashboards. React 19, TypeScript, free architecture review. Talk to engineers, not sales.", alternates: { canonical: "/technologies/react", }, @@ -12,7 +12,7 @@ export const metadata: Metadata = { title: "React Development Services | 75+ Clients, 9+ Years", description: - "React development services for web applications, SPAs, and dashboards. React 19, TypeScript, production-tested. Talk to engineers, not sales.", + "React development services for web apps, SPAs, and enterprise dashboards. React 19, TypeScript, free architecture review. Talk to engineers, not sales.", type: "website", url: "/technologies/react", }, @@ -21,7 +21,7 @@ export const metadata: Metadata = { title: "React Development Services | 75+ Clients, 9+ Years", description: - "React development services for web applications, SPAs, and dashboards. React 19, TypeScript, production-tested. Talk to engineers, not sales.", + "React development services for web apps, SPAs, and enterprise dashboards. React 19, TypeScript, free architecture review. Talk to engineers, not sales.", site: "@procedurehq", creator: "@procedurehq", }, diff --git a/components/expertise/ProcessTimeline.tsx b/components/expertise/ProcessTimeline.tsx index 5936400e..cf498873 100644 --- a/components/expertise/ProcessTimeline.tsx +++ b/components/expertise/ProcessTimeline.tsx @@ -3,6 +3,7 @@ import { m } from "framer-motion"; import { cn } from "@/lib/utils"; import { ReactNode } from "react"; +import { renderLinkedText } from "@/lib/render-linked-text"; interface ProcessStep { number: number; @@ -123,7 +124,7 @@ export function ProcessTimeline({

- {step.description} + {renderLinkedText(step.description)}

diff --git a/components/expertise/RelatedExpertise.tsx b/components/expertise/RelatedExpertise.tsx index f9fe06a2..4c1b1539 100644 --- a/components/expertise/RelatedExpertise.tsx +++ b/components/expertise/RelatedExpertise.tsx @@ -2,6 +2,7 @@ import { m } from "framer-motion"; import Link from "next/link"; +import { renderLinkedText } from "@/lib/render-linked-text"; interface RelatedPage { slug: string; @@ -79,7 +80,7 @@ export function RelatedExpertise({

- {page.description} + {renderLinkedText(page.description)}

diff --git a/content/services/frontend-development.mdx b/content/services/frontend-development.mdx index 2008212f..1e9d55bf 100644 --- a/content/services/frontend-development.mdx +++ b/content/services/frontend-development.mdx @@ -2,7 +2,7 @@ title: "Frontend Development Services" headline: "Frontend Development Services" headlineAccent: "for Modern Product Teams" -tagline: "Premium frontend engineering optimized for performance, SEO, and scale." +tagline: "Premium frontend engineering optimized for performance, SEO, and scale. [Explore all frontend services](/services/frontend-development/)." description: | Premium frontend development for product-led teams. React, Next.js, and Angular — component libraries, design systems, and performance optimization at scale. capabilities: diff --git a/content/technologies/go.mdx b/content/technologies/go.mdx new file mode 100644 index 00000000..bbae52a0 --- /dev/null +++ b/content/technologies/go.mdx @@ -0,0 +1,111 @@ +--- +title: "Go Development Services" +headline: "Go Development Services" +headlineAccent: "High-Performance APIs & Cloud-Native Systems" +description: "Scalable APIs, microservices, and cloud-native backends built by engineers who ship production Go systems. Architecture review included." +capabilities: + - title: "High-Performance APIs" + description: "REST and gRPC APIs built for throughput. Go's goroutines use ~2KB stack memory vs 1-8MB per thread in Java or C#, sustaining hundreds of thousands of concurrent connections on commodity hardware. We build APIs that serve 10,000+ requests per second on a single instance." + icon: "bolt" + - title: "Microservices Architecture" + description: "Service-oriented backends with clear domain boundaries, gRPC for inter-service communication, and distributed tracing with OpenTelemetry. Each service compiles to a single static binary -- Docker images under 20MB vs 200-500MB for Java containers. Pairs naturally with [Kubernetes](/services/kubernetes/) for orchestration." + icon: "workflow" + - title: "Cloud-Native Systems" + description: "Go was built for the cloud. Docker, Kubernetes, Terraform, [Prometheus](/services/prometheus-monitoring/) -- the core cloud infrastructure tools are written in Go. Go 1.26 (Feb 2026) ships the Green Tea GC by default and reduces cgo overhead by 30%. We build containerized services, Kubernetes operators, and serverless functions that scale automatically." + icon: "globe" + - title: "Real-Time & Concurrent Systems" + description: "WebSocket servers, event-driven architectures, and stream processing. Go's goroutines and channels handle hundreds of thousands of simultaneous connections without thread pools or callback hell. Chat systems, notification services, IoT data ingestion -- when your system needs to handle many things at once, Go is the right choice." + icon: "zap" + - title: "CLI Tools & Developer Infrastructure" + description: "Go compiles to a single static binary -- no runtime, no dependencies, no installation friction. We build CLI tools, internal developer platforms, and infrastructure automation. Docker, Terraform, and GitHub CLI are all written in Go for this reason." + icon: "code" + - title: "Backend Modernization & Migration" + description: "Migrating from [Python](/technologies/python/) or Node.js monoliths to Go microservices. We follow the Strangler Fig pattern -- incrementally replacing services while production stays live. Teams typically see 5-10x throughput improvement and 60-80% infrastructure cost reduction on migrated services." + icon: "document" +technologies: + - Go 1.26 + - Gin + - Echo + - Fiber + - gRPC + - Protocol Buffers + - PostgreSQL + - Redis + - MongoDB + - Docker + - Kubernetes + - Terraform + - AWS + - Google Cloud + - Prometheus + - OpenTelemetry + - GitHub Actions + - NATS +relatedExpertise: + - backend-development + - cloud + - kubernetes +process: + - number: 1 + title: "Architecture & Discovery (1-2 weeks)" + description: "Map system requirements, concurrency patterns, and data flow. You get a technical proposal covering API design (REST vs gRPC), service boundaries, database strategy, deployment architecture, and infrastructure approach. We decide on Go frameworks (Gin, Echo, or standard library) based on your project's specific needs -- not habit." + - number: 2 + title: "API Design & Contracts (1-2 weeks)" + description: "API specifications in OpenAPI or Protocol Buffers, database schemas designed, service communication patterns defined. Your frontend team can start building against mocked endpoints immediately. Contract-first development means fewer integration surprises later." + - number: 3 + title: "Development & Iteration (6-16 weeks)" + description: "Sprint-based delivery with preview deployments. Your team sees working services continuously, not at the end of a sprint. Automated tests and benchmarks written alongside code. Go's fast compilation means CI pipelines complete in minutes, not hours." + - number: 4 + title: "Load Testing & Optimization (1-2 weeks)" + description: "Go's built-in profiler (pprof) identifies CPU hotspots, memory allocations, and goroutine leaks. Load testing under production-realistic conditions with k6 or Locust. We optimize until performance targets are met -- specific latency percentiles, throughput numbers, and resource limits. Nothing ships until benchmarks pass." + - number: 5 + title: "Deployment & Handoff" + description: "Dockerized services, Kubernetes manifests or Terraform configs, [CI/CD pipelines](/services/devops/), Prometheus dashboards, and alerting rules. Complete documentation including architecture decision records and runbooks. Your team owns everything. Optional support retainer for ongoing optimization, but no lock-in." +engagementModels: + title: "Work With Our Go Engineers" + subtitle: "Engineers who ship production Go systems, not bootcamp graduates learning on your project." + models: + - title: "Dedicated Developer" + description: "Backend engineer specializing in Go. API design, database optimization, cloud infrastructure. Full technical ownership of assigned services." + bestFor: "Ongoing backend development, 3-month minimum engagement" + - title: "Backend Pod (2-4 Engineers)" + description: "Self-contained team owning full service delivery. Architecture, development, testing, deployment. Mixed seniority based on project complexity." + bestFor: "Multi-service platform, microservices migration, 6-month minimum" + - title: "Project-Based Delivery" + description: "Fixed-scope engagement with clear deliverables, timeline, and budget. Defined API specs, agreed milestones, transparent pricing." + bestFor: "Well-scoped projects with clear endpoints" +faqs: + - question: "When should we use Go instead of Node.js or Python?" + answer: "Go outperforms Node.js and Python by 10-50x in request throughput while using a fraction of the memory. Go is the better choice when performance, concurrency, or resource efficiency matters. Go APIs typically handle 10-50x more requests per second than equivalent Node.js or Python services, using 1/5 to 1/10 the memory. Choose Go for high-throughput APIs, microservices architectures, real-time systems, and infrastructure tooling. Choose [Node.js](/technologies/nodejs/) when your team already knows JavaScript and the workload is I/O-bound with moderate throughput. Choose [Python](/technologies/python/) when you need AI/ML libraries or rapid prototyping. For straightforward CRUD applications with moderate traffic, all three work -- Go's advantages become clear at scale. We'll tell you honestly if Go isn't the right fit -- for frontend work, data science, or rapid prototyping where Python is faster to ship, we'll recommend what actually makes sense for your project." + - question: "How does Go handle concurrency?" + answer: "Go uses goroutines -- lightweight threads managed by the Go runtime, not the operating system. A single Go process can run millions of goroutines simultaneously, each using only ~2KB of memory initially (compared to ~1MB per OS thread). Goroutines communicate through channels, which prevent the shared-memory bugs common in traditional multi-threaded programming. This makes Go's concurrency model both more efficient and safer than thread-based approaches in Java or C++. It's why Go is the language of choice for systems like Kubernetes, Docker, and cloud infrastructure tools." + - question: "Go vs Rust -- when should we choose which?" + answer: "Go prioritizes developer productivity and fast compilation. Rust prioritizes memory safety with zero-cost abstractions and no garbage collector. Choose Go for web services, APIs, microservices, and cloud infrastructure -- where development speed and operational simplicity matter most. Choose Rust for systems programming, embedded systems, WebAssembly, or anywhere garbage collection pauses are unacceptable (sub-microsecond latency requirements). Go's garbage collector is fast (sub-millisecond pauses in most cases), but Rust eliminates GC entirely. Most backend web services should choose Go; most systems-level or performance-critical libraries should consider Rust." + - question: "How much does Go development cost?" + answer: "A typical Go REST API with auth, database, and deployment takes 8-12 weeks and costs $25,000 to $60,000. A microservices platform with 4-8 services runs $60,000 to $200,000 over 12-20 weeks. Infrastructure tooling and CLI tools are typically $15,000 to $40,000. Costs depend on complexity, number of integrations, and team size. Our architecture consultation is free and scopes your specific project with transparent pricing." + - question: "Is Go good for microservices?" + answer: "Go is one of the best languages for microservices. Fast compilation produces small, static binaries (often 10-20MB) that start in milliseconds -- essential for container orchestration and auto-scaling. gRPC support is first-class. The standard library includes everything needed for HTTP servers, JSON handling, and database connectivity without heavy frameworks. Docker, Kubernetes, Istio, and most cloud-native tools are written in Go. Procedure's [backend development](/services/backend-development) and [Kubernetes](/services/kubernetes) teams work directly with Go microservices architectures." + - question: "Can you migrate our existing backend to Go?" + answer: "Yes. We follow the Strangler Fig pattern for backend migrations -- replacing services incrementally while production stays live. Typical migration path: identify the highest-impact services (usually the ones with performance bottlenecks or highest infrastructure costs), rewrite those in Go, route traffic gradually using a load balancer or API gateway. A mid-sized migration (3-5 services) typically completes in 12-20 weeks. Teams reduce infrastructure costs by 60-80% and improve response times by 5-10x on migrated services." + - question: "What Go frameworks do you use?" + answer: "We evaluate per project. Gin for REST APIs that need middleware, routing, and JSON validation -- it's the most popular Go web framework with a mature ecosystem. Echo for similar use cases with slightly better performance characteristics. Fiber for high-throughput APIs where raw speed matters. Standard library (net/http) for simple services or when you want zero external dependencies. gRPC with Protocol Buffers for inter-service communication. The right choice depends on your API style, team preference, and performance requirements. We recommend during the architecture phase." + - question: "How long does it take to build a Go backend?" + answer: "A REST API with auth, database, and basic CRUD takes 6-10 weeks. A microservices platform with service discovery, gRPC, and distributed tracing takes 12-20 weeks. A complete backend system with auth, caching, message queues, monitoring, and deployment pipeline takes 10-16 weeks. Timelines include Procedure's full delivery process: architecture review, API design, sprint-based development, load testing, and deployment setup." + - question: "Do you work with US-based teams from India?" + answer: "Yes. Our engineering team is based in Mumbai, India with working hours that overlap US EST and PST. We've delivered backend systems for clients across fintech, SaaS, and enterprise platforms. Communication happens over Slack, daily standups, and weekly demos. Starting at $3,500/month per developer for full-time dedicated engagement." + - question: "Gin vs Echo vs Fiber -- which Go framework should we use?" + answer: "Gin has the largest ecosystem and community. Echo has slightly better performance and cleaner middleware. Fiber is fastest in benchmarks but uses fasthttp instead of net/http, limiting ecosystem compatibility. For most enterprise projects, we recommend Gin or Echo. We help you choose during the architecture phase." + - question: "How do you evaluate Go developers during hiring?" + answer: "Multi-stage evaluation: idiomatic Go code review, concurrency design challenge (backpressure, graceful shutdown), and infrastructure assessment (Docker, Kubernetes, CI/CD). We test for Go anti-patterns -- goroutine leaks, improper mutex usage, channel deadlocks, and missing context cancellation." + - question: "Why is Go popular for cloud-native development?" + answer: "Go was designed at Google specifically for building large-scale distributed systems. The language compiles to static binaries with no external dependencies, starts in milliseconds, and has a tiny memory footprint -- all critical for containerized, auto-scaling environments. The cloud-native ecosystem is written in Go: Kubernetes, Docker, Terraform, Prometheus, Istio, etcd, and NATS. Building in Go means your application code and your infrastructure tools share the same language, the same debugging tools, and the same mental model. This alignment is why 75% of CNCF projects are written in Go." +cta: + title: "Ready to Discuss Your Go Project?" + description: "Talk directly with engineers, not sales. We'll assess fit and give honest next steps." + buttonText: "Talk to a Go Engineer" + buttonLink: "/contact-us" + supportingNote: "No obligation. No pressure. Clear technical direction." +seo: + title: "Go Development Services | High-Performance APIs & Cloud-Native Systems" + description: "Go development services for APIs, microservices, and cloud-native backends. Engineers who ship production Go on Kubernetes. Architecture review included." +--- diff --git a/content/technologies/react.mdx b/content/technologies/react.mdx index 3a704427..f33753f1 100644 --- a/content/technologies/react.mdx +++ b/content/technologies/react.mdx @@ -8,19 +8,19 @@ capabilities: description: "Single-page applications, multi-page React apps, and progressive web apps built with React 19 and TypeScript. We use Vite for fast builds, React Router for navigation, and Zustand or Redux Toolkit for state management. Not every React app needs Next.js. We'll tell you when it does and when it doesn't." icon: "globe" - title: "Dashboards & Data Visualization" - description: "Admin panels, analytics dashboards, and data-heavy interfaces with React, Recharts, D3, and AG Grid. Real-time updates via WebSockets, complex filtering, and role-based access. We've built dashboards handling 100K+ data points that stay responsive because the rendering strategy was right from the start." + description: "Admin panels, analytics dashboards, and data-heavy interfaces with React, Recharts, D3, and AG Grid. Real-time updates via WebSockets, complex filtering, and role-based access. We've built dashboards handling 100K+ data points with [Node.js](/technologies/nodejs/) backends that stay responsive because the rendering strategy was right from the start." icon: "chart" - title: "Component Libraries & Design Systems" - description: "Reusable component libraries built on Radix UI, shadcn/ui, or custom primitives. Storybook documentation, accessibility baked in, and tokens for consistent theming. Your design system becomes a shared language between designers and developers, not a Figma file nobody references." + description: "Reusable component libraries built on Radix UI, shadcn/ui, or custom primitives. Storybook documentation, accessibility baked in, and tokens for consistent theming. Your design system becomes a shared language between designers and developers, not a Figma file nobody references. Procedure has built and maintained design systems for product teams across fintech, SaaS, and enterprise applications." icon: "layers" - title: "React Native Cross-Platform" - description: "iOS and Android apps sharing 60-80% of code with your React web app. One team, one language, consistent UI. React Native with Expo for faster builds or bare workflow when you need native module access. We cover the overlap so you don't hire two separate mobile teams." + description: "React Native applications typically share 60-80% of their codebase with a React web app across iOS, Android, and web - including TypeScript types, business logic, API clients, and state management. React Native with Expo for faster builds or bare workflow when you need native module access. One team, one language - so you don't need two separate mobile teams. [Learn about our React Native development](/technologies/react-native/)." icon: "document" - title: "Performance Optimization" - description: "React Compiler adoption, bundle analysis, code splitting, lazy loading, and rendering strategy optimization. We've taken Lighthouse scores from 40 to 95+ on production apps. Specific, measurable improvements - not vague 'we optimize performance' promises." + description: "React Compiler adoption, bundle analysis, code splitting, lazy loading, and rendering strategy optimization. React Compiler v1.0, released October 2025, eliminates manual useMemo and useCallback - on production codebases, enabling it reduces unnecessary re-renders by 25-40%. Meta reports up to 12% faster initial loads and 2.5x faster interactions after compiler adoption. Procedure has taken Lighthouse scores from 40 to 95+ on production React apps. Specific, measurable improvements - not vague 'we optimize performance' promises." icon: "bolt" - title: "Legacy Frontend Migration" - description: "Moving from jQuery, AngularJS, Backbone, or aging React class components to modern React 19 with hooks and TypeScript. Incremental migration - your app stays live while we rebuild. Component by component, route by route. No big-bang rewrites." + description: "Migrating from jQuery, AngularJS, Backbone, or aging React class components to modern React with hooks and TypeScript. We follow the Strangler Fig pattern - incrementally replacing legacy components while the application stays live. Component by component, route by route. No big-bang rewrites. Class component to hooks migration within React typically completes in 4-8 weeks for mid-sized codebases." icon: "workflow" technologies: - React 19 @@ -44,7 +44,7 @@ relatedExpertise: process: - number: 1 title: "Architecture & Discovery (1-2 weeks)" - description: "We map your product requirements, user flows, and integration points. You get a technical proposal covering React vs Next.js decision, state management approach, component architecture, API integration strategy, hosting recommendation, and CI/CD setup. No code until the architecture makes sense." + description: "Procedure's engineering team maps your product requirements, user flows, and integration points. You get a technical proposal covering React vs [Next.js](/technologies/nextjs/) decision, state management approach, component architecture, API integration strategy, hosting recommendation, and CI/CD setup. No code until the architecture makes sense." - number: 2 title: "Design & Component System (1-2 weeks)" description: "Component library setup in Storybook, design tokens configured, and core UI patterns built. Your team can review and interact with components before a single page is assembled. Figma-to-code pipeline so designers and developers work from the same source." @@ -56,7 +56,7 @@ process: description: "Lighthouse audits, Core Web Vitals optimization, cross-browser testing, accessibility audit (WCAG 2.1 AA), and load testing. React Compiler enabled and verified. Nothing launches until performance meets agreed benchmarks." - number: 5 title: "Handoff & Support" - description: "Complete documentation, component library with Storybook, architecture decision records, and deployment runbooks. Your team owns the codebase. Optional support retainer for ongoing work, but no lock-in." + description: "Complete documentation, component library with Storybook, architecture decision records, and deployment runbooks from Procedure's engineers in Mumbai. Your team owns the codebase fully. Optional support retainer for ongoing work, but no lock-in." engagementModels: title: "Hire React Developers" subtitle: "Experienced React engineers who plug into your team and ship from week one." @@ -74,19 +74,23 @@ faqs: - question: "How much does React development cost?" answer: "It depends on scope. A dashboard or internal tool with 10-15 screens typically runs $20,000 to $50,000. A SaaS application frontend with auth, real-time features, and integrations sits in the $50,000 to $150,000 range. Enterprise platforms with design systems, component libraries, and multi-team architecture can run $150,000 to $400,000+. Our architecture consultation is free and scopes your specific project." - question: "React vs Angular - which should I choose?" - answer: "React gives you flexibility and a massive ecosystem. You pick your routing, state management, and build tools. Angular gives you structure - routing, forms, HTTP, and dependency injection are built in. For interaction-heavy UIs, dashboards, and teams that want to choose their own tools, React is the better fit. For large enterprise apps with strict conventions and multiple teams, Angular's opinionated architecture keeps code consistent. We build with both and recommend based on your situation." + answer: "React gives you flexibility and a massive ecosystem. You pick your routing, state management, and build tools. [Angular](/technologies/angular/) gives you structure - routing, forms, HTTP, and dependency injection are built in. For interaction-heavy UIs, dashboards, and teams that want to choose their own tools, React is the better fit. For large enterprise apps with strict conventions and multiple teams, Angular's opinionated architecture keeps code consistent. We build with both and recommend based on your situation." + - question: "How does React compare to Vue.js?" + answer: "React and Vue.js are both strong choices for building modern frontends - the right pick depends on your team and project context. React has the larger ecosystem, more third-party libraries, and a deeper talent pool, which makes it easier to scale teams and find community solutions. Vue has a gentler learning curve and ships with more built-in opinions on routing and state management, which can speed up initial development. For enterprise applications, cross-platform needs with React Native, and teams that want maximum flexibility in architectural decisions, React is typically the better fit. Both frameworks are production-ready and well-maintained. Procedure currently builds with React and recommends it for most commercial projects, though we evaluate technology choices on a per-project basis." - question: "Should I use React or Next.js?" - answer: "If your app needs SEO, server-side rendering, or static generation, use Next.js - it's React with a framework around it. If you're building an internal tool, dashboard, or authenticated SPA where SEO doesn't matter, plain React with Vite is simpler, faster to develop, and cheaper to host. Many projects use both: Next.js for the public site, React + Vite for the authenticated app. We help you decide based on what the product actually needs." + answer: "Not every React application needs [Next.js](/technologies/nextjs/). Applications that don't require SEO, server-side rendering, or static generation - such as internal dashboards, admin panels, and authenticated SPAs - are faster to build and cheaper to host with React and Vite. If your app does need SEO or server rendering, Next.js handles that natively - it's React with a framework around it. Many projects use both: Next.js for the public site, React + Vite for the authenticated app. We help you decide based on what the product actually needs." - question: "Can you build mobile apps with React?" - answer: "Yes. React Native uses the same component model and mental model as React for web. Your team shares TypeScript types, business logic, and sometimes entire components between web and mobile. We've built cross-platform apps sharing 60-80% of code across iOS, Android, and web." + answer: "Yes. React Native uses the same component model and mental model as React for web. Your team shares TypeScript types, business logic, and sometimes entire components between web and mobile. We've built cross-platform apps sharing 60-80% of code across iOS, Android, and web. For mobile-specific work, we also offer [dedicated React Native development](/technologies/react-native/)." - question: "What about React performance in 2026?" answer: "React 19 with the React Compiler (v1.0, shipped Oct 2025) handles memoization automatically. No more manual useMemo and useCallback. Activity API lets you pre-render hidden parts of the app for instant navigation. Server Components (via Next.js) reduce client-side JavaScript by 30-50% for applicable pages. We enable the Compiler on every new project and have seen 25-40% fewer re-renders on existing codebases after adoption." - question: "How long does it take to build a React application?" - answer: "A dashboard or internal tool: 8-12 weeks. A SaaS frontend with auth, integrations, and real-time features: 12-20 weeks. An enterprise platform with design system and component library: 16-28 weeks. These assume a team of 2-4 developers and include architecture, development, testing, and deployment." + answer: "A typical React dashboard takes 8-12 weeks. SaaS frontends run 12-20 weeks. Enterprise platforms with design systems take 16-28 weeks. These assume a team of 2-4 developers and include architecture, development, testing, and deployment. Timelines include Procedure's full delivery process: architecture review, sprint-based development with preview deployments, QA, performance optimization, and handoff." - question: "Do you work with US-based teams from India?" answer: "Yes. Our engineering team is based in India (Mumbai) with working hours that overlap US EST and PST. We've delivered React projects for US clients across fintech, healthcare, and enterprise SaaS. Communication happens over Slack, daily standups, and weekly demos." - question: "What React version do you use?" answer: "React 19 (currently 19.2) for all new projects. We use TypeScript in strict mode across every codebase. For existing applications, we help teams upgrade from older React versions - including class component to hooks migration, React Router upgrades, and React Compiler adoption." + - question: "How do I evaluate a React development company?" + answer: "Look for five things. First, check if they use current React - React 19, TypeScript in strict mode, React Compiler enabled. Teams still on class components or JavaScript-only codebases are behind. Second, ask about build tooling - Vite or Next.js, CI/CD pipelines, preview deployments on every PR. Third, ask to see a Storybook or component library from a past project - it shows how they think about reusable architecture. Fourth, check if they understand when NOT to use React. A team that recommends the same stack for every project doesn't understand the ecosystem. Fifth, talk to their engineers directly, not just project managers or account executives. At Procedure, your first call is with the developers who will write your code." cta: title: "Ready to Discuss Your React Project?" description: "Talk directly with engineers, not sales. We will assess fit and give honest next steps." @@ -94,6 +98,6 @@ cta: buttonLink: "/contact-us" supportingNote: "No obligation. No pressure. Clear technical direction." seo: - title: "React Development Services | Web Apps, SPAs & UI Engineering" - description: "React development services for web applications, SPAs, dashboards, and component libraries. React 19, TypeScript, production-tested. Talk to engineers, not sales." + title: "React Development Services | Web Apps, SPAs & Dashboard Development" + description: "React development services for web apps, SPAs, and enterprise dashboards. React 19, TypeScript, free architecture review. Talk to engineers, not sales." --- diff --git a/lib/technologies-hub-data.ts b/lib/technologies-hub-data.ts index d25218a7..f33b7a32 100644 --- a/lib/technologies-hub-data.ts +++ b/lib/technologies-hub-data.ts @@ -173,7 +173,7 @@ export const technologies: TechnologyItem[] = [ category: "backend", description: "High-performance compiled language for cloud-native services", logoPath: "/technologies/golang-logo.svg", - href: null, + href: "/technologies/go", }, { name: "Rust",