···11+/*
22+ * clippr: a social bookmarking service for the AT Protocol
33+ * Copyright (c) 2025 clippr contributors.
44+ * SPDX-License-Identifier: AGPL-3.0-only
55+ */
66+17// @ts-check
28import { defineConfig } from 'astro/config';
39
···11+---
22+import Base from "../layouts/Base.astro";
33+import Header from "../layouts/Header.astro";
44+import Footer from "../layouts/Footer.astro";
55+---
66+<Base title="404">
77+ <Header/>
88+ <main class="404-page">
99+ <h2>404 | page not found</h2>
1010+ <p>the party seems to be over...</p>
1111+ <a href="/">« go home</a>
1212+ </main>
1313+ <Footer/>
1414+</Base>
1515+1616+<style>
1717+ main {
1818+ display: flex !important;
1919+ flex-direction: column !important;
2020+ gap: 0.1rem;
2121+ align-items: center;
2222+ justify-content: center;
2323+ }
2424+2525+ h2, p {
2626+ margin: 0.5rem 0;
2727+ }
2828+2929+ a {
3030+ color: revert;
3131+ }
3232+</style>
+12
frontend/src/pages/about.astro
···11+---
22+import Base from "../layouts/Base.astro";
33+import Header from "../layouts/Header.astro";
44+import Footer from "../layouts/Footer.astro";
55+---
66+<Base title="about">
77+ <Header/>
88+ <main>
99+ <p>Fill in later!</p>
1010+ </main>
1111+ <Footer/>
1212+</Base>
+2-1
frontend/src/pages/index.astro
···1212 <div id="clip-list">
1313 <Clip title="google" link="https://google.com" tagList="technology,search,google"
1414 description="tests woah"
1515- originalClipper="popbob.com"/>
1515+ originalClipper="popbob.com" firstClipDate="30m"/>
1616 </div>
1717 </div>
1818 <div id="sidebar">
···2020 <p>clippr is a bookmarking site that doubles as a news aggregator.</p>
2121 <p>using your bookmarks (or "clips") and their associated tags, a constantly updated news feed is
2222 created based on what users are clipping to their collection.</p>
2323+ <a href="/about">learn more »</a>
2324 </SidebarItem>
2425 <SidebarItem title="stats">
2526 <h3>clips</h3>