blog.hangerthem.com/content/posts/self-development.md
HangerThem 30ef0d611e Bug fixes, SEO, performance and accessibility pass (#1)
## Summary

A cleanup pass across the blog: route and feed bugs fixed, SEO basics added, smaller and lazier images, accessibility fixes, and a real README. No content or design changes beyond small fixes.

## Bug fixes

- **Tag/category pages**: static params now use slugs, so pre-rendered pages match the links (before, `/tags/standard-model` was only rendered on demand and the pre-built pages said "Tag not found"). Unknown slugs now return a real 404, and there's a new not-found page.
- **Recently updated**: sorts by last modification *before* taking the top 5, so older posts that were updated recently now show up.
- **Atom feed**: `rel="self"` now points to `/feed.xml` (was `/feed`); `<updated>` uses the `updated` frontmatter field.
- **No-JS flash**: the `no-js` → `js` class swap runs in an inline `<head>` script before first paint, not after hydration.
- **Markdown links**: only internal paths go through `next/link`; `#anchors`, `mailto:` and links without an `href` no longer break.
- **Invalid HTML**: images in a paragraph together with text (e.g. "**Screenshots:**" followed by images on the Projects page) produced `<p><figure>` and a hydration error. Those paragraphs are now split.
- **Dates**: frontmatter dates are normalized to ISO, so `<time datetime>` values are valid. Formatting is pinned to Europe/Prague so a UTC build server can't shift a date by a day.

## SEO

- `sitemap.xml` and `robots.txt`
- Canonical URLs, Twitter cards and a feed link on every page, built by a shared `pageMetadata()` helper
- Generated Open Graph images: a site card, and for each post its cover image or a branded title card (pre-rendered at build time)
- `BlogPosting` JSON-LD on post pages

## Performance

- Only the post cover and the latest-post image are preloaded (was: every image)
- In-post image quality 100 → 90, plus responsive `sizes`
- Screenshots downscaled to 1800px wide; `linkboard-old.png` converted to WebP (3.1 MB → 60 KB)
- `CodeWrapper` is now a server component; only the copy button ships to the client
- Mermaid CDN script pinned to `11.17.2` for reproducible builds

## Accessibility

- Accessible names for icon-only links (share, social, mobile nav) and `aria-current` on active nav items
- Copy button: uses React state instead of mutating `innerHTML`, handles clipboard errors, announces the result to screen readers, and is no longer inside an `aria-hidden` header
- Code-block line numbers hidden from screen readers
- Image captions: the Markdown `"title"` becomes the caption; captions that only repeat the alt text are hidden from screen readers

## Content & maintenance

- **Frontmatter validation**: a missing or malformed field fails the build and names the file, instead of rendering a broken post
- **`draft: true` support**: drafts only render in development
- About/Projects/Setup pages share one `MarkdownPage` component; tag/category lists share `PostList`
- Markdown rendering is cached, so metadata and page share one render
- New README covering features, env vars, frontmatter schema, Markdown extensions and deployment
- Removed unused ESLint setup and the unrelated `hast` package; `oxlint`, `oxfmt` and `puppeteer` moved to devDependencies (locked versions unchanged)
- Typo fix in the Tessera cover alt text; removed unused `math`/`mermaid` flags from two posts

## Deployment notes

- **`SITE_URL` is now required**: the build fails with a clear error if it's missing.
- **Puppeteer is a devDependency now**: Nixpacks installs dev dependencies for the build by default, but check that Mermaid diagrams render on the first deploy (the Standard Model post has one).

## Testing

- `tsc --noEmit` and `bun run lint` pass
- `bun run build` passes; all 81 pages are generated statically
- Smoke-tested `next start`: posts, tags, categories, feed, sitemap and OG images return 200; unknown tags and routes return 404
- No block elements nested inside `<p>` in any built page

Reviewed-on: #1
2026-10-19 12:41:40 +00:00

7.1 KiB

title description date category tags
Self-Development and Gamification of Life In this post, I explore the concept of self-development and how gamification can be used to enhance productivity and personal growth. Learn how to turn your life into a game and level up your skills! 2024-08-05 22:00:00 +0200 Personal Development
self-development
gamification
productivity
growth

[!QUOTE] "The only person you are destined to become is the person you decide to be."

  • Ralph Waldo Emerson

Right at the beginning of this post, I want to make it clear that I am not a self-help guru or a life coach. I am just a regular person who is passionate about personal development and enjoys exploring ways to improve myself. In this post, I want to share some thoughts on self-development and how gamification can be used to enhance productivity and personal growth.

What is Self-Development?

Self-development is the process of improving oneself be it through learning new skills, acquiring knowledge, or developing personal qualities. It is a lifelong journey that involves setting goals, overcoming challenges, and continuously striving to become the best version of yourself. Self-development is not about perfection but about the progress you make each and every day.

Books on Self-Development

There are many books on self-development that offer valuable insights and practical advice on how to improve various aspects of your life. Some of my favorite books on self-development include:

  1. "Atomic Habits" by James Clear: This book explores the power of small habits and how they can lead to significant changes in your life. It offers practical strategies for building good habits and breaking bad ones.
  2. "The 7 Habits of Highly Effective People" by Stephen Covey: This classic book outlines seven habits that can help you become more effective in your personal and professional life. It emphasizes the importance of proactivity, goal setting, and continuous improvement.
  3. "The 5AM Club" by Robin Sharma: This book advocates for waking up early and using the early morning hours to focus on personal growth and self-improvement. It offers a simple yet powerful formula for success based on the concept of the 20/20/20 rule.

My Journey with Self-Development

I have been journaling for a quite some time now and I have not been seeing the results I was promised. Even though I was consistent with my entries, writing down my thoughts and feelings as well as my goals, looking back I know it was not the journaling that was the problem it was the way I was doing it. My entries were long and boring, there was no excitement to write them.

When I stumbled upon the concept of gamification I was intrigued by the idea of turning my life into a game, as a gamer and programmer I was immediately drawn to the idea, not only because of the self-improvement aspect but also because I saw many projects that I could do with this concept.

But to be honest, I did not follow through with the idea, I was too busy with other projects and life in general. But as I graduated from high school and projects (persoanl and professional) started to slow down I decided to give it a try.

What is Gamification?

Gamification is the application of game design elements and principles to non-game contexts to make them more engaging and enjoyable. It involves using game mechanics such as points, badges, levels, and rewards to motivate and encourage people to achieve their goals. Gamification can be applied to various areas of life, including education, fitness, work, and personal development.

I think that gamification, be it powerfull, might not be for everyone who is trying to improve themselves. And for those I think there is a middle ground, a combination of traditional self-development methods and gamification.

Gamified Journaling

One way to combine traditional self-development methods with gamification is through gamified journaling. I found this method from a youtuber called Reysu and he calls it "The Life Tracker System". The idea is to create a visual representation of your goals and progress using a short daily journal entry. You can use a bullet journal, a digital app, or a simple spreadsheet to track your activities and achievements.

The format of the journal entry is simple and consists of two main sections:

  1. Highlight of the Day: Write down the most significant event or accomplishment of the day.
  2. Daily Goals: List the tasks or activities for each day of the month and check them off as you complete them.

By keeping your journal entries short and focused, you can easily track your progress and stay motivated to achieve your goals. You can also use stickers, colors, or emojis to make your journal more visually appealing and fun to use.

He sets this up for each month and at the end of the month he reviews his progress and sets new goals for the next month. This way he can see his progress and adjust his goals accordingly.

My Experience with Gamified Journaling

I have been using this method for some time now and I am starting to see the benefits of it. But in upcoming months I am planning on transitioning to a more gamified version. As a programmer I am planning on creating a web app for this purpose, I am well aware that there are many apps that do this but I want to create my own version that is tailored to my needs, also it is a great project to work on and to have in my portfolio.

The Project

As stated above I am planning on creating a web app for life gamification, at the moment I am still in the planning phase but I have some ideas on how I want it to look and function. It will be a simple app with a clean design and intuitive user interface. The main features of the app will include:

  1. Points System: Earn points for completing tasks and achieving goals.
  2. Badges and Achievements: Unlock badges and achievements for reaching milestones and leveling up your skills.
  3. Daily Goals: Set daily goals and track your progress with a visual calendar.
  4. Rewards System: Redeem points for rewards such as free time, treats, or self-care activities.
  5. Leveling Up: Level up your skills and abilities by completing challenges and mastering new tasks.
  6. Penalties System: Lose points for procrastination or failing to meet deadlines.

It is still very early in the development process but I am excited to see where this project will take me. I will be sharing updates on my progress and insights on gamification in future posts.

Conclusion

Self-development is a personal journey that requires dedication, commitment, and a growth mindset. By incorporating gamification into your life, you can make the process more enjoyable and rewarding. Whether you choose to use traditional self-development methods or gamified journaling, the key is to find what works best for you and stick with it.

Remember, it is not about being perfect but about making progress each day and becoming the best version of yourself. So, level up your skills, set ambitious goals, and turn your life into a game worth playing!

Best,
Frank