Frontend development in San Francisco
An AI interface that looks good in a demo can feel broken to a customer. The answer streams in and then reflows the page, the stop button does nothing, a half-finished response is lost when the connection drops, and nobody can tell whether the product is thinking or stuck. In San Francisco those details decide whether an enterprise pilot turns into a contract.
We build frontends in React and Next.js for products where the slowest part is a model. Streaming text renders without jumping, cancellation actually cancels the request upstream, partial results survive a reconnect, and long-running work shows real progress instead of a spinner. We also build the unglamorous screens enterprise buyers ask about next: settings, usage, team management and billing.
San Francisco's software market is, for now, largely an AI market. The city is home to the best-known model companies and to a much larger layer of venture-backed startups building products on top of their models, alongside the SaaS, fintech and developer-tool companies that were here before. Most buyers are young companies with funding, a deadline set by their next raise, and more product ideas than engineers.
What they need is rarely the model. It is everything around it: queues for requests that take most of a minute, streaming that survives a dropped connection, fallbacks when a provider is rate-limiting, a record of what each request cost, and evaluation sets that tell you whether last night's prompt change made things better or worse. Then, often within months, the first enterprise customer arrives, and its IT team asks for single sign-on, automatic provisioning, roles their own admin can manage and an activity log they can export. A backend built for a demo meeting that list is where many pilots stall. We build the product and the infrastructure that make a model useful to paying customers, and the enterprise layer that turns a pilot into a contract.
Built In puts the average base salary for a software engineer in San Francisco at around $181,000, and the model companies compete for the same people with equity most startups cannot match. For a seed or Series A company, every senior hire becomes a search measured in months, and the roadmap waits while it runs. The work that piles up in the meantime is usually well defined: a provider integration, an admin console, a move to usage-based billing, a mobile companion app. That is the work we pick up in days and deliver in pieces you can judge on their own.
We work from Bengaluru with four hours of live overlap every working day, placed across your morning in San Francisco. Stand-ups, design calls and code review happen in that window, with the engineer who writes the code. Everything decided outside it goes into your repository, your tracker and the architecture notes we write as we go, so you start each day knowing what moved.
We fit best when the work is defined and the roadmap will not wait for a hire: the product and infrastructure around a model, the enterprise features a first large customer asks for, or the months before your next engineer starts. Most teams begin with a fixed-price two-week piece. Agencies can bring us in white-label, under their own name.
Four ways this arrives.
We measure on real devices and real traffic first, not a lab score on a fast laptop. The fix is usually less JavaScript: a smaller bundle, images sized for the screen, and third-party scripts that stop blocking the first render.
A procurement checklist, a customer complaint, or a letter from a lawyer. We fix the causes rather than the line items: real buttons, labelled forms, focus that lands somewhere sensible, and automated checks in CI so it stays fixed.
Global state that everything reads, no types, and three versions of the same modal. We add TypeScript file by file, put tests on the flows that make money, and move shared pieces into one component library as screens are touched.
Usually for search visibility or first-load speed. We move it route by route behind the same URLs, so the old app keeps serving while the new one takes over, and nobody has to sign off a risky weekend cut-over.
A Next.js web app with five operational dashboards and Tableau reports rendered in place, without a second login.
Read the write-up →Asked by San Francisco teams.
How do you work with teams in San Francisco?+
We are in Bengaluru and overlap with you for four hours every working day, placed across your San Francisco morning. Stand-ups, design calls and code review happen live in that window, with the engineer who writes the code. We work inside your tools: Slack for conversation, GitHub for code and review, Linear for the plan. Anything decided outside the window is written down there, so nothing depends on memory.
Do you build for AI startups?+
Yes. Most of that work sits around the model rather than inside it: retrieval over your own data, evaluation sets that run on every prompt change, streaming interfaces, cost tracking per customer, fallbacks between providers, and logging that explains an answer after the fact. Then comes the enterprise layer your first large customer asks for: single sign-on, provisioning, admin roles and activity logs, built so the pilot can become a contract.
How does your rate compare to hiring in San Francisco?+
Built In puts the average base salary for a software engineer in San Francisco at about $181,000, before equity and benefits. Our published rate is $35 an hour, with a $5,000 minimum. There is no recruiting search and no employment overhead, and we can start within days. Most teams begin with a fixed-price two-week piece at $2,800, so you judge us on working code before committing to more.
Can you make our prototype ready for real customers?+
Yes, and it is a common place to start here. A prototype built fast for a demo usually needs the same things: model calls moved into queued, retried jobs, costs recorded per request, tests around the parts that change most, and deploys from CI. We read the code, send a written plan within a week, then take the most urgent piece as a fixed-price two-week job. The repository is yours throughout.
Do we need to move to Next.js?+
Not always. If the app sits behind a login and nobody finds it through search, a well-built React single-page app on Vite is simpler to host and easier to reason about. Next.js earns its keep when first load and search visibility matter, or when you want rendering close to the data. We will tell you which case you are before anyone rewrites a route.
Can you work from our Figma files?+
Yes, and we will ask questions about them. Designs rarely show the loading state, the empty state, the error, or what happens when a name is twice as long as the mock-up assumed. We raise those early and propose something, rather than inventing it quietly in code and leaving your designer to find out in review.
Will you build us a design system?+
We will build the one your product needs, which is usually smaller than people expect: design tokens, the components you actually use, and Storybook to show them. We extract it from the screens you already have rather than designing it in isolation, because a component library nobody migrates to is just a second way of doing things.
How do you handle accessibility?+
We build to WCAG 2.2 AA by default, test with a keyboard and a screen reader, and run automated checks in CI so regressions are caught before they ship. Automated tools find only part of the problem, so we also test the key journeys by hand: sign-up, checkout, and anything a user does every day.
Do you only do the front end, or the API as well?+
Either. A lot of front-end pain is really an API shaped for a different screen, and when that is the case we can fix both sides. If your backend team owns the API, we write down what the front end needs from it and agree the contract with them, rather than working around it in the browser.