<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AibnuHibban</title>
    <description>The latest articles on DEV Community by AibnuHibban (@aibnuhibban).</description>
    <link>https://dev.to/aibnuhibban</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F443094%2Fc85d03eb-a626-4191-a4aa-12747c198988.jpg</url>
      <title>DEV Community: AibnuHibban</title>
      <link>https://dev.to/aibnuhibban</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aibnuhibban"/>
    <language>en</language>
    <item>
      <title>🚀 Bytedocs is Now Live for Laravel, Rust, and Go!</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Thu, 02 Oct 2025 10:01:49 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/bytedocs-is-now-live-for-laravel-rust-and-go-c8b</link>
      <guid>https://dev.to/aibnuhibban/bytedocs-is-now-live-for-laravel-rust-and-go-c8b</guid>
      <description>&lt;p&gt;A few weeks ago I introduced &lt;strong&gt;&lt;a href="https://bytedocs.dev" rel="noopener noreferrer"&gt;Bytedocs&lt;/a&gt;&lt;/strong&gt;, a modern alternative to Swagger. in my &lt;a href="https://dev.to/aibnuhibban/bytedocs-a-modern-alternative-to-swagger-312d"&gt;first article&lt;/a&gt; where I shared the vision behind it. 🚀&lt;/p&gt;

&lt;p&gt;Today, I’m super excited to share the next step:&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;Bytedocs now works in Laravel, Rust, and Golang!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes—multi-language support is no longer just a vision, it’s already happening.&lt;/p&gt;




&lt;h3&gt;
  
  
  🌍 Multi-Language Support in Action
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Laravel&lt;/strong&gt; → &lt;a href="https://packagist.org/packages/idnexacloud/laravel-bytedocs" rel="noopener noreferrer"&gt;bytedocs-laravel&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rust&lt;/strong&gt; → &lt;a href="https://crates.io/crates/bytedocs-rs/1.0.1" rel="noopener noreferrer"&gt;bytedocs-rust&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go&lt;/strong&gt; → &lt;a href="https://pkg.go.dev/github.com/idnexacloud/bytedocs-go" rel="noopener noreferrer"&gt;bytedocs-go&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So whether you’re building APIs in PHP, shipping microservices in Go, or exploring Rust for blazing-fast backends—you can now plug in Bytedocs and get clean, modern API documentation instantly.&lt;/p&gt;

&lt;p&gt;⚠️ Heads up: I’m still actively working on the official documentation for each language, so expect improvements, guides, and examples rolling out soon. Feedback is more than welcome 🙌.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎯 Why This Matters
&lt;/h3&gt;

&lt;p&gt;Swagger/OpenAPI is still the big standard, no doubt. But developers today don’t just want static docs—they want:&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Interactive docs&lt;/strong&gt; (explore, test, run flows)&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Scenario runner&lt;/strong&gt; (chain requests like login → create → fetch → delete)&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Future-ready testing&lt;/strong&gt; (performance/load testing coming soon)&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;AI-powered insights&lt;/strong&gt; (ask AI about endpoints, no more param guessing)&lt;/p&gt;

&lt;p&gt;Bytedocs is about developer experience first. Docs shouldn’t just sit there—they should work with you.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚡ What’s Next
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Documentation polish (step-by-step guides, examples, best practices)&lt;/li&gt;
&lt;li&gt;  More languages (Node.js, Python, maybe Java 👀)&lt;/li&gt;
&lt;li&gt;  Load testing &lt;/li&gt;
&lt;li&gt;  .. any suggestions?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>openapi</category>
      <category>ai</category>
      <category>rust</category>
    </item>
    <item>
      <title>🚀 Bytedocs: A Modern Alternative to Swagger</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Wed, 24 Sep 2025 01:32:23 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/bytedocs-a-modern-alternative-to-swagger-312d</link>
      <guid>https://dev.to/aibnuhibban/bytedocs-a-modern-alternative-to-swagger-312d</guid>
      <description>&lt;p&gt;For years, Swagger has been the go-to for API documentation. And while it’s solid, let’s be honest—it feels kinda outdated in today’s developer workflow.&lt;/p&gt;

&lt;p&gt;That’s why I built Bytedocs: a fresh, modern alternative to Swagger that not only documents your APIs but also helps you test, explore, and even stress-test them.&lt;/p&gt;

&lt;p&gt;👉 Check it out: &lt;a href="https://bytedocs.dev/" rel="noopener noreferrer"&gt;bytedocs.dev&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🤔 What Makes Bytedocs Different?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3kxycjy0rxipim201kx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3kxycjy0rxipim201kx.png" alt="Bytedocs UI" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike traditional tools that stop at generating static docs, Bytedocs is designed to be multi-language, interactive, and developer-friendly from day one.&lt;/p&gt;

&lt;p&gt;Here’s what it brings to the table:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📚 Modern API Documentation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean, responsive, and easy-to-use docs.&lt;/li&gt;
&lt;li&gt;Looks great across devices.&lt;/li&gt;
&lt;li&gt;Not just another Swagger clone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🌍 Multi-Language Support&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dedicated repos for different stacks.&lt;/li&gt;
&lt;li&gt;Example: &lt;a href="https://github.com/idnexacloud/bytedocs-laravel" rel="noopener noreferrer"&gt;bytedocs-laravel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;More languages coming soon (Go, Node.js, etc.).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🎯 Scenario Runner&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foyye1jb6cs9uj3w5cfwc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foyye1jb6cs9uj3w5cfwc.png" alt="Bytedocs Scenario" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Group multiple endpoints into a single scenario.&lt;/li&gt;
&lt;li&gt;Run complete flows in one click (e.g., login → create → fetch → delete).&lt;/li&gt;
&lt;li&gt;Great for integration and workflow testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🤖 AI Assistant&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask AI about your endpoints directly.&lt;/li&gt;
&lt;li&gt;No more hunting through pages of docs to figure out required params.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;⚡ Roadmap: Load &amp;amp; Performance Testing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planned native integration with K6.&lt;/li&gt;
&lt;li&gt;Run load tests without leaving your API docs.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠 Getting Started
&lt;/h2&gt;

&lt;p&gt;Want to try it out? Start with the Laravel package:&lt;br&gt;
👉 &lt;a href="//github.com/idnexacloud/bytedocs-laravel"&gt;bytedocs-laravel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Installation is simple, and you’ll have your docs live in minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 The API Documentation Landscape
&lt;/h2&gt;

