Works/Empresa Plana
Empresa Plana
Public site and internal panel over the same data model: the team publishes, the site serves static.
- The challenge
- The public site and internal management lived in two worlds: duplicated content, manual changes and no single source of truth.
- The solution
- Astro site with ES/CA i18n and a private panel over the same data model (Prisma + InsForge). Authentication, content management and deployment on Cloudflare.
- The outcome
- A single model for site and back office: the team publishes from the panel and the site serves static content, with no manual rebuild.
Context
Empresa Plana needed a corporate site with content in Catalan and Spanish, and at the same time an internal tool so the team could edit that content without depending on development.
Decision
Instead of two applications with two databases, the project uses a single Prisma schema. The panel writes; the site reads and generates static output. Languages are routes, not copies of the content.
Technical details
- Language-prefixed routes and consistent
hreflang. - Authentication and sessions on the server, not on the client.
- Versioned migrations and reproducible seeds.
- Deployment on Cloudflare with a static build.
What I learned
The panel and the site share more than it seems. When the data model is the same, half of the synchronisation bugs disappear before they exist.
[10] let's talk
Is your operation falling apart?
Tell me where it hurts: parallel spreadsheets, stock that never matches, processes that depend on one person. You get a diagnosis, not a blind proposal.