今日已更新 345 条资讯 | 累计 22535 条内容
关于我们

标签:#web

找到 1819 篇相关文章

AI 资讯

Arazzo Visualizer: Run API Workflows in VS Code

Most apps don't just call one API endpoint. They call a whole chain of them. For example, you might log in, get a token, and then pass that token to another service. Tracking these multi-step chains can get messy quickly. To help fix this, the OpenAPI Initiative created the Arazzo Specification . It gives us a standard way to link different endpoints into clear workflows. But writing these workflow files by hand in a regular text editor is tough. It is very easy to lose track of how data moves from one step to the next. That is why I built Arazzo Visualizer for VS Code. It is a free, open-source extension that makes the Arazzo spec visual and easy to use. Live Interactive Graphs The extension reads your workflow files and turns them into interactive maps on the fly. See Data Flow: Look at exactly how data moves between steps. Catch Errors Early: Spot broken paths before you even run your code. Clean Layouts: Navigate large workflows without getting lost in thousands of lines of text. Built-In Workflow Runner Seeing the map is great, but testing it is even better. The tool has a step-by-step runner built right into your editor. Run a single step or execute the whole chain. See real-time data payloads and HTTP headers. Watch requests happen live to pinpoint bugs fast. Give it a Try The project is fully open source, and you can grab it or check out the code using the links below: Download: Install it directly from the VS Code Marketplace . Source Code: Check out the repository, report bugs, or contribute on GitHub . Deep Dive: Read my full technical breakdown and design on Medium . If you are working with API chains, I would love for you to try it out. Drop your feedback in the comments below! Note: Arazzo v1.1.0 is out with official AsyncAPI support. I am currently updating the VS Code extension to support these new features. Stay tuned for future updates!

2026-05-31 原文 →
AI 资讯

How AI reads your website, and what that means for the people who build it

By Takeshi Yokoyama — Onecarat Labs Hi. I'm Yokoyama, and I build a local-first AI text editor as a side project, along with a few other experimental tools. Working on them, I keep running into the same question about where the web is going. This post is one observation, plus a small experiment I built to test it — including a Chrome extension you can actually try. The short version: I think websites will increasingly be read through AI agents, reshaped per reader, on the fly. And once that happens, there's a clear gap between sites that are easy for an AI to read and sites that aren't. What's starting to happen Until now, people read websites as websites. You open the top page, follow the menu, read the body, click a button — tracing the path the maker designed. As local AI and AI agents become normal, that breaks. People stop opening the page directly. They tell an AI what they want — "Can I try this quickly?" , "I just want to check it's safe" , "Just the gist" — and the AI reads the web and reshapes it into the form that reader wants. What the reader receives is no longer the layout the maker built. This isn't speculation. The idea that AI generates the interface for the reader already has a name — Generative UI — and it's one of the hottest areas in frontend right now, with Google, Vercel and others building toward it. But notice who's holding the pen in almost every version of that story: the site , or an AI embedded in an app — something under the maker's control. What I'm looking at is one step past that: a local AI, in the reader's own hands, reshaping any site into that person's preferred form — with no involvement from the maker at all. The initiative moves from the maker to the reader. The part that nags at me as a builder I build software too. So this shift nags at me. A site carries its maker's intent and rights. The order things appear in, what gets emphasized, the tone. Design, copy, flow — all of it is deliberate. Having an AI quietly reorder, rewri

2026-05-31 原文 →
AI 资讯

How I Built a Live Football Platform That Doesn't Fall Apart Under Load

