Skip to main content

A tiny desktop editor that adds Unicode emphasis for social posts.

Project description

Postlette

Postlette logo

A tiny desktop editor that adds Unicode emphasis for social posts.

Postlette uses Unicode characters, not rich text formatting. Type your post, style selected text with bold or italic, insert separators, and copy the result. Platforms may render these characters differently.

Rendering varies by platform.

Links:

Setup

Requires Python 3.10+.

git clone https://github.com/chrislyons-dev/postlette.git
cd postlette
python -m venv .venv

Activate the virtual environment:

# Windows
.venv\Scripts\activate

# macOS / Linux
source .venv/bin/activate

Install dependencies:

pip install -e ".[dev]"

Usage

python main.py

Windows/Linux: use Ctrl. macOS: use Cmd for shortcuts.

  1. Type or paste your post into the editor.
  2. Select text and apply styling (Bold, Italic, etc.) from the toolbar.
  3. Insert em dashes or separators at the cursor.
  4. Use 📂 to open a .txt file or 💾 to save your work (shortcuts: Ctrl+O, Ctrl+S, Ctrl+Shift+S).
  5. Click Copy (or press Ctrl+Shift+C) to copy the result to your clipboard.

Use styling sparingly for readability.

Test

python tasks.py test

Lint

python tasks.py lint    # check
python tasks.py fix     # auto-fix

Security audit

python tasks.py audit

Icons

Convert an SVG into PNG + ICO + ICNS (dev-only deps):

python tasks.py icons .\docs\images\logo-dark.svg transparent

Docs (MkDocs)

Serve locally:

python tasks.py docs-serve

Build static site:

python tasks.py docs-build

GitHub Pages deploys automatically on main via .github/workflows/docs.yml.

Release

Release builds are tag-driven and publish to GitHub Releases and PyPI.

  1. Update the version in pyproject.toml.
  2. Commit the change.
  3. Create and push a tag like v0.2.0.

The release workflow will:

  • Build Windows and macOS PyInstaller artifacts.
  • Generate SHA-256 checksums.
  • Create a GitHub Release with auto-generated notes.
  • Publish sdist/wheel to PyPI via Trusted Publishing.

See RELEASING.md for the full checklist.

Build

Standalone executables are built with PyInstaller. Each OS requires its own build.

python tasks.py build

Windows

pip install pyinstaller
pyinstaller --onefile --windowed --name postlette --icon docs/images/logo-dark-navy.ico main.py

The executable will be in dist/postlette.exe.

macOS

pip install pyinstaller
pyinstaller --onefile --windowed --name postlette main.py

The app bundle will be in dist/postlette.app.

Note: Distributing on macOS may require codesigning and notarization.

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

postlette-0.3.0.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

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

postlette-0.3.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file postlette-0.3.0.tar.gz.

File metadata

  • Download URL: postlette-0.3.0.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for postlette-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ac0e704bf005e119585898a75a574152aecf007022feb33106b6dcee074ad914
MD5 e2f39cdad930ea395e2236dd08d93403
BLAKE2b-256 8c9ae2f97ef03c55c4f02f200ae8888d259d4ddfae9dba43398f5390c37a237d

See more details on using hashes here.

Provenance

The following attestation bundles were made for postlette-0.3.0.tar.gz:

Publisher: release.yml on chrislyons-dev/postlette

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file postlette-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: postlette-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for postlette-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55ed07b1a20b1c15a3fb34cc0f75e5a20c37c2c866546b438d05b3696121e99d
MD5 95100186ed5d2b5a5aaef7440ab8ce0c
BLAKE2b-256 8d566be1d165ce9f82ce1ee8f6d5012bbea907d774a22f1477fded37f9934dc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for postlette-0.3.0-py3-none-any.whl:

Publisher: release.yml on chrislyons-dev/postlette

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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