Websites, engineered like infrastructure .
We are a two-desk studio that ships curated, performance-obsessed sites. Vanilla TypeScript on the frontend. Go and Rust where it matters. Nothing bloated, nothing imported for show.
Heavy stacks go out. Sharp ones come in.
Two halves. Engineering rigor and typographic taste.
Platform & backend
Go services, Rust where throughput matters, PostgreSQL that behaves. Observability from commit one. Traces, SLOs, error budgets. Boring infra so the interesting work can ship.
- → Go / Rust APIs and workers
- → Postgres schema design & migrations
- → CI/CD, IaC, reproducible deploys
- → OpenTelemetry, Prometheus, Grafana
- → Edge functions, caching, queues
Interface & front-of-house
Vanilla TypeScript. Tailwind. Every animation earns its frames. Every byte justifies itself. Sites that feel hand-tailored because they are, not spun out of a template generator.
- → UI/UX design, end-to-end
- → Marketing & product sites
- → Vanilla TS, no framework lock-in
- → Motion that respects reduced-motion
- → A11y and perf treated as features
Sharp tools. Few of them.
Surface
- TypeScriptstrict
- Vanilla JSnative
- Tailwind CSSv4
- Bunruntime
Platform
- Goservices
- Rusthot paths
- PostgreSQLprimary
- MySQLscale-out
- SQLiteedge / embed
Ops
- TerraformIaC
- GitHub ActionsCI
- Cloudflareedge
- OpenTelemetrytraces
- Grafana / Lokiobs
Start SQLite. Graduate to MySQL or Postgres only when load or ops demand it. Most marketing, CMS and portfolio sites never graduate.
Four weeks. Four phases. Nothing in between.
Discover
Audit what exists. Interview stakeholders. Map constraints, budgets, SLOs. Write the brief your team never had time to write.
Design
Typography system, component primitives, interaction grammar. Design in-browser, not in static mocks. Ship prototypes by end of week.
Build
Types, tests, telemetry. CI from the first commit. Daily deploys to staging. Perf budgets enforced, not aspired to.
Handover
Runbooks, dashboards, postmortem templates. Your team inherits a repo they can run. Not a black box we have to babysit.
How we actually work.
-
01
Performance is a feature.
If it doesn't load on a three-year-old phone over a bad train connection, it isn't finished. We budget kilobytes and milliseconds the way other studios budget time.
-
02
Fewer frameworks. Sharper code.
Most sites don't need a 300kb runtime. We reach for vanilla first, add complexity only when it earns its keep, and keep dependencies auditable.
-
03
Ship it like we own it.
SRE habits come baked in. SLOs, dashboards, runbooks, on-call thinking. We hand over systems our clients can actually operate.
-
04
Taste isn't optional.
Typography, spacing, motion, copy. All engineered with the same care as the API layer. The surface is the product.
Things we get asked every week.
Why no React / Next / Vue?
Because most websites are not applications. A marketing site, a docs hub, a portfolio. None of these need a client-side router and a 120kb runtime. Vanilla TypeScript plus a light static generator gets you to parity on features and beats anything framework-based on load time. When an SPA is genuinely the right tool, we will tell you, and pick one.
Can you work with our existing stack?
Yes. We have shipped inside Next.js, Laravel, Rails, Django, Flask, and a handful of in-house Go monoliths. The stack is a constraint, not a problem. We audit, fit in, and leave it tidier than we found it.
How small is "small"? How fast is "fast"?
Target: LCP under 1 second on 4G, total JS under 15kb on a typical marketing site, Lighthouse 100 across all four pillars on launch day. Real numbers, instrumented from staging, checked again every deploy.
Do you offer ongoing support?
Yes. Retainers for content updates, perf regressions, and on-call rotation. Most clients keep a small monthly envelope so we can ship fixes the day they are needed.
Pricing?
Fixed-fee per project, scoped after the discovery week. No hidden line items, no licence taxes, no per-seat tooling you inherit. If the scope moves, we re-quote before work continues.
Is AI writing the code?
We use LLMs like any other sharp tool. Scaffolding, boilerplate, reviews. The architecture, the taste calls, and the final byte you ship are human decisions. Nothing lands in main without a person behind it.
Got a project that deserves better than a template?
Write to us
contact@blackbao.studio ↗- Based
- Alicante, ES
- Timezone
- UTC+1 / +2
- Booking
- Q3 / Q4 open
- Languages
- EN · ES · FR