DevBrain is a full-stack developer knowledge manager for notes, code snippets, GitHub bookmarks, YouTube bookmarks, documentation links, Trie-powered search, a tag knowledge graph, and a local knowledge assistant.
- New futuristic dark/cyan/purple UI based on the approved DevBrain mockup.
- SQLite removed completely.
- Persistent data moved to Supabase PostgreSQL.
- GitHub bookmarks have their own sidebar section.
- YouTube bookmarks have their own sidebar section.
- Notes, snippets, resources, auth, search, graph and dashboard are connected to the cloud database.
- No paid AI API is required: the Assistant searches your own stored knowledge.
- Render deployment configuration included.
- Passwords are bcrypt-hashed and sessions use JWT.
- Helmet, rate limiting, validation, health check and
.envsecret handling included.
- Create a free Supabase project.
- In Supabase, open SQL Editor, paste
supabase/schema.sql, and run it once. - In Supabase Project Settings / API, copy:
- Project URL
service_rolekey (keep this SECRET; never put it in frontend code)
- Copy
.env.exampleto.env. - Fill
SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY, and a long randomJWT_SECRET. - Install and start:
npm install
npm startOpen http://localhost:3000.
- Push this project to a GitHub repository.
- Render → New → Web Service → connect the repository.
- Runtime: Node.
- Build command:
npm install - Start command:
npm start - Add environment variables:
SUPABASE_URLSUPABASE_SERVICE_ROLE_KEYJWT_SECRETNODE_ENV=production
- Deploy.
You do not need a Render persistent disk because DevBrain no longer writes its database to Render's filesystem.
Both bookmark types are rows in the resources table:
- GitHub:
resource_type = 'github' - YouTube:
resource_type = 'youtube' - Documentation:
resource_type = 'docs' - Other:
resource_type = 'other'
They are separated in the UI using the sidebar filters but share one clean resource model.
Never commit .env or expose SUPABASE_SERVICE_ROLE_KEY in browser JavaScript. This project uses the key only in the Express backend. Every CRUD query is restricted by the authenticated user's user_id.
devbrain-cloud-ready/
├── public/
│ ├── index.html
│ ├── styles.css
│ └── app.js
├── src/
│ ├── auth.js
│ └── db.js
├── supabase/
│ └── schema.sql
├── server.js
├── package.json
├── render.yaml
├── .env.example
└── README.md
- Modal X and Cancel buttons close reliably.
- Notes, Snippets, and Resource cards open their editor.
- Edit/Delete actions use one delegated interaction layer.
- Dynamic create buttons and dashboard quick actions work after renders.
- Dashboard statistic cards navigate to their sections.
- Duplicate form submissions are guarded.
- Password visibility control and knowledge graph have improved contrast.
- Search results open the matched item.