Skip to main content

CRM Markdown synchronisé depuis CardDAV (Baikal), publié en site statique Hugo.

Project description

jeff

jeff

Your contacts live in CardDAV. Your CRM lives in Markdown.

jeff syncs contacts from a Baikal CardDAV server into clean Markdown files with YAML frontmatter, then publishes a static HTML site. No database, no SaaS, no vendor lock-in — just files, Git, and a fast static site.

How it works

Baikal (CardDAV)  ──sync──>  Markdown + YAML  ──build──>  Hugo static site
  1. Fetch contacts from your CardDAV server (incremental, ctag/etag-based)
  2. Transform vCards into Markdown files with structured YAML frontmatter
  3. Publish a fast, searchable static site with Hugo

Setup

pip install jeff-contacts

Create a .jeff file at the root of your project:

carddav_url=https://your-baikal.example.com/dav.php/addressbooks/user/default/
carddav_username=user
carddav_password=secret
chmod 600 .jeff

Usage

jeff sync           # incremental sync (only changed contacts)
jeff sync --full    # force full re-sync
jeff publish        # build static HTML site
jeff --verbose sync # debug logging

jeff sync creates one Markdown file per contact in content/contacts/, extracts photos to static/photos/, and tracks sync state in .sync-state.json.

jeff publish generates a static HTML site in public/ with a contact index and individual profile pages.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jeff_contacts-0.1.2.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jeff_contacts-0.1.2-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file jeff_contacts-0.1.2.tar.gz.

File metadata

  • Download URL: jeff_contacts-0.1.2.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.8 CPython/3.14.3 Darwin/25.3.0

File hashes

Hashes for jeff_contacts-0.1.2.tar.gz
Algorithm Hash digest
SHA256 15e69f4b2679802e3315a24ed957297cb4933e5e81d47b90f851af48d2ab80b6
MD5 f548cf7006536c9eb5d1d68cf22b619e
BLAKE2b-256 e4012ccb276d26af189522339381711d48251598b16c424fbdbed8c15689fe7b

See more details on using hashes here.

File details

Details for the file jeff_contacts-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: jeff_contacts-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.8 CPython/3.14.3 Darwin/25.3.0

File hashes

Hashes for jeff_contacts-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 66fac6ad54da7aa1852c03dc6dcd93d169df38276b411b26420e79348c06e771
MD5 d6e21f61610ff8b1a2d232aa8c6a8439
BLAKE2b-256 777fa109c9a089753d1a33782d3f3a7d0db35b506da3afffe6b131273e8b124b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page