&lt;p&gt;Swagger may be the most widely known, but it’s not the only player in the game:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalar&lt;/strong&gt;: a newer open-source project with a sleek UI and growing community (~12k GitHub stars). Great for modern docs, but still focused mostly on visualization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Redoc&lt;/strong&gt;: clean and minimal OpenAPI renderer, often used for public-facing docs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stoplight&lt;/strong&gt;: more of a design-first platform with collaboration features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ReadMe / Bump.sh / Mintlify&lt;/strong&gt;: commercial platforms that bring analytics, portals, and customization on top of docs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools are all awesome in their own ways, but most of them &lt;strong&gt;stay within the boundary of “documentation”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s where Bytedocs is different—it’s not just another viewer for your OpenAPI spec. It’s a &lt;strong&gt;developer toolkit&lt;/strong&gt; that connects docs with scenarios, AI, and testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 The Vision
&lt;/h2&gt;

&lt;p&gt;I don’t want Bytedocs to just be “Swagger 2.0”.&lt;br&gt;
The goal is to make it the all-in-one developer tool for APIs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write less boilerplate&lt;/li&gt;
&lt;li&gt;Get clearer insights&lt;/li&gt;
&lt;li&gt;Test faster&lt;/li&gt;
&lt;li&gt;Scale with confidence&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Join the Journey
&lt;/h2&gt;

&lt;p&gt;This is just the beginning. I’d love your feedback, contributions, and ideas.&lt;br&gt;
👉 &lt;a href="https://bytedocs.dev/" rel="noopener noreferrer"&gt;bytedocs.dev&lt;/a&gt; &lt;br&gt;
👉 &lt;a href="https://github.com/idnexacloud/bytedocs-laravel" rel="noopener noreferrer"&gt;bytedocs-laravel&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;💡 With Bytedocs, API documentation is no longer static—it’s &lt;strong&gt;interactive, intelligent, and future-ready&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>api</category>
      <category>documentation</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>When Technical Excellence Meets Organizational Chaos: A Developer's Survival Guide</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Wed, 23 Jul 2025 00:53:13 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/when-technical-excellence-meets-organizational-chaos-a-developers-survival-guide-98j</link>
      <guid>https://dev.to/aibnuhibban/when-technical-excellence-meets-organizational-chaos-a-developers-survival-guide-98j</guid>
      <description>&lt;p&gt;&lt;em&gt;How I navigated a company merger that tested both my technical skills and professional resilience&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Last year, I found myself in what I initially thought was a dream scenario: working on a multi-tenant healthcare management system that had grown from a small proof-of-concept to serving 78+ active tenants. As one of the original developers who built the system from the ground up, I felt proud of what we'd accomplished with our small but efficient team.&lt;/p&gt;

&lt;p&gt;Then came the merger.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Foundation We Built
&lt;/h2&gt;

&lt;p&gt;Our journey started when our team lead decided to use an existing clinic management system as the foundation for a new public health center management platform. While the base code wasn't perfect—PHP 7.4, some anti-patterns, and legacy decisions—it was workable. When our lead eventually moved on, our small team of three developers inherited both the codebase and the responsibility of scaling it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we got right:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Implemented Redis for caching and session management&lt;/li&gt;
&lt;li&gt;  Containerized the entire application with Docker&lt;/li&gt;
&lt;li&gt;  Optimized the infrastructure for easier deployment&lt;/li&gt;
&lt;li&gt;  Built a multi-tenant architecture that could scale horizontally&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What became challenging:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  All VMs pointing to a single database (classic bottleneck)&lt;/li&gt;
&lt;li&gt;  32 tenants running on a single 32-core VM (performance issues)&lt;/li&gt;
&lt;li&gt;  No load balancer implementation yet&lt;/li&gt;
&lt;li&gt;  Monolithic Laravel application serving both API and views&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The performance issues were real. When you have 32 active healthcare facilities hitting the same VM simultaneously, even 32 cores aren't enough without proper load distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Merger Storm
&lt;/h2&gt;

&lt;p&gt;Then our parent company decided to "optimize for efficiency." Multiple subsidiaries were consolidated into a single office space, divided only by room partitions. What should have been a smooth organizational restructure turned into a masterclass in how &lt;em&gt;not&lt;/em&gt; to manage change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The communication breakdown:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  No clear announcement about the merger timeline&lt;/li&gt;
&lt;li&gt;  Job descriptions remained undefined for weeks&lt;/li&gt;
&lt;li&gt;  Reporting structures were unclear&lt;/li&gt;
&lt;li&gt;  Working hours weren't standardized (our team worked 9-5, others 8-5)&lt;/li&gt;
&lt;li&gt;  No transition planning or documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suddenly, we found ourselves in a larger organization with three distinct divisions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Research &amp;amp; Development&lt;/strong&gt; - The innovation team&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Product Development&lt;/strong&gt; - Building core features (where I ended up)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Project Support&lt;/strong&gt; - Handling live implementations and customizations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Red Flags That Made Me Nervous
&lt;/h2&gt;

&lt;p&gt;During one of the first all-hands meetings with our new technical leadership, I heard statements that immediately raised red flags:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"We're going to build systems with zero errors."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While I appreciate the ambition for quality, anyone with real-world development experience knows that "zero errors" is an unrealistic goal. What's achievable is robust error handling, comprehensive monitoring, and quick recovery mechanisms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"We'll create a framework that works for all programming languages."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This statement revealed a fundamental misunderstanding of how different programming languages work. Each language has its own paradigms, runtime environments, and ecosystems. What you &lt;em&gt;can&lt;/em&gt; create are consistent design patterns, API standards, and architectural guidelines that adapt to different languages.&lt;/p&gt;

&lt;p&gt;These statements, combined with feedback from colleagues who had worked with the incoming team, painted a picture of technical leadership that prioritized buzzwords over practical solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Performance Challenge: A Learning Experience
&lt;/h2&gt;

