From 55085926ddc8c4264e00283ff1e06ab30bb8d80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Tosser?= Date: Wed, 8 Oct 2025 10:49:31 +0200 Subject: [PATCH 1/4] more content, better SEO --- README.md | 160 +++++++++++++ index.html | 319 ++++++++++++++++++++++--- robots.txt | 5 + static/pyinfra.css | 563 +++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 1003 insertions(+), 44 deletions(-) create mode 100644 robots.txt diff --git a/README.md b/README.md index 10f5c2a..3e0a408 100644 --- a/README.md +++ b/README.md @@ -1 +1,161 @@ # pyinfra.com + +The official website for [pyinfra](https://github.com/pyinfra-dev/pyinfra) - a fast, Python-based infrastructure automation and configuration management tool. + +## 🚀 About pyinfra + +pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations to automate your infrastructure deployment and management. + +**Key Features:** +- ⚡ **10x faster than Ansible** - Super fast execution over thousands of targets +- 🐍 **Pure Python** - No YAML, just Python code for infrastructure as code +- 🔌 **Agentless** - Zero dependencies on target systems +- 🎯 **Versatile** - Deploy to SSH servers, Docker containers, and local machines +- 🔄 **Declarative** - Idempotent operations with built-in diff checking +- 🛠️ **Extensible** - Leverage the entire Python ecosystem + +## 📂 Project Structure + +``` +pyinfra.com/ +├── index.html # Main landing page +├── static/ +│ ├── pyinfra.css # Custom styles +│ ├── github.css # GitHub markdown styles +│ └── fonts/ # Custom web fonts +└── README.md # This file +``` + +## 🎨 Website Overview + +This is a static HTML website designed with modern web standards in mind: + +### SEO Optimization +- **Comprehensive meta tags** - Title, description, keywords optimized for search engines +- **Structured data (JSON-LD)** - Rich snippets for better search visibility +- **Open Graph tags** - Optimized social media sharing for Facebook/LinkedIn +- **Twitter Card tags** - Enhanced Twitter sharing experience +- **Semantic HTML** - Proper heading hierarchy and ARIA labels +- **Mobile-first responsive design** - Optimized for all device sizes + +### Design Features +- **Modern visual elements** - Gradient backgrounds, smooth transitions, hover effects +- **Accessibility** - ARIA labels, semantic HTML, keyboard navigation support +- **Performance optimized** - Preconnect hints, async loading, efficient CSS +- **Professional typography** - Roboto Slab font for headings +- **Color scheme** - Clean green gradient matching the pyinfra brand + +### Technical SEO +- **Fast loading times** - Minimal dependencies, optimized assets +- **Mobile-friendly** - Responsive design with proper viewport configuration +- **Clean URL structure** - Canonical URLs and proper redirects +- **Analytics integration** - Privacy-focused analytics via Plausible + +## 🔧 Development + +### Local Testing + +Simply open `index.html` in a web browser, or use a local server: + +```bash +# Python 3 +python -m http.server 8000 + +# Or using Node.js +npx http-server + +# Or using PHP +php -S localhost:8000 +``` + +Then navigate to `http://localhost:8000` + +### Making Changes + +1. **HTML content** - Edit `index.html` for content updates +2. **Styles** - Modify `static/pyinfra.css` for design changes +3. **Test locally** - Always test changes in a browser before deploying +4. **SEO updates** - Update meta tags when changing page content + +## 📊 SEO Best Practices Implemented + +1. **Keyword Research** - Targeted keywords for developers and DevOps professionals: + - Primary: "python infrastructure automation", "configuration management" + - Secondary: "ansible alternative", "infrastructure as code", "DevOps automation" + - Long-tail: "python devops tool", "fast deployment automation" + +2. **On-Page SEO**: + - ✅ Descriptive, keyword-rich title tags + - ✅ Compelling meta descriptions under 160 characters + - ✅ Proper heading hierarchy (H1, H2) + - ✅ Alt text for all images + - ✅ Internal linking structure + - ✅ Fast page load times + +3. **Technical SEO**: + - ✅ Mobile-responsive design + - ✅ Clean HTML structure + - ✅ Schema.org structured data + - ✅ Canonical URLs + - ✅ Robots meta tags + - ✅ Sitemap ready + +4. **Content Strategy**: + - Clear value proposition + - Feature-benefit focused copy + - Strong calls-to-action (CTA) + - Developer-friendly language + - Comparison to known tools (Ansible) + +## 🎯 Target Audience + +The website is optimized for: +- **DevOps Engineers** - Looking for automation tools +- **System Administrators** - Managing server infrastructure +- **Software Developers** - Interested in infrastructure as code +- **Python Developers** - Seeking Python-based tools +- **IT Professionals** - Evaluating configuration management solutions + +## 📈 Performance Metrics + +- **Lighthouse Score Goals**: + - Performance: 95+ + - Accessibility: 100 + - Best Practices: 100 + - SEO: 100 + +## 🔗 Links + +- **Documentation**: [docs.pyinfra.com](https://docs.pyinfra.com) +- **GitHub Repository**: [github.com/pyinfra-dev/pyinfra](https://github.com/pyinfra-dev/pyinfra) +- **Examples**: [github.com/pyinfra-dev/pyinfra-examples](https://github.com/pyinfra-dev/pyinfra-examples) +- **Community Chat**: [Matrix](https://matrix.to/#/#pyinfra:matrix.org) + +## 📝 License + +This website content is part of the pyinfra project. See the main repository for license information. + +## 🤝 Contributing + +To suggest improvements to the website: + +1. Fork the repository +2. Make your changes +3. Test thoroughly (check responsiveness, SEO, accessibility) +4. Submit a pull request with a clear description + +### Content Guidelines +- Keep messaging clear and concise +- Maintain developer-focused tone +- Ensure all claims are accurate +- Test all links before submitting + +### Design Guidelines +- Follow existing color scheme +- Maintain mobile responsiveness +- Ensure accessibility standards +- Keep performance in mind + +--- + +**Built with ❤️ for the pyinfra community** diff --git a/index.html b/index.html index 85a9880..5794fba 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ - - pyinfra turns Python code into shell commands and runs them on your servers + + pyinfra - Fast Python Infrastructure Automation & Configuration Management Tool @@ -8,28 +8,78 @@ - - + + + + + - - + + + + + + + + + + + + + + + + + + + + +
-

