April 4, 2025

Building TapfarTech - From Template to Professional Brand

TapfarTech website transformation showcasing modern design with dark theme and mint green accents, built with Astro and TailwindCSS for professional IT consulting services.

🎯 Project Overview

TapfarTech represents the evolution of a modern template into a professional business website. This project demonstrates how strategic customization and technical expertise can transform a foundation into a compelling online presence for IT consulting and web development services.

πŸš€ Business Goals

Professional Positioning

  • Showcase systems administration expertise from military and airline industry experience
  • Establish credibility in web development and IT consulting
  • Create a platform for attracting small business clients
  • Build a foundation for scaling from side hustle to full business operations

Technical Objectives

  • Implement modern web technologies (Astro, TailwindCSS, TypeScript)
  • Ensure fast loading times and optimal SEO performance
  • Create responsive design for all device types
  • Establish scalable content management for future growth

πŸ“ Project Structure

└── πŸ“NeonMint
    └── πŸ“public
        β”œβ”€β”€ android-chrome-192x192.png
        β”œβ”€β”€ android-chrome-512x512.png
        β”œβ”€β”€ apple-touch-icon.png
        β”œβ”€β”€ favicon-16x16.png
        β”œβ”€β”€ favicon-32x32.png
        β”œβ”€β”€ favicon.ico
        └── πŸ“images
            β”œβ”€β”€ πŸ“posts    # Post images
            └── πŸ“projects # Project images
        └── site.webmanifest # PWA configuration file
    └── πŸ“src
        β”œβ”€β”€ πŸ“components  # Reusable UI components
        β”‚   β”œβ”€β”€ πŸ“blog    # Blog components
        β”‚   β”œβ”€β”€ πŸ“layout  # Layout components
        β”‚   β”œβ”€β”€ πŸ“portfolio # Portfolio components
        β”‚   └── πŸ“ui      # UI components
        β”œβ”€β”€ πŸ“icons       # Icons (.svg)
        β”œβ”€β”€ πŸ“layouts     # Site layouts
        β”‚   β”œβ”€β”€ Layout.astro           # Main application layout
        β”‚   β”œβ”€β”€ MarkdownAbout.astro    # About-me page layout
        β”‚   β”œβ”€β”€ MarkdownPostLayout.astro # Posts page layout
        β”‚   └── ProjectLayout.astro    # Projects page layout
        β”œβ”€β”€ πŸ“pages       # Site pages
        β”‚   β”œβ”€β”€ about-me.md            # About-me page
        β”‚   β”‚   β”œβ”€β”€ πŸ“blog   # All posts page
        β”‚   β”‚   β”œβ”€β”€ index.astro        # Blog home page
        β”‚   β”‚   β”œβ”€β”€ πŸ“posts            # Blog posts
        β”œβ”€β”€ β”‚   β”œβ”€β”€ └── index.astro     #All posts page
        β”‚   β”‚   β”œβ”€β”€ πŸ“tags             # Blog tags
        β”‚   β”‚   └── πŸ“techs            # Blog technologies
        β”‚   β”œβ”€β”€ index.astro            # Home page
        β”‚   β”œβ”€β”€ πŸ“portfolio
        β”‚   β”‚   └── πŸ“projects         # Portfolio projects
        β”‚   β”œβ”€β”€ robots.txt.ts          # robots.txt configuration
        β”‚   └── rss.xml.js             # RSS configuration
        β”œβ”€β”€ πŸ“scripts
        β”‚   └── menu.js                # Menu script
        β”œβ”€β”€ πŸ“styles
        β”‚   └── global.css             # Global styles
        └── πŸ“utils
            └── languages.ts           # Technology tools configuration
    β”œβ”€β”€ .gitignore
    β”œβ”€β”€ astro.config.mjs
    β”œβ”€β”€ package-lock.json
    β”œβ”€β”€ package.json
    β”œβ”€β”€ README.md
    └── tsconfig.json

πŸ› οΈ Technology Stack

  • Framework: Astro v5.4.2
  • UI Library: Preact v10.26.2
  • Styling: TailwindCSS v4.0.8
  • Icons: astro-icon v1.1.5
  • Syntax Highlighting: PrismJS v1.30.0
  • Animations: tailwindcss-animated v2.0.0
  • Analytics: @vercel/speed-insights v1.2.0

✨ Key Features

  1. πŸš€ Performance Optimized

    • Static site generation
    • Partial hydration with Preact
    • Optimized images and assets
  2. πŸ’» Modern Development Experience

    • TypeScript support
    • Hot module replacement
    • ESLint integration
  3. πŸ” SEO & Analytics

    • Built-in sitemap generation
    • RSS feed support
    • Vercel Speed Insights
  4. 🎨 Styling & UI

    • TailwindCSS for utility-first styling
    • Animated components
    • Responsive design
    • Dark mode support

πŸš€ Getting Started

  1. πŸ“¦ Installation

    npm install
  2. ⚑ Development

    npm run dev
  3. πŸ—οΈ Build

    npm run build
  4. πŸ‘€ Preview

    npm run preview

βš™οΈ Configuration

The project is configured through several key files:

  • astro.config.mjs: Main Astro configuration
  • tailwind.config.js: TailwindCSS configuration
  • tsconfig.json: TypeScript configuration

🎨 Customization

πŸ“„ Adding New Pages

Create new .astro files in the src/pages directory. The file name will determine the route.

πŸ”§ Adding New Languages or Technologies

To incorporate a new programming language or technological tool into the site’s capsules, follow these steps:

  1. πŸ–ΌοΈ Add the SVG icon: Place the SVG file of the language or tool in the src/icons folder.

     > **πŸ’‘ Recommendation**: For SVG icons, I recommend using [SVGL](https://svgl.app/), an excellent library of high-quality vectors that offers optimized icons for most popular languages and technologies.
  2. πŸ“ Register the language: Open the utils/languages.ts file and add a new entry to the languages object following this format:

    html: {
        name: "HTML 5",
        iconName: "html",
    },

    Where:

    • html: Is the unique identifier for the language
    • name: Is the name that will be displayed visibly in the interface
    • iconName: Is the name of the SVG file without the extension (must match exactly with the file name in src/icons)

Once these steps are completed, the new language or technology will be available for use in the site’s capsules. You can select it when creating or editing projects or posts, and the corresponding icon will be displayed correctly in the interface.

If you encounter any issues during this process, try restarting the development server. In some cases, changes to configuration files or static resources require a restart to be detected correctly.

To verify that the new language has been added correctly, check the list of available technologies in the user interface after restarting the server.

🎨 Styling

  • Use TailwindCSS classes for styling
  • Add custom styles in src/styles/global.css

🧩 Components

  • Create reusable components in src/components
  • Import icons using astro-icon

πŸš€ Deployment

The site is configured for deployment on Vercel, but can be deployed to any static hosting service.

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Share