&lt;p&gt;While dealing with organizational chaos, I still had real technical problems to solve. Our main application was struggling under load, and I needed to identify and fix the bottlenecks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The diagnosis process:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Database analysis&lt;/strong&gt; - Confirmed that having all VMs hit a single database was creating a chokepoint&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Resource monitoring&lt;/strong&gt; - Discovered that CPU wasn't the only constraint; memory and I/O were also factors&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Application profiling&lt;/strong&gt; - Found several N+1 query problems and inefficient caching strategies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The solution approach:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Implemented proper database connection pooling&lt;/li&gt;
&lt;li&gt;  Added read replicas for reporting queries&lt;/li&gt;
&lt;li&gt;  Optimized the most frequently used queries&lt;/li&gt;
&lt;li&gt;  Planned for horizontal scaling rather than just vertical scaling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key lesson:&lt;/strong&gt; Sometimes the obvious solution (add more CPU cores) isn't the right solution. Performance problems are often architectural, not just resource-based.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned: Technical and Professional
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Technical Insights
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-tenancy requires careful planning&lt;/strong&gt; - Don't just throw more resources at performance problems. Design for scale from the beginning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitor everything&lt;/strong&gt; - You can't optimize what you don't measure. Implement comprehensive logging and monitoring before you have problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Database design matters&lt;/strong&gt; - In a multi-tenant system, your database architecture will make or break your performance.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Professional Insights
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Document your achievements&lt;/strong&gt; - When organizational changes happen, having clear documentation of your contributions becomes crucial.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communication gaps are red flags&lt;/strong&gt; - If leadership can't clearly communicate changes, question whether they can lead effectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Technical competence matters&lt;/strong&gt; - Be wary of leaders who make technically impossible promises or use buzzwords without understanding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Know when to escalate&lt;/strong&gt; - Sometimes you need to speak up about unrealistic expectations or poor communication.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What I Wish I'd Done Earlier
&lt;/h2&gt;

&lt;p&gt;Looking back, there are several things I would have handled differently:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical preparation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Implemented load balancing and database clustering before performance became critical&lt;/li&gt;
&lt;li&gt;  Created more comprehensive monitoring and alerting&lt;/li&gt;
&lt;li&gt;  Documented the architecture decisions more thoroughly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Professional preparation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Asked more direct questions about the merger timeline and expectations&lt;/li&gt;
&lt;li&gt;  Requested formal documentation of role changes and reporting structures&lt;/li&gt;
&lt;li&gt;  Been more proactive about setting technical standards and expectations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Moving Forward: Practical Advice
&lt;/h2&gt;

&lt;p&gt;If you find yourself in a similar situation, here's what I'd recommend:&lt;/p&gt;

&lt;h3&gt;
  
  
  For Technical Challenges
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Start with monitoring&lt;/strong&gt; - You need data before you can make informed decisions&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Plan for horizontal scaling&lt;/strong&gt; - Vertical scaling has limits&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Design for failure&lt;/strong&gt; - Systems will have errors; plan for graceful degradation&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Choose technologies that fit your team's expertise&lt;/strong&gt; - Don't chase trends if they don't solve real problems&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For Organizational Challenges
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Ask direct questions&lt;/strong&gt; - Don't assume things will "work themselves out"&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Document everything&lt;/strong&gt; - Keep records of decisions, achievements, and concerns&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Set clear expectations&lt;/strong&gt; - Be explicit about what's realistic and what isn't&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Have a backup plan&lt;/strong&gt; - Know your market value and keep your options open&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Ongoing Journey
&lt;/h2&gt;

&lt;p&gt;Mergers and organizational changes are part of the software development landscape. The key is maintaining your technical standards while navigating the human and political challenges that come with change.&lt;/p&gt;

&lt;p&gt;Six months later, I'm still working through these challenges. Some have been resolved through better communication and clearer role definitions. Others remain ongoing negotiations between technical reality and business expectations.&lt;/p&gt;

&lt;p&gt;The most important lesson? Your technical skills will get you through the day-to-day work, but your ability to communicate, set boundaries, and manage relationships will determine your long-term success.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your experience with company mergers or organizational changes? How do you balance technical excellence with organizational pressures? Share your thoughts in the comments below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>leadership</category>
      <category>softwareengineering</category>
      <category>teamwork</category>
    </item>
    <item>
      <title>Create Your Own Lumen Installer (2020)</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Wed, 16 Sep 2020 15:59:27 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/create-your-own-lumen-installer-2020-10p8</link>
      <guid>https://dev.to/aibnuhibban/create-your-own-lumen-installer-2020-10p8</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Bismillah&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alhamdulillah, I can still provide knowledge that may be useful for my friends who read ..&lt;/p&gt;

&lt;p&gt;Fine, according to the title. We will create our own version of the Lumen Installer. Not only that, this script will also immediately take the latest version of Lumen .. When this article was written Lumen was already version 8&lt;/p&gt;

&lt;h1&gt;
  
  
  ⚡️Lumen
&lt;/h1&gt;

&lt;p&gt;Little explanation. Lumen is a &lt;em&gt;Micro-Framework&lt;/em&gt; belonging to &lt;strong&gt;Laravel&lt;/strong&gt; which is devoted to creating APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔨 Creating Lumen Installer
&lt;/h2&gt;

&lt;p&gt;To make Lumen Installer I use &lt;strong&gt;Bash&lt;/strong&gt; so that we can customize more comfortably.&lt;/p&gt;

&lt;p&gt;Oh, yes. I made it on &lt;strong&gt;Linux&lt;/strong&gt;, if you are a &lt;strong&gt;Windows&lt;/strong&gt; user, maybe I can adjust it for the settings .. Ok 😉&lt;/p&gt;

