1.9 KiB
1.9 KiB
Journaley
Journaley is a simple, modern journaling app built with SvelteKit, Tailwind CSS, shadcn-svelte conventions, Convex, and Convex Auth.
Features
- Authenticated daily markdown entries with live Convex data.
- Dashboard with recent entries, streaks, activity, mood counts, and tag insights.
- Entry workspace with create/edit dialog, markdown preview, date, mood, pin/archive state, tags, search, filters, and sorting.
- Normalized tagging with usage counts and entry/tag joins.
- Convex full-text search over title, body text, mood, and tags.
- Warm light theme, dark mode, and basic user settings.
Development
Install dependencies:
pnpm install
Push Convex functions and regenerate types:
CONVEX_AGENT_MODE=anonymous npx convex dev --once
Start the SvelteKit app:
pnpm dev
The local app runs at http://localhost:5173. Convex local deployment values live in .env.local.
Auth
This project uses Convex Auth with email/password for local development. The initializer created convex/auth.config.ts, convex/auth.ts, and convex/http.ts; the frontend uses @mmailaender/convex-auth-svelte for SvelteKit auth state and auth routes.
Production auth configuration is intentionally not completed yet. Configure production deployment URL, site URL, keys, and redirect behavior before deploying.
Scripts
pnpm devstarts SvelteKit.pnpm buildbuilds the app.pnpm previewpreviews the production build.pnpm checkruns Svelte and TypeScript checks.pnpm lintruns Prettier checks and ESLint.pnpm formatformats the codebase.
Project Layout
convex/contains schema, auth, entries, tags, settings, and analytics functions.src/routes/contains SvelteKit pages and layout.src/lib/components/contains reusable UI, logo, theme, and markdown components.static/favicon.svgcontains the Journaley mark.