Flask Editable Site is a template for building small marketing websites in Flask with live-editable content. Marketing teams benefit from in-place editing of text, images, and other content types. It connects to Flask-based web applications and integrates with content management workflows.
git clone https://github.com/Jaza/flask-editablesite.gitFlask Editable Site is a Flask-based template designed for creating small marketing websites with live-editable content capabilities. It enables marketing teams to edit text, images, and other content types directly in place without requiring backend access or technical expertise. The template integrates with Flask web applications and connects to existing content management workflows. This streamlined approach reduces the friction between content updates and website deployment.
[{"step":"Set up the Flask Editable Site template by cloning the repository and installing dependencies (flask, flask-admin, flask-sqlalchemy). Configure your database connection in config.py.","tip":"Use SQLite for development and PostgreSQL for production. Set FLASK_ENV=development initially to test all editable regions."},{"step":"Customize the editable regions in templates/base.html by adding data-field attributes to divs that should be editable. For example: <div class=\"editable-region\" data-field=\"hero_title\">","tip":"Use descriptive field names that match your admin model fields. Keep editable regions focused on single pieces of content for easier management."},{"step":"Configure the admin interface in flask_admin/models.py by creating ModelView classes for each editable content type (text, images, metadata).","tip":"For image fields, use flask_admin.contrib.fileadmin.FileAdmin. For rich text, consider using CKEditor integration."},{"step":"Populate the site with initial content via the admin interface (http://localhost:5000/admin). Set up user accounts with appropriate permissions for your marketing team.","tip":"Create separate admin accounts for content editors vs. developers. Use the 'Roles' feature in flask-admin to manage permissions."},{"step":"Deploy to your production server using Gunicorn with Nginx as a reverse proxy. Set up environment variables for database credentials and secret keys.","tip":"Use Docker for consistent deployments. Configure proper backup procedures for your editable content database."}]
Marketing teams updating website copy and images without developer involvement
Small business websites requiring frequent content changes
Flask applications needing in-place content editing functionality
Content management integration for marketing-focused web properties
No install command available. Check the GitHub repository for manual installation instructions.
git clone https://github.com/Jaza/flask-editablesiteCopy the install command above and run it in your terminal.
Launch Claude Code, Cursor, or your preferred AI coding agent.
Use the prompt template or examples below to test the skill.
Adapt the skill to your specific use case and workflow.
Generate a Flask Editable Site template for a marketing website targeting [TARGET_AUDIENCE] in [INDUSTRY]. Include sections for [KEY_SECTIONS] (e.g., hero banner, features, testimonials, contact form). Ensure all text, images, and metadata are editable via a Flask admin interface. Provide the complete file structure and code snippets for [PAGE_TEMPLATES] and [ADMIN_CONFIGURATION].
```
# Flask Editable Site Template for Able (Recruiting)
# File Structure:
# /templates/
# ├── base.html
# ├── index.html
# ├── about.html
# └── contact.html
# /static/
# ├── images/
# ├── hero-banner.jpg (editable via admin)
# └── testimonials/
# └── css/
# └── style.css (editable via admin)
# /flask_admin/
# ├── __init__.py
# └── models.py
# base.html (Core template with editable regions)
{% extends "admin/base.html" %}
{% block head %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
{% endblock %}
{% block content %}
<div class="editable-region" data-field="hero_title">
<h1>{{ site_config.hero_title|default('Hire Top Talent in India') }}</h1>
<p>{{ site_config.hero_subtitle|default('Connect with early professionals ready for entry-level roles.') }}</p>
</div>
{% endblock %}
# Admin Configuration (models.py)
from flask_admin.contrib.sqla import ModelView
from flask_admin.model import BaseModelView
from wtforms import TextAreaField
from wtforms.widgets import TextArea
class EditableTextField(TextAreaField):
widget = TextArea(attrs={'class': 'form-control', 'rows': 5})
class SiteConfigAdmin(ModelView):
column_list = ['hero_title', 'hero_subtitle', 'cta_button_text']
form_args = {
'hero_title': {'label': 'Hero Banner Title'},
'hero_subtitle': {'label': 'Hero Banner Subtitle'},
'cta_button_text': {'label': 'Call-to-Action Button Text'}
}
form_overrides = {
'hero_title': EditableTextField,
'hero_subtitle': EditableTextField,
'cta_button_text': EditableTextField
}
# Deployment Instructions
1. Install requirements: pip install flask flask-admin flask-sqlalchemy
2. Configure database: export FLASK_APP=app.py && flask db init && flask db migrate && flask db upgrade
3. Run server: flask run --host=0.0.0.0 --port=5000
4. Access admin at: http://localhost:5000/admin (username: admin, password: admin)
```
# Key Features Implemented:
- Editable hero section with title, subtitle, and CTA button
- Dynamic testimonials section (3 testimonials with avatars and quotes)
- Features grid (4 cards: Resume Optimization, Interview Prep, Placement Tracking, Employer Dashboard)
- Contact form with validation (name, email, message, role selection)
- SEO metadata fields (title, description, keywords) per page
- Image upload capability for all sections
# Sample Editable Content:
Hero Title: "Build Your Dream Team in 30 Days"
Hero Subtitle: "Able connects you with India's top 5% early professionals. Our AI-powered matching reduces hiring time by 60%."
CTA Button: "Start Hiring Now"
Testimonial 1: "Able helped us hire 15 entry-level developers in 2 weeks. Their candidate quality is exceptional." - Priya Mehta, CTO at TechCorp India
Feature 1: "AI-powered resume parsing that identifies top 5% candidates based on skills and cultural fit"
Feature 2: "Interview simulator with real-time feedback on communication and technical skills"
Contact Form Submission: {"name": "Rahul Sharma", "email": "[email protected]", "message": "Looking to hire 5 Python developers for our new project. Can you share candidate profiles?", "role": "Engineering Manager"}Take a free 3-minute scan and get personalized AI skill recommendations.
Take free scan