Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 3 additions & 15 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,15 +1,3 @@
# Database
DATABASE_URL="" # PostgreSQL connection string
# For Docker Compose: postgresql://hacktoberfest:hacktoberfest123@localhost:5432/hacktoberfest
# For cloud providers: copy the connection string from your provider

# Authentication
AUTH_SECRET="" # A random string
AUTH_URL="" # Should be http://localhost:3000 for local development
AUTH_GITHUB_ID=""
AUTH_GITHUB_SECRET=""
AUTH_DRIZZLE_URL="$DATABASE_URL" # Should be the same as DATABASE_URL

# Optional
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="" # Optional
NEXT_PUBLIC_ANALYTICS_WEBSITE_ID="" # Optional
# No environment variables are needed: the site is now a static
# discontinuation notice. The old variables (database, GitHub OAuth,
# analytics) are documented in archive/src/env.mjs.
3 changes: 2 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
.github
node_modules
.all-contributorsrc
.xatarc
.xatarc
archive
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Hacktoberfest Projects 🎉


A Web app that lets you find eligible repositories for Hacktoberfest!
> [!IMPORTANT]
> **This project has been discontinued.** Hacktoberfest no longer counts pull requests, so there is no need to search for eligible repositories anymore. https://finder.usmans.me now shows a static notice that points visitors to [hacktoberfest.com](https://hacktoberfest.com). All search, sign-in, reporting, database and analytics features are switched off, and the old source code is kept in [`archive/`](archive) for reference. New contributions are no longer being accepted.

Use it here - https://finder.usmans.me
A Web app that lets you find eligible repositories for Hacktoberfest!

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-51-orange.svg?style=flat-square)](#contributors-)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
53 changes: 53 additions & 0 deletions archive/src/app/not-found.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import Link from 'next/link';
import { Header } from './(public)/_components/header';
import { Button } from './(public)/_components/button';

export default function NotFoundPage() {
return (
<>
<Header />
<div className="min-h-[calc(100vh-61px)] flex items-center justify-center bg-gradient-to-br from-hacktoberfest-blue via-hacktoberfest-light-blue to-hacktoberfest-blue">
<div className="text-center max-w-2xl mx-auto px-6">
{/* 404 Number with Animation */}
<div className="relative mb-8">
<h1 className="text-[12rem] md:text-[15rem] leading-none text-hacktoberfest-light font-bold animate-pulse">
404
</h1>
<div className="absolute inset-0 bg-gradient-to-r from-transparent via-hacktoberfest-light to-transparent opacity-20 animate-pulse"></div>
</div>

{/* Error Message */}
<div className="space-y-6 mb-12">
<h2 className="text-4xl md:text-5xl font-bold text-hacktoberfest-light mb-4">
Oops! Page Not Found
</h2>
<p className="text-xl md:text-2xl text-hacktoberfest-light/80 leading-relaxed">
The page you're looking for seems to have wandered off into the
digital void. Don't worry, it happens to the best of us!
</p>
</div>

{/* Action Buttons */}
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center">
<Link href="/">
<Button>🏠 Go Back Home</Button>
</Link>
</div>

{/* Decorative Elements */}
<div className="mt-16 flex justify-center space-x-4 opacity-60">
<div className="w-3 h-3 bg-hacktoberfest-light rounded-full animate-bounce"></div>
<div
className="w-3 h-3 bg-hacktoberfest-light rounded-full animate-bounce"
style={{ animationDelay: '0.1s' }}
></div>
<div
className="w-3 h-3 bg-hacktoberfest-light rounded-full animate-bounce"
style={{ animationDelay: '0.2s' }}
></div>
</div>
</div>
</div>
</>
);
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
25 changes: 21 additions & 4 deletions next.config.mjs
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
import path from 'path';
import { fileURLToPath } from 'url';
import './src/env.mjs';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

/**
* The project finder has been discontinued (Hacktoberfest no longer counts
* pull requests). The site is now a single static notice page, and this
* config keeps hosting usage close to zero:
* - every old route (/repos, /contributors, /reports, /api/*, ...) is
* redirected to the notice page by the routing layer, so no server
* function, database or GitHub API call is ever invoked;
* - image optimization is turned off so no image transformations are billed.
*
* The retired feature code lives in /archive for reference.
*/

/**@type {import('next').NextConfig}*/
const config = {
reactStrictMode: true,
typedRoutes: true,
experimental: {
viewTransition: true
images: {
unoptimized: true
},
webpack(config) {
config.resolve.alias['@'] = path.resolve(__dirname, 'src');
Expand All @@ -23,6 +33,13 @@ const config = {
destination:
'https://github.com/max-programming/hacktoberfest-projects',
permanent: true
},
{
// Any path without a file extension (i.e. any old page or API route)
// goes to the notice page. Static assets and /_next are left alone.
source: '/:path((?!_next/)[^.]+)',
destination: '/',
permanent: false
}
];
}
Expand Down
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
"@databuddy/sdk": "^2.1.77",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "^9.32.0",
"@fontsource-variable/inter": "^5.3.0",
"@fontsource/barlow-semi-condensed": "^5.3.0",
"@fontsource/space-mono": "^5.3.0",
"@t3-oss/env-nextjs": "^0.13.8",
"@twuni/emojify": "^1.0.2",
"@types/node": "^24.1.0",
Expand Down
50 changes: 24 additions & 26 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion public/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading