at://Press
1export const BLOG_URL = import.meta.env.BLOG_URL || "http://localhost:4321";
2export const PDS_URL = import.meta.env.PDS_URL;
3export const DID = import.meta.env.DID;
4export const HANDLE = import.meta.env.HANDLE;
5export const BLOG_COLLECTION = import.meta.env.BLOG_COLLECTION || "com.whtwnd.blog.entry";
6export const ABOUT_COLLECTION = import.meta.env.ABOUT_COLLECTION || "xyz.arcnode.blog.about";
7export const ABOUT_RKEY = "self";
8
9// Content limits
10export const MAX_TITLE_LENGTH = 300;
11export const MAX_CONTENT_LENGTH = 100_000;
12export const MAX_ABOUT_LENGTH = 5_000;
13export const MAX_IMAGE_SIZE = 5 * 1024 * 1024; // 5 MB
14
15// Session
16export const SESSION_DID_COOKIE = "session_did";
17export const SESSION_HANDLE_COOKIE = "session_handle";
18export const SESSION_MAX_AGE = 86400 * 7; // 7 days
19
20// RSS
21export const RSS_MAX_ITEMS = 20;
22export const RSS_EXCERPT_LENGTH = 300;
23export const DEFAULT_EXCERPT_LENGTH = 160;
24
25// Theme
26export const THEME_STORAGE_KEY = "blog-theme";
27export const THEME_COLORS: Record<string, string> = {
28 default: "#0f172a",
29 parchment: "#d9ccb4",
30 moss: "#dde6d5",
31 slate: "#eef0f3",
32 rose: "#f0e2e4",
33 eink: "#e5e1dc",
34};
35export const DEFAULT_THEME_COLOR = "#e5e1dc";
36
37// Cache TTLs (milliseconds)
38export const PROFILE_TTL = 3600_000; // 1 hour
39export const ENTRIES_TTL = 300_000; // 5 minutes
40export const ENTRY_TTL = 600_000; // 10 minutes
41export const ABOUT_TTL = 3600_000; // 1 hour
42export const MAX_ENTRY_CACHE = 200;