Weekly task planner with rich markdown notes — self-hostable
Afrek (Icelandic): feat, accomplishment, achievement.
Plan your week with a Monday–Sunday grid, attach rich notes to each task, and keep a backlog for the rest. Optional end-to-end encryption keeps your data private even from the server.
| Feature | Description |
|---|---|
| Weekly view | Monday–Sunday grid with drag-and-drop scheduling |
| Expandable tasks | Click to reveal a full markdown editor with live preview |
| Tags & filtering | Organize with tags, filter by tag or search by title |
| Backlog | Dedicated view for unscheduled work |
| Completed view | See what you've accomplished, grouped by week |
| Client-side encryption | Optional AES-GCM encryption with WebAuthn PRF key derivation |
| Keyboard shortcuts | N new task, / search, and more |
| Subscription billing | Built-in payment integration via Dodo Payments (optional for self-hosters) |
Start by running bun install to install dependencies, then:
# In one terminal:
bun run dev
# In another terminal:
bunx convex dev
See Self-Hosting below to configure WorkOS and Convex.
Afrek requires two external services (both have generous free tiers):
Create accounts on WorkOS and Convex (free tiers work fine for personal use)
Clone and configure:
git clone https://github.com/reykjalin/afrek.git
cd afrek
bun install
cp .env.example .env.local
Configure .env.local with your API keys (see Configuration)
Start the backend (in a separate terminal):
npx convex dev
Start the app:
bun run dev
A typical production setup:
npx convex deploy| Variable | Description |
|---|---|
WORKOS_CLIENT_ID |
WorkOS client ID |
WORKOS_API_KEY |
WorkOS API key |
WORKOS_COOKIE_PASSWORD |
32+ character password for session encryption |
NEXT_PUBLIC_CONVEX_URL |
Your Convex deployment URL |
| Variable | Description |
|---|---|
DODO_PAYMENTS_API_KEY |
For subscription billing (set in Convex dashboard) |
DODO_PAYMENTS_WEBHOOK_SECRET |
For Dodo Payments webhooks (set in Convex dashboard) |
See .env.example for the full list.
Afrek is built on modern managed services so you don't have to maintain your own auth stack or real-time database.
| Layer | Technology |
|---|---|
| Framework | Next.js 16, React 19 |
| Styling | Tailwind 4, Shadcn/Base UI |
| Auth | WorkOS AuthKit |
| Billing | Dodo Payments |
| Database | Convex |
| Editor | Plate (platejs.org) |
| Encryption | WebAuthn PRF + AES-GCM |
Afrek depends on these hosted services today. If you need a stack that runs entirely on your own infrastructure with no external SaaS, Afrek might not be the right fit yet. The data model is small, and we're open to community efforts to add alternative backends (e.g., Postgres/Supabase adapters).
app/ # Next.js pages and routes
(marketing)/ # Public pages (landing, pricing, auth)
(app)/ # Protected pages (tasks, settings)
components/ # React components
ui/ # Shadcn/Base UI components
tasks/ # Task-related components
editors/ # Markdown editor components
features/ # Feature modules (hooks, API, types)
lib/ # Utilities
convex/ # Convex backend (schema, functions)
docs/ # Documentation
bun run dev # Start Next.js dev server
npx convex dev # Start Convex dev server (separate terminal)
bun run build # Production build
bun run lint # Run ESLint
npx convex deploy # Deploy Convex to production
Actively developed — Phases 0–10 complete. See docs/PLAN.md for the full roadmap.
Contributions are welcome! Please see docs/AI_AGENTS.md for conventions and guidelines.
We're especially interested in:
Development of Afrek has been heavily aided by AI, and the codebase reflects this. As the project matures, less AI will be used for wide-ranging changes, and more code will be written by a human. Before 1.0, a thorough manual review will be conducted to ensure the codebase is maintainable going forward.
AI-assisted contributions are welcome, but must be properly disclosed.
FSL-1.1-MIT — Free to use, modify, and self-host for personal and internal use. Becomes MIT licensed after 2 years. See LICENSE for details, or learn more at fsl.software.