&lt;p&gt;Next .. To create Lumen Installer, here are the steps&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open Terminal &lt;strong&gt;CTRL + T&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a Folder with a free name .. For example I use the name "bashku"&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;bashku
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Enter into the folder and create a file with the name "lumen"
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;bashku
&lt;span class="nb"&gt;touch &lt;/span&gt;lumen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Then edit with nano (If you want to edit with a text editor, go ahead)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano lumen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Paste the following code
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Sedang Dibuatkan Projectnya di Folder &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    composer create-project &lt;span class="nt"&gt;--prefer-dist&lt;/span&gt; laravel/lumen &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Sedang DIbuatkan Projectnay di sini"&lt;/span&gt;
    composer create-project &lt;span class="nt"&gt;--prefer-dist&lt;/span&gt; laravel/lumen &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Press &lt;strong&gt;CTRL + X&lt;/strong&gt; then &lt;strong&gt;Y&lt;/strong&gt; and &lt;strong&gt;ENTER&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After that go back to the * Directory * initial&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;and edit &lt;strong&gt;&lt;em&gt;. Bashrc&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano .bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Paste the following code at the bottom
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/bashku"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*The example above is because the folder I previously created was "bashku", it can be adjusted to the name of your folder&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you have pressed &lt;strong&gt;CTRL + X&lt;/strong&gt; then &lt;strong&gt;Y&lt;/strong&gt; and &lt;strong&gt;ENTER&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;then type &lt;strong&gt;source .bashrc&lt;/strong&gt; in the terminal&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; .bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;After that, try when you are terminated by:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lumen myproject
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Will create project lumen in myproject directory (create a new folder)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lumen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Will create a lumen project in the current directory&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ⛅️ Closing
&lt;/h1&gt;

&lt;p&gt;How? If there are problems, please discuss it in the comments column... The &lt;strong&gt;Bash&lt;/strong&gt; script above is a basic bash script and is very easy to understand. 😃&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's all hopefully useful ...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you&lt;/strong&gt; 👊&lt;/p&gt;

</description>
      <category>lumen</category>
      <category>bash</category>
      <category>leenuksid</category>
    </item>
    <item>
      <title>Membuat Lumen Installer Sendiri (2020)</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Wed, 16 Sep 2020 15:44:12 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/membuat-lumen-installer-sendiri-2020-4nbn</link>
      <guid>https://dev.to/aibnuhibban/membuat-lumen-installer-sendiri-2020-4nbn</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Bismillah&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alhamdulillah saya masih bisa memberikan ilmu yang semoga bermanfaat bagi teman teman yang membaca..&lt;/p&gt;

&lt;p&gt;Baik, sesuai dengan judul. Kita akan membuat Lumen Installer sendiri dengan versi kita sendiri. Bukan hanya itu, Script ini juga akan langsung mengambil versi terbaru dari Lumen.. Ketika tulisan ini ditulis Lumen sudah versi 8&lt;/p&gt;

&lt;h1&gt;
  
  
  ⚡️Lumen
&lt;/h1&gt;

&lt;p&gt;Sedikit penjelasan. Lumen adalah sebuah &lt;em&gt;Micro-Framework&lt;/em&gt; milik &lt;strong&gt;Laravel&lt;/strong&gt; yang memang dikhususkan untuk membuat API.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔨 Membuat Lumen Installer
&lt;/h2&gt;

&lt;p&gt;Untuk membuat Lumen Installer saya menggunakan &lt;strong&gt;Bash&lt;/strong&gt; agar kita bisa mengkustomisasi lebih enak. &lt;/p&gt;

&lt;p&gt;Ohya. Saya membuatnya di &lt;strong&gt;Linux&lt;/strong&gt;, Jika anda pengguna &lt;strong&gt;Windows&lt;/strong&gt; mungkin bisa disesuaikan saya untuk pengaturannya.. Ok  😉&lt;/p&gt;

&lt;p&gt;Lanjut.. Untuk membuat Lumen Installer, berikut adalah langkah langkahnya&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Buka Terminal &lt;strong&gt;CTRL + T&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Buat Folder dengan nama bebas.. Contoh saya menggunakan nama "bashku"&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;bashku
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Masuk ke dalam folder tersebut dan buat file dengan nama "lumen"
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;bashku
&lt;span class="nb"&gt;touch &lt;/span&gt;lumen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Lalu edit dengan nano (Jika ingin mengedit dengan text editor silahkan saja)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano lumen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Paste kode berikut
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Sedang Dibuatkan Projectnya di Folder &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    composer create-project &lt;span class="nt"&gt;--prefer-dist&lt;/span&gt; laravel/lumen &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Sedang DIbuatkan Projectnay di sini"&lt;/span&gt;
    composer create-project &lt;span class="nt"&gt;--prefer-dist&lt;/span&gt; laravel/lumen &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tekan &lt;strong&gt;CTRL + X&lt;/strong&gt; lalu &lt;strong&gt;Y&lt;/strong&gt; dan &lt;strong&gt;ENTER&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Setelah itu kembali lagi ke &lt;em&gt;Directory&lt;/em&gt; awal&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;dan edit &lt;strong&gt;&lt;em&gt;.bashrc&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano .bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Paste kode berikut dibagian paling bawah
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/bashku"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*Contoh diatas karena folder yg sebelumnya saya buat adalah "bashku" bisa disesuaikan dengan nama folder anda&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Jika sudah Tekan &lt;strong&gt;CTRL + X&lt;/strong&gt; lalu &lt;strong&gt;Y&lt;/strong&gt; dan &lt;strong&gt;ENTER&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;lalu ketik "source .bashrc" di terminal&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; .bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Setelah itu coba ketika diterminal dengan :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lumen projectku
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Akan membuat project lumen di directory projectku (membuat folder baru)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lumen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Akan membuat project lumen di directory saat ini&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ⛅️ Penutup
&lt;/h1&gt;

&lt;p&gt;Bagaimana ? Jika ada kendala silahkan diskusi di kolom komentar.. Script &lt;strong&gt;Bash&lt;/strong&gt; diatas adalah script bash basic dan sangat mudah di pahami.. 😃&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sekian Semoga Bermnafaat...&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terima Kasih&lt;/strong&gt; 👊&lt;/p&gt;

</description>
      <category>lumen</category>
      <category>bash</category>
      <category>leenuksid</category>
    </item>
    <item>
      <title>Login Customization in Laravel 8</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Sat, 12 Sep 2020 15:12:02 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/login-customization-in-laravel-8-2gc8</link>
      <guid>https://dev.to/aibnuhibban/login-customization-in-laravel-8-2gc8</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Bismillah&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;this time I can still write an article that hopefully can be useful for friends who read...&lt;/p&gt;

&lt;p&gt;As the title implies, I want to &lt;em&gt;share&lt;/em&gt; a little about &lt;strong&gt;Login Customization in Laravel 8&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  💡 Laravel 8 Update Info
&lt;/h1&gt;