- -

-
@@ -38,38 +88,255 @@

-

pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and scales from one server to thousands.

-

Think ansible but Python instead of YAML, and a lot faster.

+

pyinfra - Python Infrastructure Automation

+

pyinfra turns Python code into shell commands and runs them on your servers. Execute ad-hoc commands and write declarative operations. Target SSH servers, local machine and Docker containers. Fast and scales from one server to thousands.

+

Think ansible but Python instead of YAML, and up to 10x faster.

+ +
+
+
10x
+
Faster than Ansible
+
+
+
2.8k+
+
GitHub Stars
+
+
+
100%
+
Python
+
+
+
0
+
Agent Dependencies
+
+
+

Why Choose pyinfra?

    -
  • 🚀 Super fast execution over thousands of targets with predictable performance. Up to 10x faster than Ansible.
  • -
  • 🚨 Instant debugging with realtime output from shell commands being executed and no abstraction layer.
  • -
  • 🔄 Declarative operations that only make changes when needed and enable diff checking.
  • -
  • 📦 Extendable with the entire Python package ecosystem. Inventory and operations are written in Python.
  • -
  • 💻 Agentless execution against anything with POSIXish shell access, no dependencies on targets.
  • -
  • 🔌 Integrated with other tools. Pull inventory from Terraform, execute against Docker containers.
  • +
  • Super Fast Execution — Deploy to thousands of targets with predictable performance. Up to 10x faster than Ansible.
  • +
  • Instant Debugging — Get realtime output from shell commands with no abstraction layer for immediate troubleshooting.
  • +
  • Declarative Operations — Only make changes when needed with built-in diff checking and idempotent operations.
  • +
  • Fully Extendable — Leverage the entire Python package ecosystem. Write inventory and operations in pure Python.
  • +
  • Agentless Architecture — Deploy to any system with POSIX shell access. Zero dependencies on target systems.
  • +
  • Seamless Integration — Pull inventory from Terraform, execute against Docker containers, integrate with your DevOps toolchain.
-
- Getting Started - Examples Repo -
-
2.8k+
+
4.4k+
GitHub Stars
From 5392b7fea58d0f99a16a4a80da03de747f9157b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Tosser?= Date: Thu, 9 Oct 2025 07:48:04 +0200 Subject: [PATCH 4/4] better example --- index.html | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 5930ba7..366ef5a 100644 --- a/index.html +++ b/index.html @@ -142,17 +142,22 @@

See It In Action

deploy.py
# Install and configure nginx
-from pyinfra.operations import apt, server
+from pyinfra.operations import apt, systemd
 
 apt.packages(
     name="Install nginx",
     packages=["nginx"],
 )
 
-server.shell(
-    name="Start nginx",
-    commands=["systemctl start nginx"],
-)
+ +systemd.service( + name="Restart and enable the nginx service", + service="nginx.service", + running=True, + restarted=True, + enabled=True, +) +

Simple, Powerful, Pythonic