diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index d9c0f6da..00000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-name: Bug report
-about: Use this template for reporting issues
-title: ""
-labels: bug
-assignees: ''
-
----
-
-### π Bug Report for zkSync Docs
-
-#### π Description
-
-Provide a clear and concise description of the bug.
-
-#### π Reproduction Steps
-
-1. Step 1
-2. Step 2
-3. ...
-
-#### π€ Expected Behavior
-
-Describe what you expected to happen.
-
-#### π― Current Behavior
-
-Describe what actually happened.
-
-#### π₯οΈ Environment
-
-- **Node version**: [e.g., v18.17.0]
-- **Operating System & Version**: [e.g., Ubuntu 20.04]
-- **Other relevant environment details**:
-
-#### π Additional Context
-
-Add any other context about the problem here. If applicable, add screenshots to help explain.
-
-#### π Log Output
-
-```
-Paste any relevant log output here.
-```
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 00000000..0622477c
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,56 @@
+name: Bug Report
+description: File a bug report.
+title: "[Bug]: "
+labels: ["bug", "triage"]
+assignees:
+ - @zkSync-Community-Hub/zksync-devrel
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this bug report! Please fill out as much as you can, the more details the better we can help to resolve the issue.
+ - type: input
+ id: guide
+ attributes:
+ label: Guide you're having trouble with
+ description: If this feature is related to a specific guide, please provide the link to the guide.
+ placeholder: https://code.community.com/guides/the-guide
+ value: ""
+ - type: textarea
+ id: what-happened
+ attributes:
+ label: What happened?
+ description: Also tell us, what did you expect to happen?
+ placeholder: Tell us what you see!
+ value: ""
+ validations:
+ required: true
+ - type: textarea
+ id: expected
+ attributes:
+ label: What did you expect to happen?
+ placeholder: Tell us what you expected!
+ value: ""
+ - type: textarea
+ id: environment
+ attributes:
+ label: Environment
+ description: Please share any relevant information about your environment.
+ placeholder: |
+ - Operating System: [e.g. macOS]
+ - Node version: [e.g., v18.17.0]
+ - Other relevant environment details:
+ - type: textarea
+ id: logs
+ attributes:
+ label: Relevant log output
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: shell
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/zkSync-Community-Hub/community-code/blob/main/CODE_OF_CONDUCT.md).
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 61fd4b71..e094d73a 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -2,4 +2,4 @@ blank_issues_enabled: true
contact_links:
- name: zksync-developers Discussion
url: https://github.com/zkSync-Community-Hub/zkync-developers/discussions
- about: Please provide feedback, and ask questions here.
+ about: If you have any questions or need help beyond this project, please visit our Discussions page for zksync developers.
diff --git a/.github/ISSUE_TEMPLATE/feature_report.md b/.github/ISSUE_TEMPLATE/feature_report.md
deleted file mode 100644
index 4e30b239..00000000
--- a/.github/ISSUE_TEMPLATE/feature_report.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-name: Feature request
-about: Use this template for requesting features
-title: ""
-labels: feat
-assignees: ''
-
----
-
-### π Feature Request
-
-#### π Description
-
-Provide a clear and concise description of the feature you'd like to see.
-
-#### π€ Rationale
-
-Explain why this feature is important and how it benefits the project.
-
-#### πΌοΈ Mockups/Examples
-
-If applicable, provide mockups or examples of how the feature would work.
-
-#### π Additional Context
-
-Add any other context or information about the feature request here.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 00000000..6d3e9aad
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,33 @@
+name: Feature Request
+description: Is there a feature you would like to see in Code Community? Let us know!
+title: "[Feature]: "
+labels: ["feature", "triage"]
+assignees:
+ - @zkSync-Community-Hub/zksync-devrel
+body:
+ - type: markdown
+ attributes:
+ value: |
+ We're constantly adding new features to the Code Community. If you have a feature you'd like to see, please fill out this form.
+ - type: textarea
+ id: description
+ attributes:
+ label: Description
+ description: Please provide a brief description of the feature you would like to see.
+ placeholder: Tell us what you would like to see!
+ value: ""
+ - type: textarea
+ id: rationale
+ attributes:
+ label: Rationale
+ description: Why do you think this feature would be beneficial to the community?
+ placeholder: Tell us why you think this feature would be beneficial!
+ value: ""
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/zkSync-Community-Hub/community-code/blob/main/CODE_OF_CONDUCT.md).
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/new_guide_request.yml b/.github/ISSUE_TEMPLATE/new_guide_request.yml
new file mode 100644
index 00000000..4378f0ed
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/new_guide_request.yml
@@ -0,0 +1,26 @@
+name: New Guide Request
+description: Use this form to request a guide you would like to see in Code Community.
+title: "[Guide]: "
+labels: ["guide", "triage"]
+assignees:
+ - @zkSync-Community-Hub/zksync-devrel
+body:
+ - type: markdown
+ attributes:
+ value: |
+ We're constantly adding new guides to the Code Community. If you have a guide you'd like to see, please fill out this form.
+ - type: textarea
+ id: description
+ attributes:
+ label: Description
+ description: Please provide a brief description of the guide you would like to see.
+ placeholder: Tell us what you would like to see!
+ value: ""
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/zkSync-Community-Hub/community-code/blob/main/CODE_OF_CONDUCT.md).
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 9edb5bc9..977618ec 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,17 +1,24 @@
-# What :computer:
-* First thing updated with this PR
-* Second thing updated with this PR
-* Third thing updated with this PR
+
+- Read the [Contributing Guide](https://github.com/zkSync-Community-Hub/community-code/blob/main/CONTRIBUTING.md).
+- Understand our [Code of Conduct](https://github.com/zkSync-Community-Hub/community-code/blob/main/CODE_OF_CONDUCT.md)
-
+-->
+
+# Description
+
+
+
+## Linked Issues
+
+
+
+
+## Additional context
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..b0ab6ead
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,87 @@
+# Code of Conduct
+
+Version: 1.1
+
+Apache 2.0 license, derived from the Apache Foundation Code of Conduct.
+Also, CC BY-SA 3.0 derived from the Mozilla Community Participation Guidelines.
+
+Our goal is to cultivate a safe, friendly, and inclusive space that benefits all participants in the zkSync ecosystem.
+This Code of Conduct outlines our shared values and expectations to help ensure that the community remains a positive and enriching environment for everyone.
+
+## When and how to use this Code of Conduct
+
+This is your guide for engaging as a participant in the zkSync ecosystem.
+It applies to all physical and digital spaces related to zkSync.
+
+## Expected behaviors
+
+**Be ethical**:
+We endeavor to enrich the zkSync ecosystem, while not infringing on the rights and wellbeing of others.
+We also endeavor to enrich ourselves without causing harm to the zkSync community.
+We do not encourage tax evasion, promoting information leaks, speculating on tokens or token prices, or otherwise breaking the law.
+
+**Be kind and respectful**:
+Treat everyone with kindness, empathy, and respect.
+We all come from different backgrounds, perspectives and experiences,
+so let's celebrate our differences and foster a culture of openness and understanding.
+We may have strong feelings about other layer 1 and layer 2 blockchains,
+but that is no reason to disparage, defame, or slander any competitor to zkSync or what other chains are doing.
+Feel free to compare metrics and features, but keep to the facts and be respectful of all the builders in web3
+trying to advance freedom through blockchain technology!
+
+**Share and learn**:
+Our community is a space for sharing knowledge, experiences, and ideas.
+Positively contribute to discussions, offer helpful feedback,
+be willing to educate others on your work and remain open to learning from others.
+
+**Give credit**:
+When sharing content or ideas that aren't your own, ensure you give proper credit to the original creator.
+Plagiarism and intellectual property infringement are strictly prohibited.
+
+**Respect privacy**:
+Always seek consent before sharing personal information about yourself or others.
+Respecting each other's privacy is vital to building trust within our community.
+
+**Be inquisitive and embrace continuous improvement**:
+We strive to improve from each experience, and are open to constructive criticism.
+We encourage questions, and redirect them to the appropriate channel if we do not have the answer.
+
+**Mind your language**:
+Communication is key.
+Use clear and considerate language in your interactions.
+We aim to create a welcoming environment for users of all ages, so please avoid excessive profanity or explicit content.
+Remember that zkSync community members are a diverse bunch.
+English is our primary working language, but to help others where English is not their first language,
+be succinct and avoid acronyms where possible.
+
+**Stay on topic**:
+While we encourage friendly conversations, please ensure your discussions remain relevant to the community's purpose.
+To keep our space focused and valuable, off-topic or irrelevant content may be redirected or removed.
+Specific topics that are not appropriate include offering to buy or sell any cryptocurrency or engage in price speculation.
+
+**No hate speech or harassment**:
+Let's maintain a constructive and uplifting atmosphere in all interactions.
+We have a zero-tolerance policy for any form of hate speech, bullying, harassment, or discrimination.
+This includes, but is not limited to:
+
+- Violent threats or language directed against another person.
+- Sexist, racist, or otherwise discriminatory jokes and language.
+- Posting sexually explicit or violent material.
+- Posting (or threatening to post) other people's personally identifying information ("doxing").
+- Sharing private content without explicit consent, such as messages sent privately or non-publicly.
+- Personal insults.
+- Unwelcome sexual attention.
+- Excessive or unnecessary profanity.
+- Repeated harassment of others. In general, if someone asks you to stop, then stop.
+- Advocating for, or encouraging, any of the above behavior.
+
+**Have fun and connect**:
+Finally, remember that ZK Squad and the zkSync community is a place to connect, learn, and enjoy.
+Participate in a manner that encourages positive interactions and enhances the experiences of all.
+
+## Managing violations
+
+If you come across inappropriate content or behavior, please report it without delay.
+By working together, we can maintain a positive and safe environment.
+
+If you are the subject of, or witness to, any violations of this Code of Conduct, please contact us at community@zksync.io.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..ab1af2f3
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,101 @@
+# How to Contribute Guides to Community Code
+
+We are always glad for new contributions from community members to spread the zkSync knowledge!
+If you are interested in adding a new guide to the Community Code, this is the section for you.
+If you are looking to contribute project changes like fixing bugs, please checkout the [Readme](README.md).
+
+## Fork the project
+
+Make a [fork of the project](https://github.com/zkSync-Community-Hub/community-code/fork) and create your branches from the default `main` branch.
+
+If your PR is still a work in progress, consider putting it into a [Draft status](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft).
+Once your PR is ready for review, switch it back to an active PR request
+and any reviewers already attached will automatically receive a notification.
+
+## π Writing a new guide
+
+To add your own guide to the project, we recommend you fork and download the project from GitHub and setting it up on your local machine.
+Follow the [Readme](README.md) instructions to get dependencies installed and run the project.
+
+It is highly recommended to review some of the documentation of the tools we use, especially Nuxt Content and Nuxt UI.
+Our [page structure](https://content.nuxt.com/usage/content-directory) follows Nuxt Content
+and you can use components available from [Nuxt UI](https://ui.nuxt.com/components/accordion) including [Nuxt UI Pro](https://ui.nuxt.com/pro/components/aside).
+
+### Create a new section for your guide
+
+We have a template tutorial folder you can start from!
+You can copy the `/content/tutorials/_new-tutorial-template` to make setting up a new tutorial easy.
+
+Your new guide should have its own folder under `/content/tutorials`. The minimum files your directory should have are
+the `_dir.yml` and a `10.index.md`.
+
+#### _dir.yml
+
+The `_dir.yml` file contains the metadata that describes your guide and provides the summary at the beginning of your guide.
+We recommend grabbing a copy from another guide and starting from that template.
+
+Ensure that at a minimum you have a title, authors, tags, summary, and description defined.
+Filling out the rest of the metadata is highly recommended to improve searchability and help readers understand what they can learn from your guide.
+
+#### 10.index.md
+
+The `10.index.md` file is the starting point of your guide.
+It may be all you need but you are free to add more pages!
+By adding a number at the beginning of your markdown file, it will help automatically order your pages for navigation.
+The two digit number is simply a syntax choice to help make situations like re-ordering easier.
+
+Frontmatter is required on all markdown pages. At minimum you need a title and description.
+This is displayed at the beginning header for the page.
+If you do not want to display a description, simply leave the `description` blank.
+
+### Using UI components
+
+Writing in markdown should provide you most of the basic text editing features you'll need.
+However if you want to add additional UI for visual aid, you can use Nuxt UI.
+The syntax is slightly different with declaring Vue components in markdown.
+
+For example, if you use a [Nuxt UI Button component](https://ui.nuxt.com/components/button), the html syntax would be the following:
+
+```html
+
+ I am a button
+
+```
+
+In markdown, the syntax changes to the following:
+
+```md
+::u-button{ color="primary" variant="solid" }
+ I am a button
+::
+```
+
+You can refer to the Nuxt Content documentation on [Vue Components](https://content.nuxt.com/usage/markdown#vue-components)
+to learn further how to customize and use vue components in markdown.
+We have additional custom components aside from Nuxt UI that you can use.
+You can discover these in our [zkSync Docs Contribution Styleguide](https://docs.zksync.io/build/contributing-to-documentation/documentation-styleguide#markdown-and-vue).
+
+## π Writing styleguide
+
+Our community is diverse, made up of people from all over the globe.
+This means our readers may be non-native English speakers.
+To help everyone learn and grow with our Community Code,
+we adhere to industry best practices to ensure inclusivity.
+
+Check out and read through our [zkSync Docs Contribution Styleguide](https://docs.zksync.io/build/contributing-to-documentation/documentation-styleguide#writing-style)
+to learn how to best write your guide for our community.
+
+## π₯ Submitting your guide
+
+Please [submit a PR of your branch to main on GitHub](https://github.com/zkSync-Community-Hub/community-code/compare).
+Provide a clear description of what you're contributing.
+
+## π Commit conventions
+
+This project uses [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standards.
+For changes that are **code related**, use the `fix:`, `feat:`, or `chore:` tags in your commits.
+For typo or document related changes, please use the `docs:` tag.
+
+```sh
+git commit -m "docs: fix typo in guide"
+```
diff --git a/LICENSE-APACHE b/LICENSE-APACHE
new file mode 100644
index 00000000..f49a4e16
--- /dev/null
+++ b/LICENSE-APACHE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/LICENSE-MIT b/LICENSE-MIT
new file mode 100644
index 00000000..195fb6cc
--- /dev/null
+++ b/LICENSE-MIT
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Matter Labs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 0ecd9849..09a51c68 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,32 @@
# Community Code
+[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE-MIT)
+[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-orange)](LICENSE-APACHE)
+[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://www.contributor-covenant.org/)
+[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-orange)](CONTRIBUTING.md)
+[![X (formerly Twitter) Follow](https://badgen.net/badge/twitter/@zksyncDevs/1DA1F2?icon&label)](https://x.com/zksyncDevs)
+
Welcome to the zkSync Community Code repository. This project serves as the community hub for zkSync, providing comprehensive
documentation for developers written by developers.
Whether you're a beginner looking to get started with zkSync or an experienced developer
seeking advanced guides, you'll find the resources you need here.
-## Tools used
+## π Quick Start
+
+1. **Install Bun:** Follow the [installation instructions](https://bun.sh/docs/installation).
+2. **Install Dependencies:**
+
+ ```sh
+ bun install
+ ```
+
+3. **Run Locally:** Start the development server at `http://localhost:3000`.
+
+ ```sh
+ bun run dev
+ ```
+
+## π οΈ Built With
- [Vue](https://vuejs.org/)
- [Nuxt](https://nuxt.com/)
@@ -14,36 +35,27 @@ seeking advanced guides, you'll find the resources you need here.
- [Tailwind](https://tailwindcss.com/)
- [Bun](https://bun.sh/)
-## Local Setup
+## Local Preview π
-This project uses bun to run, follow the [bun installation instructions](https://bun.sh/docs/installation). Once bun is
-installed, run the following command to install all project dependencies:
+To locally preview the production build, first run `bun run build` to build the project, then run the following:
```shell
-bun install
+bun run preview
```
-## Development
+## Lint & Formatting β¨
-To run the project locally at `http://localhost:3000`
-
-```shell
-bun run dev -o
-```
+This project provides lint commands to check the project.
-## Local Preview
+### Run CI Checks βοΈ
-To locally preview the production build, first run `bun run generate` to build the project, then run the following:
+This command will run all of the lint commands together.
```shell
-bun run preview
+bun run ci:check
```
-## Lint & Formatting
-
-This project provides lint commands to check the project.
-
-### Markdown Linting
+### Markdown Linting π
Markdown files are found in the `/content` directory. The following lint commands will run within that directory:
@@ -52,11 +64,36 @@ bun run lint:spelling
bun run lint:markdown
```
-### Linting
+### Linting π§Ή
-The following commands are available to run linting on the project:
+The following commands are available to run code linting on the project:
```shell
bun run lint:prettier
bun run lint:eslint
```
+
+## π Conventional Commits
+
+We follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification.
+Make sure your commit messages adhere to these guidelines.
+
+For documentation changes, we recommend using the "docs:" tag. For example:
+
+```sh
+git commit -m "docs: fix spelling error"
+```
+
+## π€ Contributions
+
+We welcome contributions from the community!
+Check out our [Contributing guide](CONTRIBUTING.md) to learn how to add your own guides to Code Community.
+
+## πͺ Join the community
+
+If you haven't already, join our community!
+We have [GitHub Discussions](https://github.com/zkSync-Community-Hub/zksync-developers/discussions)
+for developers to ask questions and share their work.
+We also have a [Discord server](https://join.zksync.dev/) for real-time conversations with the team and community.
+
+Be sure to [follow us on Twitter](https://x.com/zkSyncDevs) to keep up to date with announcements from the zkSync dev team.
diff --git a/SUPPORT.md b/SUPPORT.md
new file mode 100644
index 00000000..387fb24c
--- /dev/null
+++ b/SUPPORT.md
@@ -0,0 +1,28 @@
+# Support
+
+Are you in need of help getting started or having trouble with a project?
+We have multiple channels available for you to request help.
+
+## Where to get help
+
+If you are in need of help with submitting your guide to the Community Code,
+first read through the [Contributing doc](CONTRIBUTING.md) to see if it may help answer some questions.
+If the answer is not found, submit an [issue in GitHub](https://github.com/zkSync-Community-Hub/community-code/issues).
+
+We also have resources available on the [zksync-developers Discussions](https://github.com/zkSync-Community-Hub/zksync-developers/discussions)
+where you can submit a question. We also have a [Discord community](https://join.zksync.dev/)
+that may help with any troubleshooting, check out the `π₯βdev-general` channel.
+
+If you have questions related to any of our zkSync tools,
+we recommend that you submit an Issue related to that project.
+You can find the list of our open-source repositories in the
+[Contribution Track](https://docs.zksync.io/build/resources/contribution-track)
+on our zkSync Docs site.
+
+## πͺ² Submit a bug report for a guide
+
+Are you going through a guide in our Code Community and came across a bug?
+Perhaps the versions are out of date or a particular tool is broken when trying to run a project.
+Submit an [issue in GitHub](https://github.com/zkSync-Community-Hub/community-code/issues) using our Issue form
+or submit it directly from the Guide you're working from! In the left sidebar on the site, there is a link at the bottom
+for "Submit an issue" which will set up a pre-filled Issue form for the particular guide you're on.
diff --git a/app.config.ts b/app.config.ts
index 79fdd7ab..d270a453 100644
--- a/app.config.ts
+++ b/app.config.ts
@@ -1,6 +1,6 @@
export default defineAppConfig({
seo: {
- siteName: 'ZKsync Community Code',
+ siteName: 'zkSync Community Code',
},
header: {
links: [
@@ -13,11 +13,4 @@ export default defineAppConfig({
},
],
},
- toc: {
- bottom: {
- edit: 'https://github.com/zkSync-Community-Hub/community-code/edit/staging/content',
- feedback: 'https://github.com/zkSync-Community-Hub/community-code/issues/new',
- links: [],
- },
- },
});
diff --git a/content/tutorials/_new-tutorial-template/10.index.md b/content/tutorials/_new-tutorial-template/10.index.md
new file mode 100644
index 00000000..36f755bb
--- /dev/null
+++ b/content/tutorials/_new-tutorial-template/10.index.md
@@ -0,0 +1,151 @@
+---
+title: Header for the first page of the tutorial
+description: You can optionally add a small description here.
+---
+
+This tutorial shows you how to add a new tutorial to the Code Community project!
+
+## Prerequisites
+
+- [Fork this project on GitHub](https://github.com/zkSync-Community-Hub/community-code) and create a branch to track your work.
+- Make sure you have set up your project following the [README](https://github.com/zkSync-Community-Hub/community-code/blob/main/README.md).
+- Spend some time getting to know the available tools that are available.
+ - [Nuxt Content](https://content.nuxt.com/)
+ - [Nuxt UI & Nuxt UI Pro](https://ui.nuxt.com/)
+ - and more in our [CONTRIBUTING](https://github.com/zkSync-Community-Hub/community-code/blob/main/CONTRIBUTING.md)
+
+## Create a new tutorial
+
+This template tutorial is designed to help you get a quick start at setting up a new tutorial for Code Community.
+
+1. Make a copy of this folder and paste it into the `/content` directory.
+
+1. Rename the folder in dash-case format.
+ The actual name of the folder isn't too important to what's displayed on the website.
+
+1. Fill out the `_dir.yml` metadata for your tutorial.
+
+1. Update this `10.index.md` file with your tutorial!
+
+## Adding additional pages
+
+You are free to add more pages for your tutorial.
+To create a new page, create a new markdown file and prefix the name of your file with a two digit number.
+
+```txt
+20.second-page.md
+```
+
+The two-digit number is crucial for Nuxt to detect and manage the ordering of pages for navigation.
+
+## Markdown formatting
+
+This project uses markdown files for tutorials.
+You should not need anything more than the markdown syntax when writing your content.
+For more complicated UI, you should see if there are any Nuxt UI components available to use.
+
+Please avoid writing custom html and css in your tutorials.
+
+### UI components
+
+You can use Nuxt UI components in your markdown file!
+Component syntax however is a little different in markdown.
+Learn more in the Contributing page for
+[Using UI components](https://github.com/zkSync-Community-Hub/community-code/blob/main/CONTRIBUTING.md#using-ui-components).
+
+::callout{icon="i-heroicons-light-bulb"}
+Want to call something out? Use the callout component!
+::
+
+## Displaying code
+
+We have a variety of Nuxt UI components available for use though the most important one
+will likely the code component.
+
+The standard markdown syntax of the backtick will work for displaying formatted code.
+
+You can customize the display of the code block with a header using the following format:
+
+```ts [sample-file.ts]
+const foo = 'bar';
+```
+
+Code blocks can also have a tabbed view using the [Code Group](https://ui.nuxt.com/pro/prose/code-group) component.
+
+::code-group
+
+```bash [pnpm]
+pnpm add @package
+```
+
+```bash [yarn]
+yarn add @package
+```
+
+```bash [npm]
+npm install @package
+```
+
+::
+
+## Other UI samples
+
+**A simple field:**
+
+::field{name="name" type="string" required}
+The `description` can be set as prop or in the default slot with full **markdown** support.
+::
+
+---
+**Fields within a field group:**
+
+::field-group
+ ::field{name="getErrors (path?: string)" type="FormError[]"}
+ Retrieves form errors associated with a specific path. If no path is provided, returns all form errors.
+ ::
+ ::field{name="setErrors (errors: FormError[], path?: string)" type="void"}
+ Sets form errors for a given path. If no path is provided, overrides all errors.
+ ::
+ ::field{name="errors" type="Ref"}
+ A reference to the array containing validation errors. Use this to access or manipulate the error information.
+ ::
+::
+
+---
+**Collapsible content that can be used in part with a field:**
+
+::field{name="links" type="Link[]"}
+ ::collapsible
+ :field{name="label" type="string" required}
+ ::
+::
+
+---
+**Tabbed content:**
+
+::tabs
+ ::div
+ ---
+ label: Code
+ icon: i-heroicons-code-bracket-square
+ ---
+
+ ```md
+ ::callout
+ A callout example.
+ ::
+ ```
+
+ ::
+
+ ::div
+ ---
+ label: Preview
+ icon: i-heroicons-magnifying-glass-circle
+ ---
+
+ ::callout
+ A callout example.
+ ::
+ ::
+::
diff --git a/content/tutorials/_new-tutorial-template/_dir.yml b/content/tutorials/_new-tutorial-template/_dir.yml
new file mode 100644
index 00000000..34da1738
--- /dev/null
+++ b/content/tutorials/_new-tutorial-template/_dir.yml
@@ -0,0 +1,17 @@
+title: New tutorial example
+authors:
+ - name: Jane Doe
+ url: https://google.com
+ avatar: https://i.pravatar.cc/300
+github_repo: https://github.com
+tags:
+ - smart contracts
+summary: Provide a tweet-sized summary that describes the tutorial.
+description:
+ Provide a brief description of the tutorial. This description should be a few sentences long and should give the
+ reader an idea of what the tutorial is about.
+what_you_will_learn:
+ - How to write a tutorial
+updated: 2024-05-09
+tools:
+ - code-community
diff --git a/cspell-config/cspell-misc.txt b/cspell-config/cspell-misc.txt
index e7e1ff16..2646c5fc 100644
--- a/cspell-config/cspell-misc.txt
+++ b/cspell-config/cspell-misc.txt
@@ -1,3 +1,11 @@
+!NuxtContent
+!NuxtUI
+!tesnet
+.getu128
+.interm
+.uadd.
+.umin.
+// devs
Ankr
binop
blake2s
@@ -7,24 +15,29 @@ ccret
CHAINID
debian
decommit
+decommitment
+decommitments
decommits
decommitter
decommitting
decommittment
-decommitment
-decommitments
decommittments
deduplicator
demultiplex
Demuxer
-Dockerized
-dockerized
+devs
Diataxis
+dockerized
+Dockerized
+dutterbutter
+ecadd
+ecmul
ewasm
fontaine
-.getu128
+hexlify
incentivized
-.interm
+inclusivity
+insize
inttoptr
iszero
jemalloc
@@ -32,21 +45,20 @@ JUMPI
legendre
librocksdb
mload
-MontInvbEEA
montgomery
+MontInvbEEA
mstore
noalias
nocallback
nocapture
+nomicfoundation
noprofile
nosync
-Nuxt
nuxi
nuxt
+Nuxt
nuxtdotjs
nuxtjs
-!NuxtUI
-!NuxtContent
NVMe
NVME
OTLP
@@ -58,10 +70,11 @@ preds
prode
prodeh
prodh
-prodm
prodl
+prodm
psql
ptrtoint
+Rabby
recid.
REDC
rocksdb
@@ -73,31 +86,18 @@ secp
signv
sload
smod
-sstore
sqlx-cli
+sstore
syncvm
tlsv1
tokio
-.uadd.
-.umin.
-Vue
+viem
+Viem
vue
+Vue
+Zerion
zext
-zksolc
-zkvyper
ZKEVM
zkout
-nomicfoundation
-Viem
-viem
-Zerion
-Rabby
-!tesnet
-devs
-hexlify
-insize
-ecadd
-ecmul
-
-// devs
-dutterbutter
+zksolc
+zkvyper
diff --git a/pages/tutorials/[...slug].vue b/pages/tutorials/[...slug].vue
index e02f884b..f17d1754 100644
--- a/pages/tutorials/[...slug].vue
+++ b/pages/tutorials/[...slug].vue
@@ -76,7 +76,7 @@ const communityLinks = [
{
icon: 'i-heroicons-academic-cap-solid',
label: 'Contribute',
- to: 'https://github.com/zkSync-Community-Hub/community-code',
+ to: 'https://github.com/zkSync-Community-Hub/community-code/blob/main/CONTRIBUTING.md',
},
{
icon: 'i-heroicons-chat-bubble-oval-left-ellipsis-16-solid',
@@ -90,6 +90,12 @@ const communityLinks = [
to: 'https://github.com/zkSync-Community-Hub/zkync-developers/discussions',
target: '_blank',
},
+ {
+ icon: 'i-heroicons-bug-ant-solid',
+ label: 'Report a Bug',
+ to: `https://github.com/zkSync-Community-Hub/community-code/issues/new?template=bug_report&title=[BUG]: ${metadata.value.title}&guide=https://code.zksync.io${route.path}`,
+ target: '_blank',
+ },
];