An interactive web application designed to facilitate and manage narrative instrument sessions for organizations using the Narrative Platform methodology.
Narrative Platform is a digital platform designed to facilitate rapid, participatory cultural transformation within organizations. By leveraging data-driven insights and structured collaborative processes, it enables teams to identify emerging patterns and implement actionable interventions.
- Pattern Recognition: Collects anonymous feedback to uncover cultural patterns while minimizing bias from traditional interviews or surveys.
- Voice-to-Text Integration: Supports automated transcription of audio stories using OpenAI Whisper, enabling rapid analysis of spoken narratives.
- Stakeholder Engagement: Brings diverse voices into the analysis and solution process, ensuring cultural change is co-owned and context-aware.
- Actionable Insights: Converts collected data into concrete interventions within just one week.
- Transparent Change Management: Ensures interventions are based entirely on real stakeholder experiences, not assumptions.
- Node.js (v18+)
- A Supabase account (for backend services)
- OpenAI API key (for AI assistant features)
- Antropic API key (optional, for alternative AI model)
- Perplexity API key (optional, for alternative AI model)
-
Clone this repository:
git clone https://github.com/cerne-io/platform.git cd narrative-platform -
Install dependencies:
npm install -
Copy the environment example file and fill in your values:
cp .env.example .env -
Configure your environment variables in the
.envfile:- Get your Supabase URL and anon key from your Supabase project dashboard
- Obtain an OpenAI API key from OpenAI's platform
- (Optional) Get a Perplexity and/or Anthropic API key if you want to use their AI services
-
Start the development server:
npm run dev
This project uses Supabase Edge Functions for server-side operations. After setting up your Supabase project:
-
Add your API keys to Supabase Edge Functions secrets:
supabase secrets set OPENAI_API_KEY=your_openai_api_key_here supabase secrets set ANTHROPIC_API_KEY=your_anthropic_api_key_here supabase secrets set PERPLEXITY_API_KEY=your_perplexity_api_key_here supabase secrets set APP_NAME="Narrative Platform" supabase secrets set SUPPORT_EMAIL="contact@cerne.io" supabase secrets set EMAIL_PRIMARY_COLOR="#2563eb" supabase secrets set EMAIL_DANGER_COLOR="#dc2626" -
Deploy the edge functions:
supabase functions deploy
For detailed instructions on setting up your own instance, refer to the Self-Hosting Guide.
| Variable | Description | Required |
|---|---|---|
| VITE_SUPABASE_URL | Your Supabase project URL | Yes |
| VITE_SUPABASE_ANON_KEY | Your Supabase project anonymous key | Yes |
| VITE_INITIAL_ADMIN_EMAIL | Email of the first user to be promoted to SuperAdmin | Yes (for setup) |
| VITE_ENABLE_DEBUG | Enable debug mode (true/false) | No |
| VITE_APP_NAME | Custom platform name (Default: "Narrative Platform") | No |
| VITE_SUPPORT_EMAIL | Support contact shown in footer | No |
| VITE_APP_LOGO_URL | URL for an external logo image | No |
| OPENAI_API_KEY | OpenAI API key (for Edge Functions) | For AI |
| ANTHROPIC_API_KEY | Anthropic API key (for Edge Functions) | Optional |
| PERPLEXITY_API_KEY | Perplexity API key (for Edge Functions) | Optional |
| APP_NAME | Custom platform name (for Edge Functions) | Optional |
| SUPPORT_EMAIL | Support contact shown in emails (for Edge Functions) | Optional |
| EMAIL_PRIMARY_COLOR | Primary brand color for emails | Optional |
| EMAIL_DANGER_COLOR | Danger/Alert color for emails | Optional |
- Feature flag
VITE_ENABLE_DEBUG=truecan be enabled for additional debugging information - The project uses React, Vite, TailwindCSS, and shadcn/ui for the frontend
- Supabase provides authentication, database, and serverless functions
"Cerne.io" is a trademark of Hosting Learning OU. "Narrative Platform" is the generic name for the self-hosted software. Self-hosting is permitted for legitimate Narrative Platform processes as defined in our Trademark Policy. Modified versions serving different purposes must be renamed.
Apache License Version 2.0 - read LICENSE.md
We would like to acknowledge the work on PNI (Participatory Narrative Inquiry) by Cynthia F. Kurtz (cfkurtz.com), her opus "Working with Stories" (workingwithstories.org), and the work (together with Paul D. Fernhout) on the open source NarraFirma™ application that you can find at github.com/pdfernhout/narrafirma.