Introduction
Looking back on my journey to create a personal website, it has been a process filled with experimentation and learning. I initially started with user-friendly platforms like Wix and WordPress, relying on third-party hosting services to get my site online quickly. While these tools were accessible, I soon realized I wanted more control and flexibility over the design and functionality of my website. This led me to GitHub Pages, where I decided to build everything from scratch using HTML and CSS. However, I quickly encountered the challenges of manually coding each element—especially when it came to creating and managing blog posts, which became tedious and time-consuming.
Seeking a more streamlined approach, I switched to Notion for its intuitive, code-free interface, which allowed me to focus purely on content creation. But Notion had its limitations in terms of customization and seamless publishing integration. Eventually, I circled back to GitHub Pages, this time leveraging Jekyll, a static site generator that combines the best of both worlds: the simplicity of Markdown for content and the power of automation for publishing. This approach has allowed me to efficiently manage and scale my site while maintaining full creative control.
Content on This Website This website serves primarily as a professional portfolio and a personal blog. It is designed to showcase my work, share my ideas, and connect with others who have similar interests. The content is structured into several key sections:
-
Projects: A detailed showcase of my technical and creative work, including case studies, code repositories, and live demos.
-
Publications: A collection of my written articles, research papers, and any contributions to the broader community.
-
Blogs: Regular posts on topics ranging from technical tutorials and industry insights to personal reflections and lessons learned.
-
Personal Notes: A space for informal thoughts, experiments, and in-progress ideas that may not fit into more formal categories.
By integrating these elements, I aim to create a dynamic and engaging platform that reflects both my professional achievements and personal growth.
Jekyll and GitHub Pages: A Simplified Workflow Using Jekyll with GitHub Pages has significantly streamlined my workflow. Jekyll allows me to write content in Markdown, a straightforward formatting syntax, and then automatically generates static HTML files ready for deployment. Key features of this setup include:
-
Template-Based Design: Jekyll supports themes and templates, making it easy to maintain a consistent and professional look across all pages. For example, templates like Chirpy(minimalist and technical) or Persephone(ideal for documentation and portfolios) can be readily adapted.
-
Automation: With GitHub Actions, every time I push new content or make changes, my site is rebuilt and deployed automatically without manual intervention.
-
Blogging Made Easy: Adding a new blog post is as simple as creating a new Markdown file—Jekyll handles the rest, including formatting, indexing, and archival.
This combination offers the right balance of simplicity for content creation and powerful tools for customization.
Exporting from Notion for a Structured Workflow
Although I no longer use Notion as my primary platform, I still use it for drafting and organizing ideas. Notion’s export functionality allows me to save pages or databases as HTML or Markdown files. Here’s how I integrate it into my workflow:
-
Exporting Content: In Notion, I use the Export feature to download specific pages or entire databases in Markdown format, which includes text, images, and basic metadata.
-
Conversion and Integration: I then process these exported files through custom scripts or Jekyll plugins to fit them into my site’s structure seamlessly. This allows me to preserve the content created in Notion while publishing it in a more customizable and scalable format.
This hybrid approach ensures I can leverage Notion’s efficiency for drafting without being limited by its publishing constraints.
Future Enhancements
I plan to continuously evolve my website by incorporating:
-
SEO Optimization: Improving visibility by structuring content for search engines, using sitemaps, and leveraging meta tags.
-
Performance Enhancements: Optimizing load times and responsiveness through techniques like lazy loading, image optimization, and efficient caching strategies.
-
Performance and Security: Ensuring fast load times via CDNs and maintaining security best practices, including HTTPS.
This ongoing optimization will help keep the site relevant, secure, and user-friendly.
Conclusion
My journey through various tools and platforms highlights the importance of finding a balance between ease of use and customization. By combining the strengths of Notion for content ideation and Jekyll/GitHub Pages for structured publishing, I’ve developed a workflow that is both efficient and empowering. For anyone building their own site, I recommend exploring these tools and focusing on a system that aligns with your technical comfort and creative vision.
Oh, and of course, this is a AI-generated content LOL. This page is actually just for testing purposes.