├── _config.yml
├── .travis.yml
├── .gitignore
├── util
├── stats.cr
└── readme.cr
├── CONTRIBUTING.md
├── spec
└── readme_spec.cr
├── CODE_OF_CONDUCT.md
├── LICENSE.md
└── README.md
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-cayman
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: crystal
2 | crystal:
3 | - latest
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.deps/
2 | /libs/
3 | /.crystal/
4 |
5 |
6 | # Libraries don't need dependency lock
7 | # Dependencies will be locked in application that uses them
8 | /.deps.lock
9 |
--------------------------------------------------------------------------------
/util/stats.cr:
--------------------------------------------------------------------------------
1 | require "uri"
2 | require "./readme"
3 |
4 | Readme
5 | .new
6 | .refs(/t/)
7 | .map { |ref| URI.parse(ref).path.as(String?).try &.split(/\//).try &.[1] }
8 | .compact
9 | .reject(&.blank?)
10 | .map(&.downcase)
11 | .group_by(&.itself)
12 | .to_a
13 | .sort_by { |_, entries| -1 * entries.size }
14 | .each_with_index do |heros, i|
15 | puts "#{i + 1}. #{heros.first} (#{heros.last.size} entries)"
16 | end
17 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution Guidelines
2 |
3 | Please ensure your pull request adheres to the following guidelines:
4 |
5 | - Search previous suggestions before making a new one, as yours may be a duplicate.
6 | - The group type should be a public group.
7 | - The group member should be at least 100 members.
8 | - Suggested packages should be tested and documented.
9 | - Use the following format: `[NAME](LINK)`
10 | - Use alphabetical order
11 | - New group names or improvements to the existing group name are welcome.
12 | - End all descriptions with a full stop/period.
13 | - Check your spelling and grammar.
14 | - Make sure your text editor is set to remove trailing whitespace.
15 |
16 | Thank you for your suggestions!
17 |
--------------------------------------------------------------------------------
/util/readme.cr:
--------------------------------------------------------------------------------
1 | require "xml"
2 | require "markdown"
3 |
4 | class Readme
5 | getter html : XML::Node
6 | getter path : String
7 |
8 | def initialize(@path : String = "./README.md")
9 | @html = to_html File.read(@path)
10 | end
11 |
12 | def find(xpath)
13 | @html.xpath(xpath)
14 | end
15 |
16 | def awesomeness
17 | find("//ul/li/a").as XML::NodeSet
18 | end
19 |
20 | def refs(selects = nil)
21 | set = find("//ul/li/a/@href").as XML::NodeSet
22 | refs = set.map { |node| node.text.as String }
23 | refs.select! { |x| x =~ selects } if selects
24 | refs
25 | end
26 |
27 | def groups
28 | set = find("//ul[li]").as XML::NodeSet
29 | set.map do |node|
30 | n = XML.parse(node.to_s).xpath("/ul/li/a[1]/text()").as XML::NodeSet
31 | n.map { |el| el.text.as String }
32 | end
33 | end
34 |
35 | private def to_html(markdown)
36 | XML.parse_html %[
37 |
38 | #{Markdown.to_html(markdown)}
39 |
40 | ]
41 | end
42 | end
43 |
--------------------------------------------------------------------------------
/spec/readme_spec.cr:
--------------------------------------------------------------------------------
1 | # thanks veelenga
2 | require "spec"
3 | require "uri"
4 | require "../util/readme"
5 |
6 | readme = Readme.new
7 |
8 | describe "List All Programming Telegram Group" do
9 | it "has references to awesomeness" do
10 | readme.refs(/t/).empty?.should be_false
11 | end
12 |
13 | it "has telegram references t" do
14 | readme.refs(/t/).each do |ref|
15 | uri = URI.parse(ref)
16 | uri.scheme.should eq "https"
17 | uri.host.should eq "t.me"
18 | uri.path.should_not be nil
19 | end
20 | end
21 |
22 | it "does not have duplicates" do
23 | prev = nil
24 | readme.refs(/t/).map do |ref|
25 | uri = URI.parse(ref)
26 | host = uri.host.as String
27 | path = uri.path.as String?
28 | "#{host.downcase}#{path.try &.downcase}"
29 | end.sort.each do |ref|
30 | ref.should_not eq prev
31 | prev = ref
32 | end
33 | end
34 |
35 | it "has alphabetical case insensitive order" do
36 | readme.groups.each do |group|
37 | sorted = group.sort { |x, y| x.downcase <=> y.downcase }
38 | group.each_with_index do |awesome, i|
39 | awesome.should eq sorted[i]
40 | end
41 | end
42 | end
43 |
44 | context "Document" do
45 | it "does not have trailing spaces" do
46 | File.read_lines(readme.path).each_with_index do |line, line_number|
47 | (line =~ /[ \t]+$/ && line_number + 1).should eq nil
48 | end
49 | end
50 | end
51 | end
52 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, religion, or sexual identity
10 | and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the
26 | overall community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or
31 | advances of any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email
35 | address, without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement.
63 | All complaints will be reviewed and investigated promptly and fairly.
64 |
65 | All community leaders are obligated to respect the privacy and security of the
66 | reporter of any incident.
67 |
68 | ## Enforcement Guidelines
69 |
70 | Community leaders will follow these Community Impact Guidelines in determining
71 | the consequences for any action they deem in violation of this Code of Conduct:
72 |
73 | ### 1. Correction
74 |
75 | **Community Impact**: Use of inappropriate language or other behavior deemed
76 | unprofessional or unwelcome in the community.
77 |
78 | **Consequence**: A private, written warning from community leaders, providing
79 | clarity around the nature of the violation and an explanation of why the
80 | behavior was inappropriate. A public apology may be requested.
81 |
82 | ### 2. Warning
83 |
84 | **Community Impact**: A violation through a single incident or series
85 | of actions.
86 |
87 | **Consequence**: A warning with consequences for continued behavior. No
88 | interaction with the people involved, including unsolicited interaction with
89 | those enforcing the Code of Conduct, for a specified period of time. This
90 | includes avoiding interactions in community spaces as well as external channels
91 | like social media. Violating these terms may lead to a temporary or
92 | permanent ban.
93 |
94 | ### 3. Temporary Ban
95 |
96 | **Community Impact**: A serious violation of community standards, including
97 | sustained inappropriate behavior.
98 |
99 | **Consequence**: A temporary ban from any sort of interaction or public
100 | communication with the community for a specified period of time. No public or
101 | private interaction with the people involved, including unsolicited interaction
102 | with those enforcing the Code of Conduct, is allowed during this period.
103 | Violating these terms may lead to a permanent ban.
104 |
105 | ### 4. Permanent Ban
106 |
107 | **Community Impact**: Demonstrating a pattern of violation of community
108 | standards, including sustained inappropriate behavior, harassment of an
109 | individual, or aggression toward or disparagement of classes of individuals.
110 |
111 | **Consequence**: A permanent ban from any sort of public interaction within
112 | the community.
113 |
114 | ## Attribution
115 |
116 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
117 | version 2.0, available at
118 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
119 |
120 | Community Impact Guidelines were inspired by [Mozilla's code of conduct
121 | enforcement ladder](https://github.com/mozilla/diversity).
122 |
123 | [homepage]: https://www.contributor-covenant.org
124 |
125 | For answers to common questions about this code of conduct, see the FAQ at
126 | https://www.contributor-covenant.org/faq. Translations are available at
127 | https://www.contributor-covenant.org/translations.
128 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Awesome Indonesia Telegram Groups
2 |
3 | A list of awesome Indonesian groups related to a programming language on Telegram.
4 |
5 |
6 |
7 |
8 | ## List
9 |
10 |
11 | - [Blockchain](#blockchain)
12 | - [Cloud Computing Services](#cloud-computing-services)
13 | - [Cloud Infrastructure](#cloud-infrastructure)
14 | - [Data Playground](#data-playground)
15 | - [Database](#database)
16 | - [Design](#design)
17 | - [Development](#development)
18 | - [DevOps](#devops)
19 | - [Firebase](#firebase)
20 | - [FreeBSD](#freebsd)
21 | - [Game Development](#game-development)
22 | - [Internet of Things (IoT)](#internet-of-things-iot)
23 | - [iOS](#ios)
24 | - [Jokes](#jokes)
25 | - [Linux](#linux)
26 | - [Lowongan Kerja](#lowongan-kerja)
27 | - [macOS](#macos)
28 | - [Microservice](#microservice)
29 | - [Mikrotik](#mikrotik)
30 | - [Office](#office)
31 | - [Open Source](#open-source)
32 | - [Programming Language](#programming-language)
33 | - [Quantum](#quantum)
34 | - [Science](#science)
35 | - [Security](#security)
36 | - [Software Quality Assurance (SQA)](#software-quality-assurance-sqa)
37 | - [Startup](#startup)
38 | - [Text Editor](#text-editor)
39 | - [Tentang Telegram](#tentang-telegram)
40 | - [Tips](#tips)
41 | - [Windows](#windows)
42 |
43 |
44 | [back to the 🔝](#list)
45 |
46 |
47 |
48 |
49 | ### Blockchain
50 |
51 |
52 | - [Friends with Blockchain](https://t.me/friendswithblockchain)
53 | - [Hyperledger (Enterprise) Blockchain Indonesia](https://t.me/hl_id)
54 | - [Nusantara Chain (Nuchain)](https://t.me/nusantarachain)
55 | - [Official Stacks Chapter Indonesia](https://t.me/stacksindonesia)
56 |
57 |
58 | [back to the 🔝](#list)
59 |
60 |
61 |
62 |
63 | ### Cloud Computing Services
64 |
65 |
66 | - [#JuaraGCP](https://t.me/JuaraGCP)
67 | - [AWS Analytics User Group Indonesia](https://t.me/AWSDataUserGroupID)
68 | - [AWS User Group Indonesia](https://t.me/AWSUserGroupID)
69 | - [Azure ID](https://t.me/azureindo)
70 | - [GCP User Group Indonesia](https://t.me/GCPUserID)
71 | - [Google Cloud Platform Indonesia](https://t.me/GCP_ID)
72 |
73 |
74 | [back to the 🔝](#list)
75 |
76 |
77 |
78 |
79 | ### Cloud Infrastructure
80 |
81 |
82 | - [OpenStack Indonesia](https://t.me/openstackindo)
83 | - [Ceph.id](https://t.me/cephid)
84 |
85 |
86 | [back to the 🔝](#list)
87 |
88 |
89 |
90 |
91 | ### Data Playground
92 |
93 |
94 | - [Artificial Intelligence Indonesia](https://t.me/ArtificialIntelligence_Indonesia)
95 | - [Business Intelligence Indonesia](https://t.me/businessintelligenceID)
96 | - [Data Engineering Indonesia](https://t.me/dataengineeringid)
97 | - [Data Scientist Indonesia](https://t.me/datascienceindonesia)
98 | - [Indonesia AI Forum](https://t.me/IAIForum)
99 | - [Machine Learning ID](https://t.me/machinelearningid)
100 | - [Natural Language ID](https://t.me/nlp_lounge)
101 | - [PyTorch Indonesia](https://t.me/pytorchid)
102 | - [Scrape ID](https://t.me/ScrapeID)
103 | - [Tableau Professionals](https://t.me/TableauProfessionals)
104 | - [TensorFlow Indonesia](https://t.me/tensorflowid)
105 |
106 |
107 | [back to the 🔝](#list)
108 |
109 |
110 |
111 |
112 | ### Database
113 |
114 |
115 | - **Microsoft SQL Server**
116 |
117 | - [SQL Server Indonesia](https://t.me/sqlserverid)
118 |
119 | - **MongoDB**
120 |
121 | - [MongoDB Indonesia](https://t.me/MongoDB_ID)
122 | - [MongoDB User Group](https://t.me/mongo_db)
123 |
124 | - **MySQL**
125 |
126 | - [MySQL & MariaDB Indonesia](https://t.me/mysqlid)
127 |
128 | - **PostgreSQL**
129 | - [PostgreSQL Indonesia](https://t.me/postgresql_id)
130 |
131 |
132 | [back to the 🔝](#list)
133 |
134 |
135 |
136 |
137 | ### Design
138 |
139 |
140 | - [GimpScape ID](https://t.me/gimpscape)
141 | - [Photoshop Community ID](https://t.me/photoshopcommunity_id)
142 | - [Sinau Desain](https://t.me/SinauDesain)
143 | - [Belajar Desain Grafis](https://t.me/belajarngedesain)
144 | - [UI/UX Indonesia](https://t.me/UiuxIndo)
145 | - [Uplabs Indonesia](https://t.me/uplabsindonesia)
146 | - [UXiD Lombok](https://t.me/uxidlombok)
147 |
148 |
149 | [back to the 🔝](#list)
150 |
151 |
152 |
153 |
154 | ### Development
155 |
156 |
157 | - [BandungDev](https://t.me/bandungdevcom)
158 | - [Belajar Coding Bareng](https://t.me/BelajarCoding)
159 | - [Belajar Ngoding](https://t.me/belajarngodingbareng)
160 | - [Belajar GNU R Indonesia](https://t.me/GNURIndonesia)
161 | - [Belajar Golang MariaDB](https://t.me/BelajarGolangMariaDB)
162 | - [Belajar HTML](https://t.me/belajarhtmlcss)
163 | - [Bogor Developers](https://t.me/BogorDev)
164 | - [Borneo Koding](https://t.me/borneokoding)
165 | - [Bot Telegram API](https://t.me/TgBotID)
166 | - [Otodidak Pemrograman](https://t.me/otodidak_ngoding) (Channel)
167 | - [CirebonDev](https://t.me/crbdev)
168 | - [codingfess](https://t.me/codingfess)
169 | - [[c]oretan Script](https://t.me/cScript)
170 | - [Femalegeek](https://t.me/femalegeek)
171 | - [Free Kelas Github](https://t.me/freekelasgithub)
172 | - [Frontend Developer Indonesia](https://t.me/FrontEndID)
173 | - [Gresik Dev](https://t.me/gresikdev)
174 | - [IAM Indonesia](https://t.me/IAMIndonesia)
175 | - [IDStack](https://t.me/idstack)
176 | - [Infotech Programmer](https://t.me/infotechprogrammer) (Channel)
177 | - [IT Nusantara](https://t.me/ITNusantara)
178 | - [JemberDev](https://t.me/DjemberDev)
179 | - [Kabayan Coding](https://t.me/kabayan_coding)
180 | - [Kelas Mobile Malang](https://t.me/KelasMobileMalang)
181 | - [Komunitas Backend Developer](https://t.me/BackEndID)
182 | - [Komunitas Belajar Koding](https://t.me/komunitasbk)
183 | - [Komunitas RPA Indonesia](https://t.me/KomunitasRPAIndonesia)
184 | - [Kongkow IT Medan](https://t.me/kongkowITMedan)
185 | - [Kongkow IT Pekanbaru](https://t.me/kongkowITpekanbaru)
186 | - [Kotakode](https://t.me/kotakodebetachat)
187 | - [Kulkul.tech Community - Meetup and Dev Community](https://t.me/kulkultech)
188 | - [Odoo - OpenERP Indonesia](https://t.me/odooindonesia)
189 | - [Pasuruan Dev](https://t.me/pasuruandev)
190 | - [Programmer Semarang Raya](https://t.me/programersemarangraya)
191 | - [RantauDev](https://t.me/rantaudev)
192 | - [Santren Koding](https://t.me/santrenkoding)
193 | - [SARCCOM Universe](https://t.me/sarccomuniverse)
194 | - [Sidoarjo Dev](https://t.me/sidoarjodev)
195 | - [SinauDev - Sinau Development](https://t.me/sinaudev)
196 | - [Software Engineer Indonesia](https://t.me/soft_eng_id)
197 | - [SparkAR Indonesia](https://t.me/sparkarindonesia)
198 | - [Surabaya Dev](https://t.me/surabayadev)
199 | - [LamonganDev](https://t.me/lamongandev)
200 | - [Taman Kode-Kode](https://t.me/tamankodekode)
201 | - [Tech in Asia Dev Community](https://t.me/TIAdevcommunity)
202 | - [Teknologi Umum](https://t.me/teknologi_umum_v2)
203 | - [WordPress](https://t.me/idwordpress)
204 | - [SMKDEV Community](https://t.me/smk_dev)
205 |
206 |
207 | [back to the 🔝](#list)
208 |
209 |
210 |
211 |
212 | ### DevOps
213 |
214 |
215 | - [Ansible Indonesia](https://t.me/ansibleid)
216 | - [Cloud Computing Indonesia](https://t.me/cloudcomputingindonesia)
217 | - [Docker Indonesia](https://t.me/dockeridn)
218 | - [IDDevOps](https://t.me/IDDevOps)
219 | - [Kubernetes & Cloud Native Indonesia](https://t.me/kubernetesindonesia)
220 | - [OKD Indonesia](https://t.me/okdindonesia)
221 | - [DevOps Jogja](https://t.me/devopsjogja)
222 |
223 |
224 | [back to the 🔝](#list)
225 |
226 |
227 |
228 |
229 | ### Firebase
230 |
231 |
232 | - [Firebase Indonesia](https://t.me/firebaseindonesia)
233 |
234 |
235 | [back to the 🔝](#list)
236 |
237 |
238 |
239 |
240 | ### FreeBSD
241 |
242 |
243 | - [Laskar Setan Merah - Sharing All About FreeBSD](https://t.me/setanmerahID)
244 |
245 |
246 | [back to the 🔝](#list)
247 |
248 |
249 |
250 |
251 | ### Game Development
252 |
253 |
254 | - [GAMERANG - Game Developer Semarang](https://t.me/gamerang)
255 | - [Indonesian GDevelop](https://t.me/GDevelopID)
256 | - [Komunitas Godot Indonesia](https://t.me/godot_indonesia)
257 | - [Lombok Games Developers (LGD)](https://t.me/lombokgamedev)
258 |
259 |
260 | [back to the 🔝](#list)
261 |
262 |
263 |
264 |
265 | ### Internet of Things (IoT)
266 |
267 |
268 | - [KelasRobot.com](https://t.me/kelasrobotgrup)
269 | - [Arduino Indonesian Community (GAK ADA ADMIN, LEBIH BANYAK SPAM!)](https://t.me/ArduinoIndonesianCommunity)
270 | - [arduinoindonesia.id](https://t.me/edukasielektronika)
271 | - [Raspberry PI Indonesia](https://t.me/raspberrypi_id)
272 |
273 |
274 | [back to the 🔝](#list)
275 |
276 |
277 |
278 |
279 | ### iOS
280 |
281 |
282 | - [iKaskus](https://t.me/ikaskus)
283 | - [iNitial E](http://t.me/initialestore)
284 | - [libimobiledevice](http://t.me/libimobiledevice)
285 |
286 |
287 | [back to the 🔝](#list)
288 |
289 |
290 |
291 |
292 | ### Jokes
293 |
294 |
295 | - [Linux memes](https://t.me/linux_memes) (Channel)
296 | - [Programmer Jokes](https://t.me/programmerjokes) (Channel)
297 |
298 |
299 | [back to the 🔝](#list)
300 |
301 |
302 |
303 |
304 | ### Linux
305 |
306 |
307 | - [Arch Linux Indonesia](https://t.me/ArchLinuxID)
308 | - [Artix Linux Indonesia](https://t.me/artixlinux_id)
309 | - [Belajar GNU/Linux Indonesia](https://t.me/GNULinuxIndonesia)
310 | - [Belajar Linux](https://t.me/belajarlinuxbareng)
311 | - [BlankOn Linux](https://t.me/BlankOnLinux)
312 | - [CentOS.ID](https://t.me/centosID)
313 | - [Debian Indonesia](https://t.me/Debianid)
314 | - [Deepin Linux Indonesia](https://t.me/deepin_indonesia)
315 | - [Dotfiles Indonesia](https://t.me/dotfiles_id)
316 | - [Elementary OS Indonesia](https://t.me/elementaryID)
317 | - [Fedora Indonesia](https://t.me/FedoraID)
318 | - [GNOME Indonesia](https://t.me/gnomeid)
319 | - [GNU/Weeb](https://t.me/GNUWeeb)
320 | - [Kali Linux Indonesia](https://t.me/KaliLinuxID)
321 | - [KDE Indonesia](https://t.me/kdeid)
322 | - [Komunitas GNU/Linux Malang](https://t.me/linuxmalang)
323 | - [Komunitas Linux Jember](https://t.me/linuxjember)
324 | - [Linux From Scratch ID](https://t.me/lfsid)
325 | - [LangitKetujuh ID](https://t.me/langitketujuh_id)
326 | - [Linux Mint Indonesia](https://t.me/mint_id)
327 | - [Linux Community ID](https://t.me/LinuxGroupID)
328 | - [Manjaro Indonesia](https://t.me/manjaroID)
329 | - [NixOS Indonesia](https://t.me/nixosid)
330 | - [openSUSE Indonesia](https://t.me/openSUSE_ID)
331 | - [Paguyuban Linux Solo](https://t.me/linuxsolo)
332 | - [ParrotSec Indonesia](https://t.me/parrotsecurityindonesia)
333 | - [Red Hat Enterprise Linux ID](https://t.me/rhel_id)
334 | - [Ubuntu Indonesia](https://t.me/ubuntu_indo)
335 | - [Void Linux Indonesia](https://t.me/voidlinux_id)
336 |
337 |
338 | [back to the 🔝](#list)
339 |
340 |
341 |
342 |
343 | ### Lowongan Kerja
344 |
345 |
346 | - [Freelance Project IT](https://t.me/freelance_01)
347 | - [Freelancer - Indonesia](https://t.me/freelancerID)
348 | - [Kotakode Jobs](https://t.me/kotakodejobs) (Channel)
349 | - [LOKER DEVELOPER/PROGRAMMER](https://t.me/LokerDeveloper) (Channel)
350 | - [Loker Jakarta](https://t.me/loker_jakarta)
351 | - [Lowongan Kerja IT](https://t.me/LowonganKerjaIT) (Channel)
352 | - [Rails Indonesia Loker](https://t.me/RailsID_LOKER) (Channel)
353 | - [Ruby Indonesia Loker](https://t.me/RubyID_LOKER) (Channel)
354 |
355 |
356 | [back to the 🔝](#list)
357 |
358 |
359 |
360 |
361 | ### macOS
362 |
363 |
364 | - [macOS Indonesia](https://t.me/macOSID)
365 |
366 |
367 | [back to the 🔝](#list)
368 |
369 |
370 |
371 |
372 | ### Microservice
373 |
374 |
375 | - [Microservice Architecture](https://t.me/msarchitecture)
376 | - [Microservice Indonesia](https://t.me/microservices_id) (Not Active)
377 |
378 |
379 | [back to the 🔝](#list)
380 |
381 |
382 |
383 |
384 | ### Mikrotik
385 |
386 |
387 | - [Mikrotik Indonesia](https://t.me/officialmikrotik)
388 | - [Gatcha.org](https://t.me/trick_ngirit)
389 |
390 |
391 | [back to the 🔝](#list)
392 |
393 |
394 |
395 |
396 | ### Office
397 |
398 |
399 | - [Excel Indonesia](https://t.me/excelid)
400 | - [Libreoffice Indonesia](https://t.me/BelajarLibreOfficeIndonesia)
401 |
402 |
403 | [back to the 🔝](#list)
404 |
405 |
406 |
407 |
408 | ### Open Source
409 |
410 |
411 | - [OSINT Indonesia](https://t.me/OSINT_Indonesia)
412 | - [DOSCOM - Dinus Open Source Community](https://t.me/doscomedia)
413 |
414 |
415 | [back to the 🔝](#list)
416 |
417 |
418 |
419 |
420 | ### Programming Language
421 |
422 |
423 | - **.NET**
424 |
425 | - [.NET Indonesia](https://t.me/dotnetusergroup)
426 | - [One .NET Indonesia](https://t.me/dotnetcore_id)
427 | - [Xamarin Indonesia](https://t.me/xamarinindonesia)
428 |
429 | - **Android**
430 |
431 | - [ADB (Android Developer Bandung)](https://t.me/androidDevBdg)
432 | - [ADN (Android Developer Nasional)](https://t.me/androiddevelopernasional)
433 | - [Android - Teknorial.com](https://t.me/teknorialcom)
434 | - [Android Developer Lombok](https://t.me/android_lombok)
435 | - [AndroidDev Surabaya](https://t.me/androiddevsurabaya)
436 | - [Jetpack Compose Indonesia](https://t.me/jcomposeindonesia)
437 | - [SANDEC (Semarang Android Developer Center)](https://t.me/AndroidSemarang)
438 | - [Source Code Android](https://t.me/source_code_android)
439 | - [Yogyakarta Android Community](https://t.me/YACgroup)
440 |
441 | - **Agile**
442 |
443 | - [Agile Circle Indonesia](https://t.me/agilecirclesid)
444 | - [Agile Indonesia](https://t.me/agileindonesia)
445 |
446 | - **Assembly**
447 |
448 | - [Assembly Programming](https://t.me/AssemblyID)
449 |
450 | - **Bash**
451 | - [Bash.ID](https://t.me/bashidorg)
452 |
453 | - **C/C++**
454 |
455 | - [C/C++ Indonesia](https://t.me/CCpp_Indonesia)
456 | - [Indonesia C/C++ Warriors](https://t.me/idcplc)
457 |
458 | - **Crystal**
459 |
460 | - [Crystal User Group Indonesia](https://t.me/CrystalID)
461 |
462 | - **Dart**
463 |
464 | - [dart.web](https://t.me/dart_web)
465 | - [Flutter Indonesia](https://t.me/flutter_id)
466 | - [Flutter Jakarta](https://t.me/flutter_jkt)
467 | - [Flutter Makassar](https://t.me/fluttermakassar)
468 | - [Lombok Flutter](https://t.me/lombokflutter)
469 |
470 | - **Elixir**
471 |
472 | - [Elixir ID](https://t.me/elixir_id)
473 |
474 | - **Golang**
475 |
476 | - [Golang Indonesia](https://t.me/gophers_id)
477 | - [Golang Jogja](https://t.me/golangjogja)
478 | - [Golang Surabaya](https://t.me/golangSurabaya)
479 |
480 | - **Rust**
481 | - [Rust indonesia](https://t.me/rustacean_id)
482 |
483 | - **Haskell**
484 |
485 | - [Haskell ID](#) (not find group)
486 |
487 | - **Java**
488 |
489 | - [JVM User Group](https://t.me/JVMIndonesia)
490 |
491 | - **JavaScript**
492 |
493 | - [Adonis.js Indonesia](https://t.me/adonisid)
494 | - [Angular Indonesia](https://t.me/AngularID)
495 | - [Deno Indonesia](https://t.me/deno_id)
496 | - [Electron Desktop User Group](No Groups)
497 | - [Ionic Indonesia](https://t.me/indonesiaionic)
498 | - [Javascript Indonesia](https://t.me/js_id)
499 | - [Jogja Js](https://t.me/jogjajs)
500 | - [Lombok Js](https://t.me/lombokjs)
501 | - [NativeScript ID](https://t.me/nativescript_id)
502 | - [Nestjs Indonesia](https://t.me/nestjs_indonesia)
503 | - [Next.js Indonesia](https://t.me/nextjs_id)
504 | - [Nodejs Indonesia](https://t.me/nodejsid)
505 | - [Bun Indonesia](https://t.me/bun_id)
506 | - [React Indonesia](https://t.me/react_idn)
507 | - [React Native Indonesia](https://t.me/reactnativeindo)
508 | - [SurabayaJs](https://t.me/surabayajs)
509 | - [Svelte Indonesia](https://t.me/svelte_id)
510 | - [Vue.js Indonesia](https://t.me/vuejsindonesia)
511 |
512 | - **Kotlin**
513 |
514 | - [Kotlin Cirebon](https://t.me/kotlin_crb)
515 | - [Kotlin Indonesia](https://t.me/KotlinIndonesia)
516 |
517 | - **Pascal - Delphi**
518 |
519 | - [Delphi Indonesia](https://t.me/delphiindonesia)
520 | - [Pascal Indonesia](https://t.me/PascalID)
521 |
522 | - **PHP**
523 |
524 | - [CodeIgniter Indonesia](https://t.me/codeigniterindonesia)
525 | - [Laravel Indonesia](https://t.me/laravelindonesia)
526 | - [PHP Indonesia for Business](https://t.me/PHPIDforBusiness)
527 | - [PHP Indonesia for Student](https://t.me/PHPIDforStudent)
528 | - [PHP Indonesia Jogloraya](https://t.me/phpjogloraya)
529 | - [Symfony Framework Indonesia](https://t.me/symfonyid)
530 | - [Telegram Bot PHP - Indonesia](https://t.me/botphp)
531 | - [Yii Framework Indonesia](https://t.me/YiiFrameworkIndonesia)
532 |
533 | - **Python**
534 |
535 | - [Bandung.py](https://t.me/bandung_py)
536 | - [Django Indonesia](https://t.me/DjangoID)
537 | - [FastAPI Indonesia](https://t.me/fastapiid)
538 | - [Flask ID](https://t.me/flaskid)
539 | - [Lombok.py](https://t.me/lombok_py)
540 | - [mks.py](https://t.me/mkspy)
541 | - [Python ID Jogja](https://t.me/pyjogja)
542 | - [Python Indonesia](https://t.me/pythonID)
543 | - [Python](https://t.me/Python)
544 | - [Pythonlearnerr](https://t.me/pythonlearnerr)
545 | - [Python / Django Learners](https://t.me/python_learners_group)
546 | - [Surabaya.py](https://t.me/surabayapy)
547 |
548 | - **Ruby**
549 |
550 | - [Rails Indonesia](https://t.me/RailsID)
551 | - [Ruby Indonesia](https://t.me/ruby_id)
552 |
553 | - **Swift**
554 |
555 | - [Swift Indonesia](https://t.me/swiftID)
556 |
557 | - **Typescript**
558 | - [Typescript Indonesia](https://t.me/TypescriptIndonesia)
559 |
560 | - **SAP ABAP Indonesia**
561 | - [SAP-ABAP Indonesia](https://t.me/sapabapindonesia)
562 |
563 |
564 | [back to the 🔝](#list)
565 |
566 |
567 |
568 |
569 | ### Quantum
570 |
571 |
572 | - [Indonesian Quantum Computing Enthusiasts](https://t.me/idqce)
573 | - [Indonesian QML](https://t.me/IDQML)
574 |
575 |
576 | [back to the 🔝](#list)
577 |
578 |
579 |
580 |
581 | ### Science
582 |
583 |
584 | - **Geographic Information System and Remote Sensing**
585 | - [GIS Indonesia](https://t.me/gis_id)
586 | - [Leaflet.js Indonesia](https://t.me/leafletid)
587 | - [QGIS Indonesia](https://t.me/qgisindonesia)
588 |
589 |
590 | [back to the 🔝](#list)
591 |
592 |
593 |
594 |
595 | ### Security
596 |
597 |
598 | - [ForensicaID](https://t.me/ForensicaID)
599 | - [IT SECURITY INDONESIA](https://t.me/itsecurityindonesia)
600 | - [Linuxhackingid](https://t.me/linuxhackingid)
601 | - [Orang Siber Indonesia](https://t.me/orangsiber)
602 | - [Reversing.ID](https://t.me/reversingid)
603 | - [Security.ID](https://t.me/CyberSecurity_ID)
604 | - [HackTheBox Indonesia](https://t.me/hacktheboxindo)
605 |
606 |
607 | [back to the 🔝](#list)
608 |
609 |
610 |
611 |
612 | ### Software Quality Assurance (SQA)
613 |
614 |
615 | - [Indonesian Software Quality Assurance](https://t.me/sqa_id)
616 | - [ISQA Chapter Jogja](https://t.me/joinchat/HxMrghPz5z3hr0eiRBcXOQ)
617 | - [Malang Quality Assurance](https://t.me/qamalang)
618 |
619 |
620 | [back to the 🔝](#list)
621 |
622 |
623 |
624 |
625 | ### Startup
626 |
627 |
628 | - [Cafe Startup 140315](https://t.me/cafestartup)
629 | - [Startup Life Indonesia](https://t.me/StartupLifeIndonesia)
630 | - [Startup Weekend Indonesia](https://t.me/startupweekendindonesia)
631 |
632 |
633 | [back to the 🔝](#list)
634 |
635 |
636 |
637 |
638 | ### Text Editor
639 |
640 |
641 | - [Emacs Indonesia](https://t.me/emacsID)
642 | - [Vim Indonesia](https://t.me/VimID)
643 |
644 |
645 | [back to the 🔝](#list)
646 |
647 |
648 |
649 |
650 | ### Tentang Telegram
651 |
652 |
653 | - [Telegram beta](https://t.me/tgbeta)
654 |
655 |
656 | [back to the 🔝](#list)
657 |
658 |
659 |
660 |
661 | ### Tips
662 |
663 |
664 | - [The Art of Programming](https://t.me/theprogrammingart)
665 |
666 |
667 | [back to the 🔝](#list)
668 |
669 |
670 |
671 |
672 | ### Windows
673 |
674 |
675 | - [PegelWindows](https://t.me/pegelwindows)
676 | - [TeknoLugu](https://t.me/TeknoLugu) (Formerly Windows Community ID)
677 | - [WINDOWS SERVER INDONESIA](https://t.me/WindServID)
678 |
679 |
680 | [back to the 🔝](#list)
681 |
682 | ## Contributing
683 |
684 | Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
685 |
686 | ## Listed by _Hendi Santika_
687 |
688 | - Email: hendisantika@gmail.com
689 | - Telegram: [@hendisantika34](https://t.me/hendisantika34)
690 |
691 | ## License
692 |
693 | [](https://creativecommons.org/publicdomain/zero/1.0/)
694 |
695 | To the extent possible under law, [Hendi Santika](https://github.com/hendisantika) has waived all copyright and related or neighbouring rights to this work.
696 |
--------------------------------------------------------------------------------