Implementation Plan
Project Setup and Repository Configuration
-
Step 1: Initialize Jekyll Project and Base Configuration
- Task: Set up the basic Jekyll project structure with necessary configuration files, install required dependencies, and configure the project for GitHub Pages.
- Files:
Gemfile
: Jekyll and plugin dependencies_config.yml
: Basic Jekyll configuration.gitignore
: Standard Jekyll gitignore fileREADME.md
: Project documentation
- User Instructions: Install Ruby and Jekyll on your development machine if not already installed.
-
Step 2: Configure GitHub Repository and GitHub Actions
- Task: Set up GitHub repository and create GitHub Actions workflow for automated deployment to GitHub Pages.
- Files:
.github/workflows/jekyll-gh-pages.yml
: GitHub Actions workflow configuration
- User Instructions: Create a new GitHub repository named “cendekiapp.com” and push the initialized project to it. Enable GitHub Pages in the repository settings.
-
Step 3: Custom Domain Setup
- Task: Configure the custom domain cendekiapp.com to work with GitHub Pages.
- Files:
CNAME
: File containing domain name for GitHub Pages
- User Instructions: In your domain registrar, create the following DNS records:
- A record pointing to GitHub Pages IP addresses
- CNAME record for www subdomain pointing to your GitHub Pages site
Design System Implementation
-
Step 4: Integrate Tailwind CSS with Jekyll
- Task: Set up Tailwind CSS in the Jekyll project for styling and configure it for dark mode only.
- Files:
package.json
: Node.js dependenciestailwind.config.js
: Tailwind configurationpostcss.config.js
: PostCSS configurationassets/css/main.scss
: Main stylesheet entry point
- User Instructions: Run
npm install
to install Node.js dependencies.
-
Step 5: Create Base Layout and Style Components
- Task: Implement the base layout template and core style components in a dark mode minimalist design.
- Files:
_layouts/default.html
: Base layout template_includes/head.html
: Head section with meta tags and CSS_includes/header.html
: Site header with navigation_includes/footer.html
: Site footer with about section and social linksassets/css/components
: Directory for component styles
-
Step 6: Implement Core UI Components
- Task: Create reusable UI components inspired by Shadcn UI that will be used throughout the site.
- Files:
_includes/components/button.html
: Button component_includes/components/card.html
: Card component_includes/components/badge.html
: Badge component for status indicators_includes/components/timeline.html
: Base timeline componentassets/js/components.js
: JavaScript for interactive components
Core Site Structure
-
Step 7: Create Main Navigation and Pages
- Task: Implement the main navigation menu and create skeleton pages for Home, About, Projects, and Contact.
- Files:
_includes/navigation.html
: Navigation componentindex.md
: Homepageabout.md
: About pageprojects/index.md
: Projects listing pagecontact.md
: Contact page
-
Step 8: Implement Homepage with Roadmap
- Task: Design and implement the homepage with a SPA-style roadmap/timeline of projects.
- Files:
_layouts/home.html
: Homepage layout_includes/roadmap.html
: Roadmap component for homepageassets/js/roadmap.js
: JavaScript for roadmap interactionsassets/css/components/roadmap.scss
: Roadmap specific styles
-
Step 9: Configure Site-wide SEO and Metadata
- Task: Set up SEO metadata, favicon, social sharing metadata, and Google Analytics integration.
- Files:
_includes/seo.html
: SEO meta tags component_includes/analytics.html
: Google Analytics integrationassets/favicon
: Favicon filesrobots.txt
: Search engine directives
Project Pages and Timeline Implementation
-
Step 10: Create Project Collection and Data Structure
- Task: Set up Jekyll collections for projects and configure the data structure for project metadata.
- Files:
_config.yml
: Updated with collections configuration_projects/_defaults.md
: Default front matter for projects_data/statuses.yml
: Data file for status types and colors_projects/sample-project.md
: Sample project for testing
-
Step 11: Implement Project Overview Template
- Task: Create the project overview page template similar to buildtwelve.com/projects/1.
- Files:
_layouts/project.html
: Project layout template_includes/project-header.html
: Project header component_includes/project-summary.html
: Project summary componentprojects/sample-project/index.html
: Sample project page
-
Step 12: Implement Timeline Visualization Component
- Task: Create the timeline visualization component with week-based organization and status indicators.
- Files:
_includes/timeline.html
: Timeline component_includes/timeline-item.html
: Timeline item componentassets/css/components/timeline.scss
: Timeline specific stylesassets/js/timeline.js
: Timeline interaction JavaScript
-
Step 13: Implement Status Indicators System
- Task: Create the color-coded status indicators system for timeline items.
- Files:
_includes/status-badge.html
: Status badge componentassets/css/components/status-badge.scss
: Status badge styles_data/statuses.yml
: Status data with color codes
Blog Post System
-
Step 14: Configure Blog Post Collection and URL Structure
- Task: Set up the blog post collection with proper URL structure and pagination.
- Files:
_config.yml
: Updated with post configuration_layouts/post.html
: Base post layout_posts/_defaults.md
: Default front matter for posts
-
Step 15: Implement Project Introduction Template
- Task: Create the standardized template for project introduction posts.
- Files:
_layouts/project-introduction.html
: Project introduction template_includes/post-header.html
: Post header component_posts/YYYY-MM-DD-sample-project-introduction.md
: Sample post
-
Step 16: Implement Weekly Update Template
- Task: Create the standardized template for weekly update posts.
- Files:
_layouts/weekly-update.html
: Weekly update template_includes/update-summary.html
: Update summary component_posts/YYYY-MM-DD-sample-weekly-update.md
: Sample post
-
Step 17: Implement Technical Challenge Template
- Task: Create the standardized template for technical challenge posts.
- Files:
_layouts/technical-challenge.html
: Technical challenge template_includes/code-solution.html
: Code solution component_posts/YYYY-MM-DD-sample-technical-challenge.md
: Sample post
-
Step 18: Implement Code Snippet Highlighting
- Task: Set up syntax highlighting for code snippets in blog posts.
- Files:
_config.yml
: Updated with syntax highlighter configassets/css/syntax.scss
: Syntax highlighting styles_includes/code-block.html
: Enhanced code block component
Advanced Features
-
Step 19: Implement Search Functionality
- Task: Add search functionality to allow users to search for projects and posts.
- Files:
assets/js/search.js
: Search functionality JavaScript_includes/search.html
: Search componentsearch.json
: JSON index for searchsearch.html
: Search results page
-
Step 20: Implement Social Sharing
- Task: Add social sharing buttons to project and post pages.
- Files:
_includes/social-share.html
: Social sharing componentassets/js/social-share.js
: Social sharing JavaScript
-
Step 21: Add Interactive Demo Integration
- Task: Create a system for embedding CodePen/CodeSandbox examples in posts.
- Files:
_includes/codepen-embed.html
: CodePen embed component_includes/codesandbox-embed.html
: CodeSandbox embed componentassets/js/demo-loader.js
: JavaScript for lazy loading demos
-
Step 22: Implement Project Pagination
- Task: Add pagination between projects and their updates.
- Files:
_includes/project-pagination.html
: Project pagination component_includes/update-pagination.html
: Update pagination componentassets/css/components/pagination.scss
: Pagination styles
Mobile Responsiveness and Testing
-
Step 23: Implement Mobile Responsive Design
- Task: Ensure all components and layouts are responsive and work well on mobile devices.
- Files:
assets/css/responsive.scss
: Responsive design adjustments_includes/mobile-nav.html
: Mobile navigation componentassets/js/mobile-menu.js
: Mobile menu JavaScript
-
Step 24: Optimize Timeline for Mobile
- Task: Adapt the timeline visualization for optimal viewing on mobile devices.
- Files:
assets/css/components/timeline-mobile.scss
: Mobile timeline stylesassets/js/timeline-mobile.js
: Mobile timeline interactions
-
Step 25: Cross-browser Testing and Bug Fixes
- Task: Test the site across different browsers and devices, fix any compatibility issues.
- Files:
- Various files may need adjustments based on testing results
- User Instructions: Test the site on Chrome, Firefox, Safari, and Edge browsers, as well as on mobile devices.
Final Setup and Launch
-
Step 26: SEO and Performance Optimization
- Task: Optimize the site for search engines and improve performance metrics.
- Files:
_config.yml
: Final SEO configurationsassets/js/main.min.js
: Minified JavaScriptassets/css/main.min.css
: Minified CSS
-
Step 27: Create Sample Content
- Task: Develop sample content to demonstrate all site features.
- Files:
- Sample project files
- Sample blog posts with different templates
- User Instructions: Review sample content and replace with your own project content.
-
Step 28: Documentation and Content Creation Guide
- Task: Create documentation for maintaining the site and adding new content.
- Files:
docs/content-guide.md
: Guide for creating contentdocs/project-setup.md
: Guide for setting up new projectsdocs/maintenance.md
: Site maintenance guide
Summary
This implementation plan breaks down the development of the Cendekia’s Tech Journey Blog into 28 manageable steps. The approach follows a logical progression:
- Starting with the core Jekyll setup and GitHub Pages configuration
- Setting up the design system with Tailwind CSS for consistent styling
- Building the site structure and main pages
- Implementing the project pages and timeline visualization
- Creating the blog post system with templates
- Adding advanced features like search and social sharing
- Ensuring mobile responsiveness and cross-browser compatibility
- Finalizing with optimizations and documentation
Key considerations during implementation:
-
Jekyll and GitHub Pages Integration: The plan leverages Jekyll’s static site generation capabilities with GitHub Pages for free hosting and simplified deployment via GitHub Actions.
-
Design System: Tailwind CSS provides a solid foundation for implementing a dark mode minimalist design, though some adaptation will be needed since Shadcn UI is typically used with React components.
-
Timeline Visualization: This is a central feature of the site and requires careful implementation to ensure it works well on both desktop and mobile devices.
-
Content Management: The plan establishes a structured approach to content with templates for different post types, making it easier to maintain consistency while documenting the app-building journey.
-
Mobile-First Approach: The responsive design is considered throughout the implementation process to ensure a good experience on all devices.
By following this plan, you’ll create a professional, developer-focused blog that effectively showcases your journey of building multiple projects over the course of a year.