<?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>DEV Community: kayon ariel</title>
    <description>The latest articles on DEV Community by kayon ariel (@kayon_ariel).</description>
    <link>https://dev.to/kayon_ariel</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%2F2196503%2F4559669e-1390-4bd7-8c7b-c104683d6a1a.jpg</url>
      <title>DEV Community: kayon ariel</title>
      <link>https://dev.to/kayon_ariel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kayon_ariel"/>
    <language>en</language>
    <item>
      <title>Publishing Open-Source Packages: Is It Really Worth It?</title>
      <dc:creator>kayon ariel</dc:creator>
      <pubDate>Sat, 12 Oct 2024 16:05:51 +0000</pubDate>
      <link>https://dev.to/kayon_ariel/publishing-open-source-packages-is-it-really-worth-it-3d83</link>
      <guid>https://dev.to/kayon_ariel/publishing-open-source-packages-is-it-really-worth-it-3d83</guid>
      <description>&lt;p&gt;Many people love to say that the open-source community is the backbone of modern development. But is it really worth the time and effort for the average developer to invest in publishing packages for &lt;strong&gt;Python and PHP&lt;/strong&gt;? Some argue that the visibility and opportunities generated are worth any hardship. Others believe that this is just an “&lt;strong&gt;expensive hobby&lt;/strong&gt;” where the return can be minimal, if not non-existent, compared to the effort.&lt;/p&gt;

&lt;p&gt;The reality is that most developers who contribute to open-source packages are unlikely to see a direct financial return. You donate time, energy, and still run the risk of being criticized for bugs or design decisions that don’t always please everyone. However, for those who understand the value of collaboration and community, this experience can be more than rewarding.&lt;/p&gt;

&lt;p&gt;In the last few days, I published two open-source packages — &lt;a href="https://www.tabnews.com.br/kayon/uma-biblioteca-php-para-pix-estaticos" rel="noopener noreferrer"&gt;PixPhp&lt;/a&gt; and &lt;a href="https://www.tabnews.com.br/kayon/sites-rapidos-renderizando-paginas-estaticas-dinamicas-em-python" rel="noopener noreferrer"&gt;Python-SSG&lt;/a&gt; — and the process was proof that, despite the challenges, publishing packages in these ecosystems has more benefits than setbacks. Let's explore this in more depth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Publishing on PyPI and Packagist: Easier than It Seems
&lt;/h3&gt;

&lt;p&gt;Despite the criticisms that some make about the effort involved in creating and maintaining open-source packages, the truth is that the process of publishing on platforms like &lt;a href="https://pypi.org/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt; and &lt;a href="https://packagist.org/" rel="noopener noreferrer"&gt;Packagist&lt;/a&gt; has become incredibly accessible. If you have a solid project and follow a few simple steps, your code can be available to thousands of developers in a matter of minutes.&lt;/p&gt;

&lt;p&gt;On PyPI, configuring the &lt;code&gt;setup.py&lt;/code&gt; file with the project information (name, version, dependencies, etc.) followed by a simple command with the &lt;code&gt;twine&lt;/code&gt; tool already solves the problem. On Packagist, &lt;code&gt;composer.json&lt;/code&gt; fulfills the same role in the PHP ecosystem, and the integration with GitHub facilitates maintenance and automatic updates. With this, the process of publishing packages has become almost trivial, allowing any developer, with a little knowledge, to be part of this gigantic global community.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/python-ssg/" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fpypi%2Fdm%2Fpython-ssg.svg%3Flabel%3DPyPI%2520downloads" alt="PyPI Downloads" width="162" height="20"&gt;&lt;/a&gt;&lt;a href="https://packagist.org/packages/kayon-ariel/pix-php" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fpackagist%2Fdm%2Fkayon-ariel%2Fpix-php.svg%3Flabel%3DPackagist%2520downloads" alt="Packagist Downloads" width="182" height="20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Publish Open-Source Packages?
&lt;/h3&gt;

