experimenting with making decentralized fanfic archives on atproto. github mirror: https://github.com/haetae-bit/fanfic-atproto
1// @ts-check
2import { defineConfig, fontProviders } from 'astro/config';
3import node from '@astrojs/node';
4import db from "@astrojs/db";
5import authproto from "@fujocoded/authproto";
6import unocss from "unocss/astro";
7import preact from "@astrojs/preact";
8
9// https://astro.build/config
10export default defineConfig({
11 output: "server",
12 adapter: node({
13 mode: 'standalone',
14 }),
15 integrations: [
16 db(),
17 authproto({
18 applicationName: "fan archive",
19 applicationDomain: "localhost:4321",
20 driver: {
21 name: "astro:db",
22 },
23 scopes: {
24 genericData: true,
25 },
26 }),
27 unocss(),
28 preact({ compat: true })
29 ],
30 vite: {
31 ssr: {
32 noExternal: ["atproto-ui"],
33 },
34 },
35 // session: { // could this work for slices oauth?
36 // driver: process.env.PROD ? "db0" : "memory",
37 // options: {
38 // database: db(),
39 // tableName: "oauth",
40 // },
41 // cookie: {
42 // name: "fics.fan-session",
43 // secure: process.env.PROD ? true : false,
44 // sameSite: "lax",
45 // path: "/",
46 // }
47 // },
48 experimental: {
49 fonts: [
50 {
51 provider: fontProviders.fontsource(),
52 name: "IBM Plex Serif",
53 cssVariable: "--plex-serif",
54 },
55 {
56 provider: fontProviders.fontsource(),
57 name: "Libertinus Serif",
58 cssVariable: "--libertinus-serif",
59 },
60 {
61 provider: fontProviders.fontsource(),
62 name: "Noto Serif",
63 cssVariable: "--noto-serif",
64 },
65 {
66 provider: fontProviders.fontsource(),
67 name: "Lora",
68 cssVariable: "--lora",
69 },
70 {
71 provider: fontProviders.fontsource(),
72 name: "iA Writer Mono",
73 cssVariable: "--writer-mono",
74 },
75 {
76 provider: fontProviders.fontsource(),
77 name: "Intel One Mono",
78 cssVariable: "--intel-mono",
79 },
80 {
81 provider: fontProviders.fontsource(),
82 name: "Recursive",
83 cssVariable: "--recursive",
84 styles: ["oblique", "normal"],
85 weights: [300, 1000],
86 variationSettings: "'slnt' -15 0, 'CASL' 0 1, 'CRSV' 0 1, 'MONO' 0 1",
87 },
88 {
89 provider: fontProviders.fontsource(),
90 name: "iA Writer Quattro",
91 cssVariable: "--quattro",
92 },
93 {
94 provider: fontProviders.fontsource(),
95 name: "Sora",
96 cssVariable: "--sora",
97 },
98 {
99 provider: fontProviders.fontsource(),
100 name: "Readex Pro",
101 cssVariable: "--readex",
102 },
103 {
104 provider: fontProviders.fontsource(),
105 name: "Atkinson Hyperlegible Next",
106 cssVariable: "--atkinson",
107 },
108 {
109 provider: "local",
110 name: "OpenDyslexic",
111 cssVariable: "--dyslexic",
112 variants: [
113 {
114 src: [
115 "./src/assets/fonts/opendyslexic/OpenDyslexic-Regular.otf",
116 "./src/assets/fonts/opendyslexic/OpenDyslexic-Regular.woff",
117 "./src/assets/fonts/opendyslexic/OpenDyslexic-Regular.woff2",
118 ],
119 weight: 400,
120 style: "normal"
121 },
122 {
123 src: [
124 "./src/assets/fonts/opendyslexic/OpenDyslexic-Italic.otf",
125 "./src/assets/fonts/opendyslexic/OpenDyslexic-Italic.woff",
126 "./src/assets/fonts/opendyslexic/OpenDyslexic-Italic.woff2",
127 ],
128 weight: 400,
129 style: "italic",
130 },
131 {
132 src: [
133 "./src/assets/fonts/opendyslexic/OpenDyslexic-Bold.otf",
134 "./src/assets/fonts/opendyslexic/OpenDyslexic-Bold.woff",
135 "./src/assets/fonts/opendyslexic/OpenDyslexic-Bold.woff2",
136 ],
137 weight: 700,
138 style: "normal",
139 },
140 {
141 src: [
142 "./src/assets/fonts/opendyslexic/OpenDyslexic-Bold-Italic.otf",
143 "./src/assets/fonts/opendyslexic/OpenDyslexic-Bold-Italic.woff",
144 "./src/assets/fonts/opendyslexic/OpenDyslexic-Bold-Italic.woff2",
145 ],
146 weight: 700,
147 style: "italic",
148 },
149 ],
150 },
151 {
152 provider: fontProviders.fontsource(),
153 name: "Jacquard 12",
154 cssVariable: "--jacquard-12",
155 },
156 ],
157 },
158});