Kobelly Web Solutions
A professional Flask-based website for promoting small business web development services. Features multilanguage support (English, Dutch, French, German) and is fully dockerized for easy deployment.
Features
- 🌐 Multilanguage Support: English (EN), Dutch (NL), French (FR), German (DE)
- 📱 Responsive Design: Modern, mobile-friendly interface
- 🎨 Professional UI: Clean, modern design with Bootstrap 5
- 🐳 Docker Support: Easy containerization and deployment
- ⚡ Fast Performance: Optimized for speed and performance
- 🔧 No Database Required: Simple, lightweight setup
Pages
- Home: Hero section, features, and service overview
- Services: Detailed service offerings with pricing information
- About: Company story, team, and values
- Contact: Contact form and business information
Quick Start
Local Development (Recommended)
-
Install Python dependencies:
pip install -r requirements.txt -
Run the application:
python app.py -
Access the website: Open your browser and go to
http://localhost:5000
Docker Deployment
-
Build and run with Docker Compose:
docker-compose up --build -
Or build and run manually:
docker build -t kobelly-website . docker run -p 5000:5000 kobelly-website
Project Structure
Kobelly/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── Dockerfile # Docker configuration
├── docker-compose.yml # Docker Compose configuration
├── babel.cfg # Babel configuration for translations
├── templates/ # HTML templates
│ ├── base.html # Base template with navigation
│ ├── index.html # Homepage
│ ├── services.html # Services page
│ ├── about.html # About page
│ └── contact.html # Contact page
└── translations/ # Translation files
├── en/LC_MESSAGES/messages.po
├── nl/LC_MESSAGES/messages.po
├── fr/LC_MESSAGES/messages.po
└── de/LC_MESSAGES/messages.po
Multilanguage Support
The website supports four languages:
- 🇺🇸 English (EN) - Default
- 🇳🇱 Dutch (NL)
- 🇫🇷 French (FR)
- 🇩🇪 German (DE)
Users can switch languages using the language selector in the navigation bar. The language preference is stored in the session.
Customization
Content Updates
- Text Content: Edit the HTML templates in the
templates/directory - Translations: Update the
.pofiles in thetranslations/directory - Styling: Modify the CSS in
templates/base.html
Adding New Pages
- Add a new route in
app.py - Create a new template file in
templates/ - Add navigation link in
templates/base.html
Updating Translations
-
Extract translatable strings:
pybabel extract -F babel.cfg -o messages.pot . -
Update translation files:
pybabel update -i messages.pot -d translations -
Compile translations:
pybabel compile -d translations
Configuration
Environment Variables
SECRET_KEY: Secret key for Flask sessions (default: 'your-secret-key-change-in-production')FLASK_ENV: Flask environment (development/production)
Production Deployment
For production deployment:
- Set a strong
SECRET_KEY - Disable debug mode
- Use a production WSGI server (e.g., Gunicorn)
- Set up proper SSL/TLS certificates
- Configure a reverse proxy (e.g., Nginx)
Technologies Used
- Backend: Flask 2.3.3
- Frontend: Bootstrap 5, Font Awesome
- Internationalization: Flask-Babel
- Containerization: Docker, Docker Compose
- Styling: Custom CSS with CSS variables
Browser Support
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
License
This project is created for demonstration purposes. Feel free to use and modify for your own business needs.
Support
For questions or support, please contact:
- Email: info@kobelly.com
- Phone: +32 486 21 07 07
- Address: Blijkheerstraat 92, 1755 Pajottegem, Belgium
Kobelly Web Solutions - Professional web development for small businesses and entrepreneurs.