A walkthrough of the architecture decisions behind Flacron Gamezone a production full-stack app built with Next.js, Express, PostgreSQL, and Redis. When a client approached me to build a live football match discovery platform, the requirements sounded straightforward on the surface: show live scores, let users subscribe, handle authentication. But the moment you start thinking about how those pieces connect in production, straightforward gets complicated fast. This is the story of how I designed the backend for Flacron Gamezone — what decisions I made, why I made them, and what broke along the way. Table of Contents The Problem With "Just Building It" The Architecture: Four Distinct Layers Why This Matters to a Client The Bug That Taught Me Something Real The Full Stack at a Glance What I'd Do Differently The Problem With "Just Building It" The easiest version of this app is a single Express file: one route handler that queries the database, formats the data, and sends a response. I've seen this pattern in tutorials everywhere. It works for demos. It falls apart in production. The problems are predictable: you can't test business logic without hitting the database, a change in one feature quietly breaks another, and the moment a second developer joins the codebase, nobody knows where anything lives. I wanted to build something I could actually be proud to show an employer or a client. That meant committing to a proper layered architecture from day one, even on a project this size. The Architecture: Four Distinct Layers The entire Express backend is organized into four layers. Each layer has one job and talks only to the layer directly below it. Route → Controller → Service → Repository Here's what each one actually does. Routes are just maps. They declare that POST /api/v1/subscriptions exists, attach the auth middleware, and hand off to the controller. No logic lives here. Controllers handle the HTTP boundary. They extract data from req.body or req.params , call th

2026-05-31 原文 →
AI 资讯

Have DIY website builders had an effect on the web-dev industry?

I've recently been getting reacquainted with frontend dev after having spent the last few years focusing mostly on design. I plan to do a combination of both again from now on. The last full-time job I was at we used drag-and-drop website builders that seem to be all the rage these days. I gotta say it was a truly painful experience. The websites we would handover would be a complete mess, clients would have to edit columns, widgets, layouts themselves which just felt like a recipe for disaster. We would often have to duplicate various widgets such as image sliders, one of mobile and one for desktop. I'd then have to explain to clients that they needed to update them twice, with the same content. Also, a lot of times I'd have to set up HTML widgets because of how limited the software was, so I'd also have to explain to clients that they'd sometimes need to edit actual code when simply updating content on their site. But the concerning thing is, I've had a number of other job interviews at marketing agencies lately and it seems like EVERYONE is doing the same thing. I also sometimes hear on podcasts people describing default WordPress as being 'old fashioned', as though the future of web dev is just doing everything with these hideous website builders WTF 🤮 Are these people mainly just taking the basic / shitty web dev projects while leaving the proper ones to those who know how to do it properly? or have a lot of developers lost out on work because of these? submitted by /u/Weekly_Frosting_5868 [link] [留言]

2026-05-31 原文 →
开发者

The Most Used Technology in the World Has Zero Marketing and Product People

174 million smart TVs, most of which run Linux. 3.9 billion Android phones. Zero marketing. Tonight, somewhere around the world, a person will press the power button on their Samsung TV. A proprietary Samsung logo will appear. A polished menu will load. They will open Netflix, scroll through recommendations, and pick a movie. They will never know that every frame they see is being scheduled, managed, and rendered by a Linux kernel, the invisible engine that sits between apps and hardware. They will then reach for their Android phone to check something on social media. Another Linux kernel. If they are sitting in a Tesla, the touchscreen showing their charging status is running yet another Linux kernel. The “year of the Linux desktop” debate has been running for two decades. Entire forums exist to argue about whether 2025, 2026, or 2027 will finally be the year Linux takes over the PC market.

2026-05-31 原文 →
AI 资讯

Stop Burning Tokens on Chat / Agent Loops — Here's What Actually Works