&lt;p&gt;Laravel has just updated to version 8 which brings a lot of new things, like using it &lt;strong&gt;TailwindCSS&lt;/strong&gt;, &lt;strong&gt;Livewire&lt;/strong&gt;, Folder Models, &lt;strong&gt;Jetstream&lt;/strong&gt;, Factory Updates, and others ... You can read it yourself at &lt;a href="https://laravel.com/docs/8.x/releases" rel="noopener noreferrer"&gt;https://laravel.com/docs/8.x/releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Jetstream, Laravel has removed the Laravel UI which was previously used in Laravel 6 and 7 as its &lt;strong&gt;Authentication Scaffold&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Well .. Because of these changes, automatic customization for the login is different. Files that we usually encounter like &lt;strong&gt;&lt;em&gt;LoginController.php&lt;/em&gt;&lt;/strong&gt; are no longer in Laravel 8. Here are some Ways that have been found to customize Login in Laravel 8:&lt;/p&gt;

&lt;h2&gt;
  
  
  📬 Change the Email Input when Login
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to Folder &lt;strong&gt;config &amp;gt; fortify.php&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;On Line 45 (Default) there is a key &lt;strong&gt;"username" =&amp;gt; "email"&lt;/strong&gt;.
Change the email to whatever you want, for example, username. So it becomes &lt;strong&gt;"username" =&amp;gt; "username"&lt;/strong&gt;. That way you can log in using a username and password without the need for email. Of course it must also be adjusted to those in
database.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🔓 Changing the Route / Destination After Successfully Login
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to Folder &lt;strong&gt;app &amp;gt; Providers &amp;gt; RouteServiceProvider.php&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Change the "/ dashboard" as desired on line 20
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;public const HOME = '/ dashboard';&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;after successful login it will go to the route you point here&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 Change the Minimum Requirement Password when registering
&lt;/h2&gt;

&lt;p&gt;By default in Laravel 8, if we want to register then the password is at least 8 characters to change it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;vendor &amp;gt; laravel &amp;gt; fortify &amp;gt; src &amp;gt; Rule &amp;gt; Password.php&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Change

&lt;code&gt;protected $ length = 8;&lt;/code&gt;

As you wish, for example 10&lt;/li&gt;
&lt;li&gt;And if you want when registering, the password must have an Uppercase character, just change it &lt;strong&gt;&lt;em&gt;$requireUppercase&lt;/em&gt;&lt;/strong&gt; from &lt;strong&gt;false&lt;/strong&gt; to &lt;strong&gt;true&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;And if you want to register, the password must be a number, just change &lt;strong&gt;&lt;em&gt;$requireNumeric&lt;/em&gt;&lt;/strong&gt; from &lt;strong&gt;false&lt;/strong&gt; to &lt;strong&gt;true&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ✍️ Change Validation Language when Login &amp;amp; Register Error
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Still in the same FIle as the previous step&lt;/li&gt;
&lt;li&gt;Just scroll down a bit and you will see &lt;code&gt;function message ()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Change the existing string in the function. to the language you want&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Previous:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftbbhoca4h05qfocj8iey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftbbhoca4h05qfocj8iey.png" alt="Previous" width="800" height="180"&gt;&lt;/a&gt;&lt;br&gt;
Afterwards:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkejgzcahoyr6fchofk4x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkejgzcahoyr6fchofk4x.png" alt="Afterwards" width="800" height="139"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  ❤️ Create Your Own Login Controller
&lt;/h2&gt;

&lt;p&gt;So, for those of you who want to create your own login controller, you can follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a file with the name &lt;strong&gt;&lt;em&gt;LoginController.php&lt;/em&gt;&lt;/strong&gt; in &lt;strong&gt;app &amp;gt; Http &amp;gt; Controllers&lt;/strong&gt;. Actually for the controller name free. Just an example so that it fits its function.&lt;/li&gt;
&lt;li&gt;then paste the following code in it
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Http\Controllers&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Http\Request&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Support\Facades\Auth&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LoginController&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;authenticate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Request&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
        &lt;span class="c1"&gt;// Retrive Input&lt;/span&gt;
        &lt;span class="nv"&gt;$credentials&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'email'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'password'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Auth&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;attempt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$credentials&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// if success login&lt;/span&gt;

            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'berhasil'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

            &lt;span class="c1"&gt;//return redirect()-&amp;gt;intended('/details');&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="c1"&gt;// if failed login&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'login'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Change the part that I comment on the you wish&lt;/li&gt;
&lt;li&gt;Add routes at &lt;strong&gt;routes &amp;gt; web.php&lt;/strong&gt;
Example:
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Route::post('logged_in', [LoginController::class, 'authenticate']);&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Change &lt;strong&gt;action&lt;/strong&gt; &lt;em&gt;attributes&lt;/em&gt; in login views and point to route&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By creating your own Login Controller, you can also change your email to a username / other as you wish. Just change the text of the email in the &lt;strong&gt;$ credentials&lt;/strong&gt; from the code I provided above.&lt;/p&gt;

&lt;h1&gt;
  
  
  ⌛️ Closing
&lt;/h1&gt;

&lt;p&gt;Ok, how? Already familiar with &lt;strong&gt;Authentication&lt;/strong&gt; in Laravel 8? Actually there are many other &lt;strong&gt;Authentication&lt;/strong&gt; configurations that can be changed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So Hopefully Helpful ..&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you&lt;/strong&gt; 👊&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>auth</category>
      <category>leenuksid</category>
    </item>
    <item>
      <title>Kustomisasi Login di Laravel 8 (2020)</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Sat, 12 Sep 2020 14:54:01 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/kustomisasi-login-di-laravel-8-1jin</link>
      <guid>https://dev.to/aibnuhibban/kustomisasi-login-di-laravel-8-1jin</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Bismillah&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alhamdulillah kali ini saya masih bisa menulis artikel yang semoga bisa bermanfaat bagi teman teman yang membaca..&lt;/p&gt;

&lt;p&gt;Sesuai dengan judul, saya ingin &lt;em&gt;sharing - sharing&lt;/em&gt; sedikit tentang &lt;strong&gt;Kustomisasi Login di Laravel 8&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  💡 Info Update Laravel 8
&lt;/h1&gt;

