AI 资讯
I built a detention-pay calculator for truckers in a day — unglamourous niches beat another AI wrapper
Every "what should I build" thread on here is full of AI wrappers fighting over the same five SaaS founders. Meanwhile there's a guy sitting at a loading dock right now, doing arithmetic in his head, who is about to undercharge his broker by a few hundred bucks because nobody built him a 30-second tool. I built that tool. It's a free detention-pay calculator for truck drivers. This is the build log — the niche-selection, the single-file stack, and two decisions (an SVG gauge and a no-mail-service auth scheme) that were more interesting than the app deserves. I'm not a trucker. I build small free web tools for industries other may find unglamourous or not enticing enough. That honesty matters later. The problem (worth $2–6k/yr to one user) Truckers get a "free time" window at a dock — usually 2 hours. Past that, the broker owes detention pay (~$50–100/hr). Drivers leave an estimated $2,000–6,000/year of it unclaimed, mostly because the math + the paperwork is annoying enough to skip. So the spec wrote itself: In/out times + free hours + rate → dollars owed. Export a dispute-ready PDF they can email the broker. Work on a phone, no login, instant. Validating before writing a line The mistake I almost made: assume the niche is empty because I'd never heard of it. I checked. It is not empty — DockClaim ($49/mo, GPS tracking), Detention Buddy, a couple of $9.99/mo App Store apps, even a free email-gated web calculator or two. That killed my first instinct ("be the only one") but clarified the real wedge: everything is a paid app download or email-gated. The opening was a genuinely free, no-signup, instant web version that also generates the claim PDF. Not "the only detention tool" — the one with the least friction. I'll say more on why I'm careful about that claim at the end. Lesson: validate to find your angle , not just a go/no-go. "Crowded but all friction-heavy" is a fine market. The stack: one HTML file No framework. The whole app is a single self-contained .html — m
AI 资讯
SQL-like Queries in FSRS Plugin for Obsidian
SQL-like Queries in FSRS Plugin for Obsidian Spaced repetition in Obsidian usually works as "show all cards with due earlier than today." That's enough for simple cases, but once you have hundreds of notes, you want to filter, sort, and select. My FSRS plugin now has a query language resembling SQL. It turns a markdown block into a live table that updates with every review. ``` fsrs-table SELECT file as "Note", r as "Retrievability", date_format(due, '%d.%m.%Y') as "Due" WHERE r < 0.7 ORDER BY r ASC LIMIT 20 ``` → the table shows the 20 most "forgotten" cards, sorted by retrieval probability. From Simple Settings to an Embedded DB Initially I planned to offer table settings using standard SQL syntax. But pretty quickly the syntax became a real query language, and the implementation itself — an embedded lightweight DB. High-level test coverage in TypeScript made it easy to iterate on functionality located in the WASM module via an AI agent. When faced with dual-language testing (TypeScript + Rust), the artificial intelligence prefers to do the job properly rather than fake it. After implementing the lexer → parser → AST → evaluator pipeline for numeric values, I extended it to strings, added filtering via WHERE, then functions. Extending the syntax or adding a function came down to a single request to the agent — and a feasibility check. What's Inside fsrs-table Supported Features SELECT — choose fields, rename via AS . WHERE — conditions with = , != , < , > , <= , >= , AND , OR . ORDER BY — sort ascending ( ASC ) or descending ( DESC ). LIMIT — cap the number of rows. date_format() — convert the due date to any text format. Available fields: Field (alias) Type Description file string path to the note due date next review date stability (s) number stability in days difficulty (d) number difficulty retrievability (r) number probability of recall (0…1) reps number total number of reviews state string New, Learning, Review, or Relearning elapsed number days since last r
AI 资讯
[Imposter syndrome] Back to the beginning (DevSecOps path)
I’ve been writing my project - Python port scanner for 9 months now. You might be wondering, “Why is it taking so long?” Most of the time was spent figuring out how raw sockets work, how to write a function for manually assembling a packet, calculating the checksum, packing the IP packet bytes, the TCP header, the pseudo-header using struct.pack, sending the packet, and how SYN scanning works. Why did I decide to take such a complicated route instead of just using Scapy? I’m a principled person and have a very exhausting yet useful skill—understanding everything. That’s how I got acquainted with big-endian, or “network byte order.” I won’t go into the details of big-endian logic, to be honest, I’m already mentally exhausted It took several evenings and nights to analyze and understand the principles—watching videos, reading RFCs, and looking at GitHub code (which I didn’t understand)—but what bothered me most was that I had to ask gemini for an explanation. As I mentioned above, I’m very principled; I can’t just copy code without understanding it, so I ask gemini for a prompt like this: “Don’t write the code for me. If I end up asking you for an example because I’m tired, explain it line by line.” Yesterday I realized I don’t fully understand Python (basics)—I don’t remember REPL—so I went to ask Gemini for advice; I don’t have anyone competent who could help me with advice. I’m not very sociable, and the only thing that’s interested me for the last four years is IT. I used to make music. Lately, something strange has been going on with my health, the day before yesterday I woke up because of a nosebleed; this has happened before, but on a larger scale. I stopped working on the scanner yesterday and decided to try writing a backup script in Python. I found an article and jotted down in Obsidian what the project should and shouldn’t do. Previously, the project used Docker, Prometheus, and Grafana. My questions: Am I a good developer, and am I even one at all? Should
AI 资讯
2 years later, anyone using PandaCSS? Like it?
I have been using PandaCSS + Ark UI to build out my components on my app. I kind of like it, I mean really its an alternative to Tailwind basically using CSS in JS, but with full types so you don't need an extension to get auto-complete. Where it gets clunky for me though is the build tooling having to build the styled-system directory with everything...but I mean I guess Tailwind has its own building configuration. I'm just curious cause I've kind of liked it, but really see it used much. Most I can find on info is like videos and stuff when it first came out. submitted by /u/k032 [link] [留言]
AI 资讯
[Showoff Saturday] Prose reader, a reading system engine
Hey everyone, I’m the author of prose, an MIT-licensed SDK/engine for building reading apps: https://prose-reader.com/ It’s a TypeScript, web-based reader engine that can be used to build anything from a simple image/archive-based comic or manga reader to a more complex EPUB reader with navigation, search, annotations, gestures, zoom, pagination, and custom reading behavior. It supports EPUB and archive-style formats like ZIP/CBZ/CBR, and can run in the browser or inside mobile apps through WebView/React Native. One of the main ideas behind Prose is its enhancer system , which works like a plugin system. Enhancers let you add or modify reader capabilities without changing the core engine, so apps can build their own UX and features on top. The project has been around for about 6 years, but I haven’t promoted it much. It’s also used in Oboku , an open-source reading app I’ve been building: https://oboku.me/ AI disclaimer: I have about 15 years of experience as a developer, and I use AI as a tool to help me iterate faster and improve quality, not as “vibe coding” or a replacement for my own judgment. It has helped me deal with many small problems and move the project forward faster. I’m looking for developers who might be interested in trying it, giving ideas, or providing feedback to help improve it. GitHub: https://github.com/mbret/prose-reader Docs: https://doc.prose-reader.com/ Demo: https://demo.prose-reader.com/ Discord: https://discord.com/invite/dffDEgwNc5 Would love to hear what you think. submitted by /u/yabai90 [link] [留言]
AI 资讯
I built a web app where you generate 3D objects made up of separate, logically connected parts (instead of monolithic blobs generated by standard AI generators)
Link: https://nova3d.xyz It's free but you'll need to bring your own API Key (BYOK). For open source enthusiasts, check out the github repo at: https://github.com/RareSense/Nova3D This project is a big deal if you see limitations of current AI 3D generators (like Meshy or Tripo). They produce solid, monolithic 3D objects that look good but are practically useless, because: - Want to change the arm of a robot you generated? Regenerate the entire asset. - Want to edit something manually? The whole thing collapses because it's not actually structured. - Want to rig or animate it for a game? Can't easily do that, because it’s a dead, monolithic blob instead of a functional, modular asset. This is a flutter front-end with a python, fastAPI and headless blender back-end. Would love to get community feedback! submitted by /u/mhb-11 [link] [留言]
AI 资讯
I've been QA-testing indie and AI-built sites this week — the same handful of things are broken on almost all of them
The same issues keep showing up — the kind that look fine but quietly cost signups or search ranking. Sharing in case it helps your own site: Forms with placeholder text instead of real labels. "Email"/"Password" shown inside the box looks labeled, but it isn't — the text vanishes when you type, and screen readers + browser autofill don't read it. Quiet signup killer. Heading levels that skip. Jumping from an H1 straight to an H3 with no H2. Invisible to the eye (it's in the markup), but it confuses screen readers and how Google reads your page. A main CTA that doesn't actually go anywhere. More common than you'd think — the button looks fine but the click loops or dead-ends. Worth literally clicking your own "Get started" and following it through. Missing title / meta description. Google then writes its own (usually worse) snippet for you, costing click-throughs. No social preview tags (Open Graph). Share your link on X or Reddit and it shows a blank, ugly preview instead of a title + image. Founders share links constantly, so this one stings. Most take 5 minutes to fix once you know they're there. Full disclosure: I built a tool that checks for this ([Sweep]( http://www.usesweep.app) ) — happy to run yours and send the report if you drop a URL below. But honestly, just checking these five by hand is worth an afternoon. submitted by /u/Hairy_Wash_9086 [link] [留言]
开发者
Built free app for game design and worldbuilding
Hi! I want to share a project that I work for a while. It started from idea to get rid off manual copying data from game design documents to game engine. Here you can define your game objects, their props, relations and everything will be stored in structural JSON format that can be read by Unity, Godot, Unreal and other engines. What we have now? construct **wiki-like documents **using a block editor and template system (markdown is supported too) design dialogues of your game in special graph editor create maps and prototype levels on canvas store and manage database of game objects use created objects inside engine directly or export data to customizable data formats (arbitrary JSON, CSV) Made it free and open source. Please try (have Windows and Mac builds) and give your feedback Source code: https://github.com/ImStocker/ims-creators Itch.io: https://nordth.itch.io/imsc-desktop
AI 资讯
You Have a Free AI Model Sitting in Chrome Right Now
Hello, I'm Maneshwar. I'm building git-lrc, a Micro AI code reviewer that runs on every commit. It is free and source-available on Github. Star git-lrc to help devs discover the project. Do give it a try and share your feedback for improving the project. You might not have noticed, but Chrome quietly started shipping a local AI model called Gemini Nano bundled right into the browser. No API keys. No cloud round-trips. No per-token cost. It just runs on your machine. The interface to talk to it is called the Prompt API , and it landed in Chrome 138. I spent some time going through the full API surface and built a playground that lets you experiment with every feature session management, streaming, structured output, multimodal input, response prefixing, and more in one page. This post walks you through all of it. Why does this matter? On-device AI flips the usual tradeoffs: Free at runtime — the model runs on the user's hardware, not your servers Private by default — no data leaves the device once the model is downloaded Works offline — after the initial download, no network required Low latency — no round-trip to a data centre The catch is that Gemini Nano is a small model. It's great for classification, summarization, Q&A on focused content, and structured extraction. It won't replace GPT-4 for complex reasoning. Think of it as a smart, free, always-available layer you can add on top of your existing product. Enabling the API The Prompt API isn't on by default in all Chrome builds. Enable two flags: Step 1 — Go to chrome://flags/#optimization-guide-on-device-model and set it to Enabled BypassPerfRequirement . Step 2 — Go to chrome://flags/#prompt-api-for-gemini-nano and enable both the base API and the multimodal option. Relaunch Chrome. Then visit chrome://on-device-internals to check the model download status. First use will trigger a download — Gemini Nano is a few gigabytes. The Playground I put together a single-file HTML playground that covers the entire API
AI 资讯
I created a fork of GunDB and rewrote it in TypeScript using Vibe Code
Inspired by a similar project called GenosDB and Cloudflare’s initiative to rebuild Next.js, I decided to rebuild GunDB with a modern coding style, incorporating improvements and addressing shortcomings in the original technology. I used the OpenCode tool with the Big Pickle model to rewrite the project in a new graph database called Garfo (the Portuguese word for “fork”), and I was impressed with the results and its practical applications. In this article, I’ll explain the technology and its improvements over GunDB. Introduction Garfo is a modern, browser-first fork of GUN.js — the decentralized, offline-first graph database. A fork of the original project that keeps the familiar GUN graph API while bringing meaningful improvements to the modern JavaScript ecosystem. Why a Fork? GUN.js is a revolutionary technology — a graph database that syncs in real time, works peer-to-peer, resolves conflicts automatically, and runs in the browser. However, the JavaScript ecosystem has evolved. TypeScript has become the standard, ES modules are the norm, and new transport layers like Nostr have emerged as promising decentralized protocols. Garfo was born to fill these gaps: a GUN rewritten with modern typing, designed with the browser as a first-class citizen, and with native support for the Nostr protocol. Key Features Familiar Graph API If you've used GUN before, you'll feel right at home. Garfo exposes the same chainable API: import Garfo from ' garfo ' ; const db = new Garfo ({ localStorage : true }); db . get ( ' users ' ). get ( ' alice ' ). put ({ name : ' Alice ' , status : ' online ' }); db . get ( ' users ' ). get ( ' alice ' ). on ( profile => { console . log ( ' Update: ' , profile ); }); All the classic methods are there: get() , put() , set() , on() , once() , map() . Optional Nostr Transport This is one of the most exciting additions. Garfo can use Nostr relays as a transport layer, allowing peers to exchange graph messages through public or private relays: const
AI 资讯
6 Advanced JavaScript Questions That Separate Seniors from Mid-Levels
1. Stale closure & primitive capture What is the output of the following code? function createIncrement () { let count = 0 ; const message = `Count is ${ count } ` ; function increment () { count ++ ; } function log () { console . log ( message ); } return { increment , log }; } const { increment , log } = createIncrement (); increment (); increment (); log (); Test your understanding of closures, lexical scope, and primitive value capture. ✅ Output Count is 0 🧠 Explanation This is a classic stale closure trap — but not in the way most developers expect. Step-by-step execution: createIncrement() is invoked → new lexical environment created: count = 0 (mutable binding) message = "Count is 0" (primitive string, interpolated immediately at assignment) Inner functions increment and log are defined. Both close over the same lexical environment. increment() is called twice: count mutates: 0 → 1 → 2 ✓ This works as expected. log() is called: It references the variable message message still holds the original string value "Count is 0" The template literal was evaluated once, at the moment of assignment — not re-evaluated when log() runs. 🔑 Core Concept > Closures capture variables , not expressions . > But if a variable holds a primitive value (string, number, boolean), that value is fixed at assignment time. message is not a live reference to count . It is a snapshot . 🛠 How to fix it (if dynamic output is desired) Re-evaluate the template literal inside log() : function log () { console . log ( `Count is ${ count } ` ); } 🎯 What this question tests Concept Why it matters Template literal evaluation timing They run at assignment, not at access Primitive vs reference types Primitives are copied by value; objects/arrays are referenced Closure capture semantics Closures close over bindings, but the value of a primitive is immutable once assigned Mental model of "live" variables Not all variables in a closure are "live views" — only the bindings themselves are 2. JavaScript co
AI 资讯
How to build your professional network as a developer — authentic strategies
How to build your professional network as a developer — authentic strategies Building a Genuine Professional Network in Tech: A Practical Guide for Introverts and Extroverts Networking in tech isn’t about collecting business cards or forcing yourself to “work the room.” It’s about building real relationships with people you can learn from, collaborate with, and support over the long term. Whether you’re an introvert who prefers deep one-on-one conversations or an extrovert who thrives in crowds, you can build an authentic network that opens doors to mentorship,Jobs, collaborations, and career growth. Redefine Networking: It’s About Relationships, Not Transactions Forget the image of awkward name tags and empty promises to “grab coffee sometime.” Real networking is: Swapping war stories about debugging nightmares Sharing a job posting with someone who’d be a great fit DMing a speaker to say their talk inspired you Helping someone solve a problem without expecting anything back Quality over quantity isn’t just a buzzword-it’s your career strategy. You need 5-10 real connections, not hundreds of superficial contacts. Leverage Twitter (X), LinkedIn, and Dev Communities Effectively Twitter/X for Developer Networking Dev Twitter is alive and vibrant. Use it to: Share what you’re learning (builds credibility) Comment thoughtfully on others’ posts (starts conversations) DM speakers after webinars to say you enjoyed their talk Join tech conversations using relevant hashtags (#100DaysOfCode, #BuildInPublic) LinkedIn Profile Optimization Write a clear headline that explains what you do and what you’re curious about Share project updates, lessons learned, or thoughtful commentary on industry trends Join niche developer groups related to your tech stack Send personalized connection requests mentioning something specific you admired about their work Developer Communities (Discord, GitHub, Open Source) Join Discord servers for your favorite languages/frameworks Contribute to open
AI 资讯
I made a game where you draw country borders from memory
Hi r/webdev ! I've been building my geography games site for a while now, and I just added a new game I wanted to share with you called Draw the Country . The idea is simple: you get a country name and a blank canvas, you sketch the border, and then the real outline slides over your drawing so you can see how close you got. You can play freehand, or draw with border anchors guiding you if you want it easier or you just want to learn. There's also a daily freehand challenge same country for everyone, every day. It's completely free. No ads, no sign-up. It's built with Nuxt, Vue, Tailwind, and Supabase. Check it out: https://www.geographygames.net/draw-country Any feedback is appreciated and I hope you enjoy it! PS: The video is recorded on my laptop so drawing with the trackpad is a bit tricky. submitted by /u/ExtremeMotor3772 [link] [留言]
AI 资讯
A tool for developers
Hello. I have launched https://devtools.aarushnaik.co.uk , a tool for developers to minimise the amount of tabs devs have open. It has a lot of frequently used tools like Regex Checker, JSON Formatters and lots more. It is completely free with no hidden costs (if you would like to support me, there is a Buy Me A Coffee button on the website). If you have any suggestions, please use the google form on the website to report bugs, give feature suggestions and more! Thanks, Aarush. submitted by /u/Extreme_Insurance334 [link] [留言]
AI 资讯
[Showoff Saturday]I rebuilt AOL Instant Messenger in the browser with real-time messaging
I built WebAIM — a fully browser-based recreation of AOL Instant Messenger, the chat app that defined the internet for a whole generation. Sign in with a screen name, build your buddy list, blast someone with a "lol brb," set a cryptic away message quoting your favorite band, pick a buddy icon, join a chat room, and actually talk to real people in real time — all with the authentic Windows 98 look, classic door-knock sounds, and every bit of the nostalgia. What's under the hood: - Real-time messaging powered by Firebase - Buddy lists, groups & online presence - Away messages with auto-reply (and the classic %n, %d, %t variables) - Buddy icons & editable profiles - Group chat rooms - The actual AIM sounds - Full Windows 98 desktop UI — taskbar, desktop icons, start menu, the works submitted by /u/RancidMilkMan [link] [留言]
AI 资讯
I made a tiny website about stuff my dog loves
Hey guys For my dog Viggo's 6th birthday, I got the idea to make a website as a celebration of him. It started with a couple of short animations, and then I just kept going because it was so much fun. The site is intentionally simple. No accounts, AI, or endless scrolling. Just a bunch of tiny looping moments. Tech-wise it's built with React, Next.js, SQLite, CSS Modules, and pixel art created in Aseprite. I'd love to hear what you think! submitted by /u/Individual_Health1 [link] [留言]
AI 资讯
PostPilot 1.5.6 - Sequence Flow, Command Palette, Collection Search & More
Sequence Flow Hi r/webdev , I've been shipping a series of updates to PostPilot over the last few releases (1.5.1 → 1.5.6). Main additions: Sequence Flow Build multi-request workflows from any collection Reorder execution steps Execute the entire flow with one run Useful for auth flows, setup requests, API testing, and repeated debugging workflows Command Palette Quick access to actions and navigation from anywhere in the workspace Collection Search Search kits, folders, and collections from the sidebar Supports method + name matching (e.g. get user ) Variable Extraction Extract values directly from JSON responses into workspace variables Automatically generates the JSONPath Desktop Improvements Auto Update support Close-app confirmation dialog Smarter table column width estimation Improved Sequence Flow collection loading Better responsive behavior in smaller windows Recent additions from earlier releases: MongoDB write operations JSON comparison mode SSL support for self-signed certificates Collection organization improvements PostPilot is a local-first API client, database client, and JSON inspector. Project: https://www.postpilot.dev Changelog: https://www.postpilot.dev/changelog Feedback is welcome, especially around Sequence Flow workflows and API testing use cases. submitted by /u/lactranandev [link] [留言]
AI 资讯
Found an impersonation scam on indeed
Applied to this job. Googled the company, it's a real company. Fishy website but whatever. Got an email from the job posting to do a coding test. It's a google doc with open read access pointing to a figma file with open read access. It says to submit fully coded layouts to a random github user. That user profile is listed as located in Ukraine. If you go to company page on Indeed, it's unclaimed. Yet a person is messaging me via a job post associated with the unclaimed profile, leading me to believe it's the company. If you go to the company's real website jobs page, this job is not listed at all. Indeed in making it possible for people to easily impersonate companies and try to get free work, and who knows what else. STAY WOKE Link to google docs "test" https://docs.google.com/document/d/1lkbS_Mw655_fZbHuABLLQ9vyX5OhcWrO4o4_p53AH-0/edit?tab=t.0 Link to figma: https://www.figma.com/design/7SgqDtl84sAJisWNkZ41bP/Sample-Design?node-id=0-1&p=f&t=AcL8p49tCHnKvHfN-0 Link to git hub profile https://github.com/sharomet Real company's job page: https://lendingpad.com/lendingpad-corp-jobs submitted by /u/notgoingtoeatyou [link] [留言]
AI 资讯
Run Aider on Ollama, Bedrock, or Any LLM Provider — One Gateway, Every Model
Aider is the best terminal AI coding tool I've used. But by default it sends every diff through your OpenAI or Anthropic key, which gets expensive fast on real refactors — a single 100-file repo map can torch a few dollars before Aider even reads your prompt. This post shows how to run Aider against any LLM provider — Ollama for free local runs, OpenRouter for mixed-provider routing, AWS Bedrock for the enterprise plate — through a single OpenAI-compatible endpoint. I'll use Lynkr , the self-hosted gateway I maintain, but the pattern works with any OpenAI-compatible proxy. Full disclosure: I build Lynkr. I'll point out where it loses to LiteLLM and OpenRouter further down so you can make an honest call. The setup in three commands # 1. Start the gateway npx lynkr@latest # 2. Point Aider at it export OPENAI_API_BASE = http://localhost:8081/v1 export OPENAI_API_KEY = any-value # 3. Run Aider with any model name Lynkr knows about aider --model openai/gpt-4o That's it. Aider speaks the OpenAI Chat Completions protocol; Lynkr speaks it back and quietly translates the call to whichever upstream provider you've configured (Ollama, Bedrock, Anthropic, Azure, OpenRouter, Databricks, llama.cpp, LM Studio, ...). Aider has no idea it's talking to a router. Why bother? The cost math Aider's own leaderboard shows GPT-4o and Claude 3.5 Sonnet at the top — but you don't need a $3-per-million-tokens model to rename a variable. You need it for the architecture decisions. Lynkr's tier routing splits the work: Aider call type Routes to Cost Repo map summarization qwen2.5-coder:7b (Ollama, local) $0 File edits, single-function diffs gemini-flash-1.5 (OpenRouter) ~$0.075/M Architecture / multi-file refactors claude-3.5-sonnet (Anthropic) $3/M On a typical 4-hour Aider session, 80–90% of the calls are repo-map and small-diff calls. Routing those to local + cheap models while keeping Claude Sonnet for the hard reasoning has cut my own Aider spend by roughly 70%. Your mileage will vary base
AI 资讯
BAIXAR VÍDEO DO YOUTUBE
Criei um gerenciador de downloads desktop em Python e quero feedback da comunidade! O PyFlowDownloader é um app desktop feito com Python + PySide6 que usa yt-dlp para baixar vídeos e áudios de forma assíncrona do youtube. Algumas coisas que ele já faz: Fila de downloads com progresso em tempo real Cancelamento de downloads ativos ou pendentes Suporte a MP4 e MP3, de 144p até 1080p Histórico com exportação para CSV Interface desktop com tema visual via QSS Build para Windows via PyInstaller + pipeline de release no GitHub Actions Está na versão v0.3.0 e ainda tem muito espaço pra crescer. Repositório: https://github.com/Vinny00101/PyFlowDownloader Se você puder **testar e deixar sua opinião nos comentários, ficaria muito grato! Quer saber: O que achou da experiência de uso? Algum bug que encontrou? O que você adicionaria ou melhoraria no projeto? Todo feedback é bem-vindo!