You’re Overpaying Every Day — You Just Can’t See It Think about the last time you asked an AI to clean up your meeting notes. You probably opened a new chat, pasted in the transcript — maybe 1,500 words — then pasted your usual notes template on top of that, then said something like “format this, bold the action items.” It worked. Useful, even. But here’s what actually happened: the model just read ~3,000 words to produce ~300 words of output. Do that five times a week. Every week. And now think about what’s riding along in that context every single time — your template, your formatting preferences, all the background you’ve already explained before. The model doesn’t remember any of it. It reads it fresh on every call. Every repeat. Every charge. This isn’t a flaw in ChatGPT. It’s the fundamental nature of chat as a paradigm. 2. Chat Is Great — But It Has a Structural Bug Chat is the most natural way to start with AI. Unclear what you want? Talk it out. Need to change direction? Just say so. The feedback loop is instant, the barrier is zero. That’s why everyone starts there. But chat has a structural problem: every single turn carries the entire history. This is how context windows work — the “conversation history the model reads every single time.” Every API call packages up your full history and sends it to the model. You pay for every token the model reads. Ten rounds in, round ten doesn’t cost the price of one message. It costs the price of all ten, stacked. Here’s a concrete version of this. Say you use AI to write your weekly status update. You paste in your bullet points from the week, say “turn this into a proper update,” tweak the tone, go back and forth a couple times. Feels efficient. But those bullets, plus the AI’s draft, plus your follow-up messages, plus the format you’re implicitly re-explaining each time — the real token cost of one weekly update is probably 5 to 8x what you’d guess. You’re paying for repeated context. The bill just isn’t obvious e

2026-05-31 原文 →
AI 资讯

I Built a Free AI Business Manager for Street Vendors in Hindi & English

How I Built a Bilingual AI-Powered Business Manager for Street Vendors in Jamshedpur The Problem Walk through any street in Jamshedpur, Jharkhand, and you'll find hundreds of small shop owners and hawkers running their entire business from memory — stock levels, daily sales, employee wages, profit margins. They have no tools. Notebooks get lost. Mental math fails. And at the end of the day, most don't even know if they made a profit. These vendors are not tech-illiterate. They have smartphones. They use WhatsApp. But every existing business app is either too complex, too expensive, or only available in English. I wanted to solve that. The Solution — Dukaan Manager Dukaan Manager is a free, offline-capable Progressive Web App (PWA) and Android app built for small shop owners and street vendors in India. It runs entirely in the browser — no server, no subscription, no data charges beyond the initial load. Built using HTML, CSS, JavaScript , and powered by the Gemini 2.0 Flash API , it gives every small vendor access to a smart business advisor in their pocket. What It Does 📦 Stock Management Vendors can add items by name or photo. Each item stores buying price, selling price, and quantity. The app automatically calculates profit margins and flags low-stock items with colour-coded alerts. 💰 Daily Sales Recording Sales are recorded item by item, linked to which employee made the sale. The app auto-fills prices and calculates the total. Unsaved drafts survive accidental page refreshes using sessionStorage. 👥 Employee Tracking Add employees with their role, salary, phone number, and joining date. Mark daily attendance (present/absent) with one tap. Track total sales made by each employee across all time. 📅 Sales History Every saved sale is stored permanently in the browser's localStorage. History is grouped by date, collapsible, and shows daily revenue and profit — clean and simple. 🤖 AI Business Advisor (Gemini-Powered) This is where Google AI comes in. Using the Gemini

2026-05-31 原文 →
AI 资讯

CSS @function

