Project Architecture Decisions & Context
This document explains key decisions made during the development of alassane.ai and provides context for future Claude instances working on this project.
Project Overview
This is a Jekyll-based portfolio website that replicates the design from Alassane’s Notion portfolio. The goal was to create a pixel-perfect match of the Notion design while maintaining clean, maintainable code.
Key Architecture Decisions
1. Page Structure
/about/index.html- Standalone HTML file instead of markdown in_pages/- Reason: Complex toggle sections and custom styling that required full HTML control
- The Notion about page has collapsible sections that needed custom JavaScript
- Easier to maintain exact Notion design with direct HTML
_pages/directory - Contains markdown files for simpler pagesprojects.md,testimonials.md,contact.md- These pages have simpler layouts that work well with Jekyll’s markdown processing
_projects/directory - Individual project pages- Each project has its own markdown file
- Uses custom
project.htmllayout to maintain consistent styling
2. Styling Approach
- Two CSS files:
main.css- Default Jekyll stylesnotion-dark.css- Custom dark theme matching Notion exactly- Dark theme only applied to specific pages via conditional loading in
default.html
- Why separate CSS files?
- Maintains compatibility with default Jekyll setup
- Easy to toggle between themes if needed
- Clear separation of custom vs default styles
3. Navigation Structure
- Removed “Case Studies” page per user request
- Navigation order: Home → About → Projects → Testimonials → Contact
- All navigation links updated across multiple layout files
4. Image Management
- All images downloaded from Notion and stored locally in
/assets/ - Named descriptively:
elise-tastet-profile.png,tastet-project-image.png, etc. - Profile images styled as circles to match Notion
Commit Message Style Preferences
The user prefers regular and clean commits with the following characteristics:
Good Commit Examples:
Fix testimonials page layout - ensure image and text display side by side
Transform contact page to match Notion design exactly
Remove case studies page and update navigation
Add project images and implement YouTube video embed
Commit Style Guidelines:
- Clear and descriptive - Explain what was changed and why
- Atomic commits - Each commit should represent one logical change
- Present tense - “Fix” not “Fixed”, “Add” not “Added”
- No excessive detail - Keep it concise but informative
- Include context when helpful - e.g., “to match Notion design”
Multi-line Commit Format:
Short summary line (50 chars or less)
- Bullet point for specific change 1
- Bullet point for specific change 2
- Include "Co-Authored-By: Claude" attribution
Design Principles
1. Notion Fidelity
- EXACT match to Notion design is priority #1
- Dark theme:
rgb(25, 25, 25)background - Typography matches Notion’s font stack
- Spacing and layout identical to source
2. Content Accuracy
- All text content pulled directly from Notion
- No editorial changes or additions
- Preserve formatting (bold, italics, links)
- Keep testimonials and quotes exact
3. User Preferences
- “ultrathink” - Be thorough and comprehensive
- Don’t create documentation unless asked
- Prefer editing existing files over creating new ones
- No emojis unless specifically requested
Technical Context
Jekyll Configuration
- Using Jekyll 4.3.4
- Minimal plugins (just jekyll-feed and jekyll-seo-tag)
- Collections enabled for projects
- Permalinks set to pretty URLs
Deployment
- GitHub Pages compatible
- Repository: https://github.com/AlassaneDialDiop/alassane_ai
- Main branch deployment
Known Issues & Solutions
- Bundle install permissions - Use
bundle config set --local path 'vendor/bundle' - Image display in testimonials - Required CSS overrides with
!important - Dark theme not applying - Fixed by adding page URLs to conditional in
default.html
Future Development Notes
When Adding New Pages:
- Decide: Simple content →
_pages/markdown, Complex layout → standalone HTML - Add page URL to dark theme conditional in
_layouts/default.html - Update navigation in
_includes/navigation.htmlAND standalone HTML pages - Test responsive design on mobile
When Updating Styles:
- Check both
main.cssandnotion-dark.cssfor conflicts - Use
!importantsparingly, only for overrides - Test on all pages - some use different layouts
Working with Notion Content:
- Use MCP Notion tools to fetch latest content
- Download images locally rather than hotlinking
- Preserve exact formatting and structure
- Check for expired image URLs and re-download as needed
Common Tasks
Updating navigation:
- Edit
_includes/navigation.htmlfor Jekyll-processed pages - Edit
/about/index.htmlnavigation section for the about page - Edit
_layouts/project.htmlfor project pages
Adding a new project:
- Create markdown file in
_projects/ - Add front matter with title, permalink, description
- Download any associated images to
/assets/ - Update main projects page if needed
Fixing image displays:
- Check CSS for conflicting max-width rules
- Ensure proper path to
/assets/ - Add specific overrides in
notion-dark.cssif needed
Remember: The goal is always to match Notion exactly while maintaining clean, maintainable code.