{"id":13415624,"url":"https://github.com/feincms/feincms","last_synced_at":"2025-12-29T22:12:30.784Z","repository":{"id":489799,"uuid":"116021","full_name":"feincms/feincms","owner":"feincms","description":"A Django-based CMS with a focus on extensibility and concise code","archived":false,"fork":false,"pushed_at":"2025-12-22T19:18:25.000Z","size":6251,"stargazers_count":1056,"open_issues_count":27,"forks_count":235,"subscribers_count":37,"default_branch":"main","last_synced_at":"2025-12-26T06:54:29.920Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.feincms.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/feincms.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2009-01-27T20:34:16.000Z","updated_at":"2025-12-23T15:35:45.000Z","dependencies_parsed_at":"2024-10-26T12:05:59.650Z","dependency_job_id":"0016b9d1-d387-4f70-92d7-f2d0e4b8cd71","html_url":"https://github.com/feincms/feincms","commit_stats":{"total_commits":3454,"total_committers":139,"mean_commits":"24.848920863309353","dds":"0.40445859872611467","last_synced_commit":"3f254320e2c41945b01d29b029c1d296b3e74abe"},"previous_names":[],"tags_count":116,"template":false,"template_full_name":null,"purl":"pkg:github/feincms/feincms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feincms%2Ffeincms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feincms%2Ffeincms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feincms%2Ffeincms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feincms%2Ffeincms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feincms","download_url":"https://codeload.github.com/feincms/feincms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feincms%2Ffeincms/sbom","scorecard":{"id":395841,"data":{"date":"2025-08-11","repo":{"name":"github.com/feincms/feincms","commit":"0f473b7b8b93362459c79038ff3f04512a1544c1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/feincms/feincms/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/feincms/feincms/tests.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:32","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T18:58:28.895Z","repository_id":489799,"created_at":"2025-08-18T18:58:28.895Z","updated_at":"2025-08-18T18:58:28.895Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28121165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-29T02:00:07.021Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-07-30T21:00:50.863Z","updated_at":"2025-12-29T22:12:30.763Z","avatar_url":"https://github.com/feincms.png","language":"Python","readme":"**NOTE! If you're starting a new project you may want to take a look at feincms3 (https://feincms3.readthedocs.io/). FeinCMS is still maintained and works well, but feincms3 is where current development is happening.**\n\n========================================\nFeinCMS - An extensible Django-based CMS\n========================================\n\n.. image:: https://github.com/feincms/feincms/workflows/Tests/badge.svg\n    :target: https://github.com/feincms/feincms\n\nWhen was the last time, that a pre-built software package you wanted to\nuse got many things right, but in the end, you still needed to modify\nthe core parts of the code just because it wasn't (easily) possible to\ncustomize the way, a certain part of the system behaved?\n\nDjango came to rescue all of us, who were not happy with either doing\neverything on our own or customizing another software package until it\nwas impossible to update.\n\nThe biggest strength of a framework-like design is, that it tries not\nto have a too strong view of what the user should do. It should make some\nthings easy, but just GET OUT OF THE WAY most of the time.\n\nJust after discovering the benefits of a framework-like approach to\nsoftware design, we fall back into the rewrite everything all the time\nmindset and build a CMS which has very strong views how content should\nbe structured. One rich text area, a media library and some templates,\nand we have a simple CMS which will be good enough for many pages. But\nwhat if we want more? If we want to be able to add custom content? What\nif the user can't be trusted to resize images before uploading them?\nWhat if you'd like to add a gallery somewhere in between other content?\nWhat if the user should be able to administer not only the main content,\nbut also a sidebar, the footer?\n\nWith FeinCMS, this does not sound too good to be true anymore. And it's\nnot even complicated.\n\n\nFeinCMS is an extremely stupid content management system. It knows\nnothing about content -- just enough to create an admin interface for\nyour own page content types. It lets you reorder page content blocks\nusing a drag-drop interface, and you can add as many content blocks\nto a region (f.e. the sidebar, the main content region or something\nelse which I haven't thought of yet). It provides helper functions,\nwhich provide ordered lists of page content blocks. That's all.\n\n\nAdding your own content types is extremely easy. Do you like markdown\nthat much, that you'd rather die than using a rich text editor?\nThen add the following code to your project, and you can go on using the\nCMS without being forced to use whatever the developers deemed best:\n\n.. code-block:: python\n\n    from markdown2 import markdown\n    from feincms.module.page.models import Page\n    from django.db import models\n\n    class MarkdownPageContent(models.Model):\n        content = models.TextField()\n\n        class Meta:\n            abstract = True\n\n        def render(self, **kwargs):\n            return markdown(self.content)\n\n    Page.create_content_type(MarkdownPageContent)\n\n\nThat's it. Not even ten code lines for your own page content type.\n\n\n\nGetting started\n===============\n\nVisit these sites\n-----------------\n\n* FeinCMS Website: http://www.feincms.org/\n* Read the documentation: https://feincms-django-cms.readthedocs.io/\n* See the Google Groups page at http://groups.google.com/group/django-feincms\n* FeinCMS on github: https://github.com/feincms/feincms/\n\nRepository branches\n-------------------\n\nThe FeinCMS repository on github has several branches. Their purpose and\nrewinding policies are described below.\n\n* ``maint``: Maintenance branch for the second-newest version of FeinCMS.\n* ``main``: Stable version of FeinCMS.\n\n``main`` and ``maint`` are never rebased or rewound.\n\n* ``next``: Upcoming version of FeinCMS. This branch is rarely rebased\n  if ever, but this might happen. A note will be sent to the official\n  mailing list whenever ``next`` has been rebased.\n* ``pu`` or feature branches are used for short-lived projects. These\n  branches aren't guaranteed to stay around and are not meant to be\n  deployed into production environments.\n","funding_links":[],"categories":["Third-Party Packages","Django","CMS","Python","Content Management Systems","CMS [🔝](#readme)"],"sub_categories":["Content Management Systems"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeincms%2Ffeincms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeincms%2Ffeincms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeincms%2Ffeincms/lists"}