initial commit
Generate a build and push to Cloudflare Pages / Build and Deploy to Cloudflare Pages (push) Successful in 1m24s

This commit is contained in:
2026-03-25 18:53:21 -04:00
parent 2d19da4ef5
commit d21806dfd1
532 changed files with 11274 additions and 72849 deletions
+22
View File
@@ -0,0 +1,22 @@
---
name: 'Bullseye'
description: 'Bullseye is a self-hosted offline-first personal utilities app with habit tracking, tasks, and notes.'
tags: ['typescript', 'svelte', 'sqlite']
image: '../../../public/static/bullseye.webp'
link: 'https://git.jaroszew.ski/patrick/bullseye-app'
startDate: '2025-03-30'
---
# Bullseye - Habit tracking, tasks, notes, & more
<div class="flex flex-wrap gap-2 my-0! [&>img]:my-0! [&>img]:mt-2!" >
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" />
<img src="https://img.shields.io/badge/Svelte-FF3E00?style=for-the-badge&logo=svelte&logoColor=white" alt="Svelte" />
<img src="https://img.shields.io/badge/SQLite-07405E?style=for-the-badge&logo=sqlite&logoColor=white" alt="SQLite" />
<img src="https://img.shields.io/badge/Claude-D97757?style=for-the-badge&logo=anthropic&logoColor=white" alt="Claude" />
</div>
Bullseye is a self-hosted personal utilities app built with Svelte and TypeScript — habit tracking, todo lists, and markdown notes in one place.
The main design decision was offline-first. Using Triplit with a local IndexedDB cache, everything works without a connection and syncs to the server when one is available. The frustration of opening a habit tracker on the go and hitting a loading spinner was enough motivation to build it properly from the start.
Multi-user support means it can serve a whole household off a single self-hosted instance.
+27
View File
@@ -0,0 +1,27 @@
---
name: 'Chitai'
description: 'Chitai is a self-hosted eBook management application'
tags: ['python', 'typescript', 'postgresql', 'svelte', 'open-source']
image: '../../../public/static/chitai.webp'
link: 'https://git.jaroszew.ski/patrick/chitai'
startDate: '2025-03-30'
---
# Chitai - A Self-hosted eBook Management Application
<div class="flex flex-wrap gap-2 my-0! [&>img]:my-0! [&>img]:mt-2!" >
<img src="https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=FFD43B" alt="Python" />
<img src="https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge&logo=postgresql&logoColor=white" alt="PostgreSQL" />
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" />
<img src="https://img.shields.io/badge/Svelte-FF3E00?style=for-the-badge&logo=svelte&logoColor=white" alt="Svelte" />
<img src="https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker" />
</div>
Chitai is a self-hosted ebook management platform I built after outgrowing [Calibre-web](https://github.com/janeczku/calibre-web). The core frustration was simple: I wanted to have separate libraries — my academic textbooks separate from fiction, which meant running two separate instances. That felt wrong and it wasn't scalable, so I built something with multi-library support from the ground up.
Beyond that, I used it as an opportunity to modernize the experience — built-in EPUB and PDF readers with progress tracking, an OPDS catalog so I can browse and fetch books from my eReader, and native KoSync endpoints so reading progress stays in sync across my KOReader devices.
It was also my first full-stack project at this scale. I picked up Svelte and TypeScript building the frontend, and got much more comfortable with async Python and PostgreSQL on the backend. Every feature is something I actually needed and figured out how to build.
**Core features**: multiple independent libraries, built-in browser readers, OPDS catalog, KOReader sync, bookshelves, automatic metadata extraction, multi-user support.
More project details, source code, and deployment instructions can be found on [here](https://git.jaroszew.ski/patrick/chitai).
-131
View File
@@ -1,131 +0,0 @@
---
name: 'cojocarudavid.me (old)'
description: 'Blazing fast personal website built with Astro.js and styled with Tailwind CSS.'
tags: ['astro', 'tailwindcss', 'typescript']
image: '../../../public/static/cojocarudavidme.webp'
link: 'https://github.com/cojocaru-david/cojocarudavid.me'
startDate: '2023-10-16'
endDate: '2025-04-28'
---
# cojocarudavid.me ![Stars](https://img.shields.io/github/stars/cojocaru-david/cojocarudavid.me?style=social)
👋 Hi, I'm **David**, a 17-year-old coder from Romania. 🚀 Passionate about web development with **JavaScript, PHP, and React**. Linux enthusiast automating tasks with Bash.
---
## 🚀 Project Overview
**cojocarudavid.me** is my **personal portfolio website**, built with **Astro.js** and styled using **Tailwind CSS**. It serves as a hub for my projects, blog posts, and personal updates.
---
## 🌟 Features
**Blazing fast** - Optimized for performance and SEO.
🎨 **Modern & responsive** - Tailwind CSS for easy customization.
🔒 **Secure & reliable** - Follows best security practices.
📱 **Mobile-friendly** - Fully responsive across devices.
📝 **Blog support** - Share insights and experiences.
---
## 🛠️ Tech Stack
- **[Astro.js](https://astro.build/)** - Static site generator.
- **[React.js](https://reactjs.org/)** - Used for components.
- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework.
- **[TypeScript](https://www.typescriptlang.org/)** - Typed JavaScript at scale.
- **[JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)** - Core language.
- **[CSS](https://developer.mozilla.org/en-US/docs/Web/CSS)** - Styles and layouts.
---
## 📚 Setup & Installation
### Prerequisites
Ensure you have the following installed:
- [Node.js](https://nodejs.org/) and npm.
- [Git](https://git-scm.com/).
### Installation Steps
1. **Clone the repository:**
```sh
git clone https://github.com/cojocaru-david/cojocarudavid.me.git
```
2. **Navigate to the project directory:**
```sh
cd cojocarudavid.me
```
3. **Install dependencies:**
```sh
npm install
```
4. **Run the development server:**
```sh
npm run dev
```
---
## 🎯 Usage
### Development Mode
Run the local development server:
```sh
npm run dev
```
### Production Build
Generate a production-ready build:
```sh
npm run build
```
---
## 🤝 Contributing
Contributions are welcome! Please follow the [contributing guidelines](CONTRIBUTING.md) before submitting changes.
---
## 📄 License
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
---
## 💬 Contact
📧 Email: [contact@cojocarudavid.me](mailto:contact@cojocarudavid.me)
### 🌐 Connect with Me
- [LinkedIn](https://www.linkedin.com/in/cojocaru-david)
- [Blog](https://cojocarudavid.me/blog)
---
## ⭐ Show Your Support
If you like this project, give it a ⭐ on GitHub!
---
## 🙏 Acknowledgments
- [Astro.js](https://astro.build/)
- [Tailwind CSS](https://tailwindcss.com/)
@@ -1,12 +1,20 @@
---
name: 'SnippetsLibrary'
description: 'A secure, lightning-fast code snippet manager to store, organize, and share your code with beautiful syntax highlighting.'
tags: ['react', 'vite', 'tailwindcss', 'typescript', 'bun', 'hono', 'drizzle-orm', 'postgresql', 'jwt', 'github-oauth', 'cloudflare-workers']
image: '../../../public/static/snippetslibrary.webp'
name: 'Cue'
description: 'A on-demand resource booking application'
tags: ['python', 'typescript', 'svelte', 'postgresql']
image: '../../../public/static/cue.webp'
link: 'https://snippetslibrary.com'
startDate: '2025-07-23'
---
<div class="flex flex-wrap gap-2 my-0! [&>img]:my-0! [&>img]:mt-2!" >
<img src="https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white" alt="Python" />
<img src="https://img.shields.io/badge/SQLite-07405E?style=for-the-badge&logo=sqlite&logoColor=white" alt="SQLite" />
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" />
<img src="https://img.shields.io/badge/Svelte-FF3E00?style=for-the-badge&logo=svelte&logoColor=white" alt="Svelte" />
<img src="https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker" />
</div>
# SnippetsLibrary
Manage your personal and team code snippets with speed and confidence. SnippetsLibrary makes it easy to create, organize, search, and share snippets with first-class DX and beautiful syntax highlighting.
-43
View File
@@ -1,43 +0,0 @@
---
name: 'David Dark Code'
description: 'David Dark is a dark theme for VS Code. It is based on the github theme and the default dark theme. It is designed to be easy on the eyes and to be used for long periods of time.'
tags: ['vscode', 'theme', 'dark']
image: '../../../public/static/david-dark-code.webp'
link: 'https://github.com/cojocaru-david/david-dark-code'
startDate: '2023-10-17'
endDate: '2023-10-17'
---
## David Dark VS Code Theme: Code in Style, Code with Comfort
**Embrace the Dark Side of Coding**
Unleash your inner coding ninja with David Dark, a meticulously crafted VS Code theme designed for extended coding sessions and ultimate eye comfort. Inspired by the best of both worlds (GitHub and default dark themes), David Dark offers a visually stunning and practical coding environment.
**Features that Make You Shine**
- **Eye-Friendly Design:** David Dark prioritizes your well-being with a high-contrast color scheme that minimizes strain, allowing you to code for hours without feeling the burn.
- **Radiant Syntax Highlighting:** Experience a meticulously curated color palette that ensures code readability and clarity for a wide range of programming languages and file types.
- **Seamless Integration:** David Dark effortlessly integrates with popular VS Code extensions and plugins, providing customized colorization for a unified and stylish experience.
- **Professional Yet Playful:** Strike the perfect balance between aesthetics and professionalism with David Dark's unique design. Enjoy a coding environment that's both fun and functional.
- **Blue is the New Black:** David Dark's signature blue accent color adds a touch of elegance and sophistication to your code, making it stand out from the crowd.
## Installation: It's as Easy as 1, 2, 3!
**Automatic Installation:**
The quickest route to code in style: David Dark VS Code Theme: [https://marketplace.visualstudio.com/](https://marketplace.visualstudio.com/)
**Manual Installation:**
1. Open the Extensions sidebar in VS Code (`View → Extensions`).
2. Search for "David Dark Code".
3. Click "Install".
4. Open the Command Palette with `Ctrl+Shift+P` or `⇧⌘P`.
5. Select "Preferences: Color Theme" and choose a David Dark variant.
6. Get ready to write some **epic code!** ⌨️
**Let's Make David Dark Even Darker!**
We value your feedback! If you have any suggestions or encounter issues, feel free to create a new issue on the project's GitHub repository. We also welcome contributions to make David Dark even better!
**Remember:** The cooler your coding environment, the cooler your code!
-72
View File
@@ -1,72 +0,0 @@
---
name: 'Dream Home Template'
description: 'A modern, responsive real estate platform built with React, Vite, and Tailwind CSS. Find your dream home with intuitive search, detailed property listings, and seamless user experience.'
tags: ['react', 'vite', 'tailwindcss']
image: '../../../public/static/dream-home-template.webp'
link: 'https://dreamhome.cojocarudavid.me'
startDate: '2025-04-16'
endDate: '2025-05-29'
---
> **Find your perfect home with ease** - A modern, responsive real estate platform with advanced SEO optimization
> If you like this template, consider you can buy it from **[Ko-fi](https://ko-fi.com/c/11ea4e5155)** to support my work!
## ✨ Features
- 📱 **Fully Responsive** - Perfect experience on all devices
- 🎨 **Modern UI/UX** - Beautiful design with smooth animations
- 🏠 **Property Listings** - Detailed property information and galleries
- 👥 **User Authentication** - A basic (non-full-featured) authentication system
- 📞 **Contact & Support** - Easy ways to get in touch
-**Fast Performance** - Built with Vite for lightning-fast development
- 🚀 **SEO Optimized** - Complete SEO implementation with structured data
## 🔍 SEO Features
### Meta Tags & Open Graph
- ✅ Dynamic page titles for each route
- ✅ Unique meta descriptions for all pages
- ✅ Open Graph tags for social media sharing
- ✅ Twitter Card optimization
- ✅ Canonical URLs for duplicate content prevention
### Structured Data (JSON-LD)
- ✅ Organization schema for company information
- ✅ LocalBusiness schema for local SEO
- ✅ RealEstateListing schema for properties
- ✅ BreadcrumbList for navigation
- ✅ Property-specific structured data
### Technical SEO
- ✅ Sitemap.xml generation
- ✅ Robots.txt optimization
- ✅ Web manifest for PWA features
- ✅ Performance optimization with code splitting
- ✅ Mobile-first responsive design
- ✅ Fast loading times with Vite optimization
### Page-Specific SEO
#### Home Page (`/`)
- **Focus:** Brand awareness, service overview, featured properties
- **Keywords:** real estate, luxury homes, property search, dream home
#### Browse Properties (`/browse`)
- **Focus:** Property listings, search functionality
- **Keywords:** browse properties, luxury homes for sale, property finder
#### About Us (`/about`)
- **Focus:** Company information, team, expertise
- **Keywords:** real estate company, expert agents, professional service
#### List Property (`/list`)
- **Focus:** Property listing services, selling homes
- **Keywords:** sell home, list property, home selling, property marketing
#### Contact (`/contact`)
- **Focus:** Contact information, consultation services
- **Keywords:** contact real estate agent, property consultation
#### Property Details (`/property/:id`)
- **Focus:** Individual property information
- **Keywords:** Location-specific, property type, features
+17
View File
@@ -0,0 +1,17 @@
---
name: 'Marketing Site'
description: 'A simple marketing site built for a small business.'
tags: ['astro', 'tailwindcss']
image: '../../../public/static/druksubli.webp'
link: 'https://druksubli.pl'
startDate: '2025-04-16'
endDate: '2025-05-29'
---
Migrated a local print shop's legacy Joomla site to a static site built with AstroJS, eliminating server and database dependencies in the process. The result was significantly cheaper hosting, faster page loads, and better search engine positioning — without any of the maintenance overhead that comes with a CMS.
The site was built with SEO in mind from the ground up — semantic markup, optimized metadata, and fast load times that contribute directly to search ranking.
The contact form is protected with Cloudflare Turnstile to keep spam and bots out without burdening visitors with CAPTCHAs.
Deployed to Cloudflare Pages.
+35
View File
@@ -0,0 +1,35 @@
---
name: 'Homelab'
description: 'My homelab is where I tinker and learn new technologies.'
tags: ['proxmox', 'networking', 'hardware']
image: '../../../public/static/homelab.webp'
link: 'https://git.jaroszew.ski/ansible'
startDate: '2023-05-15'
---
<div class="flex flex-wrap gap-2 my-0! [&>img]:my-0! [&>img]:mt-2!" >
<img src="https://img.shields.io/badge/Proxmox-E57000?style=for-the-badge&logo=proxmox&logoColor=white" alt="Proxmox" />
<img src="https://img.shields.io/badge/LXC-333333?style=for-the-badge&logo=linuxcontainers&logoColor=white" alt="LXC" />
<img src="https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker" />
<img src="https://img.shields.io/badge/Ansible-EE0000?style=for-the-badge&logo=ansible&logoColor=white" alt="Ansible" />
<img src="https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black" alt="Linux" />
<img src="https://img.shields.io/badge/Debian-A81D33?style=for-the-badge&logo=debian&logoColor=white" alt="Debian" />
<img src="https://img.shields.io/badge/Alpine-0D597F?style=for-the-badge&logo=alpinelinux&logoColor=white" alt="Alpine" />
<img src="https://img.shields.io/badge/Bash-4EAA25?style=for-the-badge&logo=gnubash&logoColor=white" alt="Bash" />
<img src="https://img.shields.io/badge/NGINX-009639?style=for-the-badge&logo=nginx&logoColor=white" alt="NGINX" />
<img src="https://img.shields.io/badge/Caddy-1F88C0?style=for-the-badge&logo=caddy&logoColor=white" alt="Caddy" />
<img src="https://img.shields.io/badge/WireGuard-88171A?style=for-the-badge&logo=wireguard&logoColor=white" alt="WireGuard" />
<img src="https://img.shields.io/badge/OPNsense-D94F00?style=for-the-badge&logo=opnsense&logoColor=white" alt="OPNsense" />
</div>
My homelab started as an old repurposed desktop and has grown into a proper self-hosted infrastructure stack running on Proxmox, with services organized into LXCs. I even picked up a kitted-out PowerEdge along the way — though given the electricity bill, it mostly sleeps until I need it for backups.
The core of it is built around services I actually rely on day-to-day: Pi-hole for DNS, WireGuard for remote access, Gitea for storing configs and projects, NGINX as a central reverse proxy, and Certbot handling certificate renewal and distribution to the hosts that need them. On top of that sits monitoring with Grafana and Prometheus, Home Assistant for home automation, and a handful of other self-hosted applications.
Networking is handled with OPNsense, with VLANs segmenting IoT and management traffic, and DDNS via ddclient to handle IP rotation.
It's a joint project with my brother, and that's where things got interesting. Early on we were essentially pasting the commands we ran as documentation — it was impossible to keep up to date. As the setup grew more complex, we realized we needed the actual state of the lab to be the source of truth, not a markdown file someone forgot to update. That pushed us toward Ansible, and writing proper IaC forced a level of discipline that made everything more maintainable and reproducible.
Running this long-term has taught me a lot about how production infrastructure actually holds together — designing systems that interoperate reliably, keeping things documented in a way that survives time and a second person, and debugging the inevitable moments when something upstream breaks something downstream.
My ansible roles and collections can be found [here](https://git.jaroszew.ski/ansible).
-150
View File
@@ -1,150 +0,0 @@
---
name: 'Modern Portfolio'
description: 'Modern Portfolio is a personal website that showcases my work and projects. It is built with Astro.js and styled with Tailwind CSS, providing a fast and responsive user experience. The website features a clean design, easy navigation, and a focus on showcasing my skills and projects.'
tags: ['astro', 'tailwindcss', 'typescript']
image: '../../../public/static/modern-portfolio.webp'
link: 'https://cojocarudavid.me'
startDate: '2025-03-30'
---
# Developer Portfolio & Blog
![Astro](https://img.shields.io/badge/Astro-FF5D01?style=for-the-badge&logo=astro&logoColor=white)
![React](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)
![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)
![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)
A modern, high-performance personal portfolio and blog built with Astro.js. Designed to showcase your projects and technical writing with blazing-fast performance and exceptional SEO.
## ✨ Features
- 🚀 **Blazing fast performance** - Built with Astro.js for optimal loading speeds
- 📝 **Full-featured blog** - Support for technical articles with code highlighting
- 🎨 **Beautiful UI** - Modern, responsive design powered by Tailwind CSS
- 🌙 **Dark mode support** - Seamless light/dark theme switching
- 📱 **Fully responsive** - Looks great on all devices from mobile to desktop
- 🔍 **SEO optimized** - Structured data, meta tags, and optimized for search engines
- 🏷️ **Tag system** - Categorize blog posts and projects with tags
- 📊 **Content collection** - Organized content management with Astro's content collections
- 🖼️ **Project showcase** - Display your work with images, descriptions, and technology tags
## 🛠️ Tech Stack
- **[Astro.js](https://astro.build/)** - Static site generator with excellent performance
- **[React.js](https://reactjs.org/)** - For interactive components
- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework
- **[TypeScript](https://www.typescriptlang.org/)** - Type safety and improved developer experience
- **[MDX](https://mdxjs.com/)** - Markdown with JSX for rich content creation
- **[Preact](https://preactjs.com/)** - Lightweight alternative to React for UI components
## 📋 Prerequisites
Before you begin, ensure you have the following installed:
- [Node.js](https://nodejs.org/) (v18 or higher)
- [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/)
- [Git](https://git-scm.com/)
## ⚙️ Installation & Setup
1. **Clone the repository**
```bash
git clone https://github.com/cojocaru-david/portfolio.git
cd portfolio
```
2. **Install dependencies**
```bash
npm install
# or
yarn install
```
3. **Start the development server**
```bash
npm run dev
# or
yarn dev
```
4. **Open your browser**
Navigate to `http://localhost:4321` to see the site running locally.
## 📁 Project Structure
```
portfolio/
├── public/ # Static assets
├── src/
│ ├── components/ # UI components
│ ├── content/ # Content collections
│ │ ├── blog/ # Blog posts in MD/MDX format
│ │ └── projects/ # Project data
│ ├── layouts/ # Page layouts
│ ├── lib/ # Utility functions
│ ├── pages/ # Page routes
│ └── styles/ # Global styles
├── astro.config.mjs # Astro configuration
├── tailwind.config.cjs # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Project dependencies
```
## 🚀 Usage
### Creating a Blog Post
1. Create a new `.mdx` or `.md` file in `src/content/blog`
2. Add frontmatter with title, description, date, tags, and authors
3. Write your content using Markdown and MDX components
```mdx
---
title: "Your Post Title"
description: "A brief description of your post"
date: 2025-04-20
tags: ["tag1", "tag2", "tag3"]
authors: ["Your Name", "Co-author (optional)"]
---
# Your Post Title
Write your content here using Markdown.
## Subheading
More content...
```
### Adding a Project
1. Create a new `.md` file in projects
2. Add project details including name, description, tags, and image path
## 🌙 Dark Mode
The project includes dark mode support using Tailwind CSS and Preact. It detects user preferences and applies the appropriate theme, with an option to toggle between light and dark modes.
## 📊 Data Utilities
The project includes several utility functions in data-utils.ts:
- `getAllPosts()` - Retrieve all blog posts
- `getRecentPosts(count)` - Get the most recent posts
- `getAdjacentPosts(currentId)` - Get next and previous posts
- `getAllTags()` - Get all tags used in posts
- `getSortedTags()` - Get tags sorted by usage count
- `getPostsByAuthor(authorId)` - Get all posts by a specific author
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## 📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
+89
View File
@@ -0,0 +1,89 @@
---
name: 'Personal Portfolio'
description: 'Personal Portfolio is a personal website that showcases my work and projects. It is built with Astro.js and styled with Tailwind CSS, providing a fast and responsive user experience. The website features a clean design, easy navigation, and a focus on showcasing my skills and projects.'
tags: ['astro', 'tailwindcss', 'typescript', 'svelte']
image: '../../../public/static/portfolio.webp'
link: 'https://patrick.jaroszew.ski'
startDate: '2026-03-10'
---
# Developer Portfolio & Blog
<div class="flex flex-wrap gap-2 my-0! [&>img]:my-0! [&>img]:mt-2!" >
<img src="https://img.shields.io/badge/Astro-FF5D01?style=for-the-badge&logo=astro&logoColor=white" alt="Astro" />
<img src="https://img.shields.io/badge/Svelte-FF3E00?style=for-the-badge&logo=svelte&logoColor=white" alt="Svelte" />
<img src="https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white" alt="TailwindCSS" />
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" />
</div>
A modern, high-performance personal portfolio and blog built with Astro.js. Designed to showcase your projects and technical writing with blazing-fast performance and exceptional SEO.
## ✨ Features
- 🚀 **Blazing fast performance** - Built with Astro.js for optimal loading speeds
- 📝 **Full-featured blog** - Support for technical articles with code highlighting
- 🎨 **Beautiful UI** - Modern, responsive design powered by Tailwind CSS
- 🌙 **Dark mode support** - Seamless light/dark theme switching
- 📱 **Fully responsive** - Looks great on all devices from mobile to desktop
- 🔍 **SEO optimized** - Structured data, meta tags, and optimized for search engines
- 🏷️ **Tag system** - Categorize blog posts and projects with tags
- 📊 **Content collection** - Organized content management with Astro's content collections
- 🖼️ **Project showcase** - Display your work with images, descriptions, and technology tags
## 🛠️ Tech Stack
- **[Astro.js](https://astro.build/)** - Static site generator with excellent performance
- **[Svelte](https://svelte.dev/)** - For interactive components
- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework
- **[TypeScript](https://www.typescriptlang.org/)** - Type safety and improved developer experience
- **[MDX](https://mdxjs.com/)** - Markdown with JSX for rich content creation
## 📋 Prerequisites
Before you begin, ensure you have the following installed:
- [Node.js](https://nodejs.org/) (v18 or higher)
- [pnpm](https://pnpm.io)
- [Git](https://git-scm.com/)
## ⚙️ Installation & Setup
1. **Clone the repository**
```bash
git clone https://git.jaroszew.ski/patrick/portfolio.git
cd portfolio
```
2. **Install dependencies**
```bash
pnpm install
```
### Development Server
1. **Start the development server**
```bash
pnpm run dev
```
2. **Open your browser**
Navigate to `http://localhost:3010` to see the site running locally.
### Production Server
1. **Build the static site**
```bash
pnpm build
```
Your static files are now available in `./dist`
2. **Preview your site**
```bash
pnpm preview
```
3. **Open you browser**
Navigate to `http://localhost:3000` to see the site running locally.
## 📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
-124
View File
@@ -1,124 +0,0 @@
---
name: 'TailCI'
description: 'TailCI is a lightweight, fast, and modern web application built with CodeIgniter and styled with Tailwind CSS. It combines the simplicity of CodeIgniters PHP framework with the utility-first power of Tailwind CSS for rapid development and clean design.'
tags: ['codeigniter', 'tailwindcss', 'php']
image: '../../../public/static/tailci.webp'
link: 'https://tailci.cojocarudavid.me'
startDate: '2025-03-30'
---
# TailCI - CodeIgniter with Tailwind CSS
TailCI is a powerful, developer-friendly web application framework that seamlessly integrates CodeIgniter 4's robust PHP backend with Tailwind CSS's utility-first approach to styling. This combination delivers an optimal development experience for creating modern, responsive web applications with minimal effort.
## ✨ Key Features
### Lightning Fast
- Built on CodeIgniter's lightweight framework for optimal performance and speed
- Minimized build sizes and efficient resource loading
- Smart caching mechanisms for enhanced response times
### Modern Design
- Styled with Tailwind CSS v4 for a clean, responsive, and customizable interface
- Dark mode support out of the box
- Accessibility-focused components and layouts
### Developer Friendly
- Intuitive architecture and well-documented codebase for rapid development
- Hot module replacement during development
- Simplified workflow with npm scripts for common tasks
## 📋 Requirements
- PHP 8.1 or higher
- Composer for PHP dependency management
- Node.js v20+ and npm for frontend tooling
- Web server (Apache, Nginx, or built-in PHP server for development)
- MySQL 5.7+ / MariaDB 10.3+ (or other compatible database)
- Modern browser support (Chrome, Firefox, Safari, Edge)
## 🚀 Installation
### Quick Start
1. Clone the repository:
```bash
git clone https://github.com/cojocaru-david/tailCi.git
cd tailCi
```
2. Install backend dependencies:
```bash
composer install
```
3. Set up your environment:
```bash
cp env.example .env
```
Then edit `.env` to configure your database and application settings.
4. Run database migrations:
```bash
php spark migrate
```
5. Install frontend dependencies and build assets:
```bash
npm install
npm run build
```
### Development Workflow
Start the development server with hot reloading:
```bash
npm run dev
```
In a separate terminal, run the CodeIgniter server:
```bash
php spark serve
```
Visit `http://localhost:8080` to see your application.
## 🤝 Contributing
We welcome contributions to improve TailCI! Here's how you can help:
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Commit your changes: `git commit -m 'Add some amazing feature'`
4. Push to the branch: `git push origin feature/amazing-feature`
5. Open a Pull Request
Please ensure your code follows our coding standards and includes appropriate tests.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgements
- [CodeIgniter](https://codeigniter.com/) - The powerful PHP framework
- [Tailwind CSS](https://tailwindcss.com) - Utility-first CSS framework
- [Node.js](https://nodejs.org/) - JavaScript runtime
- Built with ❤️ by [Cojocaru David](https://github.com/cojocaru-david)
## 📊 Project Status
TailCI is under active development. We're constantly working to improve and add new features.
---
If you find TailCI helpful, please consider giving it a star on GitHub! ⭐