website

#astro#js#html#css

git clone https://git.pyrossh.dev/website

木 Personal website of pyrossh. Built with astrojs, shiki, vite.


af5a5b2 — pyrossh 2026-07-07T11:26:41+05:30
feat: scaffold monorepo with shared config package

Generated files not shown: pnpm-lock.yaml

.gitignore CHANGED
@@ -58,4 +58,4 @@ dist-ssr
58
58
  *.sw?
59
59
  target
60
60
  .wrangler
61
- repos/
61
+ repos/*
package.json CHANGED
@@ -28,12 +28,14 @@
28
28
  "remark-rehype": "^11.1.2",
29
29
  "spamscanner": "^6.1.5",
30
30
  "timeago.js": "^4.0.2",
31
+ "typed-htmx": "^0.3.1",
31
32
  "unified": "^11.0.5"
32
33
  },
33
34
  "devDependencies": {
34
35
  "@astrojs/check": "^0.9.9",
35
36
  "@astrojs/rss": "^4.0.18",
36
37
  "@astrojs/sitemap": "^3.7.2",
38
+ "@cloudflare/workers-types": "^5.20260706.1",
37
39
  "@iconify-json/material-symbols": "^1.2.39",
38
40
  "@iconify-json/mdi": "^1.2.3",
39
41
  "@iconify-json/vscode-icons": "^1.2.36",
packages/shared/config/package.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@pyrossh/config",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "main": "src/index.ts",
7
+ "types": "src/index.ts"
8
+ }
packages/shared/config/src/index.ts ADDED
@@ -0,0 +1,132 @@
1
+ export const SITE_TITLE = "pyrossh";
2
+ export const SITE_DESCRIPTION = "Welcome to my website!";
3
+ export const REPOS = [
4
+ {
5
+ title: "rust-embed",
6
+ description:
7
+ "rust macro which loads files into the rust binary at compile time during release and loads the file from the fs during dev.",
8
+ tags: ["rust", "proc-macro", "http"],
9
+ },
10
+ {
11
+ title: "website",
12
+ description: "木 Personal website of pyrossh. Built with astrojs, shiki, vite.",
13
+ tags: ["astro", "js", "html", "css"],
14
+ },
15
+ {
16
+ title: "plum",
17
+ description: "A statically typed, imperative programming language inspired by rust, python",
18
+ tags: ["treesitter", "compiler", "wasm"],
19
+ },
20
+ {
21
+ title: "edge-city",
22
+ description:
23
+ "edge-city is a next level meta-framework for react that runs only on edge runtimes",
24
+ tags: ["react", "js", "ssr"],
25
+ },
26
+ {
27
+ title: "gromer",
28
+ description:
29
+ "gromer is a framework and cli to build multipage web apps in golang using htmx and alpinejs.",
30
+ tags: ["golang", "htmx", "ssr"],
31
+ },
32
+ {
33
+ title: "atoms-element",
34
+ description:
35
+ "A simple web component library for defining your custom elements. It works on both client and server.",
36
+ tags: ["js"],
37
+ },
38
+ {
39
+ title: "atoms-state",
40
+ description: "Simple State management for react",
41
+ tags: ["js", "react", "flux"],
42
+ },
43
+ {
44
+ title: "remote-monitor",
45
+ description: "Remote Monitoring and Control using GSM-SMS",
46
+ tags: ["c++", "teensy", "arduino"],
47
+ },
48
+ {
49
+ title: "only-bible-app",
50
+ description:
51
+ "The only bible app you will ever need. No ads. No in-app purchases. No distractions.",
52
+ tags: ["kotlin", "android", "ios"],
53
+ },
54
+ {
55
+ title: "gdx-studio",
56
+ description:
57
+ "An IDE for creating Games using libgdx and Java supported on all platforms Android, iOS, Desktop",
58
+ tags: ["libgdx", "java", "desktop"],
59
+ },
60
+ {
61
+ title: "rp2350",
62
+ description: "code to drive rp2350",
63
+ tags: ["zig", "raspberry-pi"],
64
+ },
65
+ {
66
+ title: "config",
67
+ description: "Common configuration",
68
+ tags: ["brew", "nushell"],
69
+ },
70
+ {
71
+ title: "sabel-ide",
72
+ description: "sabel-ide",
73
+ tags: ["python", "qt"],
74
+ },
75
+ {
76
+ title: "tide-jsx",
77
+ description: "Tide + JSX",
78
+ tags: ["rust", "proc-macro", "jsx"],
79
+ },
80
+ ];
81
+ export const TOOLS = [
82
+ {
83
+ name: "Stats",
84
+ link: "https://github.com/exelban/stats",
85
+ image: "/assets/logos/stats.png",
86
+ },
87
+ {
88
+ name: "Void",
89
+ link: "https://github.com/voideditor/void",
90
+ image: "/assets/logos/void.png",
91
+ },
92
+ {
93
+ name: "Helix",
94
+ link: "https://github.com/helix-editor/helix",
95
+ image: "/assets/logos/helix.png",
96
+ },
97
+ {
98
+ name: "Nushell",
99
+ link: "https://github.com/nushell/nushell",
100
+ image: "/assets/logos/nu.png",
101
+ },
102
+ {
103
+ name: "Ghostty",
104
+ link: "https://github.com/ghostty-org/ghostty",
105
+ image: "/assets/logos/ghostty.png",
106
+ },
107
+ {
108
+ name: "Zellij",
109
+ link: "https://zellij.dev/",
110
+ image: "/assets/logos/zellij.png",
111
+ },
112
+ {
113
+ name: "Zen",
114
+ link: "https://github.com/zen-browser/desktop",
115
+ image: "/assets/logos/zen.svg",
116
+ },
117
+ {
118
+ name: "Bruno",
119
+ link: "https://github.com/usebruno/bruno",
120
+ image: "/assets/logos/bruno.png",
121
+ },
122
+ {
123
+ name: "Secretive",
124
+ link: "https://github.com/maxgoedjen/secretive",
125
+ image: null,
126
+ },
127
+ ];
128
+ export const NAV_ITEMS = [
129
+ { href: "/cv", label: "cv" },
130
+ { href: "/posts", label: "posts" },
131
+ ] as const;
132
+ export const SITE_URL = "https://pyrossh.dev";
packages/shared/config/tsconfig.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "../../../tsconfig.base.json",
3
+ "include": ["src"]
4
+ }
pnpm-workspace.yaml CHANGED
@@ -1,3 +1,7 @@
1
+ packages:
2
+ - "packages/shared/*"
3
+ - "packages/workers/**"
4
+
1
5
  catalog:
2
6
  vite: ^7.3.6
3
7
  vite-plus: ^0.2.2
tsconfig.base.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "jsx": "react-jsx",
7
+ "jsxImportSource": "typed-htmx/typed-html",
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "forceConsistentCasingInFileNames": true,
11
+ "resolveJsonModule": true,
12
+ "isolatedModules": true,
13
+ "noEmit": true,
14
+ "types": ["@cloudflare/workers-types"]
15
+ }
16
+ }