Add rich link previews + event page integration

- Add comprehensive Open Graph meta tags for rich social sharing
- Generate social media assets (og-image.png, favicons)
- Implement Twitter Card support for enhanced Twitter sharing
- Add SEO meta tags for improved search engine visibility
- Create event page with JotForm integration (/event/)
- Add customizable meta blocks for individual page optimization

🔗 Links now show rich previews with title, description, and branded image
📱 Professional favicons across all devices and platforms

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude 2025-08-15 17:09:29 +05:30
parent 2ffd0aae50
commit bf8cc1817e
10 changed files with 94 additions and 0 deletions

View File

@ -8,5 +8,6 @@ urlpatterns = [
path('digital-branding/', views.digital_branding_view, name='digital_branding'), path('digital-branding/', views.digital_branding_view, name='digital_branding'),
path('pricing/', views.pricing_view, name='pricing'), path('pricing/', views.pricing_view, name='pricing'),
path('contact/', views.contact_form_view, name='contact_form'), path('contact/', views.contact_form_view, name='contact_form'),
path('event/', views.event_view, name='event'),
path('health/', views.health_check_view, name='health_check'), path('health/', views.health_check_view, name='health_check'),
] ]

View File

@ -214,6 +214,22 @@ def contact_form_view(request):
}, status=500) }, status=500)
@ratelimit(key='ip', rate='60/m', method='GET', block=False)
def event_view(request):
"""Event page view"""
# Check if rate limited
if getattr(request, 'limited', False):
logger.warning(f"Event page rate limit exceeded for IP {request.META.get('REMOTE_ADDR')}")
messages.warning(request, 'Too many requests. Please wait a moment before refreshing.')
context = {
'form_url': 'https://form.jotform.com/252214924850455',
'user_balance': request.user.wallet_balance if request.user.is_authenticated else 0,
}
return render(request, 'core/event.html', context)
@ratelimit(key='ip', rate='60/m', method='GET', block=False) @ratelimit(key='ip', rate='60/m', method='GET', block=False)
def health_check_view(request): def health_check_view(request):
"""Simplified health check endpoint - no database dependency for startup""" """Simplified health check endpoint - no database dependency for startup"""

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
static/img/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

BIN
static/img/og-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -6,6 +6,35 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Quantum Tasks AI - AI Platform{% endblock %}</title> <title>{% block title %}Quantum Tasks AI - AI Platform{% endblock %}</title>
<!-- SEO Meta Tags -->
<meta name="description" content="{% block description %}Quantum Tasks AI - Advanced AI agent marketplace for automation, analysis, and productivity. Access powerful AI tools for business and personal use.{% endblock %}">
<meta name="keywords" content="AI, artificial intelligence, automation, AI agents, machine learning, productivity, business tools">
<meta name="author" content="Quantum Tasks AI">
<!-- Open Graph Meta Tags for Rich Link Previews -->
<meta property="og:type" content="website">
<meta property="og:site_name" content="Quantum Tasks AI">
<meta property="og:title" content="{% block og_title %}{% block title %}Quantum Tasks AI - AI Platform{% endblock %}{% endblock %}">
<meta property="og:description" content="{% block og_description %}Advanced AI agent marketplace for automation, analysis, and productivity. Access powerful AI tools for business and personal use.{% endblock %}">
<meta property="og:url" content="{% block og_url %}https://quantumtaskai.com{{ request.get_full_path }}{% endblock %}">
<meta property="og:image" content="{% block og_image %}{% static 'img/og-image.png' %}{% endblock %}">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Quantum Tasks AI - AI Agent Marketplace">
<!-- Twitter Card Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@quantumtaskai">
<meta name="twitter:title" content="{% block twitter_title %}{% block title %}Quantum Tasks AI - AI Platform{% endblock %}{% endblock %}">
<meta name="twitter:description" content="{% block twitter_description %}Advanced AI agent marketplace for automation, analysis, and productivity. Access powerful AI tools for business and personal use.{% endblock %}">
<meta name="twitter:image" content="{% block twitter_image %}{% static 'img/og-image.png' %}{% endblock %}">
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="{% static 'img/favicon.ico' %}">
<link rel="apple-touch-icon" sizes="180x180" href="{% static 'img/apple-touch-icon.png' %}">
<link rel="icon" type="image/png" sizes="32x32" href="{% static 'img/favicon-32x32.png' %}">
<link rel="icon" type="image/png" sizes="16x16" href="{% static 'img/favicon-16x16.png' %}">
<!-- Unified Font Loading - Single Source of Truth --> <!-- Unified Font Loading - Single Source of Truth -->
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

43
templates/core/event.html Normal file
View File

@ -0,0 +1,43 @@
{% extends 'base.html' %}
{% load static %}
{% block title %}Event - Quantum Tasks AI{% endblock %}
{% block extra_css %}
<style>
/* Override main-container for full-width iframe */
.main-container {
max-width: none;
padding: 0;
height: calc(100vh - 80px); /* Account for header height */
}
.iframe-container {
width: 100%;
height: 100%;
}
.iframe-container iframe {
width: 100%;
height: 100%;
border: none;
display: block;
}
/* Hide footer for this page */
.footer {
display: none !important;
}
</style>
{% endblock %}
{% block content %}
<div class="iframe-container">
<iframe
src="{{ form_url }}"
frameborder="0"
scrolling="auto"
title="Event">
</iframe>
</div>
{% endblock %}

View File

@ -3,6 +3,11 @@
{% block title %}Quantum Tasks AI - AI & Task Automation Solutions{% endblock %} {% block title %}Quantum Tasks AI - AI & Task Automation Solutions{% endblock %}
{% block description %}Discover powerful AI agents for automation, analysis, and productivity. Access premium AI tools for social media, business analysis, document processing, and more.{% endblock %}
{% block og_title %}Quantum Tasks AI - AI & Task Automation Solutions{% endblock %}
{% block og_description %}Discover powerful AI agents for automation, analysis, and productivity. Access premium AI tools for social media, business analysis, document processing, and more.{% endblock %}
{% block extra_css %} {% block extra_css %}
<link rel="stylesheet" href="{% static 'css/homepage.css' %}"> <link rel="stylesheet" href="{% static 'css/homepage.css' %}">
{% endblock %} {% endblock %}