&lt;p&gt;OK, langsung saja.. Laravel baru saja melakukan Update ke versi 8 yang membawa banyak sekali hal yang baru, Seperti menggunakannya &lt;strong&gt;TailwindCSS&lt;/strong&gt;, &lt;strong&gt;Livewire&lt;/strong&gt;, Folder Models, &lt;strong&gt;Jetstream&lt;/strong&gt;, Pembaharuan Factory, dan lainnya.. yang teman - teman bisa baca sendiri di &lt;a href="https://laravel.com/docs/8.x/releases" rel="noopener noreferrer"&gt;https://laravel.com/docs/8.x/releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dengan adanya Jetstream, Laravel telah menghapus Laravel UI yang sebelumnya digunakan di Laravel 6 dan 7 sebagai &lt;strong&gt;Authentication Scaffold&lt;/strong&gt; nya&lt;/p&gt;

&lt;p&gt;Nah.. Karena perubahan tersebut, Otomatis untuk melakukan kustomasi pada login pun berbeda. File" yang biasanya kita temui seperti &lt;strong&gt;&lt;em&gt;LoginController.php&lt;/em&gt;&lt;/strong&gt; sudah tidak ada di Laravel 8. Berikut adalah beberapa Cara yang telah temukan untuk kustomisasi Login di Laravel 8 :&lt;/p&gt;

&lt;h2&gt;
  
  
  📬 Mengubah Input Email ketika Login
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Pergi ke Folder &lt;strong&gt;config &amp;gt; fortify.php&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; pada Line 45 (Default) ada key &lt;strong&gt;"username" =&amp;gt; "email"&lt;/strong&gt;. 
Ubah email menjadi apapun yang teman teman inginkan misalkan username. Sehingga menjadi &lt;strong&gt;"username" =&amp;gt; "username"&lt;/strong&gt;. Dengan begitu teman teman bisa login menggunakan username dan password tanpa butuh email. Tentu Saja harus disesuaikan juga dengan yg di database.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🔓 Mengubah Route / Tujuan Setelah Berhasil Login
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Pergi ke Folder &lt;strong&gt;app &amp;gt; Providers &amp;gt; RouteServiceProvider.php&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; ubah "/dashboard" sesuai dengan keinginan pada line 20
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;public  const  HOME  =  '/dashboard';&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Nantinya, setelah Login berhasil maka akan ke route yang teman teman arahkan disini&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 Mengubah Minimum Requirement Password ketika Register
&lt;/h2&gt;

&lt;p&gt;Default / Bawaannya di Laravel 8 jika kita ingin register maka password minimal 8 Karakter untuk mengubahnya :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Pergi ke &lt;strong&gt;vendor &amp;gt; laravel &amp;gt; fortify &amp;gt; src &amp;gt; Rule &amp;gt; Password.php&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; Ubah

&lt;code&gt;protected $length =  8;&lt;/code&gt;

Sesuai keinginan misalkan 10&lt;/li&gt;
&lt;li&gt; Dan jika teman teman ingin ketika register passwordnya harus ada Karakter yang Uppercase / Besar tinggal ubah &lt;strong&gt;&lt;em&gt;$requireUppercase&lt;/em&gt;&lt;/strong&gt; dari &lt;strong&gt;false&lt;/strong&gt; ke &lt;strong&gt;true&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; Dan kalau teman teman ingin juga ketika register passwordnya haru ada angkanya tinggal ubah &lt;strong&gt;&lt;em&gt;$requireNumeric&lt;/em&gt;&lt;/strong&gt; dari &lt;strong&gt;false&lt;/strong&gt; ke &lt;strong&gt;true&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  ✍️ Mengubah Bahasa Validasi ketika Error di Login &amp;amp; Register
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; Masih di FIle yang sama dengan langkah sebelumnya&lt;/li&gt;
&lt;li&gt; Scroll saja ke bawah sedikit maka teman teman akan bertemu dengan &lt;code&gt;function message()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt; Ubah String yang ada di function tsb. ke bahasa yang teman teman inginkan
Sebelumnya : 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fg476af3689quhd52bozd.png" alt="Sebelumnya" width="800" height="180"&gt;
Sesudahnya :
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F10er2ouuyg5rvgd630q0.png" alt="Sesudahnya" width="800" height="139"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  ❤️ Membuat Login Controller Sendiri
&lt;/h2&gt;

&lt;p&gt;Nah, bagi teman teman yang ingin membuat login controller sendiri bisa ikuti langkah - langkah berikut :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Buat file dengan nama &lt;strong&gt;&lt;em&gt;LoginController.php&lt;/em&gt;&lt;/strong&gt; di &lt;strong&gt;app &amp;gt; Http &amp;gt; Controllers&lt;/strong&gt;. Sebenanrnya untuk nama controller bebasa. Hanya contoh saja biar sesuai dengan fungsinya.&lt;/li&gt;
&lt;li&gt; lalu paste code berikut di dalamnya
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Http\Controllers&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Http\Request&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Support\Facades\Auth&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LoginController&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;authenticate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Request&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
        &lt;span class="c1"&gt;// Inputan yg diambil&lt;/span&gt;
        &lt;span class="nv"&gt;$credentials&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'email'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'password'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Auth&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;attempt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$credentials&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// Jika berhasil login&lt;/span&gt;

            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'berhasil'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

            &lt;span class="c1"&gt;//return redirect()-&amp;gt;intended('/details');&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="c1"&gt;// Jika Gagal&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'login'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt; Ubah bagian yang saya komentari sesuai keinginan teman teman&lt;/li&gt;
&lt;li&gt; Tambah Route di &lt;strong&gt;routes &amp;gt;&lt;/strong&gt; &lt;strong&gt;web.php&lt;/strong&gt; 
Contoh :
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;Route::post('logged_in',  [LoginController::class,  'authenticate']);&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Ubah &lt;strong&gt;action&lt;/strong&gt; &lt;em&gt;attribut&lt;/em&gt; di views login dan arahkan ke route &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Dengan membuat Login Controller sendiri, teman teman juga bisa mengubah email menjadi username / lainnya sesuai keinginan. Tinggal ubah saja tulisan email di dalam &lt;strong&gt;$credentials&lt;/strong&gt; dari kode yang saya berikan di atas.&lt;/p&gt;

&lt;h1&gt;
  
  
  ⌛️ Penutup
&lt;/h1&gt;

