{"id":22997921,"url":"https://github.com/fairybow/fernanda","last_synced_at":"2026-04-18T19:05:41.508Z","repository":{"id":312353100,"uuid":"1046449094","full_name":"fairybow/Fernanda","owner":"fairybow","description":"Fernanda — a plain-text-first workbench for creative writing","archived":false,"fork":false,"pushed_at":"2026-03-27T15:03:09.000Z","size":15713,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-27T15:59:12.190Z","etag":null,"topics":["cpp","creative","creative-writing","desktop","linux","macos","novel-writing","offline","productivity","qt","text-editor","windows","writing-software","writing-tool"],"latest_commit_sha":null,"homepage":"https://github.com/fairybow/Fernanda","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fairybow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-28T17:49:20.000Z","updated_at":"2026-03-26T02:26:55.000Z","dependencies_parsed_at":"2025-08-30T03:11:14.182Z","dependency_job_id":"b493ca40-d02c-463d-a32b-ea75aaab4762","html_url":"https://github.com/fairybow/Fernanda","commit_stats":null,"previous_names":["fairybow/fernanda"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/fairybow/Fernanda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairybow%2FFernanda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairybow%2FFernanda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairybow%2FFernanda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairybow%2FFernanda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fairybow","download_url":"https://codeload.github.com/fairybow/Fernanda/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairybow%2FFernanda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","creative","creative-writing","desktop","linux","macos","novel-writing","offline","productivity","qt","text-editor","windows","writing-software","writing-tool"],"created_at":"2024-12-15T06:09:40.828Z","updated_at":"2026-04-18T19:05:41.499Z","avatar_url":"https://github.com/fairybow.png","language":"C++","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/fairybow/Fernanda/blob/main/Fernanda/resources/banner/Readme Banner.png\" alt=\"ASCII banner\" width=\"640\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cb\u003eA plain-text-first workbench for creative writing\u003c/b\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-GPL%203-red.svg?style=flat-square\" alt=\"License GPL 3\"\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Platforms-Windows%20|%20macOS%20|%20Linux-blue.svg?style=flat-square\" alt=\"Platforms: Windows, macOS, Linux\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/fairybow/Fernanda/releases\"\u003e\u003cb\u003eReleases\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"https://github.com/fairybow/Fernanda/blob/main/Fernanda/docs\"\u003e\u003cb\u003eDocumentation\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n![screenshot](https://github.com/fairybow/Fernanda/blob/main/Fernanda/resources/screenshots/1.apng)\n\nFernanda is a plain-text-first workbench for creative writing. Work on single files like a notepad or organize whole projects in [Notebooks (`.fnx`)](https://github.com/fairybow/Fernanda/blob/main/Fernanda/docs/Notebooks.md).\n\n\u003e [!NOTE]\n\u003e macOS and Linux builds are available but not well-tested. Bug reports are welcome!\n\n## Features\n\nFernanda offers two workspace types: a **Notepad** for working directly on the OS filesystem and **Notebooks** for organizing whole projects inside a single, portable `.fnx` archive. Both support multiple windows, tabbed editing, and drag-and-drop.\n\n- Distraction-free editor with line numbers, current line highlight, and selection handles (all togglable)\n- Key filters for auto-close, smart quotes, and other typing enhancements\n- Notebook file management with virtual folders, drag-and-drop tree, import, and a soft-delete trash system\n- Editor themes (and user theme support via `~/.fernanda/themes` with hot reload)\n- Cascading settings: per-Notebook settings inherit from Notepad defaults\n- Word counter with selection-aware counting and adaptive performance (togglable)\n- PDF and image viewing\n- [Markdown](https://markdownguide.org/) and [Fountain](https://fountain.io) editing/viewing\n\nSee [Features.md](https://github.com/fairybow/Fernanda/blob/main/Fernanda/docs/Features.md) for the full list.\n\n## Installation\n\n**First release coming soon.** (Test releases available!)\n\n\u003e [!IMPORTANT]\n\u003e You should not trust your writing with any version of this software less than 1.0.0 (not released yet)! Regardless, always make regular backups of your work.\n\n## Usage\n\nFernanda accepts file paths as arguments. Valid `.fnx` files open in their own Notebook, and everything else opens in Notepad.\n\nOptional flags:\n\n- `--verbose`: enables debug-level logging to file (default is info-level and above)\n- `--log-viewer`: opens an in-app log viewer window for the session\n\nLog files are stored in `~/.fernanda/logs/` and pruned automatically.\n\n## Built with\n\n![C++](https://img.shields.io/badge/C++-20-blue?style=for-the-badge\u0026logo=C%2B%2B)\n[![Qt](https://img.shields.io/badge/Qt-6.10-brightgreen?style=for-the-badge\u0026logo=qt)](https://qt.io/)\n[![miniz](https://img.shields.io/badge/miniz-3.1-yellow.svg?style=for-the-badge)](https://github.com/richgel999/miniz)\n\n(See [Dependencies.md](https://github.com/fairybow/Fernanda/blob/main/Fernanda/docs/Dependencies.md))\n\n## Building\n\n### Requirements\n\n- C++20\n- Qt 6.11 (with [extensions](https://github.com/fairybow/Fernanda/blob/main/Fernanda/docs/QtInstallerOptions.md))\n- CMake 3.21+\n\n### Windows (Visual Studio)\n\n1. Install the [Qt Visual Studio Tools](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2022) extension\n2. Clone\n3. Open the `Fernanda/` directory in Visual Studio\n4. The Qt VS Tools extension will generate a `CMakeUserPresets.json` with your Qt path\n5. Build and run\n\n## Contributing\n\nHey! Read Fernanda's Code! (I'm proud of it.)\n\nFernanda's [architecture](https://github.com/fairybow/Fernanda/blob/main/Fernanda/docs/Architecture.md) was carefully considered. I've landed on what I think is a simple but flexible interworking of common architectural patterns designed to keep things in their lanes while allowing lateral communication across a given Workspace (Notepad or Notebook).\n\nI try to keep it clean and focused, and most files are only a few hundred lines long.\n\nThat said, there will always be something to improve. Take a look around the repository and get to know the code. If something seems off to you or you have something new in mind, take a look at [CONTRIBUTING.md](https://github.com/fairybow/Fernanda/blob/main/CONTRIBUTING.md), open an issue, and we'll discuss a PR.\n\n## License\n\nFernanda is free software, redistributable and/or modifiable under the terms of the [GPL 3 License](https://github.com/fairybow/Fernanda/blob/main/LICENSE). It's distributed in the hope that it will be useful but without any warranty (even the implied warranty of merchantability or fitness for a particular purpose).\n\n##\n\nI think, in part, I made this because I wanted to put off writing for as long as possible (as writers are wont to do). But I also wanted to make something all my own, something difficult yet rewarding that was way out of my realm of experience. It's taken forever, and it's still not done (it'll never be *done*-done), but it's well on its way now. Thanks for stopping by, and I hope we'll meet again.\n\n\u003e You have to be all kinds of stupid to say *\"I can do this.\"*\n\n– Linus Torvalds","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffairybow%2Ffernanda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffairybow%2Ffernanda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffairybow%2Ffernanda/lists"}