// 02 · 01 i Web · Producto
Web,
Productos completos de cara al usuario. Sitios institucionales con narrativa, dashboards densos, paneles internos, e-commerce. Renderizado moderno: SSR, streaming, edge.
Stack Next · ts · tailwind
LCP objetivo 1.4s p75
Tiempo medio 6 sem.
A11y AA · WCAG 2.2
Next.jsReactTypeScriptTailwindVercelCloudflare
~/proyecto · pnpm build
buildlogsgit
→pnpm build
▲ Next.js 15.2.0 · turbo
- Compiled ✓ in 8.4s (842 modules)
- Type checking ✓ tsc --noEmit
- Linting ✓ 0 errors · 0 warnings
RouteSizeFirst Load
○/2.1 kB112 kB
●/dashboard14.8 kB148 kB
●/dashboard/[org]9.2 kB142 kB
λ/api/webhooks/stripe0 B88 kB
○/(marketing)/[…slug]3.4 kB118 kB
✓build completed12.8s · 0 errors
→
main
node 22.4 · ts 5.6
build ok
12.8s
apps/web/app/(dashboard)/orders/page.tsx
treetsxdiff
app /
(dashboard)
orders
page.tsx
layout.tsx
loading.tsx
customers
api
components
middleware.ts
tailwind.config.ts
1import { Suspense } from "react";
2import { getOrders } from "@/lib/orders";
3import OrdersTable from "./table";
4
5type Props = { params: { org: string } };
6
7export default async function Page({ params }: Props) {
8 const orders = await getOrders(params.org);
9 return (
10 <Suspense fallback={<Skeleton/>}>
11 <OrdersTable data={orders}/>
12 </Suspense>
13 );
14}
feat/orders
tsx · utf-8 · ln 14
prettier
no errors
~/proyecto · pnpm e2e
unite2ecov
→playwright test --reporter=line
Running 28 tests using 4 workers · chromium · webkit · firefox
✓auth › login with valid credentials1.2s
✓auth › magic link flow2.4s
✓checkout › cart → payment → receipt4.8s
✓orders › create + cancel3.1s
✓dashboard › renders empty states0.9s
⚠webhooks › retries on 5xx2.6s · flaky 1/3
✓a11y › axe scan home + dashboard3.4s
✓i18n › ES ↔ EN switch persists0.7s
28 passed·1 flaky42.1s
html report → playwright-report/index.html
→
ci
playwright 1.48
28/28
42.1s
vercel deploy · --prod
previewprod
proyecto-web
main · 7c4a91f
▲ deploying
✓Cloning github.com/rem-lat/proyecto2.1s
✓Restored cache · 412 MB3.8s
✓Installing dependencies · pnpm14.2s
✓Running "build" · next build38.4s
✓Generating static pages · 24/245.2s
✓Uploading edge functions · 61.9s
●Assigning domain proyecto.com78%
✓deployedhttps://proyecto.com
edge: gru1, mia1, scl1 · cold-start 38ms · ttfb 112ms
→
main
vercel · iad1
live
1m 9s
01 / 04 · build