Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

51 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒป Bloomfolio

A modern, customizable portfolio template built with Astro 5 and DaisyUI 5. A beautiful, fast, and highly customizable portfolio template for developers, designers, and creatives.

License: MIT Astro Tailwind CSS DaisyUI TypeScript


img1

โœจ Features

  • ๐ŸŽจ 6 Built-in Themes - Light, Dark, Synthwave, Retro, Valentine, and Dim
  • ๐Ÿ“ 6 Content Collections - Blog, Projects, Work, Education, Hackathons, and About
  • ๐Ÿ”’ Type-Safe Content - Full TypeScript support with validated schemas
  • ๐Ÿ“ฑ Fully Responsive - Mobile-first design with DaisyUI components
  • โšก Fast & Optimized - Static site generation with automatic image optimization
  • ๐ŸŽญ Smooth Transitions - Page transitions using Astro's View Transitions API
  • ๐Ÿ“ฆ MDX Support - Enhanced markdown with component imports (Spotify, YouTube, Twitter)
  • ๐ŸŽฏ Configuration-Driven - Customize everything through a central config file
  • ๐ŸŒธ FAB Flower Menu - Expandable floating action button for extra links
  • ๐ŸŽจ Modern Stack - Astro 5 + Tailwind CSS 4 + DaisyUI 5 + TypeScript
  • ๐Ÿ” SEO Optimized - Meta tags, Open Graph, and semantic HTML
  • โ™ฟ Accessible - Built with accessibility in mind

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+ or 20+
  • npm, pnpm, or yarn

Installation

# Clone the repository
git clone https://github.com/lauroguedes/bloomfolio.git

# Navigate to the project directory
cd bloomfolio

# Install dependencies
npm install

# Start the development server
npm run dev

Visit http://localhost:4321 to see your portfolio!

๐Ÿ“‹ Commands

All commands are run from the root of the project:

Command Action
npm install Install dependencies
npm run dev Start dev server at localhost:4321
npm run build Build production site to ./dist/
npm run preview Preview production build locally
npm run astro check Run TypeScript and Astro checks
npm run astro ... Run Astro CLI commands

โš™๏ธ Configuration

All site configuration is centralized in src/config.ts. Edit this file to customize your portfolio.

Basic Information

export const siteConfig: SiteConfig = {
  name: "Your Name",
  title: "Your Professional Title",
  description: "Brief description of your portfolio",
  avatar: "../assets/your-avatar.png",
  location: "Your City, Country",
  email: "your@email.com",
  // ...
};

Social Links

Add your social media profiles:

socialLinks: {
  github: "https://github.com/username",
  linkedin: "https://linkedin.com/in/username",
  twitter: "https://twitter.com/username",
  bluesky: "https://bsky.app/profile/username",
  instagram: "https://instagram.com/username",
  youTube: "https://youtube.com/@username",
  codetips: "https://codetips.cloud/u/username",
}

Section Visibility

Control which sections appear on your homepage:

sections: {
  about: true,      // About section
  projects: true,   // Projects showcase
  blog: true,       // Latest blog posts (shows 3 most recent)
  work: true,       // Work experience timeline
  education: true,  // Education history
  hackathons: true, // Hackathon participation
  contact: true,    // Contact section
}

Set any section to false to hide it. The Hero section is always visible.

Theme Settings

Choose between a theme selector dropdown or a simple light/dark toggle:

enableThemeSelector: true  // true = dropdown with 6 themes, false = toggle

Available Themes: light, dark, synthwave, retro, valentine, dim

Extra Links (FAB Flower)

Configure the floating action button menu:

extraLinks: {
  enable: true,
  links: [
    { link: "/blog/guide", icon: BookOpen, label: "Guide" },
    { link: "/resume.pdf", icon: FileUser, label: "Resume" },
    // Add more links...
  ],
}

๐Ÿ“‚ Project Structure

bloomfolio/
โ”œโ”€โ”€ public/              # Static assets
โ”‚   โ””โ”€โ”€ favicon.svg
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ assets/         # Images and media
โ”‚   โ”‚   โ””โ”€โ”€ bloomfolio.png
โ”‚   โ”œโ”€โ”€ components/     # Reusable components
โ”‚   โ”‚   โ”œโ”€โ”€ About.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Blog.astro
โ”‚   โ”‚   โ”œโ”€โ”€ BlogCard.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Contact.astro
โ”‚   โ”‚   โ”œโ”€โ”€ FabFlower.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Hackathons.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Hero.astro
โ”‚   โ”‚   โ”œโ”€โ”€ ProjectCard.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Projects.astro
โ”‚   โ”‚   โ”œโ”€โ”€ SkillBadge.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Spotify.astro
โ”‚   โ”‚   โ”œโ”€โ”€ ThemeSelector.astro
โ”‚   โ”‚   โ”œโ”€โ”€ ThemeToggle.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Timeline.astro
โ”‚   โ”‚   โ”œโ”€โ”€ Twitter.astro
โ”‚   โ”‚   โ””โ”€โ”€ YouTube.astro
โ”‚   โ”œโ”€โ”€ content/        # Content collections
โ”‚   โ”‚   โ”œโ”€โ”€ about/     # About section (1 file)
โ”‚   โ”‚   โ”œโ”€โ”€ blog/      # Blog posts (.md or .mdx)
โ”‚   โ”‚   โ”œโ”€โ”€ education/ # Education history
โ”‚   โ”‚   โ”œโ”€โ”€ hackathons/# Hackathon entries
โ”‚   โ”‚   โ”œโ”€โ”€ projects/  # Portfolio projects
โ”‚   โ”‚   โ””โ”€โ”€ work/      # Work experience
โ”‚   โ”œโ”€โ”€ layouts/       # Page layouts
โ”‚   โ”‚   โ”œโ”€โ”€ Layout.astro
โ”‚   โ”‚   โ”œโ”€โ”€ BlogLayout.astro
โ”‚   โ”‚   โ””โ”€โ”€ ProjectLayout.astro
โ”‚   โ”œโ”€โ”€ pages/         # File-based routing
โ”‚   โ”‚   โ”œโ”€โ”€ index.astro
โ”‚   โ”‚   โ”œโ”€โ”€ blog/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ index.astro
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ [...slug].astro
โ”‚   โ”‚   โ””โ”€โ”€ projects/
โ”‚   โ”‚       โ”œโ”€โ”€ index.astro
โ”‚   โ”‚       โ””โ”€โ”€ [...slug].astro
โ”‚   โ”œโ”€โ”€ styles/
โ”‚   โ”‚   โ””โ”€โ”€ global.css # Tailwind + DaisyUI
โ”‚   โ”œโ”€โ”€ config.ts      # Site configuration
โ”‚   โ””โ”€โ”€ content.config.ts # Content schemas
โ”œโ”€โ”€ astro.config.mjs   # Astro configuration
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ tsconfig.json
โ””โ”€โ”€ README.md

