- Effective Go
- Simple to complex http server for a frontend
- CLI tools
- gRPC
- Just pipelines. jobs. scripts to automate things
- Reading: Advance patterns for building apis and web application in Go(let's go further)
- Testing: Learn go with tests
- Reading: Writing an interpreter in Go
- Reading: 100 common go mistakes to avoid
I’m a frequent visitor to the r/webdev subreddit, and recently I came across a post where someone shared an interesting story. The original poster (OP) talked about a client who questioned why they should pay for a developer when AI tools could do the job. OP decided to part ways with the client, and most people in the comments agreed—if the client thinks AI can handle everything, they’ll get what they pay for: a generic, AI-generated website.
This got me thinking: is being a frontend developer still relevant in a world where tools like Bolt, Loveable.dev, and v0.dev can generate entire websites with minimal input?
When I started my career as a web developer, I was working with PHP, building websites using WordPress and the CodeIgniter framework. But what I enjoyed most was the browser—making changes in Firefox DevTools and seeing them live instantly
| services: | |
| dockge: | |
| image: louislam/dockge:1 | |
| restart: unless-stopped | |
| ports: | |
| # Host Port : Container Port | |
| - 5001:5001 | |
| volumes: | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| - ./data:/app/data |
| 1. Mandatory field indicator ta missing | |
| 2. Hover effect cursor move korlew theke jay | |
| 3. Input field e entry korar por diselect korle error or success dekhabe | |
| 4. Error hole boarder color change hobe r icon dekhabe | |
| 5. Success hole border color default hobe, r icon dekhabe | |
| 6. Input field select korle border color primary color hobe | |
| 7. Promo code input field e remove CTA ashbe | |
| 8. Keyboard focus navigation border color global hobe | |
| 9. Font same hobe 3 tai. input text, title, r helper text. | |
| 10. Form gulor upore ekta note thakbe mandatory field er jonno (edited) |
| const roomsMachine = Machine({ | |
| id: 'rooms', | |
| initial: 'step1', | |
| states: { | |
| step1: { | |
| on: { STEP: 'step2' }, | |
| }, | |
| step2: { | |
| on: { STEP: 'step3' }, | |
| }, |
| // Define the state machine configuration for the first machine | |
| const firstMachine = Machine({ | |
| id: 'firstMachine', | |
| initial: 'start', | |
| states: { | |
| start: { | |
| on: { | |
| NEXT: 'transitionToSecondMachine', | |
| }, |
| <main id="primary-container"> | |
| {% include "_page-header.njk" %} | |
| {{content | safe}} | |
| {% include "_page-footer.njk" %} | |
| </main> | |
| <script> | |
| window.addEventListener('DOMContentLoaded', (event) => { | |
| if(window.initSkipper){ | |
| initSkipper({ |
| /* Ultra lightweight Github REST Client */ | |
| // original inspiration via https://gist.github.com/v1vendi/75d5e5dad7a2d1ef3fcb48234e4528cb | |
| const token = 'github-token-here' | |
| const githubClient = generateAPI('https://api.github.com', { | |
| headers: { | |
| 'User-Agent': 'xyz', | |
| 'Authorization': `bearer ${token}` | |
| } | |
| }) |
| <table className="min-w-full divide-y divide-gray-200"> | |
| <thead className="bg-gray-50"> | |
| <tr> | |
| <th | |
| scope="col" | |
| className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" | |
| > | |
| Name | |
| </th> | |
| <th |
You are given a string: candies, which is composed of chars from the English alphabet. If you see two consecutive candies that are the same, you pop them from left to right, until you cannot pop any more candies. Return the resulting string.
// candies = "abba"
// "abba" - pop the two b's -> "aa"
// "aa" - pop the two a's -> ""
// return ""
// candies = "abcd"
// return "abcd"