# Sunday - Webcomic Website Template A Flask-based webcomic website with server-side rendering using Jinja2 templates. ## Table of Contents - [What is This?](#what-is-this) - [How Does This Compare to Rarebit?](#how-does-this-compare-to-rarebit) - [Simple Hosting Options](#simple-hosting-options) - [PythonAnywhere (Recommended for Beginners)](#pythonanywhere-recommended-for-beginners) - [Render](#render) - [Railway](#railway) - [DigitalOcean App Platform](#digitalocean-app-platform) - [What You'll Need](#what-youll-need) - [Features](#features) - [Accessibility](#accessibility) - [Accessibility Features](#accessibility-features) - [Testing Accessibility](#testing-accessibility) - [Accessibility Best Practices for Comic Creators](#accessibility-best-practices-for-comic-creators) - [Accessibility Score](#accessibility-score) - [Search Engine Optimization (SEO)](#search-engine-optimization-seo) - [SEO Features](#seo-features) - [Using SEO Features](#using-seo-features) - [SEO Best Practices for Webcomics](#seo-best-practices-for-webcomics) - [SEO Checklist for Launch](#seo-checklist-for-launch) - [Common SEO Questions](#common-seo-questions) - [Content Protection & AI Scraping Prevention](#content-protection--ai-scraping-prevention) - [Protection Features](#protection-features) - [Advanced: Image-Level Protection Tools](#advanced-image-level-protection-tools) - [Important Limitations](#important-limitations) - [Customizing Your Terms](#customizing-your-terms) - [Testing Your Protection](#testing-your-protection) - [Reporting Violations](#reporting-violations) - [Project Structure](#project-structure) - [Setup](#setup) - [Environment Variables](#environment-variables) - [Configuration](#configuration) - [Global Settings](#global-settings) - [Adding Comics](#adding-comics) - [Adding a New Comic](#adding-a-new-comic) - [Generating RSS Feed](#generating-rss-feed) - [Markdown Support](#markdown-support) - [Production Deployment](#production-deployment) - [Option 1: Docker (Recommended)](#option-1-docker-recommended) - [Option 2: Manual Deployment with Gunicorn](#option-2-manual-deployment-with-gunicorn) - [Using a Reverse Proxy (Recommended)](#using-a-reverse-proxy-recommended) - [Additional Production Considerations](#additional-production-considerations) - [Upgrading to a Database](#upgrading-to-a-database) - [Customization](#customization) - [Branding](#branding) - [Styling](#styling) - [About Page](#about-page) - [Icon Navigation](#icon-navigation) - [Social Links](#social-links) - [Shareable Banner](#shareable-banner) - [Navigation](#navigation) - [Mouse/Touch Navigation](#mousetouch-navigation) - [Keyboard Navigation](#keyboard-navigation) - [Pages](#pages) - [API Endpoints](#api-endpoints) - [Credits](#credits) - [AI Usage Transparency](#ai-usage-transparency) - [License & Content Ownership](#license--content-ownership) ## What is This? **Sunday Comics** is a simple, ready-to-use website for publishing your webcomic online. If you're an artist or comic creator who wants to share your work on the web without dealing with complex platforms or databases, this is for you. **What you get:** - A clean, professional website to display your comics - Easy navigation for readers (first, previous, next, latest buttons) - An archive page where readers can browse all your comics - RSS feed so readers can subscribe to updates - Mobile-friendly design that works on phones and tablets - No database required - just upload images and edit a simple text file **Perfect for:** - Independent comic artists starting their first webcomic - Artists who want full control over their comic's presentation - Creators who prefer simple file-based management over databases - Anyone looking for a lightweight, customizable comic platform **How it works:** You add your comics by uploading image files and adding basic information (title, date, description) to a configuration file. The website handles everything else - displaying comics with navigation, creating an archive, generating an RSS feed, and making your comics shareable on social media. No coding knowledge required for basic use - just follow the instructions below to add comics and customize your site's appearance. ## How Does This Compare to Rarebit? [Rarebit](https://rarebit.neocities.org/) is an excellent static webcomic template that inspired this project. Sunday Comics offers a different approach with its own strengths: **Sunday Comics:** - Server-side application (Flask/Python) that runs on a web server - Comics stored in a Python file - edit text to add comics - Includes an RSS feed generator and helper scripts - API endpoints for programmatic access - Markdown support for rich-formatted content - More flexibility for custom features and integrations - Requires Python installation and basic server setup **Rarebit:** - Purely static HTML/CSS/JavaScript files - Comics are inferred from static images upload - edit a JS to customize - Can be hosted for free on GitHub Pages, Neocities, etc. - No server or programming language required - Simpler deployment - just upload files **Which should you choose?** - Choose **Rarebit** if you want the simplest possible setup and free hosting - Choose **Sunday Comics** if you want server-side features, plan to add custom functionality, or prefer working with Python - Both are great options - it depends on your technical comfort level and hosting preferences Sunday Comics is meant as another option in the webcomic toolkit, not a replacement for Rarebit. Many creators might even use both for different projects! ## Simple Hosting Options Don't have a server? No problem! Here are beginner-friendly options to get your comic online: ### PythonAnywhere (Recommended for Beginners) **Best for:** First-time deployments, testing your comic site - **Free tier available** (with pythonanywhere.com subdomain) - **No credit card required** for free tier - **Setup:** Upload your files through their web interface, configure a few settings - **Great beginner tutorials** available on their site - Visit: [pythonanywhere.com](https://www.pythonanywhere.com) ### Render **Best for:** Automatic deployments from GitHub - **Free tier available** (site sleeps after inactivity) - **Setup:** Connect your GitHub repository, Render deploys automatically - **No server management needed** - just push code to GitHub - Custom domain support on free tier - Visit: [render.com](https://render.com) ### Railway **Best for:** Quick deployment with modern interface - **Free trial credits** included ($5/month after) - **Setup:** Connect GitHub, deploy with one click - **Automatic deployments** when you update your code - Simple dashboard to monitor your site - Visit: [railway.app](https://railway.app) ### DigitalOcean App Platform **Best for:** Scaling as your audience grows - **$5/month** for basic tier (no free tier) - **Very reliable** for growing comics with traffic - **Automatic scaling** handles traffic spikes - One-click deploy from GitHub - Visit: [digitalocean.com/products/app-platform](https://www.digitalocean.com/products/app-platform) ### What You'll Need: 1. Your comic files and images 2. A GitHub account (free) for most modern hosting platforms 3. Basic familiarity with uploading files or pushing to GitHub **Complete beginner?** Start with **PythonAnywhere** - it has the gentlest learning curve and requires no GitHub knowledge. You can always migrate to other platforms later as you get more comfortable. ## Features - Comic viewer with navigation (First, Previous, Next, Latest) - **Multi-image comics** with vertical scrolling (webtoon style) and lazy loading - Client-side navigation using JSON API (no page reloads) - Keyboard navigation support (arrow keys, Home/End) - Archive page with thumbnail grid - RSS feed support - Markdown support for author notes and about page - Optional icon-based navigation (comic navigation, header, and social links) - Configurable logo and header/footer images - Shareable banner button with embeddable HTML code - Mobile-responsive with optional mobile-specific comic images - Full-width and plain (headerless) display modes - JSON API for programmatic access - Open Graph and Twitter Card metadata for social sharing - Server-side rendering with Jinja2 - **Comprehensive accessibility features** (WCAG compliant) - **Search engine optimized** (sitemap, robots.txt, meta tags, canonical URLs) ## Accessibility Sunday Comics is built with accessibility as a core feature, ensuring your webcomic can be enjoyed by all readers, including those using assistive technologies. ### Accessibility Features #### ✅ Keyboard Navigation - **Full keyboard support** - Navigate the entire site without a mouse - **Visible focus indicators** - Clear visual outlines on all interactive elements when using Tab navigation - **Skip to main content** - Press Tab on any page to reveal a "Skip to main content" link, allowing keyboard users to bypass navigation - **Arrow key shortcuts** - Use Left/Right arrows to navigate between comics, Home/End for first/latest - **Focus management** - Keyboard focus automatically moves to the comic content after navigation, maintaining context for screen reader users #### ✅ Screen Reader Support - **Semantic HTML** - Proper use of `
`, `