← Back to projects

Muebles San Francisco JYN: corporate site + admin catalog

This project combines commercial presentation and operational autonomy. The public side (home, catalog, about, contact) is paired with a private admin area so staff can manage and publish catalog content without constant engineering intervention.

Challenge

Build a bilingual platform that supports both customer-facing discovery and secure internal catalog management.

Solution

Implemented a domain-oriented architecture with Next.js App Router, Prisma/PostgreSQL, and next-intl. Public pages consume clean catalog view models, while the admin area runs server actions with Zod validation and route revalidation.

Results

  • - Consistent bilingual corporate presence for end customers
  • - Catalog operations handled by admins without code edits
  • - Controlled publication flow via publishedAt
  • - Modular technical base ready for future features

Technical system profile

Overview

Bilingual web platform for Muebles San Francisco JYN with two surfaces: a public commercial website and a private admin panel to manage catalog categories and items.

Problem solved

  • - Unifies corporate presence and catalog operations in one platform
  • - Enables publishing/updating categories and items without manual deploy workflows
  • - Keeps multilingual navigation, SEO, and content consistent
  • - Separates customer-facing experience from internal operations

Stack and technologies

  • - Next.js 15 + React 19 + TypeScript
  • - Tailwind CSS v4 with semantic design tokens
  • - Prisma + PostgreSQL
  • - next-intl for es/en localization
  • - Server Actions + Zod
  • - Formspree for contact form
  • - Zustand for focused UI state

How it is organized

  • - app/: thin routes, layouts, and page composition
  • - features/: domain modules (catalog, admin, team, suppliers)
  • - shared/: reusable UI and shared infrastructure
  • - i18n/: routing, request config, localized navigation
  • - Layer flow: Route -> Feature -> Service -> Repository -> Prisma

Main workflow

  • - Middleware applies i18n and admin route protection
  • - Locale layout mounts global shell and structured SEO
  • - Public pages consume catalog view models
  • - Admin panel runs validated/normalized server actions
  • - Public cached routes are revalidated after admin writes

Key modules

  • - Catalog: repository/service/mapper with publication filters
  • - Admin: forms, CRUD actions, Zod validation
  • - i18n: es/en locales with localized links/messages
  • - SEO: centralized metadata, canonical, alternates, sitemap, robots
  • - Contact: RHF form pipeline to Formspree

Strengths

  • - Clear domain separation and maintainability
  • - Strong SEO and internationalization foundation
  • - Complete DevOps workflow with CI and deployment docs
  • - Data model prepared for catalog growth

Risks / technical debt

  • - Two auth strategies coexist (Better Auth and manual admin cookie)
  • - Potential auth-client technical debt from partial integration
  • - Single-password admin guard may need stronger hardening
  • - Bilingual content operations require strict editorial discipline

Do you need to build or improve a software system?

I can help you translate business needs into a robust, maintainable technical solution.