PROWORKS
CASE STUDY — AI CONTENT GENERATION

Generato: an AI content dashboard for Romanian psychology and wellness

Multi-step Gemini generation pipeline, modular React architecture, targeted at Romanian-language content that most generic tools handle poorly.

Pipeline

Multi-step Gemini

Stack

React + Firebase

Output

Romanian-native

Architecture

Custom hooks

Generic AI content tools produce garbage Romanian.

Most AI content tools are built for English. Romanian gets half-attention — grammatically wobbly, tonally off, culturally tone-deaf at scale. Diacritics dropped. Register wrong. Idioms that sound like a foreign speaker who learned Romanian from subtitles.

The opportunity: build a pipeline specifically tuned for Romanian psychology and wellness content — where the practitioner's clinical voice needs to come through and generic AI slop actively damages professional credibility.

The approach: Pipeline thinking, not prompt thinking.

A multi-step pipeline — research, outline, draft, refine — versus one large prompt. Each step is reviewable by the content operator. Each step has a defined input/output contract. The pipeline is debuggable in a way a single mega-prompt is not.

Stack: React with custom hooks architecture, Firebase (auth + Firestore), Google Cloud Functions, Gemini as primary LLM. Gemini was chosen over Claude because Gemini's Romanian language handling is currently stronger for this content type — test your assumptions, don't assume the tool you prefer for one job is the right tool for every job.

Cloud Run for compute-heavy generation steps that exceed Cloud Functions limits. Provider-agnostic model interface layer added mid-build after Gemini deprecated gemini-pro — a lesson that paid for itself immediately.

What I built

Modular dashboard for content operators: define a brief, choose a topic from a research-assisted topic list, trigger the multi-step pipeline, review and edit at each step, export. The operator stays in control; the pipeline does the heavy lifting.

Features: Firebase auth with role-based access, per-article cost tracking so operators know exactly what each piece of content costs to generate, custom hooks architecture that keeps component logic clean, prompt management system for updating templates without code deploys.

The provider-agnostic model interface layer was added after Gemini deprecated gemini-pro mid-build — swapping the underlying model became a configuration change rather than a refactor.

Tech stack

ReactCustom hooks architectureFirebase Auth + FirestoreGoogle Cloud FunctionsCloud RunGemini (multi-step pipeline)Provider-agnostic LLM interface layerRomanian-language tuning

What I'd do differently

Should have A/B tested two LLM providers on the same pipeline in week one. I assumed Gemini was right for Romanian and it was — but the assumption should have been tested, not trusted. The provider-agnostic layer I added later made this easy; I should have built it first.

Should have involved an actual content operator in the design process from week one. My assumptions about editor workflow were partly wrong — specifically around review-and-edit UX at the draft step. Caught it in testing, fixed it, but it added a week of rework that user research in week one would have prevented.

Need a content system in a language nobody else handles well?

If your content operation runs in Romanian, Polish, Portuguese, or any language where generic tools produce mediocre output — a custom pipeline is how you fix it.

Book a call →