Compare commits
3 Commits
d835c7c031
...
38fadf32f6
| Author | SHA1 | Date | |
|---|---|---|---|
| 38fadf32f6 | |||
| 1dfb80cbb2 | |||
| 764e419a32 |
@@ -74,6 +74,18 @@ const kSuiteApps: KSuiteApp[] = [
|
||||
technologies: ["Rust", "Next.js", "TailwindCSS"],
|
||||
color: "from-violet-400 to-purple-500",
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
name: "Movies Diary",
|
||||
shortDescription: "Self-hosted movie logging with federation",
|
||||
description:
|
||||
"Log every film you watch, rate it, and share reviews across the Fediverse via ActivityPub. Federate with other instances, follow remote users, and browse a fully federated activity feed.",
|
||||
url: "https://movies.gabrielkaszewski.dev/",
|
||||
githubUrl: "https://github.com/GKaszewski/movies-diary",
|
||||
icon: "/images/movies-diary.webp",
|
||||
technologies: ["Rust", "Axum", "ActivityPub", "SQLite"],
|
||||
color: "from-rose-400 to-red-500",
|
||||
},
|
||||
];
|
||||
|
||||
// Connection definitions for the organism
|
||||
@@ -82,10 +94,12 @@ const connections = [
|
||||
{ from: 1, to: 2 }, // Thoughts -> K-Tuner
|
||||
{ from: 2, to: 3 }, // K-Tuner -> K-QR
|
||||
{ from: 3, to: 4 }, // K-QR -> K-TV
|
||||
{ from: 4, to: 0 }, // K-TV -> K-Notes
|
||||
{ from: 4, to: 5 }, // K-TV -> Movies Diary
|
||||
{ from: 5, to: 0 }, // Movies Diary -> K-Notes
|
||||
{ from: 0, to: 2 }, // K-Notes -> K-Tuner (cross)
|
||||
{ from: 1, to: 3 }, // Thoughts -> K-QR (cross)
|
||||
{ from: 2, to: 4 }, // K-Tuner -> K-TV (cross)
|
||||
{ from: 5, to: 1 }, // Movies Diary -> Thoughts (federation)
|
||||
];
|
||||
|
||||
const KSuiteOrganism = () => {
|
||||
|
||||
23
lib/data.ts
23
lib/data.ts
@@ -455,6 +455,29 @@ export const projects: Project[] = [
|
||||
thumbnails: ["/images/galeria_rumia.avif", "/images/galeria_rumia2.avif"],
|
||||
commercial: true,
|
||||
},
|
||||
{
|
||||
id: 24,
|
||||
name: "Movies Diary",
|
||||
short_description:
|
||||
"Self-hosted movie logging with ActivityPub federation.",
|
||||
description:
|
||||
"A self-hosted, server-side rendered movie logging system with a full REST API. Built entirely in Rust with no JavaScript in the HTML interface — just HTML forms and an RSS feed.\n\n**Highlights:**\n- Immutable, append-only viewing ledger (tracks re-watches)\n- ActivityPub federation — follow remote users, broadcast reviews as federated Notes, shared inbox, paginated outbox\n- Full-text search via SQLite FTS5 or PostgreSQL tsvector + GIN\n- Background poster fetching, TMDB enrichment (cast, crew, genres, box office), image conversion to AVIF/WebP\n- File importer: CSV, TSV, JSON, XLSX from Letterboxd, IMDb, etc.\n- Dual database support: SQLite and PostgreSQL\n- Terminal UI client\n- OpenAPI documentation (Swagger UI + Scalar)\n\n**Technical details:**\n- **Architecture:** Hexagonal (Ports & Adapters) with DDD\n- **Backend:** Rust, Axum, SQLx\n- **Templates:** Askama (SSR)\n- **Event bus:** SQLite/PostgreSQL queue or NATS JetStream\n- **Federation:** ActivityPub (AP)",
|
||||
category: "Web",
|
||||
github_url: "https://github.com/GKaszewski/movies-diary",
|
||||
visit_url: "https://movies.gabrielkaszewski.dev/",
|
||||
download_url: null,
|
||||
technologies: [
|
||||
"Rust",
|
||||
"Axum",
|
||||
"SQLite",
|
||||
"PostgreSQL",
|
||||
"ActivityPub",
|
||||
"Askama",
|
||||
"NATS",
|
||||
"Docker",
|
||||
],
|
||||
thumbnails: ["/images/movies-diary.webp"],
|
||||
},
|
||||
{
|
||||
id: 23,
|
||||
name: "Pixel palette colorizer",
|
||||
|
||||
BIN
public/images/movies-diary.webp
Normal file
BIN
public/images/movies-diary.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
Reference in New Issue
Block a user