From da25e38272d6b6544a01b241469c978f88dba878 Mon Sep 17 00:00:00 2001
From: Marvin Kweyu
Date: Tue, 14 Jul 2026 12:06:17 +0300
Subject: [PATCH 1/4] docs: include license
---
CLAUDE.md => .claude/CLAUDE.md | 0
LICENSE.md | 661 +++++++++++++++++++++++++++++++++
2 files changed, 661 insertions(+)
rename CLAUDE.md => .claude/CLAUDE.md (100%)
create mode 100644 LICENSE.md
diff --git a/CLAUDE.md b/.claude/CLAUDE.md
similarity index 100%
rename from CLAUDE.md
rename to .claude/CLAUDE.md
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..be3f7b2
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+.
From 427edab91162099760a0626470b81277ca8c298e Mon Sep 17 00:00:00 2001
From: Marvin Kweyu
Date: Tue, 14 Jul 2026 12:54:07 +0300
Subject: [PATCH 2/4] docs: update readme
---
.env.docker => .env.docker.example | 1 -
.gitignore | 2 +
CONTRIBUTING.md | 327 +++++++++++++++++++++++++++++
README.md | 86 +++++---
images/preview.png | Bin 0 -> 71066 bytes
5 files changed, 391 insertions(+), 25 deletions(-)
rename .env.docker => .env.docker.example (85%)
create mode 100644 CONTRIBUTING.md
create mode 100644 images/preview.png
diff --git a/.env.docker b/.env.docker.example
similarity index 85%
rename from .env.docker
rename to .env.docker.example
index 93d6396..61ae940 100644
--- a/.env.docker
+++ b/.env.docker.example
@@ -1,4 +1,3 @@
-# Local development defaults (safe to commit-free; used by docker-compose.local.yml)
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=foundry
diff --git a/.gitignore b/.gitignore
index 254c1d6..db9a120 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,3 +57,5 @@ vitest.config.*.timestamp*
docs
apps/api/src/generated
uploads
+.env
+.env.docker
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..4a63161
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,327 @@
+# Contributing to Foundry
+
+Thanks for considering a contribution. Foundry is built by Tillertech to
+solve a problem I hit myself running a consultancy, and it stays useful
+only because the people using it push it forward. This document covers
+what you need to know before opening an issue or a pull request - the
+license, the feature-line policy, and how contributions actually get
+reviewed.
+
+Read the sections that apply to what you're planning to do. If you're
+opening an issue, the "Reporting bugs and requesting features" section
+is enough. If you're opening a PR, read the license and CLA section
+first.
+
+---
+
+## License
+
+Foundry Community is licensed under **AGPL-3.0-or-later** (AGPLv3).
+
+The full license text is in [`LICENSE`](./LICENSE). The short version:
+
+- You can run Foundry for your own business, modify it, and deploy it on
+ your own infrastructure - without restriction, without notifying us,
+ without paying anything.
+- You can fork it, extend it, and distribute your modifications, as long
+ as those modifications are also licensed under AGPLv3.
+- If you modify Foundry and offer the modified version as a network
+ service to others (for example, hosting a modified Foundry as a SaaS),
+ AGPL requires you to publish your modifications under the same
+ license.
+- For internal use by your own business - even by a large team -
+ AGPL imposes no obligations you would notice in day-to-day operation.
+
+If you are unsure how AGPL applies to your situation, ask before
+building on it. We would rather answer a question up front than have a
+contributor discover the constraint later.
+
+Tillertech separately maintains proprietary code (`foundry-ee` and
+`foundry-cloud`) that is not part of this repository and is not covered
+by AGPLv3. That code is not accepted as a contribution to this project.
+This repository is Community only.
+
+---
+
+## What belongs in Community vs. Cloud
+
+This is the question that comes up most often before someone starts
+building, and it saves time to answer it up front.
+
+**The test.** If a feature is part of the client-to-cash lifecycle
+(Clients - Quotes - Projects - Invoices - Payments - Documents), it
+belongs in Community. No exceptions, no future re-litigation. If a
+feature is about administration, compliance, multi-party access, or
+operating at scale, it belongs in the commercial Cloud offering and
+should not be built in this repository.
+
+**Community owns:**
+
+- Clients, Quotes, Projects, Invoices, Payments, Expenses, Documents
+- Basic reporting and dashboards
+- Recurring invoicing and retainer billing
+- Time tracking against projects
+- Multi-currency invoicing with VAT/GST handling
+- Document branding on outbound documents (logo, name, colors, business
+ details)
+- Realtime in-app notifications
+- REST API - read/write access to your own data
+- Plugin architecture and extension hooks - third parties can build and
+ distribute plugins for Community
+- CSV/JSON import and export of all data
+- E-signature acceptance on quotes
+- Basic client-facing portal (view and download quotes and invoices via
+ tokenized links)
+- Online payment collection on invoices (Stripe, direct)
+
+**Cloud owns (not this repository):**
+
+- SSO (SAML/OIDC) and SCIM provisioning
+- RBAC beyond a basic owner/viewer split
+- Immutable audit log
+- Multi-workspace management
+- Advanced template designer (build layouts from scratch)
+- Full interactive client portal with quote acceptance workflow,
+ document exchange, and messaging
+- Automation engine - conditional multi-step workflow rules
+- Outbound webhooks and API keys for third-party integrations at scale
+- White-label (hide that Foundry is the vendor)
+- Approval workflows
+- Managed hosting, backups, monitoring
+- Priority support and SLA
+
+**The grey-area rule.** When a feature is not obviously one or the
+other: does it serve one person running their own business, or does it
+serve coordinating across a team, multiple parties, or a regulatory
+requirement? First case belongs in Community. Second case belongs in
+Cloud and should not be contributed here.
+
+**The standing promise.** The client-to-cash lifecycle stays free,
+unlimited, and actively developed in Community - permanently. A new
+lifecycle feature never triggers a "which tier does this go in"
+negotiation. Community does not get worse to sell Cloud.
+
+If you have a feature idea and are not sure which side it falls on,
+open a discussion issue before you start building. Getting it wrong
+after a week of work is the outcome we most want to help you avoid.
+
+---
+
+## Reporting bugs
+
+Before filing:
+
+- Search existing issues to check whether it has already been reported.
+- Confirm the bug is in the latest release; if you are running an older
+ version, upgrade first and see whether it reproduces.
+- If it involves a specific data condition, try to reproduce it from a
+ clean install.
+
+When you file, include:
+
+- Foundry version (`docker inspect` on the image tag is fine).
+- Deployment context - Docker Compose on a VPS, on-prem, air-gapped,
+ etc.
+- Postgres and Redis versions if you have customized them.
+- What you did, what you expected, what actually happened.
+- Relevant logs (`docker compose logs api`) with sensitive information
+ scrubbed.
+- If the bug is UI-related, a screenshot or a short screen recording.
+
+Do not include real client data or invoice contents in bug reports.
+Sanitized examples are always fine.
+
+---
+
+## Requesting features
+
+Feature requests are welcome. Two things to check first:
+
+1. Read the "What belongs in Community vs. Cloud" section above. If
+ what you are asking for is a Cloud feature (SSO, audit log, RBAC,
+ etc.), the answer is "not in this repository" - but tell us anyway,
+ because that is exactly the signal that helps decide when to build
+ a self-hosted Enterprise SKU.
+2. Search existing feature request issues. If one exists, add your use
+ case rather than opening a duplicate. Real use cases from real
+ businesses are what actually move a feature up the priority list.
+
+When requesting a feature, describe:
+
+- What you are trying to accomplish (the actual workflow, not the
+ feature name).
+- What you currently do instead, and where it breaks down.
+- Why the existing feature set does not solve it.
+
+Feature requests without a workflow context are hard to prioritize.
+"Add X because Y competitor has it" is not a use case; "I need to bill
+retainers across three currencies for a client that flips between
+project-based and hourly, and here is how I currently do it" is.
+
+---
+
+## Security disclosure
+
+If you find a security vulnerability, **do not open a public issue.**
+
+Email `hello@tillertech.io` with:
+
+- A description of the vulnerability.
+- Reproduction steps.
+- The affected version(s) if you can identify them.
+- Your name and how you would like to be credited (or "anonymous").
+
+We will acknowledge within 7 days. We do not currently offer a bug
+bounty program, but confirmed reports get credit in the release notes
+for the fix, and Tillertech reserves the right to send you something as
+a thank-you.
+
+Please give us reasonable time to ship a fix before disclosing
+publicly. If a fix is not shipping in a timeframe you consider
+reasonable, tell us that directly - we would rather negotiate a
+disclosure timeline than have you publish out of frustration.
+
+---
+
+## Development setup
+
+You will need:
+
+- Node.js 20 LTS or newer
+- pnpm 9 or newer
+- Docker and Docker Compose (for Postgres, Redis, and optional local S3)
+- A Postgres 15+ instance (Docker Compose brings one up locally)
+
+Setup:
+
+```bash
+git clone https://github.com/tillertech/foundry.git
+cd foundry
+pnpm install
+cp .env.example .env
+docker compose -f docker-compose.dev.yml up -d
+pnpm nx run api:migrate
+pnpm nx run-many -t serve
+```
+
+The client runs on `http://localhost:4200` and the API on
+`http://localhost:3000`.
+
+If any of those commands fail on a clean clone, that itself is a
+reportable bug - first-run experience matters more than most bugs, and
+we want to hear about it.
+
+---
+
+## Pull request workflow
+
+**Before you write code:**
+
+- For a bug fix under ~50 lines, just open the PR - no issue needed.
+- For anything larger, open an issue first and get a signal from a
+ maintainer that the direction is welcome. This is not a formality;
+ it saves you from writing a week of code that gets closed for a
+ reason that could have been discussed in ten minutes.
+- If you are adding a dependency, mention it in the issue. New
+ dependencies are a real cost and often not the right call.
+- If your change touches the schema, mention it in the issue. Schema
+ changes are additive-only in Foundry and go through more careful
+ review.
+
+**When you open the PR:**
+
+- Reference the issue it addresses (`Closes #123` or `Refs #123`).
+- Keep the PR focused - one logical change per PR. Two unrelated fixes
+ should be two PRs.
+- Include a short "what changed and why" in the description. Not a
+ novel; a paragraph.
+- If it is a UI change, include a screenshot before/after.
+- Make sure the CI passes locally before you push
+ (`pnpm nx run-many -t lint test`).
+
+**What we look for in review:**
+
+- Does it match the module boundary rules? Core code cannot import
+ from `libs/ee/*`. The lint rule enforces this, but reviewers will
+ also check.
+- Does it follow existing patterns in the codebase? Consistency is
+ worth more than local elegance.
+- Is it tested? Not every change needs a test, but changes to the
+ quote/invoice/payment logic almost always do.
+- Is the commit history clean? Squash noisy WIP commits before we
+ merge.
+
+**Review timelines:** aim to acknowledge within a week, first
+substantive review within two weeks. If a PR sits without a response
+for longer than that, ping the issue - it has slipped through, not
+been ignored.
+
+---
+
+## Code style
+
+- TypeScript strict mode is on. Do not relax it locally.
+- ESLint and Prettier configs live at the root and are what we run in
+ CI. Do not fight them.
+- Use existing Nx generators for new libs, controllers, and modules -
+ do not hand-create the folders. This keeps tags and boundary rules
+ correct from the start.
+- Prefer smaller, well-named files over large ones. Public exports
+ from each lib go through the `index.ts` barrel.
+
+---
+
+## What we do not accept
+
+Being direct so nobody wastes time:
+
+- Contributions to Cloud/Enterprise features (see the boundary section
+ above). Even good code for an SSO integration or an audit log is out
+ of scope for this repository. If you want to build one of these,
+ reach out and we can discuss whether a self-hosted Enterprise SKU is
+ something we should be working on together.
+- Contributions that reshape the schema breakingly. All schema changes
+ are additive. Migrations remove tables only through a deprecation
+ cycle that takes at least one major release.
+- Contributions that add telemetry or "phone home" behavior of any
+ kind. Foundry runs offline by design; this is not negotiable.
+- Contributions that introduce dependencies without a real
+ justification. Every added dependency is future maintenance for
+ everyone.
+- Drive-by rewrites of significant subsystems without a prior
+ discussion issue. Not because we don't want the improvement, but
+ because a rewrite that lands without prior conversation almost
+ always misses context that a five-minute discussion would surface.
+
+---
+
+## A note on tone
+
+Public issues, discussions, and PR reviews all follow the same rule:
+be direct, be specific, be kind. Direct honesty is more useful than
+padded feedback; specifics are more useful than gestures; kindness is
+what makes the first two land.
+
+Push back on decisions you think are wrong - including decisions I
+made. If you think a feature is in the wrong tier, if you think the
+architecture is off, if you think the roadmap is missing something
+important, say so. This project gets better when someone catches a
+contradiction I missed.
+
+That goes in both directions. If a maintainer pushes back on your PR,
+it is about the code, not you. If it feels otherwise, tell us -
+directly - and we will fix it.
+
+---
+
+## Questions
+
+- General discussion: GitHub Discussions on this repo.
+- Bug reports: GitHub Issues on this repo.
+- Anything about Cloud, licensing, or commercial arrangements:
+ `hello@tillertech.io`.
+
+Thanks for reading this far. If you are about to open your first issue
+or PR, welcome - Foundry is more useful because you are here.
+
+- Marvin Kweyu, Tillertech
diff --git a/README.md b/README.md
index 7cd17f4..187554f 100644
--- a/README.md
+++ b/README.md
@@ -1,37 +1,52 @@
-# Foundry
-> The modern workspace for independent consultants
+
+
+ The modern workspace for independent consultants
+
+
+
+
## Project Overview
-This repository demonstrates a production-ready Angular monorepo with:
+Foundry is the solution to consultancy management in the service industry.
-- **2 Applications**
+### Local Development
- - `client` - Angular e-commerce application with product listings and detail views
- - `api` - Backend API with Docker support serving product data
+#### Docker(Recommended)
-- **6 Libraries**
+**Basic requirements**
+- Docker
+- Docker Compose
- - `@org/feature-products` - Product listing feature (Angular)
- - `@org/feature-product-detail` - Product detail feature (Angular)
- - `@org/data` - Data access layer for client features
- - `@org/shared-ui` - Shared UI components
- - `@org/models` - Shared data models
- - `@org/products` - API product service library
-- **E2E Testing**
- - `client-e2e` - Playwright tests for the client application
+```sh
+cp .env.docker.example .env.docker
+docker compose -f docker-compose.local.yml up
+```
+
+If you have [just](https://just.systems/man/en/) installed:
+
+```sh
+cp .env.docker.example .env.docker
+just develop
+```
+
+
+The complete set of commands can be found with:
+
+```sh
+just
+```
+
+
+#### Manual(Docs WIP)
+
+The manual setup process is (WIP)
-## Quick Start
```bash
-# Clone the repository
-git clone
-cd
-# Install dependencies
-# (Note: You may need --legacy-peer-deps)
-npm install
+npm install --legacy-peer-deps
# Serve the Angular client application (this will simultaneously serve the API backend)
npx nx run client:serve
@@ -58,10 +73,33 @@ npx nx run-many -t lint test build e2e --parallel=3
# Visualize the project graph
npx nx graph
```
+----
+
+
+
+The client runs on `http://localhost:4200` and the API on `http://localhost:3000`.
+
+This repository demonstrates a production-ready Angular monorepo with:
+
+
+## Notes on Architecture(WIP)
+- **2 Applications**
+
+ - `client` - Angular e-commerce application with product listings and detail views
+ - `api` - Backend API with Docker support serving product data
+
+- **6 Libraries**
+
+ - `@org/feature-products` - Product listing feature (Angular)
+ - `@org/feature-product-detail` - Product detail feature (Angular)
+ - `@org/data` - Data access layer for client features
+ - `@org/shared-ui` - Shared UI components
+ - `@org/models` - Shared data models
+ - `@org/products` - API product service library
-## Featured Nx Capabilities
+- **E2E Testing**
+ - `client-e2e` - Playwright tests for the client application
-This repository showcases several powerful Nx features:
### 1. Module Boundaries
diff --git a/images/preview.png b/images/preview.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d37bb4a1e7e1650a0cac29b29aee7d645b49fa4
GIT binary patch
literal 71066
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 |