Initial commit: ReadLater v1.0

- Save articles via URL or bookmarklet
- Clean dark reader with customizable fonts/sizing
- Text-to-speech with browser + Kokoro support
- Speed control up to 3x
- Favorites and archive
- SQLite database with Drizzle ORM
- Docker deployment ready

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Gemini Agent
2026-01-17 07:35:07 +00:00
commit 27963af055
45 changed files with 11298 additions and 0 deletions

49
src/lib/types.ts Normal file
View File

@@ -0,0 +1,49 @@
export interface Article {
id: string;
url: string;
title: string;
author: string | null;
siteName: string | null;
excerpt: string | null;
content: string;
textContent: string;
leadImage: string | null;
wordCount: number;
readingProgress: number;
isFavorite: boolean;
isArchived: boolean;
tags: string;
createdAt: string;
updatedAt: string;
readAt: string | null;
}
export interface ReaderSettings {
fontSize: number; // 14-32
fontFamily: "system" | "serif" | "sans" | "mono";
lineHeight: number; // 1.4-2.2
maxWidth: number; // 500-900
theme: "dark" | "light" | "sepia";
}
export interface TTSSettings {
engine: "browser" | "kokoro";
speed: number; // 0.5-3.0
voice: string;
kokoroUrl: string;
}
export const defaultReaderSettings: ReaderSettings = {
fontSize: 18,
fontFamily: "serif",
lineHeight: 1.8,
maxWidth: 700,
theme: "dark",
};
export const defaultTTSSettings: TTSSettings = {
engine: "browser",
speed: 1.0,
voice: "",
kokoroUrl: "http://localhost:8880",
};