About This Website
Views: 21
An overview of the articles, media, galleries and apps on zbyneksklensky.cz, the technologies behind the website, and its approach to accessibility and security.
Zbyneksklensky.cz is more than a personal profile or an ordinary blog. It is an independently developed publishing and media website that brings together articles, podcasts, music, audio recordings, videos, photo galleries and small web applications. Its different sections share a common system, search and navigation.
The website continues to develop alongside its content. The original short page describing a few of the libraries it uses no longer captured how the whole website works today. The following overview describes the website and the technologies behind it.
What you will find here
The Czech homepage brings together the latest articles and media posts. Alongside new material, it also highlights selected items from the archives and photo galleries. On larger screens, the newest post is featured prominently, with other recent posts providing a quick overview. On mobile devices, the content forms a simple, continuous list.
Articles are organised into subject categories. Across the website, these include biography, focal dystonia, information technology, linguistics, mathematics, poetry, reviews, sport and content for blind readers. Each article provides links to the previous and next articles and its category, as well as a comment form. Alongside ordinary text, an article can include images, audio, video or a code sample.
Photo galleries (Czech) form a separate section, with thumbnails and a slideshow mode. Search provides another way to explore published content. The Czech search covers articles, media posts and galleries; the English search covers the English articles.
Media channels and playback
The media section (Czech) brings together podcasts, music, individual audio recordings and video. Each channel has its own page, description, image and list of entries. Audio and music can be played directly on the website using the browser's standard controls. The website also supports locally hosted videos and links to videos published elsewhere.
Channels are not confined to the website itself. Article categories and media channels have their own RSS feeds. A podcast channel can include information required by podcast apps and an episode's audio enclosure. Visitors can choose whether to read and listen here or subscribe through their preferred feed reader or podcast app.
Apps, email updates and other services
The website also has a directory of web apps. Public tools include simple article and podcast readers, text-to-EPUB conversion, the MathArm calculator, internet radio, website radio drawn from local channels, and the text-based card games Mau-Mau and Hearts. Some tools are designed to work well without a mouse and with a screen reader.
You can receive notifications about new content through email updates. The website also offers downloads, a contact form and a support page. These sections use the same visual layout and application framework as the articles and media.
How the website works
At its core is Xamma, a custom PHP framework. A router first processes the requested URL and uses the configuration to select the relevant part of the application and an allowed action. A component called a Carrier handles the request, the logic and model layers work with the data, and a template renders the resulting page. This separation makes it possible to use the same principles for articles, media, galleries, administration and standalone apps.
Data is stored in a relational database, which the application accesses through PDO. Forms use components from the Nette framework, and the Latte template engine generates the HTML output. The responsive layout is based on the ZenBlog template by BootstrapMade, extensively adapted for this website. The interface uses Bootstrap and JavaScript; some PHP utility classes come from educational materials published by ITnetwork.
Content is not hard-coded into individual pages. Articles, categories, channels, episodes, galleries and other records are managed through a shared administration area. This allows the same content to appear in a list, on its own page, on the homepage, in search results and in RSS feeds.
Accessibility and use on different devices
Accessibility is one of the website's main priorities. Templates use semantic headings, labelled breadcrumb navigation, text labels for controls, alternative text for images and labels for media players. Drop-down menus announce their state and can be operated with a keyboard. For audio and video, the website favours the browser's native players, which work with keyboards and assistive technologies.
The layout adapts to phones, tablets and computers. In supported browsers, the website can also be installed as a standalone web app. A service worker caches basic interface files and can make previously visited pages available when the connection is lost. Large media files and downloads are deliberately kept out of this cache and loaded directly from the server.
Security and further development
The public website and content administration have separate access permissions. Forms include protection against forged requests, sign-in uses securely configured sessions, and the server sends protective HTTP headers. Sensitive administration and application functions require authentication, and the API supports revocable access tokens with limited permissions.
The website and the Xamma framework continue to change. More types of content and apps may be added over time. The shared aim remains a clear website that combines text, sound, images and practical tools and is usable by as wide an audience as possible. If you find a bug or encounter a barrier when using it, please describe it through the contact form.
The original overview describes the website as it stood in August 2026. Links to available English pages have been adapted for this translation.
- Previous article: A Request for Help with Developing Content
- Next article: A New Version of the Website
- All articles in this category
Comments: 0