<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ondřej Šimanovský</title>
    <description>The latest articles on Forem by Ondřej Šimanovský (@justondra).</description>
    <link>https://forem.com/justondra</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F543686%2F85bc6c3b-1325-49cb-8d06-3a4d4e572012.png</url>
      <title>Forem: Ondřej Šimanovský</title>
      <link>https://forem.com/justondra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/justondra"/>
    <language>en</language>
    <item>
      <title>GitHub Copilot CLI Challenge - estazka.cz</title>
      <dc:creator>Ondřej Šimanovský</dc:creator>
      <pubDate>Sun, 15 Feb 2026 10:54:42 +0000</pubDate>
      <link>https://forem.com/justondra/github-copilot-cli-challenge-estazkacz-3odn</link>
      <guid>https://forem.com/justondra/github-copilot-cli-challenge-estazkacz-3odn</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built an app called &lt;strong&gt;eStazka&lt;/strong&gt;. It’s a passion project designed to help my dad’s trucking business escape the paperwork. Less time shuffling papers, more time actually running the business.&lt;/p&gt;

&lt;p&gt;Basically, it handles everything a transport company needs: transport docs ("stazka"), vehicle management, fleet tracking, and inventory. I also hooked it up to the Czech invoicing service &lt;a href="https://fakturoid.cz" rel="noopener noreferrer"&gt;Fakturoid&lt;/a&gt;, so invoices can be generated automatically from transport documents.&lt;/p&gt;

&lt;p&gt;On top of that, it keeps an eye on vehicle status, service history, and those annoying mandatory inspections (STK).&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Try it here: &lt;a href="https://www.estazka.cz/en" rel="noopener noreferrer"&gt;eStazka.cz&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Demo accounts
&lt;/h3&gt;

&lt;p&gt;Go ahead and log in with these credentials to see how it works:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Owner account:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Username:&lt;/strong&gt; &lt;code&gt;novak@autodoprava-novak.cz&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Password:&lt;/strong&gt; &lt;code&gt;password&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Driver account:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Username:&lt;/strong&gt; &lt;code&gt;vesely@autodoprava-novak.cz&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Password:&lt;/strong&gt; &lt;code&gt;password&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;I’ve used the Copilot extension in VS Code before, but diving into the CLI for this challenge was a whole new experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I didn't write a single line of code manually.&lt;/strong&gt;&lt;br&gt;
The entire app was generated 100% via the GitHub Copilot CLI.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Zero-Code"
&lt;/h3&gt;

&lt;p&gt;I tried this setup&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;The Setup:&lt;/strong&gt; I wrote up a design doc and an app description, then fed it to the Copilot CLI to analyze and set the instructions.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Plan:&lt;/strong&gt; I lived in &lt;strong&gt;Plan Mode&lt;/strong&gt;. I listed out all the requirements and features I wanted directly in the CLI.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Blueprint:&lt;/strong&gt; Once I dumped my ideas in, the CLI analyzed everything and generated a &lt;code&gt;.md&lt;/code&gt; file for every single task in a &lt;code&gt;todo&lt;/code&gt; folder. Think of them as AI-generated "Task Briefs."&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Build:&lt;/strong&gt; I switched over to &lt;strong&gt;Normal Mode&lt;/strong&gt; and told it to get to work.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Loop:&lt;/strong&gt; Copilot CLI just went through the &lt;code&gt;todo&lt;/code&gt; folder. It implemented a feature, ran the tests, committed the changes, and moved on to the next one.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Breaking the dev process down into these micro-tasks allowed the AI to handle the heavy lifting one step at a time.&lt;/p&gt;

&lt;p&gt;It was honestly a really fun experiment to see just how powerful these tools have become. I still love writing code myself (and I’m not stopping anytime soon), but having AI as a co-pilot—or in this case, the pilot—is something.&lt;/p&gt;

&lt;h3&gt;
  
  
  The AI Stack
&lt;/h3&gt;

&lt;p&gt;I used a mix of models to get this done:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Gemini 3 Pro&lt;/strong&gt; &amp;amp; &lt;strong&gt;Claude Sonnet 4.5&lt;/strong&gt;: These handled the creative stuff—copywriting and UI design.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Claude Opus 4.5&lt;/strong&gt; &amp;amp; &lt;strong&gt;GPT 5.3 Codex&lt;/strong&gt;: These were the workhorses for the actual feature implementation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was constantly toggling between Plan and Normal mode. Honestly, having that separation between "strategizing" and "executing" made the whole workflow smooth.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>I built myself a Portfolio to showcase my work</title>
      <dc:creator>Ondřej Šimanovský</dc:creator>
      <pubDate>Wed, 21 Jan 2026 19:47:41 +0000</pubDate>
      <link>https://forem.com/justondra/i-built-myself-a-portfolio-to-showcase-my-work-4c5b</link>
      <guid>https://forem.com/justondra/i-built-myself-a-portfolio-to-showcase-my-work-4c5b</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;Hi, I'm Ondra, a 31-year-old software/web developer from the Czech Republic. I currently work full-time as a developer and recently started freelancing on the side. I built this portfolio to showcase my skills and projects while attracting new clients. As someone passionate about clean code and modern web technologies, I wanted my portfolio to reflect both my technical abilities and attention to detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;


&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://justondradev-website-327344195075.europe-west1.run.app"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;


