Skip to content
← ALL STORIES

PLATFORM · PORTAL · CLIENT UNDER NDA

Replacing Joomla with a modular Next.js and Firebase portal

A business association's portal moved from Joomla to Next.js and Firebase, with the public marketing site separated from the members' area and four modules that run on their own.

90+
Lighthouse performance score
4
autonomous modules
−20h
manual admin work / month
Role
Project and Tech Lead
Duration
6 MONTHS
Year
2024
Client
Under NDA

The problem

The portal of an association of businesses ran on an outdated Joomla installation. The monolith had built up technical debt, performance bottlenecks and high maintenance costs. Two groups felt it:

  1. 01

    For marketing, managing content was complicated and slow.

  2. 02

    For developers, the lack of modules made it impossible to scale the services: the company directory, the classifieds, the information section, the training module and the survey and poll system.

The brief

The goal was a full migration from Joomla to a scalable ecosystem. It had to:

  1. 01

    Separate the public marketing part from the subscription area for members.

  2. 02

    Run four autonomous modules: a company directory, classifieds, trainings (sign-ups and the lifecycle of links) and surveys and awards polls (with data export to XLSX and PDF).

  3. 03

    Meet standards for SEO, geotargeting, accessibility (WCAG) and Core Web Vitals.

  4. 04

    Prepare the infrastructure for AI search later.

What we built

  1. 01

    A frontend and a backend, split

    I ran architecture workshops with the board and the marketing department. They ended with a decision to split the layers into a Next.js frontend and a dedicated Firebase backend.

  2. 02

    A custom CMS panel

    I implemented a custom CMS panel. It keeps dynamic marketing content apart from the sensitive profile and subscription data of the member companies.

  3. 03

    Data and access rules

    The data model is NoSQL, in Firestore, with granular Firestore Security Rules that block unauthorized horizontal access. Firebase Authentication handles roles and permissions (RBAC) and multi-level sessions for business users who manage their own micro-pages.

  4. 04

    Rendering and accessibility

    Next.js renders pages with a hybrid of ISR, SSR and SSG, to cut loading times and make the content easier to find in search. The content follows WCAG 2.1 and is geolocated for the regional associations.

  5. 05

    Training and survey modules

    Each training and each survey gets its own unique public URL. The state in the database opens and closes sign-ups and voting on a schedule. Reports are generated by an asynchronous pipeline that aggregates the results and exports them to Excel (XLSX) and PDF.

  6. 06

    Search prepared for AI

    The data is indexed for fast full-text search, and the structure is designed so that a vector database or embeddings for an LLM can be added later. The AI search itself is not built yet.

  7. 07

    Environments and deploys

    Staging and production run on Vercel with an automated CI/CD pipeline. Deploys have no downtime, and pages are cached at the edge.

My role

I was the project and tech lead of a team of four: full-stack, frontend and QA. The project took six months.

Outcome

The Joomla system is gone, and the portal now runs as a serverless application. Marketing has an editing tool that is easy to use, and the member companies manage their own profiles and listings in a self-service area. Automated training sign-ups, automatic closing of polls and direct export of reports to XLSX and PDF saved about 20 hours of manual administration a month. The Lighthouse performance score is above 90, the site follows WCAG 2.1, and search crawlers pick up new content right away. Traffic scales without adding servers, and deploys have zero downtime. The structure is ready for semantic search with AI, which is not built yet.

TECH STACK

Built with

LANGUAGE

  • TypeScript

STACK

  • Next.js
  • Firestore
  • Firebase Authentication
  • Cloud Functions

INFRASTRUCTURE

  • Firebase
  • Vercel

05 / CONTACT

ACCEPTING NEW STRATEGIC ROLES FOR 2027

I thrive where complex engineering meets commercial reality. Open to Head of Web & Product roles.

KRAKÓW, PL

BUILT WITH BEARMINION