{"id":13312231,"url":"https://github.com/cleverdevil/puny","last_synced_at":"2025-06-17T23:37:30.168Z","repository":{"id":145921925,"uuid":"126065312","full_name":"cleverdevil/puny","owner":"cleverdevil","description":"Pure-Python IndieWeb CMS","archived":false,"fork":false,"pushed_at":"2018-05-24T16:48:48.000Z","size":37,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-13T21:11:28.994Z","etag":null,"topics":["cms","indieweb","microformats2","micropub","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cleverdevil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-03-20T18:35:08.000Z","updated_at":"2023-08-05T10:51:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"71a8b022-8189-4382-8046-adc1a5640b5c","html_url":"https://github.com/cleverdevil/puny","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"fe2f03b825ef4f9d6afa561af409e55ddb70a8ce"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cleverdevil/puny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fpuny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fpuny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fpuny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fpuny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cleverdevil","download_url":"https://codeload.github.com/cleverdevil/puny/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fpuny/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260458715,"owners_count":23012499,"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","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":["cms","indieweb","microformats2","micropub","python"],"created_at":"2024-07-29T18:03:37.596Z","updated_at":"2025-06-17T23:37:25.155Z","avatar_url":"https://github.com/cleverdevil.png","language":"Python","readme":"Puny: Pure-Python IndieWeb CMS\n==============================\n\nPuny is a [Python](http://www.python.org)-based project for building websites\nfor the [IndieWeb](https://www.indieweb.org). Puny implements:\n\n* [Micropub](https://www.w3.org/TR/micropub/)\n* [Micropub Media Endpoint](https://www.w3.org/TR/micropub/#media-endpoint)\n* Content validation using [microformats2](https://github.com/cleverdevil/microformats2).\n\nTo use Puny, you'll need an [IndieAuth](https://indieweb.org/IndieAuth) server.\n[PunyAuth](https://github.com/cleverdevil/punyauth) is a good choice!\n\nPuny is very much in-progress at the moment, and was mostly written to help me\nbetter understand Micropub, IndieAuth, microformats, and other IndieWeb building\nblocks. I'd love it to eventually power my own (and many other) websites!\n\nImplementation Details\n----------------------\n\nPuny makes use of:\n\n* The [Pecan](http://www.pecanpy.org) Python web framework.\n* [Mako](http://www.makotemplates.org) for templating.\n* My [microformats2](https://github.com/cleverdevil/microformats2) library for\n  validation and post type discovery.\n* [Maya](https://github.com/kennethreitz/maya) for dealing with dates and times.\n* [awesome-slugify](https://pypi.python.org/pypi/awesome-slugify) for slug gen.\n* MySQL with JSON columns to store content.\n* Amazon S3 for media uploads.\n\nProject Status\n--------------\n\nPuny passes the vast majority of the [micropub.rocks](https://micropub.rocks)\ntest suite:\n\nhttps://micropub.rocks/implementation-reports/servers/184/KD5Xbb6xfr5XRZsqwIvE\n\nIt renders some (though, not all) content, and has a very minimal timeline view.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleverdevil%2Fpuny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcleverdevil%2Fpuny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleverdevil%2Fpuny/lists"}