Fine Coding is a feature-rich, open-source blog template built with the latest web technologies. It's designed for developers who appreciate fine craftsmanship in code and want a stunning, high-performance platform to share their knowledge. Inspired by a "Matrix" digital aesthetic, this template combines a sleek UI with powerful AI features, a full admin dashboard, and engaging user interactions.
This project serves as both a ready-to-deploy blog and a comprehensive portfolio piece showcasing modern development practices.
- About The Project
- Key Features
- Built With
- Getting Started
- Usage
- License
- Contributing
- Acknowledgements
In a world of fast-paced development, Fine Coding champions the timeless principles of software craftsmanship. This blog is not just a platform; it's a statement. It demonstrates that software can be functional, beautiful, maintainable, and a joy to use.
The entire application was built with the principles it advocates, serving as a live example of what's possible with modern tools and a developer-centric mindset.
- Modern Frontend: Built with the Next.js App Router, React, and TypeScript for a type-safe, performant experience.
- Sleek UI/UX:
- Styled with Tailwind CSS and ShadCN/UI components.
- A custom-built, animated light/dark mode toggle.
- "Matrix"-style code rain effect on the homepage.
- Intermittent "glitch" effect on the header title for a dynamic feel.
- "Aura" glow animation on post cards that enhances visual feedback.
- AI Integration with Genkit:
- AI-powered tag suggestions for new posts based on content analysis.
- Full-Fledged Admin Dashboard:
- Secure authentication powered by Firebase Auth.
- Complete CRUD (Create, Read, Update, Delete) functionality for blog posts.
- Complete CRUD functionality for the Resource Hub.
- Ability to export newsletter subscribers to CSV.
- Rich Content & Community Features:
- A Resource Hub to share curated tools and links with the community.
- A "wishlist" form for users to suggest new resources.
- User Engagement:
- Interactive "like" button on posts with client-side state persistence.
- Interactive "favorite" button on resources.
- A complete comment section for visitors on both blog posts and resources.
- Newsletter subscription form integrated with Firebase and optional Beehiiv sync.
- Fully Responsive: Designed to look and work great on all devices, from mobile phones to desktops.
This project leverages a curated stack of modern and powerful technologies:
- Next.js
- React
- Tailwind CSS
- ShadCN/UI
- Genkit (Google AI)
- Firebase (Authentication, Firestore)
- TypeScript
- Zod
- Resend (for email notifications)
To get a local copy up and running, follow these simple steps.
- Node.js: Version 20.x or later.
- npm or yarn.
- Firebase Account: You will need a Firebase project to handle authentication and the database.
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git cd YOUR_REPO_NAME
-
Install NPM packages
npm install
-
Set up Firebase
- Go to the Firebase Console and create a new project.
- In your project, go to Authentication and enable the Email/Password sign-in provider.
- Go to Firestore Database and create a new database in production mode.
-
Configure Environment Variables
- Create a
.env.local
file in the root of your project by copying from.env.example
if it exists, or creating a new one.cp .env.example .env.local # if .env.example exists
- Open your new
.env.local
file and fill in the required variables. You can find your Firebase project credentials in your Firebase project settings. - You will also need a
GOOGLE_API_KEY
for Genkit. You can get one from Google AI Studio. - For newsletter features, you will need
RESEND_API_KEY
,ADMIN_EMAIL
,BEEHIIV_API_KEY
, andBEEHIIV_PUBLICATION_ID
.
- Create a
This project requires two separate development servers to be running simultaneously: one for the Next.js application and one for the Genkit AI flows.
-
Start the Next.js development server:
npm run dev
Your application will be available at
http://localhost:9002
. -
In a new terminal window, start the Genkit development server:
npm run genkit:dev
The Genkit development UI (Flows Explorer) will be available at
http://localhost:4000
.
Now you can navigate to http://localhost:9002/admin
to create your first admin user (Firebase will automatically create the user on the first login attempt if the account doesn't exist) and start writing posts!
Distributed under the MIT License. See LICENSE
for more information.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- ShadCN/UI for the fantastic UI components.
- Uiverse.io for inspiration on some of the CSS animations.
- The teams behind Next.js, Firebase, and Genkit for their incredible tools.