CSS just got its biggest quality-of-life upgrade since custom properties. For years, if you wanted reusable logic in CSS, you had two choices: wrestle with custom properties that couldn't do real computation, or reach for a preprocessor like Sass. That era just quietly ended. CSS now has native custom functions — and they're as powerful as you'd hope. 1. What Exactly Is @function ? Think of it exactly like a JavaScript function — but living inside your stylesheet. You give it a name (always prefixed with -- ), define some parameters, and write a result: descriptor that determines what it returns. /* BASIC SYNTAX */ /* Define it once */ @function --double ( --x ) { result : calc ( var ( --x ) * 2 ); } /* Call it anywhere */ .box { width : --double ( 20px ); /* → 40px */ height : --double ( 50px ); /* → 100px */ } No var() wrapper needed to call it. No build step. No Sass import. Just define and use — as many times as you like, across your entire stylesheet. Note: Unlike Sass, native CSS functions don't evaluate math automatically. You must wrap mathematical operations in calc() inside your result descriptor. 2. The Syntax in Full Detail Parameters with Default Values You can make parameters optional by giving them a fallback — the function still works even if you don't pass a value. @function --spacing ( --size : 16px ) { result : calc ( var ( --size ) * 1.5 ); } .card { padding : --spacing (); /* → 24px (uses default) */ margin : --spacing ( 20px ); /* → 30px */ } Type-Safe Parameters You can declare the expected type of each parameter — and the return type too. The browser will validate this at parse time, preventing weird cascading bugs. @function --fade ( --color < color > , --alpha < number > : 0.5 ) returns < color > { result : color-mix ( in srgb , var ( --color ), transparent calc ( var ( --alpha ) * 100% ) ); } .overlay { background : --fade ( royalblue , 0.3 ); /* 70% opaque blue */ } Logic Inside Functions This is where @function gets genuinely exciting. Y

2026-05-31 原文 →
AI 资讯

Lottie JSON vs .lottie Format — What's the Difference and Which Should You Use?

Two file formats. Same animations. Very different performance characteristics. If you've used Lottie before, you know the .json file — you export it from After Effects with the Bodymovin plugin, drop it into lottie-web, done. But there's a newer format: .lottie. It's a binary container that replaces the JSON, and if you're starting a new project, it's worth understanding the difference. What is Lottie JSON? The original format. A .json file that describes vector animations: shapes, keyframes, layers, colors, timing. It's plain text, human-readable, and widely supported. Pros: Works everywhere Lottie is supported Human-readable (you can inspect and edit it) Supported by every tool and library Cons: Large files (uncompressed JSON with lots of repeated data) No built-in support for multiple animations in one file No metadata or preview image support What is .lottie? The .lottie format (sometimes called dotLottie) is a ZIP container with a .lottie extension. Inside it contains: The animation data (compressed JSON) A manifest.json describing the file Optional preview images Optional multiple animations in one container It was developed by LottieFiles and adopted as the preferred format for modern Lottie tooling. Pros: ~30-70% smaller than equivalent JSON (thanks to compression) Can contain multiple animations in one file Supports preview thumbnails Cleaner API in the @lottiefiles/dotlottie-web renderer Cons: Binary format — not human-readable Requires the dotLottie player (not the older lottie-web) Slightly less universal support File Size Comparison For a typical 2-second UI animation: Format Typical Size Lottie JSON (.json) 40 – 120 KB dotLottie (.lottie) 15 – 50 KB The size reduction comes from standard ZIP compression applied to the JSON content. It's meaningful on mobile connections. Converting Between Formats The easiest way to convert between .json and .lottie formats is using the free browser-based tools at IconKing . No signup required, no file size limits. Just

2026-05-31 原文 →
AI 资讯

SVG Icon Systems in 2025 — Everything You Need to Know

