{"id":15449530,"url":"https://github.com/soatok/cupcake","last_synced_at":"2025-04-19T21:40:16.435Z","repository":{"id":43023382,"uuid":"379147339","full_name":"soatok/cupcake","owner":"soatok","description":"PHP library for simply secure HTML forms (generation and processing). Secure-by-default.","archived":false,"fork":false,"pushed_at":"2022-07-06T06:55:48.000Z","size":804,"stargazers_count":31,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T08:34:27.429Z","etag":null,"topics":["forms","furry","furry-fandom","html5","php8","secure-by-default","secure-by-design"],"latest_commit_sha":null,"homepage":"https://soatok.blog","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soatok.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-22T05:03:18.000Z","updated_at":"2024-11-28T16:24:32.000Z","dependencies_parsed_at":"2022-07-18T09:09:00.695Z","dependency_job_id":null,"html_url":"https://github.com/soatok/cupcake","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soatok%2Fcupcake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soatok%2Fcupcake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soatok%2Fcupcake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soatok%2Fcupcake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soatok","download_url":"https://codeload.github.com/soatok/cupcake/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249812121,"owners_count":21328930,"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":["forms","furry","furry-fandom","html5","php8","secure-by-default","secure-by-design"],"created_at":"2024-10-01T21:00:51.748Z","updated_at":"2025-04-19T21:40:16.412Z","avatar_url":"https://github.com/soatok.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![Cupcake](docs/headers/cupcake.png)\n\n[![Build Status](https://github.com/soatok/cupcake/actions/workflows/ci.yml/badge.svg)](https://github.com/soatok/cupcake/actions)\n[![Latest Stable Version](https://poser.pugx.org/soatok/cupcake/v/stable)](https://packagist.org/packages/soatok/cupcake)\n[![Latest Unstable Version](https://poser.pugx.org/soatok/cupcake/v/unstable)](https://packagist.org/packages/soatok/cupcake)\n[![License](https://poser.pugx.org/soatok/cupcake/license)](https://packagist.org/packages/soatok/cupcake)\n\nSweet and fast form processing for PHP projects.\n\n**Requires PHP 8 or newer.**\n\n## Installation\n\nUse Composer to install this library:\n\n```terminal\ncomposer require soatok/cupcake\n```\n\nTo learn how to use Cupcake, please see the **[Documentation](docs)** online.\n\n## Questions and Answers\n\n### Why \"Cupcake\"?\n\nWordplay! The German word for a cupcake mold is förmchen.\n\n### What Does Cupcake Do That Other Form Libraries Don't?\n\nThree things: Security, simplicity, and ease-of-use. \n\nFirst, I designed Cupcake with [security as its first principle](docs#-tenets-of-cupcake).\n\nThis doesn't *just* mean the bare basics like preventing cross-site scripting\nvulnerabilities and cross-site request forgery. Secure form processing means ensuring that [input validation isn't only performed client-side](https://soatok.blog/2020/04/27/why-server-side-input-validation-matters/).\nTo that end, Cupcake uses [Ionizer](https://github.com/paragonie/ionizer) for input filtering.\n\nSecond, Cupcake's interface is deliberately simple and intuitive. Piece o' cake!\n\nFinally, Cupcake is easy to integrate with other platforms and frameworks,\nby design. Cupcake has minimal dependencies and is unlikely to conflict with\nyour existing framework dependencies or explode the code size to an unreasonable\nlevel.\n\n(In the future, I will also provide shims for popular frameworks and ORMs.)\n\n### How Do I Use Cupcake?\n\nSee the [Documentation](docs) directory.\n\nIf the documentation isn't helpful, please\n[file an issue on Github](https://github.com/soatok/cupcake/issues/new).\n\n### What's With the Cupcake Mascot?\n\nTheir name is **[Neophyte](docs/Neophyte)**! (They/them pronouns.)\n\nNeophyte is a character owned by [Soatok](https://soatok.blog)\n(the creator of Cupcake) to represent people who read his blog or\nuse his open source software.\n\n### Is Cupcake a Furry Project?\n\n![**Yes!**](docs/Soatok/Soatok-Yes.png)\n\nThe author, Soatok, is a furry. [The mascot](docs/Neophyte)\nis a protogen (a fictitious species created within the furry fandom,\nfor the furry fandom to enjoy).\n\nYou can learn more about the Furry Fandom [here](https://soatok.blog/2020/04/23/never-underestimate-the-furry-fandom/).\n\n### Is Cupcake API-Stable?\n\nNo, not until version 1.0.0 has been tagged.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoatok%2Fcupcake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoatok%2Fcupcake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoatok%2Fcupcake/lists"}