The public website and portfolio for Bobadilla Technologies, a software consultancy. It includes the company landing page, services catalog, pricing, a blog powered by Sanity CMS, and a contact form backed by Cloudflare D1.
- Framework — Next.js 16 App Router (Turbopack)
- Deployment — Cloudflare Workers via OpenNext.js
- CMS — Sanity (blog posts, authors)
- Database — Cloudflare D1 (SQLite) + Drizzle ORM
- Styling — Tailwind CSS v4 with custom design tokens
- i18n — next-intl (en, es, pt)
- Language — TypeScript throughout
Blog posts are authored in a separate Sanity Studio: github.com/UltiRequiem/studio-bobadilla-tech-blogs
Posts are fetched from Sanity at build time and pre-rendered as static HTML. No API key needed — the dataset is public. To publish: write in the Studio, then redeploy this site.
docs/core/architecture.md— system architecture, API patterns, i18n, Sanity integrationdocs/design-plans/— per-feature design records
pnpm install
pnpm dev # Next.js dev server
pnpm build # Production build (Next.js + OpenNext Cloudflare bundle)
pnpm deploy # Deploy to Cloudflare Workerspnpm test # Run the unit test suite once
pnpm test:watch # Watch mode for local development
pnpm test:coverage # Generate text, JSON, HTML, and lcov coverage reportsCoverage output is written to coverage/, including coverage/lcov.info for Codecov uploads.
Keep this baseline focused on unit tests for pure logic and server-safe helpers. Route handlers and component tests can be added later with dedicated runtime mocks.
See CLAUDE.md for conventions, architecture patterns, and contributor guidelines.