Every web app needs icons. How you manage them at scale — that's where most teams make mistakes. This is the complete guide to building an SVG icon system that doesn't fall apart as your app grows. Why SVG (Not Icon Fonts or PNG) Icon fonts (FontAwesome, etc.) are the legacy approach. The problems: One broken font file breaks all icons Accessibility is terrible (screen readers read the unicode character) Crispy rendering requires specific font-smoothing hacks No multi-color support PNG icons are dead for UI work. Blurry on Retina, can't be styled with CSS, fixed file per size. SVG wins: Infinitely scalable, pixel-perfect on any screen Styleable with CSS ( currentColor , fill, stroke) Accessible with proper ARIA labels Can animate with CSS or SMIL Single format handles all sizes Where to Get Free SVG Icons IconKing SVG Library — 254+ free SVG icons in flat and outline styles. Covers UI, social media, food, objects, and more. Downloadable as individual SVG, AI, or PNG files. No account required. What sets IconKing apart: many icons have matching animated Lottie versions in the Lottie library — useful when you want an animated hover state that matches your static icon. Other solid free sources: Heroicons (heroicons.com) — MIT, Tailwind-made, 292 icons Phosphor Icons (phosphoricons.com) — MIT, 1,248 icons, 6 weights Lucide (lucide.dev) — ISC, 1,400+ icons, React/Vue packages Tabler Icons (tabler.io/icons) — MIT, 5,000+ icons Method 1: Inline SVG Best for: small number of icons, need CSS styling <!-- Inline the SVG directly --> <button aria-label= "Close" > <svg width= "20" height= "20" viewBox= "0 0 24 24" fill= "none" stroke= "currentColor" stroke-width= "2" > <line x1= "18" y1= "6" x2= "6" y2= "18" /> <line x1= "6" y1= "6" x2= "18" y2= "18" /> </svg> </button> The stroke="currentColor" means the icon inherits its color from the parent element's CSS color property — trivial theming. Method 2: SVG Sprite Best for: many icons, better performance (single HTTP request) Bui

2026-05-31 原文 →
AI 资讯

Free Loading Animations for Web Apps — Lottie, GIF, and SVG Spinners (2025)

Loading states are one of the most overlooked parts of app UX. A bad spinner makes an app feel cheap. A good loading animation makes wait time feel intentional. Here's a curated list of free loading animations you can use right now, organized by format. Lottie Loading Animations (Best Quality) Lottie is the gold standard for loading animations in 2025. Files are small (5-30KB), resolution-independent, and perfectly smooth at any size. IconKing Free Lottie Loaders — 500+ free Lottie animations including dozens of loading spinners, progress indicators, and transition animations. Download as JSON, no account required. Preview any file before downloading at iconking.net/preview . Customize colors to match your brand at iconking.net/editor — swap any color in-browser. Implementation (React): import { useEffect , useRef } from ' react ' ; import lottie from ' lottie-web ' ; function Loader ({ size = 80 }) { const ref = useRef ( null ); useEffect (() => { const anim = lottie . loadAnimation ({ container : ref . current , renderer : ' svg ' , loop : true , autoplay : true , path : ' /animations/loader.json ' }); return () => anim . destroy (); }, []); return < div ref = { ref } style = { { width : size , height : size } } />; } Implementation (Vanilla JS): import lottie from ' lottie-web ' ; lottie . loadAnimation ({ container : document . getElementById ( ' loader ' ), renderer : ' svg ' , loop : true , autoplay : true , path : ' /animations/loader.json ' }); Convert Lottie Loaders to GIF Need the loading animation as a GIF for emails, Notion docs, or environments where you can't run JavaScript? Free Lottie to GIF Converter — upload your JSON, get a GIF. Browser-based, no signup. Other export formats available at iconking.net: Lottie to WebP — animated WebP, smaller than GIF Lottie to APNG — animated PNG with transparency Lottie to MP4 — for video embeds Lottie to WebM — transparent video Lottie to SVG — static frame as SVG CSS SVG Spinners (Zero Dependencies) For simple l

2026-05-31 原文 →
AI 资讯

How to Add Lottie Animations to Your Website (Free JSON Files Included)