&lt;p&gt;Even with all the effort and lack of immediate financial return, why would anyone still choose to publish open-source packages? Here are some reasons why it might be worth it:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Visibility and Networking&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Publishing packages puts your name on the radar of other developers, and can open doors to collaborations and partnerships you might never have imagined. With a good library, you start to attract contributions and feedback from developers all over the world.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Market Credibility&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;For those looking to stand out as a developer, especially in a competitive market, contributing to successful packages demonstrates technical skills, problem-solving ability, and willingness to collaborate. This is something employers and recruiters look favorably on.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Continuous Update&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Both PyPI and Packagist allow for easy, continuous updates, ensuring you maintain control over the versions of your package. And unlike closed projects, you have the community to help you identify bugs and suggest improvements.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. &lt;strong&gt;Simple for Users&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Ultimately, the goal is to make life easier for other developers. A well-documented package that is easy to install with &lt;code&gt;pip install&lt;/code&gt; in Python or &lt;code&gt;composer require&lt;/code&gt; in PHP can quickly gain traction and become essential for many projects around the world.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Does the Open-Source Community Bring to the Table?
&lt;/h3&gt;

&lt;p&gt;The most common criticism one hears is that open-source contributions are "free labor" for large corporations to benefit from. And yes, there is a valid argument there. But for many developers, the real value lies in the exchange of knowledge, the opportunity to learn new technologies and, above all, the positive impact that their tools can have on the lives of others. After all, who wouldn't want their name associated with a project that makes life easier for thousands of developers?&lt;/p&gt;




&lt;p&gt;Publishing open-source packages on platforms like PyPI and Packagist has its challenges and its rewards. While there may not always be an immediate financial return, the visibility, networking and experience gained can open doors that previously seemed unattainable. So the question is: are you willing to invest in open-source, or would you rather sit on the sidelines, watching the impact unfold from afar?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>python</category>
      <category>php</category>
    </item>
    <item>
      <title>The Enigma of “Ghost” Jobs in the IT Market: A Frustrating Reality for Technology Professionals</title>
      <dc:creator>kayon ariel</dc:creator>
      <pubDate>Fri, 11 Oct 2024 19:56:23 +0000</pubDate>
      <link>https://dev.to/kayon_ariel/the-enigma-of-ghost-jobs-in-the-it-market-a-frustrating-reality-for-technology-professionals-53e0</link>
      <guid>https://dev.to/kayon_ariel/the-enigma-of-ghost-jobs-in-the-it-market-a-frustrating-reality-for-technology-professionals-53e0</guid>
      <description>&lt;p&gt;&lt;a href="https://media.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%2Fizkxzbw48bltfp9kgr4p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fizkxzbw48bltfp9kgr4p.jpg" alt="Image description" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In our market, which always seems to be booming and full of opportunities, many of us face a puzzling situation: the “ghost job” listings. Those job postings that, in theory, look promising but result in complete silence. No feedback, no follow-up, no end. This is an increasingly common frustration for those working in technology.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are "Ghost Jobs"?
&lt;/h3&gt;

&lt;p&gt;“Ghost jobs” are those opportunities advertised by companies, but that, in practice, seem not to actually exist. You spend time applying, going through interviews, or even completing technical tests, only to be left in the lurch. Common ways this happens include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Filled positions:&lt;/strong&gt; The company has already hired someone but keeps the job open due to sheer oversight or bureaucracy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endless processes:&lt;/strong&gt; Even after several stages of the selection process, you never receive a definitive answer, whether positive or negative.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resume banks:&lt;/strong&gt; Sometimes, companies are just accumulating resumes for future openings but have no intention of hiring immediately.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Impact on Careers and Motivation
&lt;/h3&gt;

&lt;p&gt;This lack of feedback profoundly affects the confidence and motivation of IT professionals. We spend hours perfecting our resumes, preparing portfolios, and participating in complex technical interviews, only to be ignored. Besides the lost time, the emotional impact of uncertainty breeds discouragement and frustration, especially for those starting their careers.&lt;/p&gt;

&lt;p&gt;Over time, this situation can lead professionals to question their skills, which is extremely detrimental for those who are constantly learning and developing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Does This Happen?
&lt;/h3&gt;

&lt;p&gt;There are several common reasons for the proliferation of “ghost jobs” in IT:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Changing priorities:&lt;/strong&gt; In tech companies, especially startups, priorities can shift rapidly. A position that was urgent last week may simply lose relevance with new strategic decisions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inefficient processes:&lt;/strong&gt; Often, companies lack a well-organized recruitment system, resulting in poor communication with candidates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Excess candidates:&lt;/strong&gt; The IT market attracts many qualified professionals. This means that, for some positions, the company can become overwhelmed by the number of resumes and unable to manage the volume.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous recruitment:&lt;/strong&gt; Some companies keep positions open continuously to create a talent pipeline. In this case, even if hiring is not immediate, they continue to collect resumes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Protect Yourself from "Ghost Jobs"?
&lt;/h3&gt;

