Files
voculinux/web/next.config.js
T
xavierk c9be45d3c3 fix(web): link the fork's own source host and drop the upstream star count
The header badge fetched the star count of VocaHQ/vocalinux at build time
and labelled it as Voculinux's. The fetch and the count are gone; the
header, footer and social "source" links now go to the fork repository at
git.bongbetic.com/xavierk/voculinux, as do the issue links, the docs
anchors, the home page JSON-LD and the xbps release card.

Upstream GitHub stays only where it is the real artefact or provenance and
is labelled as such: the install script, the AppImage release card, the
upstream card and the changelog release links. The changelog now says its
entries are upstream history, the open-source page no longer claims
VocaHQ membership or an active GitHub community, and the organization
JSON-LD drops the upstream author as founder. DESIGN.md and PRODUCT.md
follow.
2026-11-06 18:22:17 +05:30

75 lines
1.9 KiB
JavaScript

// @ts-ignore
/** @type {import("next").NextConfig} */
const config = {
output: 'export',
trailingSlash: true,
// Configuration for custom domain deployment
distDir: 'out',
// Cache/security headers live in public/_headers (copied into the static
// export). next.config headers() is ignored with output: 'export' and only
// produces build warnings.
images: {
unoptimized: true,
formats: ['image/avif', 'image/webp'],
remotePatterns: [
{
protocol: 'https',
hostname: '*',
pathname: '**',
},
],
},
eslint: {
ignoreDuringBuilds: true,
},
typescript: {
ignoreBuildErrors: true,
},
// Disable source maps in production to reduce bundle size
productionBrowserSourceMaps: false,
// Use modern JavaScript for better performance and smaller bundle sizes
experimental: {
optimizePackageImports: ['lucide-react', 'framer-motion'],
},
webpack: (config, { isServer, dev }) => {
// Only use source maps in development
if (!dev) {
config.devtool = false;
}
// Enhanced node polyfills for postgres and other modules
if (!isServer) {
config.resolve.fallback = {
...config.resolve.fallback,
// File system - never needed in browser
fs: false,
net: false,
tls: false,
crypto: false,
stream: false,
'perf_hooks': false,
// Definitely not needed in browser
child_process: false,
dns: false,
};
// Configure swc to output modern JavaScript (ES2022) instead of ES5
// This eliminates unnecessary polyfills and reduces bundle size
if (config.optimization && config.optimization.minimizer) {
config.optimization.minimizer.forEach((minimizer) => {
if (minimizer.constructor.name === 'TerserPlugin') {
minimizer.options.compress = {
...minimizer.options.compress,
pure_funcs: ['console.log', 'console.debug'],
};
}
});
}
}
return config;
},
};
export default config;