&lt;p&gt;(Note: Also deployed to Google Cloud Run with required label: &lt;code&gt;--labels dev-tutorial=devnewyear2026&lt;/code&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;My portfolio is built with a modern tech stack focused on performance, SEO, and maintainability:&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Astro 5 with TypeScript - chosen for its excellent performance, SEO capabilities, and zero-JS-by-default approach&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CMS&lt;/strong&gt;: Payload 3 - a headless CMS to manage content on the website.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling&lt;/strong&gt;: Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Google Cloud Run&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Assistant&lt;/strong&gt;: Google's Antigravity IDE, Gemini 3 Pro and Nano Banana for some images - invaluable for development assistance&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Google AI Tools
&lt;/h3&gt;

&lt;p&gt;I used &lt;a href="https://antigravity.google/" rel="noopener noreferrer"&gt;&lt;strong&gt;Antigravity&lt;/strong&gt;&lt;/a&gt; throughout the development process and &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;&lt;strong&gt;AI Studio&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Animation Implementation&lt;/strong&gt;: Antigravity helped me create smooth, performant scroll animations and transitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Localization&lt;/strong&gt;: Set up a complete i18n supporting English and Czech, making my portfolio accessible&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO Optimization&lt;/strong&gt;: Generated proper meta tags, structured data, and canonical URLs to ensure search engine visibility&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content Shaping&lt;/strong&gt;: Improved my portfolio copywritting, project descriptions, and technical writing to be clear and engaging&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Gemini helped me with failing deployments. I have to change the output from static to server.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;: Achieved excellent Lighthouse scores. Using Astro image optimization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bilingual Support&lt;/strong&gt;: Implemented a complete localization system that seamlessly switches between English and Czech, making my services accessible to both local Czech clients and international opportunities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smooth Animations&lt;/strong&gt;: Created engaging scroll animations and transitions that enhance the user experience without sacrificing performance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Google Cloud Integration&lt;/strong&gt;: Successfully deployed a containerized application to Cloud Run, demonstrating proficiency with modern cloud infrastructure&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The portfolio represents not just my work, but also my approach to development: clean code, modern technologies, attention to detail, and a focus on user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Site&lt;/strong&gt;: &lt;a href="https://www.justondra.dev/en" rel="noopener noreferrer"&gt;www.justondra.dev&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Tech Stack&lt;/strong&gt;: Astro 5, Payload 3, TypeScript, Tailwind CSS, Google Cloud Run&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Stream discovery - find a streamer</title>
      <dc:creator>Ondřej Šimanovský</dc:creator>
      <pubDate>Wed, 19 Jul 2023 20:49:43 +0000</pubDate>
      <link>https://forem.com/justondra/stream-discovery-find-a-streamer-5eoh</link>
      <guid>https://forem.com/justondra/stream-discovery-find-a-streamer-5eoh</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;Streamer discovery is web app to discover, create and rate twitch streamer. Guest users can only search streamer. Logged in users can create new streamer and rate existing one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Best Overall Project&lt;/li&gt;
&lt;li&gt;Most Visually Pleasing&lt;/li&gt;
&lt;li&gt;Most Technical Impressive&lt;/li&gt;
&lt;li&gt;Best Project built using Supabase as the main data provider for the refine app. &lt;/li&gt;
&lt;li&gt;Best Project built using Material UI as the main UI framework for the refine app.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;The project has been deployed with Vercel and can be found at the following link: &lt;a href="https://stream-discovery.vercel.app/streamers" rel="noopener noreferrer"&gt;Stream-discovery&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Main page&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtveuv0iyqa2whas8n9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtveuv0iyqa2whas8n9f.png" alt="Main page" width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login page&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhprg6orjv0lqr89660cf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhprg6orjv0lqr89660cf.png" alt="Login page" width="800" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Register page&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbm5wqrsf459cso5soea7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbm5wqrsf459cso5soea7.png" alt="Register page" width="800" height="707"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create new streamer&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99a8pw1r4x7g4nppx0ds.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99a8pw1r4x7g4nppx0ds.png" alt="Create new streamer" width="800" height="738"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Stream discovery is a web app for people who likes watching streams.&lt;br&gt;
This app helps find a new streamer.&lt;br&gt;
People can create account and then add new streamers and rate existing.&lt;br&gt;
Guest users can only see and filter curretly added streamers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Source Code
&lt;/h3&gt;

&lt;p&gt;The source code for the project can be found on GitHub at the following repository: &lt;a href="https://github.com/JustOndra/stream-discovery" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;The project is licensed under the &lt;a href="https://github.com/JustOndra/stream-discovery/blob/main/LICENSE" rel="noopener noreferrer"&gt;MIT&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background (What made you decide to build this particular app? What inspired you?)
&lt;/h2&gt;

&lt;p&gt;I decided to build this app beacause nowadays is pretty popular the watch some people streaming things that they like.&lt;br&gt;
I wanted to make app for people to easily find new streamers.&lt;br&gt;
They can choose streamers based on rating from other users. &lt;/p&gt;

&lt;h3&gt;
  
  
  How I built it (How did you utilize refine? Did you learn something new along the way? Pick up a new skill?)
&lt;/h3&gt;

&lt;p&gt;This Project is built using the following resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://refine.dev/" rel="noopener noreferrer"&gt;Refine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.js with typescript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mui.com/" rel="noopener noreferrer"&gt;Material UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I definitely learn more about Next.js and discovered Refine which looks nice and good choice for my project.&lt;br&gt;
I also learn how to work with Supabase which is also great tool that simplified so many things. And more importantly I learned how to work a use documentation of new tech tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources/Info
&lt;/h3&gt;

&lt;p&gt;I would love to continue in developing this app and add new features.&lt;br&gt;
Something I have in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add fetch directly to twitch.tv to fetch data for particular streamer handle&lt;/li&gt;
&lt;li&gt;Add add a comment for logged in users&lt;/li&gt;
&lt;li&gt;Read comments for guest users.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>refinehackathon</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