Lottie animations are small, crisp, and interactive. This guide covers finding free animations through production-ready implementation. What Is Lottie? Lottie is a JSON-based animation format from Airbnb. After Effects animations are exported via Bodymovin as small JSON files (10-100KB), rendered by a lightweight JS library. Key advantages over GIF: 10-50x smaller file size Resolution independent vector quality on any screen Interactive — play, pause, seek, speed control Full alpha transparency — no halo effects Step 1: Get Free Lottie JSON Files IconKing Free Lottie Library — 500+ free animations: UI icons, loaders, flags, illustrations. No account needed. Preview any file first: iconking.net/preview — drag and drop to instantly see how it plays. Edit colors and speed: iconking.net/editor — swap colors, adjust timing, all in-browser. Step 2: Install lottie-web npm install lottie-web Or CDN: <script src= "https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.12.2/lottie.min.js" ></script> Step 3: Basic Implementation import lottie from ' lottie-web ' ; const animation = lottie . loadAnimation ({ container : document . getElementById ( ' lottie-container ' ), renderer : ' svg ' , loop : true , autoplay : true , path : ' /animations/my-animation.json ' }); Step 4: React Component import { useEffect , useRef } from ' react ' ; import lottie from ' lottie-web ' ; function LottieAnimation ({ src , loop = true , size = 200 }) { const ref = useRef ( null ); useEffect (() => { const anim = lottie . loadAnimation ({ container : ref . current , renderer : ' svg ' , loop , autoplay : true , path : src }); return () => anim . destroy (); }, [ src ]); return < div ref = { ref } style = { { width : size , height : size } } />; } Step 5: Playback Controls animation . play (); animation . pause (); animation . setSpeed ( 1.5 ); animation . goToAndStop ( 30 , true ); // frame 30 animation . playSegments ([ 0 , 60 ], true ); // frames 0-60 only animation . addEventListener ( ' complete

2026-05-31 原文 →
AI 资讯

Idempotency Keys: The One API Pattern That Prevents Duplicate Payments (and Worse)

You hit "Submit Order" and nothing happens. The spinner just spins. Is it processing? Did the request get lost? You click again. If the API on the other end does not implement idempotency, you just placed two orders. Maybe two charges to your card. This is a solved problem — and the solution is simpler than you think. What Is Idempotency? An operation is idempotent if doing it multiple times produces the same result as doing it once. GET requests are naturally idempotent — fetching a resource does not change it. DELETE is also idempotent in practice. The trouble is POST and PATCH : create an order twice, and you get two orders. An idempotency key is a client-generated unique identifier (usually a UUID) that you send with a mutating request. The server stores this key with the result. If the same key arrives again — whether due to a retry, a network blip, or an impatient user — the server returns the cached result instead of executing the operation again. Implementing Idempotency on the Server Here is a minimal Express implementation backed by Redis: const express = require ( " express " ); const redis = require ( " ioredis " ); const { v4 : uuidv4 } = require ( " uuid " ); const app = express (); const cache = new redis (); app . use ( express . json ()); // TTL for idempotency records: 24 hours const IDEMPOTENCY_TTL = 86400 ; async function idempotencyMiddleware ( req , res , next ) { const key = req . headers [ " idempotency-key " ]; if ( ! key ) return next (); // optional on GET/DELETE const cached = await cache . get ( `idem: ${ key } ` ); if ( cached ) { const { status , body } = JSON . parse ( cached ); return res . status ( status ). json ( body ); } // Intercept the response to cache it const originalJson = res . json . bind ( res ); res . json = async ( body ) => { if ( res . statusCode < 500 ) { await cache . setex ( `idem: ${ key } ` , IDEMPOTENCY_TTL , JSON . stringify ({ status : res . statusCode , body }) ); } return originalJson ( body ); }; next ();

2026-05-31 原文 →
AI 资讯

How To: Re-engineer element to create pagination type layouts - walkthru pages/guides, etc...