&lt;p&gt;Ok, bagaimana ? Sudah terbiasa dengan &lt;strong&gt;Authentication&lt;/strong&gt; di Laravel 8 ? Sebenarnya masih ada banyak konfigurasi &lt;strong&gt;Authentication&lt;/strong&gt; lainnya yang bisa diubah. Kalo memang teman teman mau juga &lt;strong&gt;Konfigurasi Authentication&lt;/strong&gt; lainnya mungkin bisa komen aja dibawah kali ya 😉  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sekian Semoga Bermanfaat..&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terima Kasih&lt;/strong&gt; 👊&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>auth</category>
      <category>leenuksid</category>
    </item>
    <item>
      <title>Konfigurasi Email di Lumen 7 (2020)</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Sun, 30 Aug 2020 15:18:05 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/konfigurasi-email-di-lumen-7-2020-g1e</link>
      <guid>https://dev.to/aibnuhibban/konfigurasi-email-di-lumen-7-2020-g1e</guid>
      <description>&lt;p&gt;Assalamu'alaikum Warohmatullohi Wabarokatuh&lt;/p&gt;

&lt;p&gt;Alhamdulillah ini adalah Artikel kedua di Dev.to ini. Kali ini saya ingin share / berbagi sedikit tentang Konfigurasi Email di lumen 7 .. So, Langsung saja&lt;/p&gt;

&lt;p&gt;Bagi yang belum tau apa itu Lumen.. &lt;/p&gt;

&lt;h1&gt;
  
  
  Lumen
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The stunningly fast micro-framework by Laravel.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Begitulah Slogan yang di pasang di depan &lt;a href="https://lumen.laravel.com/" rel="noopener noreferrer"&gt;Halaman Resmi&lt;/a&gt; nya. Kurang lebih artinya Kerangka micro-framework milik Laravel yang sangat Cepat..&lt;/p&gt;

&lt;p&gt;Lumen dikhususkan digunakan untuk membuat API dan Memiliki Struktur Folder yang sama persis seperti di Laravel .. Hanya saja di Lumen sudah tidak ada lagi Bagian - bagian yang "Berat", Seperti Views, Konfigurasi Bawaan dan lainnya.. &lt;/p&gt;

&lt;p&gt;Jika anda sudah terbiasa dengan Laravel, Menggunakan Lumen tidak akan membuat anda kesulitan&lt;/p&gt;

&lt;h1&gt;
  
  
  Install Lumen
&lt;/h1&gt;

&lt;p&gt;Untuk Proses install anda bisa menggunakan Lumen Installer &lt;a href="https://lumen.laravel.com/docs/7.x#installing-lumen" rel="noopener noreferrer"&gt;Lihat Dokumentasi&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;lumen new send_email
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Install Dependencies
&lt;/h2&gt;

&lt;p&gt;Jalankan Perintah dibawah untuk menginstall &lt;strong&gt;&lt;a href="https://packagist.org/packages/illuminate/mail" rel="noopener noreferrer"&gt;Illuminate/mail&lt;/a&gt;&lt;/strong&gt; dan &lt;strong&gt;&lt;a href="https://packagist.org/packages/guzzlehttp/guzzle" rel="noopener noreferrer"&gt;guzzlehttp/guzzle&lt;/a&gt;&lt;/strong&gt; yang dibutuhkan untuk mengirim Email&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require Illuminate/mail guzzlehttp/guzzle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setelah selesai, buka text editor di project tersebut&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ Konfigurasi
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pertama&lt;/strong&gt;, Buat folder config lalu buat file di folder tersebut dan berikan nama mail.php &lt;br&gt;
isi &lt;strong&gt;mail.php&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'driver'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_DRIVER'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'host'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_HOST'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'port'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_PORT'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'from'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'address'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_FROM_ADDRESS'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_FROM_NAME'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s1"&gt;'encryption'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_ENCRYPTION'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'username'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_USERNAME'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'password'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'MAIL_PASSWORD'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'markdown'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'theme'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'default'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'paths'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="nf"&gt;resource_path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'views/vendor/mail'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Kedua&lt;/strong&gt;, Buka file app.php di Folder bootstrap&lt;br&gt;
Cari Sintaks berikut&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// $app-&amp;gt;register(App\Providers\AppServiceProvider::class);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lalu Uncomment "//", Sehingga menjadi&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;App\Providers\AppServiceProvider&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lakukan yang sama juga dengan sintaks berikut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;withFacades&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ketiga&lt;/strong&gt;, Buka File AppServiceProvider yang berada di Folder &lt;strong&gt;app &amp;gt; Providers&lt;/strong&gt;&lt;br&gt;
Tambahkan Sintaks berikut di dalam function register()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;singleton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="s1"&gt;'mailer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;loadComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'mail'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Illuminate\Mail\MailServiceProvider'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'mailer'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;// Aliases&lt;/span&gt;
        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;alias&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'mailer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;\Illuminate\Contracts\Mail\Mailer&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;// Make Queue&lt;/span&gt;
        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;make&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'queue'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Keempat&lt;/strong&gt;, Buat File .env di &lt;strong&gt;Root Project&lt;/strong&gt; jika bingung cari saja .env-example lalu rename menjadi .env&lt;/p&gt;

&lt;p&gt;Setelah itu buka link &lt;a href="http://www.unit-conversion.info/texttools/random-string-generator/" rel="noopener noreferrer"&gt;berikut&lt;/a&gt; . Lalu lakukan generate dengan mengubah bagian Length menjadi 32, dan copy kode yang muncul di bawahnya.. &lt;/p&gt;

&lt;p&gt;Paste ke .env bagian APP_KEY&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6t730ilm2s9utkdrsxzt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6t730ilm2s9utkdrsxzt.png" alt="Alt Text" width="365" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jika sudah, lalu tambahkan Kode berikut di bagian mana saja yang penting di dalam .env&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=emailanda@gmail.com
MAIL_PASSWORD=passwordanda
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME=NamaPengirim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*Ubah &lt;a href="mailto:emailanda@gmail.com"&gt;emailanda@gmail.com&lt;/a&gt; menjadi akun gmail anda&lt;br&gt;
*Ubah passwordanda menjadi password akun gmail anda&lt;br&gt;
*Ubah NamaPengirim sesuai keinginan anda&lt;/p&gt;

&lt;h2&gt;
  
  
  Konfigurasi Akun Gmail
&lt;/h2&gt;

