The workspace built for how you study, research, and create.
ThinkEx is a workspace for source-heavy study and research.
Instead of uploading sources into a chat, you keep the actual materials in view: PDFs, docs, images, folders, and AI chat. Arrange them, pick what the AI should use, and keep the answer tied to the workspace where the work is happening.
- Open PDFs, documents, images, and folders in a workspace.
- Put sources side by side while you read or compare them.
- Ask AI about the specific items you choose.
- Share a workspace with collaborators (fellow humans).
| Compared with | What they are good at | Where ThinkEx differs |
|---|---|---|
| ChatGPT, Claude, Gemini | Fast AI conversations | Chat is part of the workspace, next to sources and docs |
| NotebookLM | Asking questions over uploaded sources | Sources stay open, arrangeable, editable, and shareable |
| Obsidian | Markdown files and local knowledge bases | PDFs, images, docs, AI chat, and sharing are first-class |
| Google Drive, Dropbox | Storing and sharing files | Files become source material with docs and AI beside them |
This is the current ThinkEx web app. It uses React, TanStack Start, TypeScript, Tailwind CSS, Better Auth, Drizzle, Tiptap, Yjs/PartyServer, EmbedPDF/PDFium, and Cloudflare Workers.
Most product code lives in src/features/workspaces/. Runtime and deployment configuration lives in wrangler.jsonc, with database migrations in drizzle/.
For deeper implementation details, see docs/ARCHITECTURE.md and docs/ENVIRONMENT.md.
With Infisical:
pnpm install --frozen-lockfile
pnpm devWithout Infisical, you can run with .dev.vars:
pnpm install --frozen-lockfile
cp .dev.vars.example .dev.vars
pnpm serve:devThe app runs at http://localhost:3000. Only BETTER_AUTH_SECRET and BETTER_AUTH_URL are required for the core local app; optional secrets unlock features such as AI chat, browsing, and email.
Useful commands:
pnpm serve:devstarts the local dev server with existing environment variables or.dev.vars.pnpm db:migrate:localapplies local D1 migrations before first database use.pnpm checkruns the fast TypeScript/lint validation.pnpm verifyruns the full validation suite.
Local caveats:
- Node
>=22.18is required. - Docker must be running because the app declares Cloudflare Container bindings.
- If you are not logged into Cloudflare locally, run with
CLOUDFLARE_VITE_FORCE_LOCAL=true pnpm serve:dev.
Issues and pull requests are welcome. Start with CONTRIBUTING.md, keep changes focused, and run pnpm verify before opening a PR when possible.
ThinkEx is licensed under the AGPL-3.0 License.