๐Ÿ“ Content Management

Creating Content

All content is stored in src/content/ organized by type. Each content type has a specific schema.

Blog Posts

Create a new file in src/content/blog/:

---
title: "Your Post Title"
description: "Brief description for SEO"
image: "./featured-image.png"
publishDate: "2024-01-25"
tags: ["Tag1", "Tag2"]
---

Your content here...

Supports both .md and .mdx files. Use .mdx for rich media embeds (Spotify, YouTube, Twitter).

Projects

Create a new file in src/content/projects/:

---
title: "Project Name"
description: "Brief description"
image: "./screenshot.png"
startDate: "2023-01-15"
endDate: "2023-06-30"  # Optional (omit for ongoing)
skills: ["React", "Node.js", "MongoDB"]
demoLink: "https://demo.example.com"  # Optional
sourceLink: "https://github.com/..."  # Optional
---

Detailed project description...

Work Experience

Create a new file in src/content/work/:

---
title: "Company Name"
subtitle: "Job Title"
startDate: "2020-01-15"
endDate: "2023-06-30"  # Optional (omit for current position)
logo: "https://company-logo-url.com"  # Optional
link: "https://company-website.com"   # Optional
---

Job description and achievements...

For complete documentation on content creation, see the Content Collections Guide and Markdown Guide.

๐ŸŽจ Customization

Changing Themes

Edit src/config.ts:

enableThemeSelector: true  // Dropdown with 6 themes
// OR
enableThemeSelector: false  // Simple light/dark toggle

Adding Custom Styles

Add custom CSS in component <style> tags or extend src/styles/global.css:

@import "tailwindcss";
@plugin "daisyui";

/* Your custom styles here */

Creating New Sections

  1. Create a new component in src/components/
  2. Import and add to src/pages/index.astro
  3. Optionally add a toggle in src/config.ts

๐Ÿš€ Deployment

Build for Production

npm run build

Output is generated in dist/ directory.

Deploy to Vercel

Deploy with Vercel

  1. Connect your GitHub repository
  2. Vercel auto-detects Astro
  3. Deploy!

Deploy to Netlify

  1. Connect your repository
  2. Build command: npm run build
  3. Publish directory: dist

Deploy to Cloudflare Pages

  1. Connect your repository
  2. Build command: npm run build
  3. Build output directory: dist

Other Platforms

Bloomfolio works with any static hosting platform that supports Node.js builds:

  • GitHub Pages
  • AWS S3 + CloudFront
  • Firebase Hosting
  • Render
  • Railway

๐Ÿ› ๏ธ Tech Stack

๐Ÿ“š Documentation

๐Ÿค 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/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

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

๐Ÿ™ Acknowledgments

๐Ÿค– LLM/Quant ๅšๅฎขไธ“ๅŒบ

ๆญค้กน็›ฎๅทฒ้…็ฝฎไธ“ๅฑž็š„ LLM/Quant ๅšๅฎข็›ฎๅฝ•๏ผŒๆ”ฏๆŒๅฐ้ขๅ›พใ€ๅ†…ๅฎนๅ›พ็‰‡ๅ’ŒๅฏŒๅช’ไฝ“ๅตŒๅ…ฅใ€‚

ๅฟซ้€Ÿๅผ€ๅง‹๏ผš

ๆ–‡ไปถไฝ็ฝฎ๏ผš

  • ๆจกๆฟๆ–‡ไปถ๏ผšsrc/content/blog/LLM/Quant/template.mdx
  • ็คบไพ‹ๆ–‡็ซ ๏ผšsrc/content/blog/LLM/Quant/getting-started.mdx
  • ๅ›พ็‰‡็›ฎๅฝ•๏ผšsrc/content/blog/LLM/Quant/images/

๐Ÿ’ฌ Support


Please if you find this project helpful, consider giving it a โญ on GitHub!

Crafted by an Artisan โ›๏ธ Lauro Guedes

Customized by ComistryMo with LLM/Quant Blog System

Releases

Packages

Contributors

Languages