&lt;p&gt;Although there is no magic formula to completely avoid these situations, there are some strategies that can help minimize the impact:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Research the company:&lt;/strong&gt; Before applying, look for information about the company's reputation in the market and read reviews on sites like Glassdoor. Companies that frequently leave candidates without a response tend to be known for this.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set realistic expectations:&lt;/strong&gt; It’s important to understand that not all applications will receive feedback. Diversifying your applications and not putting all your hopes into a single job can prevent greater frustrations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be proactive:&lt;/strong&gt; If you haven’t heard back for weeks, reach out to the recruiter to inquire about the status of your application. While this doesn’t guarantee a response, it shows your proactivity and may draw attention to your profile.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strengthen your networking:&lt;/strong&gt; Often, the best opportunities come through direct contacts. Participating in events, communities, and groups in the IT field can open doors that go beyond advertised positions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ghost jobs are a result of failures in recruitment management and the volatility of the IT market. To cope with this reality, it’s essential for professionals to adapt, maintain resilience, and explore alternative strategies to connect with companies.&lt;/p&gt;

&lt;p&gt;I myself, while seeking backend positions, have gone through this: I’ve sent resumes, adjusted profiles, and often wasn’t even called for interviews. It’s frustrating, but the secret is not to give up, continue developing yourself, and seek other ways to find real opportunities in your career.&lt;/p&gt;

</description>
      <category>career</category>
      <category>development</category>
      <category>discuss</category>
      <category>news</category>
    </item>
    <item>
      <title>Fast Websites: Rendering Static Pages to Dynamics in Python</title>
      <dc:creator>kayon ariel</dc:creator>
      <pubDate>Fri, 11 Oct 2024 03:10:17 +0000</pubDate>
      <link>https://dev.to/kayon_ariel/fast-websites-rendering-static-pages-to-dynamics-in-python-1fob</link>
      <guid>https://dev.to/kayon_ariel/fast-websites-rendering-static-pages-to-dynamics-in-python-1fob</guid>
      <description>&lt;h2&gt;
  
  
  Introducing Python-SSG: Simplifying Dynamic Static Page Rendering with Python
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/python-ssg/" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fpypi%2Fv%2Fpython-ssg.svg" alt="PyPI Latest Release" width="78" height="20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In recent years, Static Site Generation (SSG) has gained prominence in web development. While client-side rendering (CSR) is widely used with frameworks like React and Vue.js, there are many scenarios where SSG offers significant advantages, such as improved SEO, faster initial load times, and better accessibility for users with slow devices or connections.&lt;/p&gt;

&lt;p&gt;With this in mind, &lt;code&gt;python-ssg&lt;/code&gt; was developed to bring the simplicity and efficiency of SSG to the Python ecosystem. In this post, I will introduce what SSG is, the problems &lt;code&gt;python-ssg&lt;/code&gt; addresses, and the motivations behind creating this project.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is SSG?
&lt;/h3&gt;

&lt;p&gt;Static Site Generation (SSG) is a technique where web pages are generated on the server, and the "ready" HTML is sent to the browser. This contrasts with Client-Side Rendering (CSR), where most processing and rendering occur in the browser after the page is loaded.&lt;/p&gt;

&lt;p&gt;Some of the main advantages of SSG include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Better initial performance&lt;/strong&gt;: Since the page is delivered already rendered, the initial load time can be considerably shorter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improved SEO&lt;/strong&gt;: Search engines can more easily index pages that are rendered on the server, which is crucial for sites that rely on organic traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility&lt;/strong&gt;: Users with slower devices or unstable connections can have a better experience with SSG, as the heavy processing is done on the server.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What does &lt;code&gt;python-ssg&lt;/code&gt; solve?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;python-ssg&lt;/code&gt; was born out of the need to create a simple yet powerful solution for SSG in the Python ecosystem. In many projects, traditional frameworks like Django and Flask offer some form of rendering, but there are situations where these solutions are complex or excessive for what is desired.&lt;/p&gt;

