A powerful, lightweight web application for organizing, storing, and managing your bookmarks with an intuitive user interface.
- Personal Bookmark Repository: Store all your bookmarks in one place with secure user accounts
- Search Functionality: Quickly find bookmarks with real-time search
- Import & Export: Import bookmarks from Firefox HTML exports and export them in the same format
- Automatic Favicon Fetching: Visual recognition with website favicons automatically fetched for each bookmark
- Duplicate Detection: Find and remove duplicate bookmarks
- Multi-language Support: Available in English, Polish, and German with easy extensibility to other languages
- Responsive Design: User-friendly interface that works on both desktop and mobile devices
- Python 3.7 or higher
- pip (Python package manager)
-
Clone the repository
git clone https://github.com/skorotkiewicz/bookmarks cd bookmarks -
Create and activate a virtual environment
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Run the application
# Development mode python app.py dev # Production mode python app.py
-
Access the application at http://localhost:5000
- Register/Login: Create an account or log in to an existing one
- Adding Bookmarks: Click the "+ Add" button to manually add a new bookmark
- Importing Bookmarks: Import your browser bookmarks using the "Import" option
- Searching: Use the search icon to find bookmarks by title or URL
- Managing Duplicates: Remove duplicate bookmarks using the "Tools" section
The application supports multiple languages. Currently implemented:
- English (en)
- Polish (pl)
- German (de)
To add a new language:
- Create a new translation file in the
lang/directory (e.g.,fr.json) - Copy the structure from an existing language file and translate all values
- Add the language code to the
LANGUAGESlist inapp.py:app.config['LANGUAGES'] = ['en', 'pl', 'de', 'fr']
app.py: Main application file with all routes and database modelslang/: Language translation filesstatic/: Static assets (CSS, JS, images)templates/: HTML templatesinstance/: Contains the SQLite database file
- User: Stores user credentials and relationships to bookmarks
- Bookmark: Stores bookmark information including title, URL, description, and creation date
For production deployment, the application uses Waitress as a WSGI server:
python app.py # This automatically uses Waitress in production modeFor custom deployment configuration, modify the server settings in the app.py file.
- Flask web framework
- SQLAlchemy ORM
- BeautifulSoup for HTML parsing
- Waitress WSGI server