&lt;p&gt;Pergi ke Link Berikut dan pastikan anda sudah Login ke akun gmail anda yang dimasukkan ke .env yang tadi&lt;br&gt;
&lt;a href="https://myaccount.google.com/lesssecureapps" rel="noopener noreferrer"&gt;https://myaccount.google.com/lesssecureapps&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Pastikan juga anda mematikan **Verifikasi 2 Langkah&lt;/em&gt;*&lt;/p&gt;

&lt;p&gt;Setelah terbuka maka &lt;strong&gt;turn on&lt;/strong&gt; &lt;/p&gt;

&lt;h1&gt;
  
  
  ❤️ Selesai
&lt;/h1&gt;

&lt;p&gt;Sampai Tahap ini maka konfigurasi sudah selesai, selanjutnya bisa membaca Kirim Email di Lumen 7 (2020) - (Besok). Masih ada yang ingin ditanyakan ? Bisa diskusi di bawah 😊&lt;/p&gt;

&lt;p&gt;Sekian Semoga Bermanfaat.. &lt;/p&gt;

&lt;p&gt;Good Luck 👊&lt;/p&gt;

</description>
      <category>lumen</category>
      <category>email</category>
      <category>leenuksid</category>
    </item>
    <item>
      <title>Datatables Versi HTML + CSS + JS menggunakan Grid.js</title>
      <dc:creator>AibnuHibban</dc:creator>
      <pubDate>Sat, 29 Aug 2020 17:28:56 +0000</pubDate>
      <link>https://dev.to/aibnuhibban/datatables-versi-html-css-js-menggunakan-grid-js-571c</link>
      <guid>https://dev.to/aibnuhibban/datatables-versi-html-css-js-menggunakan-grid-js-571c</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Bismillah&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alhamdulillah akhirnya sempat juga untuk menulis artikel, karena ini Artikel pertama saya di Dev.to mohon dimaklumi jika banyak kekurangan dalam berbagai hal 😊&lt;/p&gt;

&lt;h1&gt;
  
  
  Grid.js
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Grid.js&lt;/strong&gt; is a lightweight, advanced JavaScript table plugin that works everywhere.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sesuai dengan slogan di &lt;a href="https://gridjs.io/" rel="noopener noreferrer"&gt;websitnya&lt;/a&gt;, Grid.js menawarkan Plugin Table menggunakan Javascript dengan Tingkat Lanjut. Dengan Grid.js anda bisa membuat Datatables versi &lt;strong&gt;HTML + CSS + JS&lt;/strong&gt; tanpa bantuan &lt;strong&gt;JQuery&lt;/strong&gt; &lt;/p&gt;

&lt;h1&gt;
  
  
  Demo
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://aibnuhibban.github.io/DataTable-using-Gridjs/" rel="noopener noreferrer"&gt;https://aibnuhibban.github.io/DataTable-using-Gridjs/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Cara Penggunaan
&lt;/h1&gt;

&lt;p&gt;Anda Bisa melihat Repository di Github yang sudah saya buat &lt;strong&gt;&lt;a href="https://github.com/AIbnuHIbban/DataTable-using-Gridjs" rel="noopener noreferrer"&gt;https://github.com/AIbnuHIbban/DataTable-using-Gridjs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Yang saya tuliskan dibawah adalah Salah Satu Cara Penggunaan yang Simple dan Tanpa Module&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tambah CSS dan JS
&lt;/h2&gt;

&lt;p&gt;Tambah CSS dan JS ke Dalam Dokumen&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://unpkg.com/gridjs/dist/theme/mermaid.min.css"&lt;/span&gt;  &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;JS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://unpkg.com/gridjs/dist/gridjs.production.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Element
&lt;/h2&gt;

&lt;p&gt;Siapkan Satu Tag HTML untuk menaruh Table yang ingin dipasangkan. Disini Kita tidak membutuhkan Tag &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt; melainkan &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"gridtable"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ⚙️ Inisialisasi
&lt;/h2&gt;

&lt;p&gt;Inisialisasi Awal anda bisa hanya dengan menuliskan seperti berikut di Javascript&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;gridjs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Grid&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;search&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;pagination&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;buttonsCount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;No&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Username&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Website&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Actions&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;formatter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cell&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;gridjs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&amp;lt;a onclick="return confirm('Delete Data ?')" href='javascript:void(0)'&amp;gt;Delete&amp;lt;/a&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="na"&gt;server&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://jsonplaceholder.typicode.com/users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;then&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;website&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;language&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;search&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;placeholder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Masukkan Kata Kunci...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pagination&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;previous&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sebelumnya&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Selanjutnya&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;showing&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; 📋 Menampilkan&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;results&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;to&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sampai&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;of&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Data dari&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gridtable&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🎨 Tambah CSS Sedikit
&lt;/h2&gt;

&lt;p&gt;Tambah CSS Sedikit untuk menambah kecantikan Tabel&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Verdana&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Geneva&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Tahoma&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;#F7F7F7&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.gridjs-pagination&lt;/span&gt; &lt;span class="nc"&gt;.gridjs-pages&lt;/span&gt; &lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.gridjs-sort&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;outline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  😎 Hasilnya
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/6259a088042056a19066f45c8a8483fbfe00b6d1/68747470733a2f2f692e6962622e636f2f5a3248675750362f53637265656e73686f742d66726f6d2d323032302d30382d32392d32332d33352d31312e706e67" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/6259a088042056a19066f45c8a8483fbfe00b6d1/68747470733a2f2f692e6962622e636f2f5a3248675750362f53637265656e73686f742d66726f6d2d323032302d30382d32392d32332d33352d31312e706e67" alt="enter image description here" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ini salah satu cara penggunaan dari gridjs tanpa Framework dan JQuery. Sebenarnya Gridjs juga menyediakan untuk &lt;strong&gt;React, Vue, dan JQuery&lt;/strong&gt;, Kalian bisa lihat sendiri di dokumentasinya.. Soo, Sekian saja untuk artikel kali ini, Semoga Bermanfaat .. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Github Repo  : &lt;a href="https://github.com/AIbnuHIbban/DataTable-using-Gridjs" rel="noopener noreferrer"&gt;https://github.com/AIbnuHIbban/DataTable-using-Gridjs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Good Luck 👊&lt;/p&gt;

</description>
      <category>gridjs</category>
      <category>table</category>
      <category>leenuksid</category>
    </item>
  </channel>
</rss>
