From fc23ff38bb8be6ead9ad96da1005a3e20517aa5e Mon Sep 17 00:00:00 2001 From: Ashlynne Mitchell Date: Wed, 13 Aug 2025 23:28:34 +1000 Subject: [PATCH] feat: initial basic roadmap --- package.json | 1 + pnpm-lock.yaml | 12 ++++ src/components/Roadmap.astro | 100 +++++++++++++++++++++++++++++ src/components/RoadmapItem.astro | 104 +++++++++++++++++++++++++++++++ src/layouts/Layout.astro | 15 +---- src/pages/index.astro | 11 +++- 6 files changed, 226 insertions(+), 17 deletions(-) create mode 100644 src/components/Roadmap.astro create mode 100644 src/components/RoadmapItem.astro diff --git a/package.json b/package.json index 108f0d8..be2f7c4 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@fontsource-variable/work-sans": "^5.2.6", + "@lucide/astro": "^0.539.0", "@tailwindcss/vite": "^4.1.11", "astro": "^5.12.9", "simple-icons-astro": "^15.10.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20e5228..1afd0b4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@fontsource-variable/work-sans': specifier: ^5.2.6 version: 5.2.6 + '@lucide/astro': + specifier: ^0.539.0 + version: 0.539.0(astro@5.12.9(@types/node@24.2.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.46.2)(typescript@5.9.2)) '@tailwindcss/vite': specifier: ^4.1.11 version: 4.1.11(vite@6.3.5(@types/node@24.2.1)(jiti@2.5.1)(lightningcss@1.30.1)) @@ -364,6 +367,11 @@ packages: '@jridgewell/trace-mapping@0.3.30': resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@lucide/astro@0.539.0': + resolution: {integrity: sha512-PCAo48RsERkmyWX+bmssGlu0mb84cP8kLMyc1JuW5pRY4zkx7cnyZMr3RkfPFvDKJZf2/2KPoaZz8j6BjXaXcA==} + peerDependencies: + astro: ^4 || ^5 + '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -2030,6 +2038,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@lucide/astro@0.539.0(astro@5.12.9(@types/node@24.2.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.46.2)(typescript@5.9.2))': + dependencies: + astro: 5.12.9(@types/node@24.2.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.46.2)(typescript@5.9.2) + '@oslojs/encoding@1.1.0': {} '@rollup/pluginutils@5.2.0(rollup@4.46.2)': diff --git a/src/components/Roadmap.astro b/src/components/Roadmap.astro new file mode 100644 index 0000000..a1bcb25 --- /dev/null +++ b/src/components/Roadmap.astro @@ -0,0 +1,100 @@ +--- +import { + AppWindow, + Cloudy, + Copyright, + DatabaseZap, + FlaskConical, + LibraryBig, + Rss, + Scale, + Share2, +} from "@lucide/astro"; +import RoadmapItem from "./RoadmapItem.astro"; +--- + +
+

Roadmap

+

+ A rough roadmap of what we have planned for the future. Subject to change at + any time. +

+ +
    + +

    + From-scratch Elixir libraries and tooling to interact with the AT + Protocol. +

    +
      +
    • + + atex + - Core utilities and frameworks for AT Protocol +
    • +
    • + + Drinkup + + - AT Protocol firehose & subscription listener +
    • +
    +
    + + + Basic chronological timeline, follows, uploading of music, and playback. + Private testing. + + + + Custom CDN for converting uploaded audio to streaming-friendly formats for + the music player, reducing strain on self-hosters and mobile bandwidth. + + + + + + Expand the basic follow-only social graph with blocks and mutes applying + to commenting on tracks and playlists. + + + + Create a discovery/recommendations algorithm for finding new content. + Additionally, create tools to allow the creation of custom feeds (and + autoplay?) for those who want them + + + + Moderation tools for dealing with offensive content, modelled after + Bluesky's labelling system. + + + + A system to deal with copyright violations and piracy on the platform, + forwarding DMCA requests to PDS hosts and blocking content from the app + where needed, while still fighting for fair use and remix culture. + + + + + + Provide a hosted PDS offering with increased storage limits to allow + uploading longer tracks (e.g. mixes and podcasts) or other larger AT + Protocol media, without having to deal with the technical hassle of + self-hosting. + +
+
diff --git a/src/components/RoadmapItem.astro b/src/components/RoadmapItem.astro new file mode 100644 index 0000000..77e14c0 --- /dev/null +++ b/src/components/RoadmapItem.astro @@ -0,0 +1,104 @@ +--- +import { Check, Lightbulb, Clock, type Icon as IconType } from "@lucide/astro"; + +const statusStrings = { + planned: "Planned", + "in-progress": "In Progress", + complete: "Complete", +} as const; + +interface Props { + title: string; + icon: typeof IconType; + status?: "planned" | "in-progress" | "complete"; +} + +const { title, icon: Icon, status = "planned" } = Astro.props; +let StatusIcon: typeof IconType; + +switch (status) { + case "planned": + StatusIcon = Lightbulb; + break; + case "in-progress": + StatusIcon = Clock; + break; + case "complete": + StatusIcon = Check; + break; +} +--- + +
  • +
    +
    + +
    +

    +

    +

    {title}

    + +
    + + + +
  • + + diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index e775a02..28d71cb 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -26,22 +26,9 @@ import "../style/main.css"; + data-website-id="8ef06cd9-9afa-4b67-a4ce-789d4b2a1edf"> - - diff --git a/src/pages/index.astro b/src/pages/index.astro index a82e6d1..dc99c05 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,21 +1,24 @@ --- import Logo from "../assets/logo.svg"; import Layout from "../layouts/Layout.astro"; +import Roadmap from "../components/Roadmap.astro"; import { Bluesky, Discord, Github } from "simple-icons-astro"; ---

    Comet

    +

    Decentralised music streaming on ATProtocol.
    Coming soon.

    -

    + +

    Follow us: @@ -23,6 +26,8 @@ import { Bluesky, Discord, Github } from "simple-icons-astro";

    + +
    @@ -30,6 +35,6 @@ import { Bluesky, Discord, Github } from "simple-icons-astro"; @reference "../style/main.css"; body { - @apply from-brand-light flex items-center justify-center bg-radial-[circle_at_50%_150%] via-amber-900 to-stone-950 text-white; + @apply from-brand-light flex justify-center bg-radial-[circle_at_50%_150%] via-amber-900 to-stone-950 bg-fixed text-white; } -- 2.51.2