A modern, Notion-inspired workspace for organized thinking.
Folium delivers a focused, modern workspace where teams and individuals can capture ideas, structure knowledge, and publish pages without friction. It combines a Notion-style information architecture with a powerful editor, media workflows, and lightweight collaboration patterns that feel fast in daily use. The app is designed for writers, product teams, researchers, and builders who need both creative freedom and clear organization. From quick notes to shareable documentation, Folium keeps thinking and execution in one place.
- Live app: https://folium-delta.vercel.app
- Repository: https://github.com/Ramyprojs/Folium
📸 Screenshots coming soon — add your own by replacing the image paths below.
Workspace & pages
- Create and manage multiple workspaces with owner/member roles.
- Build nested page structures for organized navigation and long-form content.
- Favorite, archive, move, and share pages through a clean action model.
- Publish selected pages publicly with share links.
Rich text editing
- Write with headings, lists, task items, code blocks, quotes, dividers, links, and slash commands.
- Insert advanced images with resize, crop, align, lightbox, replace, and captions.
- Sketch inside the app and insert drawings directly into pages.
- Keep content safe with debounced autosave behavior.
Floating notes
- Open draggable notes on top of workspace pages for rapid side-by-side thinking.
- Resize, minimize, maximize, close, and snap notes to corners.
- Pin important notes on top while working across the page.
- Launch multiple notes at once and multitask fluidly.
- Create a new note instantly with
Cmd/Ctrl + Shift + N.
Uploads & media
- Upload images and files from the editor.
- Embed images inline and insert non-image files as links.
- Use Cloudinary-powered uploads in production.
- Fall back gracefully for limited upload scenarios when integrations are missing.
Authentication
- Sign up and sign in with email/password credentials.
- Enable optional Google OAuth with NextAuth.
- Use JWT sessions for secure authenticated workflows.
- Clone the repository.
git clone https://github.com/Ramyprojs/Folium.git
cd Folium- Install dependencies.
npm install- Copy environment template and configure values.
cp .env.example .env- Run database migrations.
npm run prisma:migrate- Start the development server.
npm run devOpen http://localhost:3000.
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL connection string (Neon/Supabase compatible). |
NEXTAUTH_SECRET |
Yes | Secret used by NextAuth for JWT/session encryption. |
NEXTAUTH_URL |
Recommended (prod) | Canonical app URL for auth callbacks in production. |
AUTH_DISABLED |
No | Development-only auth bypass flag. Keep false in production. |
GOOGLE_CLIENT_ID |
No | Google OAuth client ID (optional login provider). |
GOOGLE_CLIENT_SECRET |
No | Google OAuth client secret. |
CLOUDINARY_CLOUD_NAME |
Recommended (prod uploads) | Cloudinary cloud name for media uploads. |
CLOUDINARY_API_KEY |
Recommended (prod uploads) | Cloudinary API key. |
CLOUDINARY_API_SECRET |
Recommended (prod uploads) | Cloudinary API secret. |
NEXT_PUBLIC_UNSPLASH_ACCESS_KEY |
No | Unsplash search integration for cover browsing. |
Deploy Folium on Vercel with a Neon (or compatible PostgreSQL) database by setting production environment variables and connecting the repository.
Run production migrations before or during release:
DATABASE_URL="<your-production-database-url>" npx prisma migrate deployCloudinary is required for full upload support in production. Without Cloudinary credentials, upload flows may be limited or fallback-only.
| Script | Description |
|---|---|
npm run dev |
Start the Next.js development server. |
npm run build |
Generate Prisma client and build the production app. |
npm run start |
Run the built production server. |
npm run lint |
Run ESLint checks across the codebase. |
npm run prisma:generate |
Generate Prisma client from schema. |
npm run prisma:migrate |
Create/apply local development migrations. |
npm run prisma:migrate:deploy |
Apply existing migrations to target database. |
npm run prisma:studio |
Open Prisma Studio for database inspection. |
| Group | Paths |
|---|---|
| Auth | /api/auth/[...nextauth], /api/signup |
| Workspaces | /api/workspaces, /api/workspaces/[id], /api/workspaces/[id]/members |
| Pages | /api/pages, /api/pages/[id], /api/pages/[id]/children, /api/pages/[id]/move, /api/pages/[id]/archive, /api/pages/[id]/favorite, /api/pages/[id]/share |
| Upload | /api/upload |
| Search | /api/search |
| Comments | /api/comments/[id] |
Contributions, ideas, and improvements are welcome. Open an issue to discuss bugs or feature proposals before submitting a pull request.
MIT