&lt;p&gt;Here are some of the main problems that &lt;code&gt;python-ssg&lt;/code&gt; seeks to address:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplicity in integration&lt;/strong&gt;: The idea is for &lt;code&gt;python-ssg&lt;/code&gt; to be easy to integrate with any Python project, without depending on a specific framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;: It allows the use of custom templates and rendering mechanisms, enabling adaptation to each project's needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Better performance for dynamic sites&lt;/strong&gt;: If your site has a lot of content that changes frequently, SSG can reduce the load on the client, and &lt;code&gt;python-ssg&lt;/code&gt; makes this implementation easier without sacrificing performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reduced load time&lt;/strong&gt;: With SSG, the page can be delivered almost instantaneously to the browser, even before all JavaScript or dynamic content is loaded.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Motivations for creating python-ssg
&lt;/h3&gt;

&lt;p&gt;The creation of &lt;code&gt;python-ssg&lt;/code&gt; came from observing some gaps in the market. Many Python developers were stuck with solutions that were too robust for simple needs or purely client-side approaches that sacrificed performance and SEO. Some of the main motivations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Need for a lightweight solution&lt;/strong&gt;: In many projects, heavy frameworks like Django and Flask bring unnecessary overhead, and &lt;code&gt;python-ssg&lt;/code&gt; offers a minimalist alternative.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ease of use&lt;/strong&gt;: Many existing SSG solutions on the market are complex to integrate, requiring a considerable learning curve. &lt;code&gt;python-ssg&lt;/code&gt; was designed to be accessible to developers with varying levels of experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Catering to different scenarios&lt;/strong&gt;: &lt;code&gt;python-ssg&lt;/code&gt; is flexible enough to be used in both small projects and large web applications, adapting to different requirements.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to use?
&lt;/h3&gt;

&lt;p&gt;The library is simple to use. After installing with &lt;code&gt;pip install python-ssg&lt;/code&gt;, just configure a &lt;code&gt;config.json&lt;/code&gt; file, create HTML template files in the &lt;code&gt;html/&lt;/code&gt; folder, and call the &lt;code&gt;start_rendering&lt;/code&gt; function. The JSON file allows you to define pages, associated APIs, and the rendering frequency. Here is a basic example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;config.json&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"pages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"index"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"api"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://127.0.0.1:5000/api/index"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GET"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"render_interval"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;main.py&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;python_ssg&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;start_rendering&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;start_rendering&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;config.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Feel free to create HTML templates and organize your assets in this structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;your_project/
├── config.json
│
├── html/
│   ├── assets/
│   │   └── (Your folders and files)
│   │
│   ├── index.html
│   └── (Your HTML files)
│
├── dist/
│   └── (Rendered HTML files, generated automatically)
│
└── main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;html/&lt;/code&gt; folder will contain the page templates that will be dynamically filled with data returned from the APIs. The generated files will be saved in the &lt;code&gt;dist/&lt;/code&gt; folder. Thus, when the &lt;code&gt;start_rendering&lt;/code&gt; function is called, it will continuously update the content according to the defined rendering interval, ensuring that the information is always current with the latest data from the API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Want to contribute?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Python-SSG&lt;/strong&gt; is an open-source project, and I'm sharing it with the community so that we can improve and expand its functionalities together. The documentation is straightforward, and the code is easy to understand. Feel free to explore the repository, open issues, suggest improvements, or even contribute new features.&lt;/p&gt;

&lt;p&gt;One of the planned improvements for the future is integration with &lt;strong&gt;AWS S3&lt;/strong&gt;, so that the generated pages can be automatically uploaded to an S3 bucket, making it easier to update sites in the cloud.&lt;/p&gt;

&lt;p&gt;If you want to take a look at the project, the code is available on GitHub:&lt;br&gt;
&lt;a href="https://github.com/kayon-ariel/python-ssg" rel="noopener noreferrer"&gt;https://github.com/kayon-ariel/python-ssg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, check it out on PyPI:&lt;br&gt;
&lt;a href="https://pypi.org/project/python-ssg/" rel="noopener noreferrer"&gt;https://pypi.org/project/python-ssg/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any feedback, ideas, or contributions are very welcome!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>webdev</category>
      <category>ssg</category>
    </item>
  </channel>
</rss>
