Restored original posts

This commit is contained in:
HangerThem 2026-08-04 11:35:17 +02:00
parent ce420c3205
commit 4ca08fe208
15 changed files with 289 additions and 113 deletions

View file

@ -25,8 +25,8 @@ export function ImageWrapper({ src, alt, isListing }: ImageWrapperProps) {
<Image <Image
src={`/posts/${src}`} src={`/posts/${src}`}
alt={alt ?? ''} alt={alt ?? ''}
width={isListing ? 400 : 800} width={isListing ? 400 : 1800}
height={isListing ? 240 : 400} height={isListing ? 240 : 1200}
quality={isListing ? 75 : 100} quality={isListing ? 75 : 100}
priority={true} priority={true}
className="w-auto mx-auto object-cover h-full" className="w-auto mx-auto object-cover h-full"

View file

@ -14,7 +14,6 @@ export function Post({ post, isLatest, showImageSlot }: PostProps) {
const { const {
title, title,
description, description,
author,
category, category,
date, date,
coverImage, coverImage,
@ -23,7 +22,7 @@ export function Post({ post, isLatest, showImageSlot }: PostProps) {
slug, slug,
} = post } = post
if (!title || !description || !author || !date) { if (!title || !description || !date) {
return null return null
} }

View file

@ -2,7 +2,7 @@ import { getAllPostsMeta } from '@/lib/posts'
import Link from 'next/link' import Link from 'next/link'
export function RecentlyUpdatedPosts() { export function RecentlyUpdatedPosts() {
const posts = getAllPostsMeta() const posts = getAllPostsMeta().slice(0, 5)
return ( return (
<aside className="w-80 2xl:w-100 hidden lg:block"> <aside className="w-80 2xl:w-100 hidden lg:block">
<div className="sticky top-12 border-l border-border h-fit pl-4 py-4"> <div className="sticky top-12 border-l border-border h-fit pl-4 py-4">

View file

@ -38,7 +38,7 @@ export function ShareLinks({ url, title, description }: ShareLinksProps) {
return ( return (
<div className="flex gap-4 mx-auto"> <div className="flex gap-4 mx-auto">
{networks.map(({ name, icon, href }) => ( {networks.map(({ name, icon, href }) => (
<ExternalLink key={name} href={href}> <ExternalLink key={name} href={href} skipIcon>
<svg <svg
dangerouslySetInnerHTML={{ __html: icon.svg }} dangerouslySetInnerHTML={{ __html: icon.svg }}
className="inline-block w-6 h-6 mr-1 fill-current hover:text-accent transition-colors" className="inline-block w-6 h-6 mr-1 fill-current hover:text-accent transition-colors"

View file

@ -1,7 +1,6 @@
--- ---
title: First Post title: First Post
description: Welcome to my blog! I'm Frank Borisjuk, a software developer with a passion for technology, reading, and gaming. Join me on this journey as I share my thoughts, projects, and passions with you. description: Welcome to my blog! I'm Frank Borisjuk, a software developer with a passion for technology, reading, and gaming. Join me on this journey as I share my thoughts, projects, and passions with you.
author: hangerthem
date: 2024-08-04 15:00:00 +0200 date: 2024-08-04 15:00:00 +0200
category: Introduction category: Introduction
tags: [introduction, about, tech, books, games] tags: [introduction, about, tech, books, games]

View file

@ -0,0 +1,36 @@
---
title: "Life Update: New Chapter"
description: Post about recent changes in my life, including dropping out of university, starting a new job, fitness progress, teaching, and balancing work and hobbies.
date: 2025-02-20 19:15:00 +0200
category: Life
tags: [life, update, career, fitness, teaching, personal projects]
---
It's been a while since my last update, and a lot has changed over the past few months. The biggest news? I dropped out of university about four months ago. While that might sound dramatic, the reality is that I wasnt really enjoying it anymore. You might say that you are not really supposed to enjoy it but many of the subjects were things I had already studied, worked with professionally, or knew well enough that sitting through lectures felt redundant. On top of that, I received an offer to step into an IT Manager role at a company I had been working with for about a year and a half. Since it aligns perfectly with my major, it made more sense to take the job rather than spend the next five to six years studying something I was already doing in practice.
## Career Shift
Transitioning from being a university student to working full-time as an IT Manager has been an interesting experience. On one hand, it's incredibly rewarding to apply my knowledge directly and see the impact of my decisions. On the other hand, the sheer responsibility that comes with the role has been a significant adjustment. Managing a team (be it small one), handling infrastructure, and ensuring smooth operations requires constant focus, but its something I genuinely enjoy. The hands-on experience has been far more valuable than anything I was learning in class.
## Fitness Progress
On the fitness side, Ive been hitting the gym consistently—about five to six times a week—and making solid progress. I recently hit a new personal record of 205 kg for my squat, which Im pretty proud of. Strength training has become more than just a habit; its an essential part of my daily routine. Lately, Ive also been considering the idea of competing. Its something I was thinking about for some time now, and seeing my progress has made me think it could be a fun and worthwhile challenge.
## Teaching
In addition to my job, Im still teaching IT at my alma mater, and Ive been enjoying it quite a bit. Its oddly relaxing in a way, and its nice to give back and help students develop their skills. Teaching has also given me a new perspective on the field—explaining concepts to others forces me to refine my own understanding, which has been a great side benefit.
## Balancing Work, Hobbies, and Life
Work has been keeping me incredibly busy. Between my job, teaching, and keeping up with my gym routine, I havent had as much time for my hobbies. Reading, gaming, and working on personal projects have taken a bit of a backseat. I still try to squeeze in moments here and there, but free time is definitely a rare commodity these days. Its a trade-off Im willing to make for now, but I do miss being able to just sit down and immerse myself in a game or a book for hours on end.
## Personal Projects
Speaking of personal projects, Im still working on the Spin post whenever I manage to find a spare moment. Its coming along slowly but surely. Im aiming to get it finished soon, but with my current schedule, its tough to say exactly when that will be.
## Final Thoughts
Thats about it for now—just a quick update on whats been going on. Lifes been hectic, but overall, Im enjoying it. Even with all the responsibilities piling up, I wouldnt have it any other way. Until next time!
Best, <br />
Frank

View file

@ -0,0 +1,37 @@
---
title: Life Update
description: A life update post sharing recent events, projects, and personal goals. Learn about my university studies, personal projects, books, and games.
date: 2024-09-26 10:00:00 +0200
category: Life
tags: [life, update, personal, projects, goals]
---
Welp, it's been a while since I last posted here, and I thought it was about time for a little life update. A lot has happened in the past month, and I wanted to share some of the highlights with you.
## University
I am currently in my first year of university, and am studying MIS (Management Information Systems) on Technical University of Liberec. Yeah, I am an economy major, but I am also a programmer, so I decided to go for MIS. It has been about two weeks since the semester started, and some of the subjects are beyond easy for me, like Basics of Programming (last lecture was about bits and bytes, I mean come on). I guess as most of the other students are from economy fields, they are struggling with it, but I am not complaining. But some other subjects are supposed to be hard, like Microeconomics, from what I have heard, in the first term only 26% of students pass the exam, and on the retake only additional 18% pass. But I am not worried, I have always been good at math and economy, so I think I will be fine.
## Personal life & Projects
As of late, I have sadly not been able to work on my projects as much as I would like. Between university, studying, and other commitments, I have had to put some of my personal projects on hold. However, I am planning to get back to them soon, as I have some exciting ideas that I can't wait to explore. I still have my gamified journaling project in the works, and one new idea that I am really excited about is a online exam system that evaluates the answers (for open ended questions) using AI. I created a simple prototype for it, where you can input a question, an answer and maximum points, and it will evaluate the answer and give you the points. I am planning on expanding this project and making it more user-friendly and robust.
On a personal note, I have been trying to maintain a healthy work-life balance, which can be challenging at times. I have been going to the gym regularly (6-7 days a week), which has been a great way to stay active and clear my mind. Currently I am on a bulk, so I am eating a lot (3500-4000 kcal a day) and I am seeing some great progress, and have gained about 2 kg in the past 3 weeks. I am planning on bulking for about 2 more months (or until I reach 90 kg, currently I sit at 85 kg) and then I will start cutting.
## Books & Games
I have been reading a lot lately, mostly self-development books, as I am trying to improve myself and my life. Some of the books I have read (or re-read) recently include:
- **"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.
- **"Deep Work" by Cal Newport**: This book explores the concept of deep work and how it can lead to increased productivity and focus. It offers strategies for minimizing distractions and maximizing your cognitive abilities.
As for games, I have not had much time to play lately, which is a shame. And even when I do have some free time, I usually spend it on coding or reading, as most of the times I do not feel like playing games, even though I have a lot of games in my backlog. But I am planning on playing some games soon, as I have been missing the experience of getting lost in a good story or exploring a new world.
## Conclusion
That's about it for now. I hope you enjoyed this little update on my life and projects. I am excited to see what the future holds and to share more of my journey with you.
Best, <br />
Frank
P.S. I am still working on the post about spins, I have not forgotten about it, I just have not had the time to finish it. But I am planning on finishing it soon, so stay tuned!

View file

@ -1,7 +1,6 @@
--- ---
title: Self-Development and Gamification of Life title: Self-Development and Gamification of Life
description: 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! description: 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!
author: hangerthem
date: 2024-08-05 22:00:00 +0200 date: 2024-08-05 22:00:00 +0200
category: Personal Development category: Personal Development
tags: [self-development, gamification, productivity, growth] tags: [self-development, gamification, productivity, growth]

View file

@ -1,9 +1,7 @@
--- ---
title: Standard Model of Particle Physics title: Standard Model of Particle Physics
description: This post provides an overview of the Standard Model of particle physics, including its basic components and interactions. It covers fundamental particles, forces, and the Higgs mechanism, highlighting key concepts and limitations of the model. description: This post provides an overview of the Standard Model of particle physics, including its basic components and interactions. It covers fundamental particles, forces, and the Higgs mechanism, highlighting key concepts and limitations of the model.
author: hangerthem date: 2024-08-20 21:15:00 +0200
date: 2023-08-20 21:15:00 +0200
updated: 2026-08-05 22:00:00 +0200
category: Physics category: Physics
tags: tags:
[ [
@ -29,7 +27,7 @@ tags:
] ]
math: true math: true
mermaid: true mermaid: true
coverImage: standard_model.svg coverImage: standard_model.png
coverImageAlt: Overview of the fundamental particles and forces in the Standard Model of particle physics. coverImageAlt: Overview of the fundamental particles and forces in the Standard Model of particle physics.
--- ---

View file

@ -1,99 +0,0 @@
---
title: Hello, world
description: This is the first post on the gly.cz blog.
date: 2026-07-23 15:00:00 +0200
author: hangerthem
category: Blog
coverImage: image.png
coverImageAlt: A picture of the hello world text in green on a black background.
math: true
mermaid: true
---
Welcome to the gly.cz blog. Posts here are written in Markdown and turned into static HTML by ==Eleventy==.
## Writing a post
Add a Markdown file to `src/blog` with a title, description, and date in its front matter:
```md
---
title: A post title
description: A short summary.
date: 2026-07-22
author: hangerthem
---
Your post starts here.
```
The surrounding layout is a React component, while Tailwind Typography styles the generated article HTML.
You can also use other code blocks in your Markdown, like this:
```ts
function helloWorld() {
console.log('Hello, world!')
}
```
Or you can use inline code like `console.log("Hello, world!")` in your Markdown.
### Images
You can add images to your posts by placing them in the `src/assets/blog`[^1] directory and referencing them in your Markdown:
```md
![Alt text](image.png)
```
It will be rendered as:
![A picture of the hello world text in green on a black background.](image.png)
> [!TIP] You can also use `>` to add blockquotes to your posts.
| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| Cell 1 | Cell 2 | Cell 3 |
| Cell 4 | Cell 5 | Cell 6 |
$$
\frac{1}{2} + \frac{1}{3} = \frac{5}{6}
$$
1. First item[^2]
2. Second item
3. Third item
- First item
- Second item
- Third item
---
this is an [external link](https://example.com)
and this is an [internal link](/about)
```mermaid
graph TD;
A[Start] --> B{Is it working?};
B -- Yes --> C[Great!];
B -- No --> D[Check the code];
D --> B
```
Term 1
: Definition for term 1.
Term 2
: Definition A for term 2.
: Definition B for term 2, on a new line.
- [ ] Task 1
- [x] Task 2
[^1]: The `src/assets/blog` ==directory== is where you can place images for your blog posts. You can reference them in your Markdown using the relative path to the image file.
[^2]: You can also add footnotes to your posts. This is a footnote reference, and the footnote text is at the bottom of the post.

View file

@ -0,0 +1,208 @@
---
title: "Vigilare: A Local-First Productivity Dashboard"
description: Introducing Vigilare, a local-first, customizable productivity dashboard built with Next.js. Designed for developers and technical users, Vigilare offers a distraction-free way to manage links, notes, commands, and service status without logins or cloud dependencies.
date: 2026-02-07 14:00:00 +0200
categories: [Productivity, Tech]
tags: [vigilare, dashboard, productivity, browser, organization, focus]
---
Most productivity tools try to do everything, and end up doing too much.
They sync endlessly, phone home constantly, and bury simple actions behind dashboards, accounts, and subscriptions.
Vigilare started as a reaction to that.
It's a local-first, customizable productivity dashboard built with Next.js, designed for developers and technical users who want one place to manage links, notes, commands, and service status, without logins, clouds, or distractions.
Check it out at [vigilare.vercel.app](https://vigilare.vercel.app) or see the [GitHub repo](https://github.com/HangerThem/vigilare) for the code.
## Why Vigilare Exists
If your daily workflow looks anything like this:
- A collection of important links you keep "temporarily" in bookmarks
- Notes scattered between editors, files, and random apps
- Useful commands
- Services that you need to be checking
…then you already know the problem.
Vigilare is meant to live in a browser tab that stays open all day.
It's fast, keyboard-driven, and intentionally boring in the best way possible.
No accounts.
No backend.
No tracking.
Just your tools, your data, your machine.
## What Vigilare Can Do
Vigilare is built around focused panels instead of one giant "do everything" interface.
### Links Panel
Save and organize frequently used links into simple categories like Work, Personal, or Study.
No nesting rabbit holes, just fast access.
### Notes Panel
Lightweight notes with basic organization.
Good for things you need often, not a full second-brain system.
### Commands Panel
Store shell commands, snippets, or setup notes with syntax highlighting.
This alone replaces a surprising number of scattered files and old gists.
### Status Panel
Monitor websites or services and get real-time availability checks.
If something goes down, or comes back up, you'll know via browser notifications.
### Global Search & Command Palette
Everything is searchable and actionable via the keyboard:
- `Ctrl/Cmd + P` - Global search
- `Ctrl/Cmd + K` - Command palette
If you prefer the keyboard over clicking around, Vigilare is built for you.
## Design Philosophy
The UI is intentionally minimal:
- Light, Dark, and System themes
- Subtle animations via Framer Motion
- Drag & drop reordering where it actually helps
- Clear offline detection when connectivity drops
The goal is to stay out of your way, not to be a distraction or a "fun" app.
## Local-First by Design
All Vigilare data lives in your browser's local storage.
That means:
- No servers
- No sync delays
- No privacy concerns
If you want portability, you can export everything as JSON and import it elsewhere.
It's simple, transparent, and predictable.
## Progressive Web App (PWA)
Vigilare works as a Progressive Web App, meaning it can be installed and used like a native application while remaining entirely web-based.
As a PWA, Vigilare:
- Works fully offline
- Launches instantly from your system
- Runs in its own window, separate from the browser
- Persists data locally without relying on external services
This makes it ideal as a "always-open" workspace, whether pinned, installed, or running alongside your editor and terminal.
No app store.
No updates pushed remotely.
Just a web app that behaves like a proper tool.
## Keyboard-First Workflow
Vigilare is meant to stay out of your way. Most actions are accessible without touching the mouse:
| Shortcut | Action |
| ---------------------- | --------------- |
| `Ctrl/Cmd + K` | Command palette |
| `Ctrl/Cmd + P` | Global search |
| `Ctrl/Cmd + L` | New link |
| `Ctrl/Cmd + Shift + N` | New note |
| `Ctrl/Cmd + Shift + C` | New command |
| `Ctrl/Cmd + S` | New status |
| `Ctrl/Cmd + I` | View shortcuts |
| `Ctrl/Cmd + ,` | Open settings |
Once muscle memory kicks in, the UI almost disappears.
## What's Next
Vigilare isn't finished, but it's also not on a path toward becoming a bloated platform.
Future development focuses on customization and flexibility, without sacrificing the local-first, distraction-free core.
### Layouts & Profiles
One of the main goals is to let Vigilare adapt to how you work:
- Multiple layouts or profiles (e.g. Work, Study, Personal)
- Per-profile panel visibility and ordering
- Different shortcuts or defaults per layout
Not everyone needs every panel all the time.
Vigilare should make it easy to hide what you don't need and surface what you do.
### Modular by Design
Rather than hard-coding one "correct" setup, I want Vigilare to be modular and adaptable:
- Panels that can be enabled, disabled, or replaced
- Optional features that stay out of the way unless explicitly enabled
- A core that remains small and understandable
Status monitoring, commands, or notes should feel like tools you chose, not features you're stuck with.
### Extensibility & Plugins
Longer-term, I want Vigilare to grow a lightweight plugin system:
- Simple, well-defined extension points
- Local-only by default
- Easy to add, easy to remove
This would make it possible to create custom panels or behaviors, and even share them, without turning Vigilare into an app store or ecosystem you have to buy into.
If plugins exist, they should feel closer to configuration than a marketplace.
### Still Local-First
Even as Vigilare becomes more flexible, some things won't change:
- No required accounts
- No mandatory sync
- No background services phoning home
Sharing or collaboration may exist one day, but it won't be the foundation the app is built on.
## Who Is This For?
Vigilare is probably for you if you:
- Spend most of your day in a browser
- Prefer tools that work offline
- Like keyboard shortcuts more than menus
It's not trying to replace Notion, Obsidian, or Jira.
It's the thing you keep open next to them.
## Open Source & Contributions
Vigilare is fully open source under the MIT license.
If something feels off, missing, or unnecessary, change it.
PRs are welcome, and the project is intentionally easy to reason about and extend.
## Final Thoughts
Vigilare is a personal project born out of frustration with the current state of productivity tools.
It's not trying to be the next big thing, just a better way to manage the small but essential parts of my workflow.
If you think it could help you too, give it a try.
Feedback, issues, and contributions are all appreciated.
Best, <br />
Frank

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

View file

@ -2,7 +2,6 @@ export interface PostMeta {
slug: string slug: string
title: string title: string
description: string description: string
author: string
date: string date: string
updated?: string updated?: string
category: string category: string