A quiet library for the things you want to remember.
Tala is a minimalist personal knowledge-capture app inspired by tools like Sublime.
It is designed for saving interesting things from the internet—links, highlights, images, screenshots, notes, and eventually other media—then organizing and rediscovering them later.
The core experience is:
See something → save it → forget about it → find it again later.
Tala is intentionally simpler than a general-purpose workspace or knowledge-management application.
Tala should be:
- Minimal
- Fast
- Private
- Easy to capture into
- Easy to search
- Easy to organize
- Cheap to operate
- Cross-platform
The initial experience is web-first, with a browser extension as a core part of the product.
Future clients will include Windows desktop and mobile applications.
- Next.js
- TypeScript
- Tailwind CSS
- PostgreSQL
- Neon
- TypeScript
- Chromium extension APIs
- Windows: Tauri + React
- Mobile: React Native + Expo
The repository is intended to be a monorepo.
tala/
├── apps/
│ ├── web/
│ ├── extension/
│ ├── desktop/
│ └── mobile/
│
├── packages/
│ ├── types/
│ ├── api-client/
│ ├── database/
│ └── config/
│
├── backend/
│ └── api/
│
├── docs/
│ ├── PRODUCT_BRIEF.md
│ └── ARCHITECTURE.md
│
├── AGENTS.md
├── README.md
├── package.json
└── ...
Not every application needs to be fully implemented initially.
The first milestone is a working web application and browser extension.
A personal collection of saved items.
Supported initial content types:
- URLs
- Text
- Highlights
- Images
- Screenshots
Lightweight groups such as:
Design
Writing
Ideas
Research
Inspiration
Books
Products
Places
Items may belong to multiple collections.
Search across:
- titles
- URLs
- domains
- notes
- highlights
- text
- collections
Users can mark especially valuable items as favorites.
The extension should allow users to:
- save the current page
- save highlighted text
- save images
- eventually capture screenshots
Accounts exist primarily so the same Tala library can be accessed from multiple devices.
The web application and future clients should use the same backend and account.
Users should be able to export their data rather than being trapped in Tala.
Tala should feel like:
- a personal library
- a commonplace book
- a quiet archive
- a digital notebook
It should not feel like:
- Notion
- a project manager
- a social network
- a productivity dashboard
Visual priorities:
- typography
- whitespace
- restrained color
- subtle interaction
- minimal chrome
- content first
The same design language should eventually be shared with Munimuni.
Install dependencies:
pnpm installRun the web application:
pnpm devThe exact commands may evolve as the monorepo is established.
Use an environment file locally.
Never commit secrets.
Provide:
.env.example
Typical variables may include:
DATABASE_URL=
AUTH_SECRET=
NEXT_PUBLIC_APP_URL=Only variables explicitly intended for the browser should use a NEXT_PUBLIC_ prefix.
Tala uses PostgreSQL hosted on Neon.
Database changes should always use migrations.
Never manually change the production schema without a corresponding migration.
When implementing Tala:
- Keep the UX minimal.
- Prefer simple solutions.
- Make capture fast.
- Make saved content reliable.
- Preserve original source URLs.
- Keep user data private.
- Keep data exportable.
- Avoid premature AI features.
- Avoid unnecessary infrastructure.
- Commit progress frequently.
See AGENTS.md for engineering workflow and agent-specific instructions.
See docs/PRODUCT_BRIEF.md for the full product definition.
See docs/ARCHITECTURE.md for technical architecture decisions.
The first useful prototype should allow a user to:
- Create an account.
- Log in.
- Open the Tala library.
- Create collections.
- Save a URL.
- Add a note.
- Search saved content.
- Favorite content.
- Save a page through the browser extension.
- Save highlighted text through the browser extension.
- Save an image through the browser extension.
- See everything in the Tala web application.
The application should be fully functional rather than a static visual prototype.
Tala exists to make the internet feel a little more memorable.
The goal is not to collect everything.
The goal is to make it easy to keep the things that mattered.