Skip to content

defyma/briefly-app

Repository files navigation

Briefly

Briefly is a productivity workspace for turning messy input into clear action.

It focuses on fast, structured output instead of a generic chatbot flow:

  • Meeting Notes
  • Task Breakdown
  • Reply Draft
  • Chat for follow-up discussion and revision

What It Does

Meeting Notes

Turn rough notes or transcripts into:

  • summary
  • decisions
  • action items
  • open questions

Task Breakdown

Turn a big goal into:

  • steps
  • priorities
  • execution order
  • checklist

Reply Draft

Turn message context into:

  • draft reply
  • tone options
  • follow-up

Chat

Continue from any generated result:

  • refine
  • revise
  • brainstorm next steps
  • auto compact long threads to keep Pollinations payloads more stable
  • keep full thread history visible in the UI while sending a compacted context to the model

Pollinations Flow

Briefly uses Pollinations text generation through local Next.js API routes:

  • /api/generate
  • /api/chat
  • /api/chat/threads
  • /api/chat/threads/[threadId]

The app is built around the official Bring Your Own Pollen redirect flow.

Current BYOP setup:

  • user clicks Connect Pollinations
  • app redirects to Pollinations authorization
  • Pollinations returns #api_key=sk_... to /app
  • the key is exchanged into an encrypted httpOnly session cookie
  • the selected model is limited to the same allowed model list used during BYOP authorization

If no usable Pollinations key is available, Briefly falls back to local structured output.

Tech Stack

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS v4

Routes

  • / landing page
  • /app main workspace
  • /api/generate structured tool output
  • /api/chat follow-up chat output
  • /api/chat/threads thread list for the chat sidebar
  • /api/chat/threads/[threadId] full message history for one active thread

Local Development

Install dependencies:

npm install

Run the app:

npm run dev

Open:

http://localhost:3000

Environment

Copy .env.example to .env.local for local development.

Available variables:

POLLINATIONS_CLIENT_ID=
BRIEFLY_SESSION_SECRET=
POLLINATIONS_API_KEY=
POLLINATIONS_TEXT_MODEL=
CHAT_LIMIT=100
CHAT_KEEP_RECENT=24

Notes:

  • POLLINATIONS_CLIENT_ID is the Pollinations App Key (pk_...) used by the BYOP connect flow
  • BRIEFLY_SESSION_SECRET is required to encrypt the BYOP session cookie on the server
  • POLLINATIONS_API_KEY is optional server-side fallback auth
  • POLLINATIONS_TEXT_MODEL is optional if you want a server default model
  • CHAT_LIMIT is the max active user + assistant message count before auto compaction runs
  • CHAT_KEEP_RECENT is how many newest raw conversation messages are still sent in full after the latest compaction
  • full thread history still stays visible in the UI and database
  • the chat timeline shows clickable AUTO COMPACTING dividers; each divider reveals the agent-generated summary for that compaction point
  • model payload uses only the latest compaction summary plus the most recent raw messages after that point

Recommended redirect URIs:

https://briefly-app.defyma.com/app
http://localhost:3000/app

Verification

Lint:

npm run lint

Build:

npm run build

Docker Deploy

This repo includes:

  • Dockerfile
  • .dockerignore
  • docker-compose.yml
  • .github/workflows/docker-publish.yml

Default compose image:

ghcr.io/defyma/briefly-app:latest

Workflow behavior:

  • push to main triggers image build
  • image is published to ghcr.io/defyma/briefly-app
  • server can run docker compose pull && docker compose up -d

Example docker-compose.yml expects:

services:
  briefly:
    image: ghcr.io/defyma/briefly-app:latest
    container_name: briefly-app
    restart: unless-stopped
    ports:
      - "3000:3000"
    env_file:
      - .env

Links

  • App repo: https://github.com/defyma/briefly-app
  • Pollinations: https://pollinations.ai
  • Showcase: https://pollinations.ai/apps
  • BYOP docs: https://gen.pollinations.ai/docs#tag/bring-your-own-pollen

Releases

No releases published

Packages

 
 
 

Contributors

Languages