This requires both CSS and JS, but is otherwise fairly lightweight and minimal. You can see the effect in action here: https://stephenmthomas.github.io/ico2go/ (Just drag and drop the "ICO2GO" logo in the upper left down into the drop zone to begin the conversion. Its also a single filed - embedded CSS and JS so right click view source, save, whatever...) I recently built an SVG to ICO converter (couldn't find one online that did exactly what I wanted, though doubtless one exists) - and I decided for really no reason at all to tweak the details summary elements to serve the main areas of the document in a "step 1 2 3" fashion. I had styled the elements with CSS already - initially to serve as an "about this app" sections - styling it so it fades in and slides to size. Then decided to just use them as a sort of walkthrough wizard... I'm going to present the steps backwards because the CSS at the bottom is technically optional, although it adds a nice touch and I highly recommend both using that CSS and saving it for later use - its a good way to style those elements outside of this somewhat ridiculous use-case. So, essentially, we are going to be using scaffolding like this - completely hidden sections of the page, as large or small as you want, able to be turned on, off or toggle as you see fit. Each page or section or chapter of the DOM will live inside of a detail summary block like so: <details id="areaHelloWorld"> <summary style="display: none;">HIDDEN AREA - HELLO WORLD/summary> <!-- YOUR CONTENT HERE --> </details> Debatable practice abound here, but because the summary is hidden and inlined, you can still use normal detail-summary sections elsewhere. Anyway, depending on your content... there are now sections of the DOM that are unrendered. There is no conventional way - as far as I know - to open/reveal the content in the details section when the summary is not displayed. To hide or show these areas, you simply add the open attribute to the appropriate detai

2026-05-31 原文 →
AI 资讯

I'm looking for an Android Studio template that build Apk from Html ?

HI people. I'm looking for a template like that. I made a simple Html note app by Claude and want to make it a propher Android app. I don't know coding. I don't think i want to spend year learning this too. I make it just for personal use and won't publish it on google story or anywhere else. I liked Web2apk Builder but it's not free (i don't have money, honestly). But with Android studio i have to deal with hundreds unknow unknow so i wonder if there is a template outhere (maybe on github) that could help me out ? Thank you for your attention to this matter !!! submitted by /u/Moonnnz [link] [留言]

2026-05-31 原文 →
AI 资讯

Need some advice from my peers who have gained some years of experience

​ Hey folks i am reaching out in a bit of distress. i am software engineer i been in the industry for 3 years 2 years as a freelancer and over a year as a corporate employee. I have shipped hundreds of features, fixed legacy code base others wouldn't dare to touch. My latest feat was to ship a fully fledged Crypto Trading platform to production. My clients are secretive but their projects are really interesting. Multi encryption dashboards with AES. And what not. Automations through kestea. Long story i have massive exposure to industry practices and modern trends in tech. i am writing APIs in Elysia and Go. Changing legacy redux to modern zustand. I am experienced with docker and Kubereeties and i manage multiple servers for my clients. I kinda lean towards bare metal more What im struggling at is im getting paid dirt cheap cause i live a 3rd world country. 300 dollars/ month. I been struggling to get clients online and so much so i have spent hundreds of dollars on upwork and been trying different platforms. But nothing. I know its a luck's game too but i still feel like im doing smth wrong. My rates are all over the place i have charged clients 30$/ hour and im getting paid like 300/ month at the same time If i do find a client its someone local who also pays dirt cheap but way more then my job does very rarely i am satisfied with the work I've given. The argument my job place gives is i lac experience and we don't have clients. What should i do form here on out im getting anxious about my future and doubting myself now. Like i know how the code works how systems work what the trend is but getting client's is where i am struggling Ps i am working 2 jobs like 15-16 hrs a day one is my secure permanent job that pays dirt cheap and other ones are my freelance cleints that pay me decently ig. But i find them once every 3 months Ps ill appreciate some reconditions Oh and another PS : i made a promotional post earlier and was lazy to edit that so now i made a full post

2026-05-31 原文 →
AI 资讯

I built a tool to visualize architectures and visualized popular web frameworks

Hi all, my friends and I build an open-source tool which uses static analysis and a slim layer of LLMs to visualize the architecture of a project. The tool is open-source: https://github.com/CodeBoarding/CodeBoarding We have also generated quite a few projects over time you can find them all on github as well: https://github.com/CodeBoarding/awesome-architecture-mds What are some projects that are interesting to you, I will visualize them to see how are they build! submitted by /u/ivan_m21 [link] [留言]

2026-05-31 原文 →