The source code for our eny.social landing page, which is mirrored in a different repository as part of the CI setup. eny.social
social-network eny local-first
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(analytics): add basic page insights

Sam Sauer e035b05d 640b9fe9

+88
+4
app/layout.tsx
··· 1 1 import type { Metadata } from "next"; 2 2 import { Instrument_Serif, Instrument_Sans } from "next/font/google"; 3 + import { Analytics } from "@vercel/analytics/next"; 4 + import { SpeedInsights } from "@vercel/speed-insights/next"; 3 5 import "./globals.css"; 4 6 5 7 const instrumentSerif = Instrument_Serif({ ··· 33 35 style={{ overflowX: "clip" }} 34 36 > 35 37 {children} 38 + <Analytics /> 39 + <SpeedInsights /> 36 40 </body> 37 41 </html> 38 42 );
+82
package-lock.json
··· 9 9 "version": "0.1.0", 10 10 "dependencies": { 11 11 "@phosphor-icons/react": "^2.1.10", 12 + "@vercel/analytics": "^2.0.1", 13 + "@vercel/speed-insights": "^2.0.0", 12 14 "next": "16.1.6", 13 15 "react": "19.2.3", 14 16 "react-dom": "19.2.3" ··· 2152 2154 "os": [ 2153 2155 "win32" 2154 2156 ] 2157 + }, 2158 + "node_modules/@vercel/analytics": { 2159 + "version": "2.0.1", 2160 + "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-2.0.1.tgz", 2161 + "integrity": "sha512-MTQG6V9qQrt1tsDeF+2Uoo5aPjqbVPys1xvnIftXSJYG2SrwXRHnqEvVoYID7BTruDz4lCd2Z7rM1BdkUehk2g==", 2162 + "license": "MIT", 2163 + "peerDependencies": { 2164 + "@remix-run/react": "^2", 2165 + "@sveltejs/kit": "^1 || ^2", 2166 + "next": ">= 13", 2167 + "nuxt": ">= 3", 2168 + "react": "^18 || ^19 || ^19.0.0-rc", 2169 + "svelte": ">= 4", 2170 + "vue": "^3", 2171 + "vue-router": "^4" 2172 + }, 2173 + "peerDependenciesMeta": { 2174 + "@remix-run/react": { 2175 + "optional": true 2176 + }, 2177 + "@sveltejs/kit": { 2178 + "optional": true 2179 + }, 2180 + "next": { 2181 + "optional": true 2182 + }, 2183 + "nuxt": { 2184 + "optional": true 2185 + }, 2186 + "react": { 2187 + "optional": true 2188 + }, 2189 + "svelte": { 2190 + "optional": true 2191 + }, 2192 + "vue": { 2193 + "optional": true 2194 + }, 2195 + "vue-router": { 2196 + "optional": true 2197 + } 2198 + } 2199 + }, 2200 + "node_modules/@vercel/speed-insights": { 2201 + "version": "2.0.0", 2202 + "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-2.0.0.tgz", 2203 + "integrity": "sha512-jwkNcrTeafWxjmWq4AHBaptSqZiJkYU5adLC9QBSqeim0GcqDMgN5Ievh8OG1rJ6W3A4l1oiP7qr9CWxGuzu3w==", 2204 + "license": "Apache-2.0", 2205 + "peerDependencies": { 2206 + "@sveltejs/kit": "^1 || ^2", 2207 + "next": ">= 13", 2208 + "nuxt": ">= 3", 2209 + "react": "^18 || ^19 || ^19.0.0-rc", 2210 + "svelte": ">= 4", 2211 + "vue": "^3", 2212 + "vue-router": "^4" 2213 + }, 2214 + "peerDependenciesMeta": { 2215 + "@sveltejs/kit": { 2216 + "optional": true 2217 + }, 2218 + "next": { 2219 + "optional": true 2220 + }, 2221 + "nuxt": { 2222 + "optional": true 2223 + }, 2224 + "react": { 2225 + "optional": true 2226 + }, 2227 + "svelte": { 2228 + "optional": true 2229 + }, 2230 + "vue": { 2231 + "optional": true 2232 + }, 2233 + "vue-router": { 2234 + "optional": true 2235 + } 2236 + } 2155 2237 }, 2156 2238 "node_modules/acorn": { 2157 2239 "version": "8.16.0",
+2
package.json
··· 10 10 }, 11 11 "dependencies": { 12 12 "@phosphor-icons/react": "^2.1.10", 13 + "@vercel/analytics": "^2.0.1", 14 + "@vercel/speed-insights": "^2.0.0", 13 15 "next": "16.1.6", 14 16 "react": "19.2.3", 15 17 "react-dom": "19.2.3"