Get the top HN stories in your inbox every day.
YesBox
I changed gears and moved into the video games industry at the end of 2021.
I started developing a city builder called Metropolis 1998 [1], but wanted to take the genre in new directions, building on top of what modern games have to offer:
- Watch what's happening inside buildings and design your own (optional)
- Change demand to a per-business level
- Bring the pixel art 3D render aesthetic back from the dead (e.g RollerCoaster Tycoon) [2]
I just updated my Steam page with some recent snapshots from my game. Im really happy with how the game is turning out!
[1] https://store.steampowered.com/app/2287430/Metropolis_1998/
[2] The art in my game is hand drawn though
iknowstuff
So pretty. But:
> Both adults in a family will now own a car. This is required since there are not other transportation options, and sidewalks are optional.
Is this temporary or are you planning to release it like this? SimCity leaned into euclidean zoning (separate industrial/residential/commercial zones) and pocketable cars which needed no parking, and thus failed to properly showcase how ugly car-centric cities actually are. I’m sure they did it because it made for an easy gameplay loop/balancing but I’d hope we could come up with more realistic and interesting mechanics in 2026
sersi
I actually would really love that in a city planner. A game that actually simulates walkable cities versus car centric abominations and would adapt families strategies based on the availability of sidewalks, public transports and incentives.
YesBox
The limited transportation options is temporary (the game is launching into early access).
Both adults owning a car will be dynamic/based on the city once there are more transportation options.
I'll also be adding options so the player can control how difficult traffic management is.
titanomachy
Did you ever play cities: skylines? Keeping traffic manageable was a big part of the gameplay. Without good transit the roads would all gridlock regardless of how many lanes you add to the highways.
iknowstuff
Played it a ton! But they stuck with euclidean zoning from SimCity and most car trips in CS don't need parking - they just disappear if there's not enough surface parking for them. They also poof away when stuck in traffic too long (unless modded).
dumbaccount123
[dead]
smusamashah
I have been following you on twitter since I saw it. It looks amazing. Recently tried the demo. It is like under 50MB (the demo at least) which is insane these days. Placing building required construction of the building room by room which was tedious. I am sure some people will enjoy that. Will that be the core part of final game?
YesBox
Thanks! Designing your own buildings is optional. The game has a feature to place zones where buildings automatically grow, but will be limited to residential and office zones at early access launch.
zelphirkalt
Can you tell more about your background? Making a sim like this also crossed my mind many times, but I learned in the past, that without much of any art skills, I would have to use resources of others or hire someone to make the graphics and so on. In the times of me playing around with RPG maker it was the missing story that was the problem. So it seems often that one core aspect is missing, when wanting to make a game. How did you learn to fill that gap, learn how to get that skilled with making the graphics?
YesBox
My career background is software, but I've been a creative person my whole life.
Ive hired out help for the pixel art, and then I enhance everything with shaders (tech art).
If you're gonna make a game as an indie, you need to figure out ways to fill in your skill gaps. The competition is brutal. If you can't do it/dont have time to learn and do it, then the only other option is to hire out.
or
A lot of studios are formed from people (cofounders) who depart larger studios, so if you really want to get into the industry, you could start there and network.
tarokun-io
Metropolis 1998 looks beautiful! (and addictive!)
Will you do a native Linux release, or has it been tested with Proton?
Also, just from watching the video and screenshots in the Steam page, it seems like a crazy amount of work. Are you doing everything by yourself?
YesBox
Thanks :)
I'll be looking into porting during early access. I've heard the game runs on Linux with a compatibility layer though.
I do everything except the pixel art and buildings. It is a crazy amount of work!
yreg
We really do need more new isometric grid based games. They are less realistic but it is _so_ satisfying to build in them.
I've commented on it before: https://news.ycombinator.com/item?id=39810716
nanders
I am one of those who grew up with Sim City/Transport Tycoon. I will definitely try this when it's released and go back into nostalgia but with a modern touch. Adding it to my wishlist right now. Good luck with wrapping this up towards a release!
2muchclout
This looks awesome! From the isometric perspective, how did you do the walls or vertical stuff in general? I have done a few game like that and always find it to be a struggle in 2D.
YesBox
Thanks! The vertical axis is also broken down into a grid in a sense. Each "cell" is placed in a specific floor as far as the engine is concerned.
So like (C++):
vector<uo_map<int, ObjStruct>>
Each vector element is a floor. You just need to move the sprite up in screen space to position it.Though I wish I went with a vector<vector<vector<ObjStruct>>> approach now a days <chunk_id>, <floor>, <object>
_el3m3n7
Love the concept! I would love it even more if you could add support for SteamDeck/proton
keithnz
Vibe-coded a YouTrack CLI tool in < 1 hour:
Also working on a language for embedded bare-metal devices with built-in cooperative multitasking.
A lot of embedded projects introduce an RTOS and then end up inheriting the complexity that comes with it. The idea here is to keep the mental model simple: every `[]` block runs independently and automatically yields after each logical line of code.
There is also an event/messaging system:
- Blocks can be triggered by events: `[>event params ...]`
- Blocks can wait for events internally
- Events can also be injected from interrupts
This makes it easy to model embedded systems as independent state machines while still monitoring device state.
Right now it’s mostly an interpreter written in Rust, but it can also emit C code. I’m still experimenting with syntax.
Example:
module WaterTank {
type Direction = UP|DOWN
let direction = UP
let current = 0
[>open_valve direction |> direction]
[>update level |> current]
[
for 0..30 |> iteration {
when direction {
UP -> !update level=current + 1 |> min(100)
DOWN -> !update level=current - 1 |> max(0)
} ~
%'{iteration} {current}'
}
]
[>update level |> when {
0..10 -> %'shallow'
11..15 -> %'good'
16.. -> %'too much!' then !open_valve direction=DOWN
}
]
}vintagedave
> automatically yields after each logical line of code
I've become more and more interested in code that yields (coroutines etc, read this fascinating article on HN just a couple of days ago: https://willhbr.net/2026/03/02/async-inject-and-effects/ )
Can you share more about this? How the async model works? Why it does -- is it a performance guarantee given the RTOS comment? Or is it more about the state machine idea, and how or why does yielding every line (not, say, every state transition, though I have no idea if or why that would be more useful) relate to that?
I mostly just have lots of questions because it sounds fascinating, so if you're looking for an excuse to talk about it, please count this as that excuse!
keithnz
The idea is not so much any kind of hard real time guarantee (in practice it switches quickly so it is soft realtime) but what you often have when doing bare-metal embedded systems is a lot of parallel state machines, not necessarily because the state machine is the best mechanism it's more because you want things to happen in parallel in C/C++, this can be annoying to deal with so you end up with these statemachines that don't block, you cycle through them, and you get "parallel" operation, but anything can block other statemachines, and things like long running for loops need to be broken into non blocking states. I've often thought an Actor Model like thing would be really nice if baked into the language and that the actors were all "live" such that were all processing in parallel and firing off events as needed which is how I started this. I initially was thinking switching on something like state transitions / explicit yields but every statement yielding automatically lets you run multiple "forever" loops which in turn might have long running for loops (like updating a display) statement switching means you don't have to worry about when to yield. Instead I reversed it and figured it would be nicer to define things that need to run as an atomic operation as that seems to be less frequent. This way you generally don't need to worry about blocking and it feels like it's programming as if it was pre-emptive multitasking. Multiple little programs all concurrently running and firing off events to communicate with each other
keithnz
holy, downvotes on what I'm working on?
benterix
You said "vibecoded", maybe it triggered someone. I upvoted you as I just learned YouTrack exists, and it has 10-users free plan, I'm going to give it a try,
keithnz
YouTrack is pretty good in that is easy to plan and manage work across multiple projects. Jetbrains made it years ago when they got frustrated with Jira for managing their projects. For most of their products (IntelliJ, Ride, Webstorm, Datagrip, etc) if you want to raise a bug you raise it in their YouTrack. It is super customizable and has a reasonable API. Only thing I find is their website is a bit sluggish. The API is pretty quick though, so the CLI tool is reasonably snappy.
mtsolitary
You said the v word!
undefined
akkartik
Yeah it's a nice project. Maybe it was an accidental click by somebody. I tried to compensate for it.
tomwojcik
Since subreddits related to identifying AI images/videos got very popular, my wife started to send me cute AI generated videos, older family members can't distinguish AI videos at all, I've decided to code a weekend side project to train their Spidey sense for AI content.
The content is hand picked from tiktok, Instagram, Facebook, Reddit and other AI generating platforms.
Honestly I don't know where I'm going with this, but I felt the urge to create it, so here it is.
I learned how to optimize serving assets on CloudFlare.
Feedback welcome.
wonger_
+1 for training parents' tech literacy.
I dunno if/how this could be taught, but I feel like half the battle is critical thinking with an adversarial mindset towards media -- who would make this, why would they want to show me, do I see anything that makes this impossible, is it worth engaging with in the first place, can I fact check this.
tomwojcik
Yep, my thoughts exactly. But the consumer rarely thinks critically when looking at ads, not to mention regular social media posts and the Big Corp has no money in proving what assets are AI generated.
I'm trying to gamify the training to make the experience more appealing.
I store a "proof URL" on the backend, but I don't know if it makes sense to serve it to the end user. Also, a Reddit discussion is not necessarily a proof one wants. A fingerprint would be better, but not all images are generated with Google. That's another problem to be solved.
Melatonic
Great idea - are you sure however that all of the "AI Generated" examples are actually AI? What about stuff made by good old fashion human + photoshop ? Obviously this would still be "generated" or not real but I think it is a somewhat important distinction
zelphirkalt
Tricky! I often also guess wrong. But I noticed it has some bug. Sometimes I can click either option "AI Generated" or "Real" and nothing happens. Even if I click 10 times, still nothing happens. The buttons must have some broken event handling or something.
EDIT: Hm, I switched tab, away to write this comment, now that I switched back, it showed me that I clicked correctly. So it seems, that sometimes it just has huge delay in accepting my choice?
tomwojcik
The project got some traction, over 5k requests since I posted this. Probably the DB state needs to be optimized a bit. Thank you for reporting! I really appreciate it
Edit: I don't see slow traces in Sentry. No idea what caused this. Also, voting goes through redis and the dB load is low. Weird. I probably have to add gunicorn workers.
Edit2: Bumped gunicorn workers from 2 to 4. Should be fine now, under the current load. Again, thank you for reporting!
jayteedee
I love this. Each time my parents need their wifi fixed I'm going to make them do 5 of this app before it get to work.
tomwojcik
Thank you for the kind words. I don't expect it to spread like fire, but I'd appreciate if you could share it with your folks. I don't intend to monetize it, my goal is to have some small daily traffic.
It's SFW and localized to the most popular languages.
jayteedee
Update. I didn't expect my parents to enjoy playing the game. Apparently, they are aware that they are falling for AI videos and don't like it. And there are a lot of entertaining videos to keep them engaged and easy to spot "give me's" to keep the frustration level down.
monkaiju
What does the "this one is controversial" label mean? Does it just mean the voters are split or does it mean its not known whether or not the image/video is actually AI-generated?
wastewastewaste
I somewhat like it for what it is, but expected something else based on description. This is just a real/ai guesser that doesn't really train you at all.
edarchis
I think that it's a great opportunity to play with relatives. Each person can explain why/why not and that's probably the main point.
It'll also probably shut the mouth of those who think that they know better. This works with the driving license. Start a test with the whole family and watch the older men get a reality check.
tonelord
I like it too. But I think the training is to realize that human brains are already far behind detecting AI generated content as of 2025/26, and our brains probably won't ever catch up.
ebonnafoux
The question is can you be trained? Beside the obvious case, some IA generated photo could not be distinged from real one.
looperhacks
How do you know that the videos are AI or not? For many of them it's pretty clear, but I imagine not every user is labelling their AI uploads properly
paulhebert
I'm still having a lot of fun releasing daily puzzles for my game Tiled Words: https://tiledwords.com
It just won an award! It was awarded Players' Choice out of 700 daily web games at the Playlin awards: https://playlin.io/news/announcing-the-2025-playlin-awards-w...
Right now around 3,500 people play every day which kind of blows my mind!
It's free, web-based, and responsive. It was inspired by board games and crosswords.
I've been troubleshooting some iOS performance issues, working on user accounts, and getting ready to launch player-submitted puzzles. It's slow going though because I have limited free time and making the puzzles is time consuming!
Here's an article with more info about the award: https://cogconnected.com/2026/03/tiled-words-crowned-the-pla...
linsomniac
My wife and I just finished our morning Tiled Words and Bracket City. It's become part of our morning routine. Thanks for it, it's a lot of fun!
paulhebert
That’s awesome, thanks!
Bracket City is great! Definitely one of my favorites
abraxas
Than you for Tiled Words. It quickly became a morning ritual to complete the daily puzzle. I wish there were more mobile games that are not obnoxious. The idea and the execution are top notch.
My only concern is that there is a buzzing noise if the app is in the foreground and some audio is playing in the background. This is on pixel 9a
paulhebert
Thanks for playing!
Oh interesting, thanks for the bug report! I hadn’t heard that one yet. I’ll look into it
abraxas
You're welcome, thanks for making it! The noise is intermittent and may simply be CPU/GPU overload and the resulting sound distortions. But it could be something else. It is quite reproducible on my phone.
tclancy
I think I am getting close to a 100 day streak. Thanks!
paulhebert
Awesome, thanks for playing!!
suzdude
I don't play every day, but I've been a big fan of Tiled and showed it to a number of other folks.
Thank you so much for keeping it going!
paulhebert
Thanks for playing and sharing!
jasondigitized
How did you go from 0 users to 3,500? Genuinely curious how people get their games off the ground.
paulhebert
It's been a gradual process over the last 5.5 months. Here are some of the things that worked for me:
- I applied to showcase the game at the Portland Retro Gaming Expo with the Portland Indie Game Squad. They accepted me so I was able to showcase it at the expo for a day. This got me some players right off the bat
- I shared it on HN, Reddit, Mastodon, etc.
- The website Thinky Games wrote an article about it
- The YouTube channel Cracking the Cryptic shared it which got a lot of new players. More recently a couple of other YouTubers (Timotab and Stro Solves) have been posting videos regularly
- I link to it from my blog, and this unrelated rant went semi-viral in web dev circles: https://paulmakeswebsites.com/writing/shadcn-radio-button/
- Winning the award gave me more visibility and players
I've also tried using things like Instagram and Discord but haven't had much luck there. I don't really get how those platforms work.
To be honest I'm not great at marketing. I've just been experimenting and seeing what works.
---
I would say the most important thing is the game itself:
- I've worked hard to gather feedback and incorporate it into the gameplay.
- I focus on keeping the puzzles fresh and striking the right difficulty level. (Challenging but something most people can do in 10 minutes.)
- I built a sharing feature that ~300 or so people use a day
I think all my marketing would have been useless if people didn't like the game and want to play again and share it with their friends.
vintagedave
I remember seeing this! It was cool, and I will remember to play it more.
Re creating puzzles, does this mean you have to manually do them one per day? Is there a way to automate them ahead of time (as in have an app generate a bunch of puzzles you can pick from or tweak)?
popupeyecare
Im building https://trypixie.com to legally employ my 7 year old child, save on taxes and contribute to her Roth IRA.
Im also building https://www.keepfiled.com, a microsaas to save emails (or email attachments) to google drive
I almost forgot, I also built https://statphone.com - One emergency number that rings your whole family and breaks through DND.
I love building. I built all these for myself. unfortunately I suck at marketing so I barely have customers.
yangikan
Do you use Twilio for statphone? Or SIP? I want to build a telephony app, but the economics don't work out with Twilio.
popupeyecare
The economics don’t work for StatPhone either but I figured if it has value, I can find other ways to make money or bring down costs.
yangikan
Thank you - I figured Google Voice provides basic multiple rings facility. What are the extra things that you provide on top of that?
rhoopr
Can you clarify how Statphone deals with the problem of random spam calls hitting the number by chance and ringing everyone? I assume that’s how most spam operates these days, just brute force on number permutations. I love the idea!
popupeyecare
Sure!
Unfortunately if a spammer called the StatPhone number, it would dial everyone. I thought about blocking or automatically categorizing but then you may miss an important call from an unknown number.
Most spammers are actually operating off of known lists, usually made off of some data leak.
I haven’t encountered that issue yet. I don’t have a great solution for that case.
rhoopr
Fair enough! It's an extremely hard problem to solve.
sakopov
How do escalations work for statphone? If the first group doesn't respond to the call, does it escalate to the second group while the call is in progress still? What happens if the caller hangs up? Very cool idea btw!
popupeyecare
Hi!
If the first group doesn't pick up, it starts calling the second group, but first group continues to ring.
If the caller hangs up, all ringing is stopped.
The cool thing is if it encounters the native phone's voicemail, it hangs up and continues to ring so doesn't think it was a picked up call.
We do have our own voicemail that will eventually answer (user defined timing), which then transcribes and sends the voicemail+transcription to all the group members.
codazoda
Me too. Maybe we could mastermind? Reach out, my email is in my profile.
sunnybeetroot
Amazing landing for statphone, mind if I ask if it’s using any sort of UI library?
hju22_-3
I must concur, very tasteful.
popupeyecare
Nope. Just iterated slowly. Started by looking templates I liked on dribbble.
otterley
Did you consult any tax lawyers before releasing trypixie? Feels super risky.
popupeyecare
I did and a few CPAs. Surprisingly my customers have been CPAs buying to offer to their clients.
Pixie is more like quickbooks or any other record keeping software. We don’t employ the children, their parents do. And as long as the kids are doing legitimate work, it’s fair and actually the irs has a page on it. https://www.irs.gov/businesses/small-businesses-self-employe...
sudokatsu
Statphone is such a genius idea - very cool.
hmokiguess
Love these, really cool!
dataviz1000
I'm using TimescaleDB to manage 450GB of stocks and options data from Massive (what used to be polygon.io), and I've been getting LLM agents to iterate over academic research to see if anything works to improve trading with backtesting.
It's an addictive slot machine where I pull the lever and the dials spin as I hope for the sound of a jackpot. 999 out of 1000 winning models do so because of look-ahead bias, which makes them look great but are actually bad models. For example, one didn't convert the time zone from UTC to EST, so five hours of future knowledge got baked into the model. Another used `SELECT DISTINCT`, which chose a value at random during a 0–5 hour window — meaning 0–5 hours of future knowledge got baked in. That one was somehow related to Timescale hypertables.
Now I'm applying the VIX formula to TSLA options trades to see if I can take research papers about trading with VIX and apply them to TSLA.
Whatever the case, I've learned a lot about working with LLM agents and time-series data, and very little about actually trading equities and derivatives.
(I did 100% beat SPY with a train/out-of-sample test, though not by much. I'll likely share it here in a couple weeks. It automates trading on Robinhood, which is pretty cool.)
mmaunder
Nice. I played with this a bit. Agents are very good at Rust and CUDA so massive parallelization of compute for things like options chains may give you an edge. Also, you may find you have a hard time getting very low latency connection - one that is low enough in ms so that when you factor in the other delays, you still have an edge. So one approach might be to acknowledge that as a hobbyist you can't compete on lowest-latency, so you try to compete on two other fronts: Most effective algorithm, and ability to massively parallelize on consumer GPU what would take others longer to calculate.
Best of luck. Super fun!
PS: Just a follow-up. There was a post here a few days ago about a research breakthrough where they literally just had the agent iterate on a single planning doc over and over. I think pushing chain of thought for SOTA foundational models is fertile ground. That may lead to an algorithmic breakthrough if you start with some solid academic research.
undefined
tgrowazay
I tried exactly this - loading polygon.io data into TimescaleDB, and it was very inefficient.
Ended up using ClickHouse - much smaller on disk, and much faster on all metrics.
dataviz1000
Interesting. I'm not familiar with ClickHouse. I've been manually triggering compression and continuous aggregates have been a huge boon. The database has been the least of my concerns. Can you tell me more about it?
gregleon
You can take a look at this: https://github.com/ClickHouse/stockhouse The database schema is optimised for stock data
dzink
Fun fact - some of it may be a subset of all data and with trimmed outlying points, so when you set some stop loss conditions they get tripped in the real world, but not by your dataset. Get data from my sources.
undefined
happiness0067
Relateable. If I had a dollar for every time I ran into issues with time zones, that would be a profitable strategy in and of itself.
bitcoinmood
This sounds pretty awesome. Is it similar to what I've been seeing with the Polymarket bots and such?
latenightcoding
what filters are you using to find the papers, anyone you enjoyed/recommend?
KellyCriterion
not the OP:
- everything around Statistical Arbitrage
- you can adapt ideas from electrical engineering (phase detection etc.)
There is giant pool of ideas & methods you could apply.
dataviz1000
I'll notice that the trading model will filter out bear down trends which is very, very helpful but it doesn't trade short. I'll ask the coding agent to find several academic research papers about trading once intraday during a down trend -- a single scalping. It will return with ~10 references. It will recreate the model, do statistical analysis, and create a search grid backtest. This will immediately give information if there is any alpha. If there is, it will iterate integrating the concept into the existing trading model.
It has enough information that it will continue to iterate for the next several hours.
It's all happening in a black box. I have no idea. My concern isn't trading but rather to get it to continuously improve unsupervised without lying or hallucinating.
arthurcolle
did RH open up API for trading?
dataviz1000
I developed a Claude skill that will interact with and press every button intercepting every request / response on a website building a Typescript API. I only have $10 in that account so there isn't much damage that it can do. Probably get me banned but I don't use Robinhood for real trading.
arthurcolle
I have used RH to get data for experiments but I heard they insta-ban any API usage to actually execute trades FWIW
sourishkundu23
[dead]
marginalia_nu
Cooking up a NSFW filter for marginalia search.
Pipeline so far has gone like this:
* Use the search engine's API to query a bunch of depravity
* Use qwen3.5 to label the search results and generate training data
* Try to use fasttext to create a fast model
* Get good results in theory but awful results in practice because it picks up weird features
* Yolo implement a small neural net using hand selected input features instead
* Train using fasttext training data
* Do a pretty good job
* for (;;) Apply the model to real a world link database and relabel positive findings with qwen to provide more training data
Currently this is where I'm at
Accuracy: 90.90%
True Positive: 1021
False Positive: 154
True Negative: 2816
False Negative: 230
Precision: 0.8689
Recall: 0.8161
F1: 0.8417
There's a lot of vague middle ground and many of the false positives are arguably just mislabeled.SubiculumCode
Just want to say that I love your search engine for my ttrpg side projects to find obscure blogs, etc. thank you.
Bombthecat
Never heard about it. Is it like Google search? And why does it need a nsfw filter?
marginalia_nu
It's like google search in 1998.
It needs an NSFW filter because some people want it, especially certain API consumers.
sscarduzio
Nice cover up for ... actually hoarding depravity ;)
marginalia_nu
It really is for scientific purposes! ;-)
jll29
For scientific search experiments, you may like to consider using PyTerrier (which facilitates comparing multiple search model types - (sparse) vector space model; Boolean model; Binary Probabilistic Model; Support Vector Learning-to-Rank model; Divergence from Randomness model; (dense)embedding ranked retrieval models etc.).
nhatcher
Well, I just jumped full time on IronCalc[1] a fully open source, light and fast spreadsheet engine designed and build from the ground up.
I have been working on it as side project for over two years and now, with funding from the EU for the next 2.5 years, I hope I can make of it a real product for everyone to use that can compete with the likes of Excel and Googl;e Sheets.
I can oly say, I am overly, off the Moon excited
arnorhs
Which EU grant did you receive? Ie. from which fund?
edit: nm, rtfm, it was on the landing page: Horizon Europe programme
nhatcher
Answered to a sibling comment. NLnet and HORIZON.
NLnet is just amazing and can keep you going if you are a student or have some extra sources of income
HORIZON is a huge grant but fairly hard to obtain. Generally related to reasearch grants in academia
yvely
Looking at it and very excited. In unsupported features, charting is mentioned. Could there be any value in not directly implementing the drawing of charts, but tie in to other open source library? Just curious of your thinking.
nhatcher
I think charts is one of those few things I won't implement from scratch, as there are already fantastic libraries out there:
https://github.com/ironcalc/IronCalc/issues/348
We will start working on it by July according to the plan. (This will add a lot if value to the project BTW)
hju22_-3
Oh, neat. Didn't expect to see IronCalc here for some reason, have been considering it for a side-project. Thanks for the hard work. :)
FattiMei
Interesting, how was the EU funding process?
nhatcher
First we got a grant from the NLnet[1], which I highly recommend as a first step of any project. Single best thing I could have done. That wasn't enough money for me to quit my job. Also I didn't have any _evidence_ that IronCalc was a good idea or that there was a market for it. Then evidence started pouring and I kept working. I started talking to different folks, lots of people many of those were contacts through the NLnet. Then the folks from NextGraph[2] approached us and asked, "Hey do you want to be part of this consortium [3]?". Eventually we got a HORIZON grant after a lot of sweat and paperwork, but NextGraph took the brunt of it.
As you see there is a huge component of sheer luck
[1]: https://nlnet.nl/project/IronCalc/ [2]: https://nextgraph.org/ [3]: https://elfaconsortium.eu/
bambax
Congrats! But what is a spreadsheet "engine" as opposed to a spreadsheet program?
nhatcher
The "engine" is the computational part of it. And it is completely separted from the UI. You can use it from Rust, Python, nodejs or from the browser and eventually from a destop app.
The important thing is that is all those cases the engine is the same. I
BrunoBernardino
My wife and I continue to work on Uruky, a EU-based Kagi alternative [1]. Since last month we got deals with a couple more search providers but we’re still waiting for EUSP/STAAN to provide us with an API key (we have progressed through a few more forms and signatures and legal stuff, though).
We’ve continued to get some paid customers and have exited beta last week, given everyone seemed to be quite satisfied and there hadn't been requests for changes, only some specific search providers.
Because of bots there isn’t a free trial easily available, but if you’re a human and you’d like to try it for a couple of days for free, reach out with your account number and we’ll set that up!
Thanks.
P.S.: Because people have asked before, our tech stack is intentionally very "boring" (as in, it generates and serves the HTML + bits of JS to enhance settings and such — search can be done without JS), using Deno in the backend (for easier TypeScript), PostgreSQL for the DB, and Docker for easier deploying.
mschild
Surprisingly, I haven't heard of Uruky yet, even though I'm actively looking for EU replacements to a lot of international companies.
I have subscribed for a month and will give it a try.
One feedback already though. Some of the German translations are...not great. For example, on the landing page under the "Not another AI tool". In English you write "We find it hard to do in a sensible, responsible, and respectful way." In the German translation its "Es fällt uns schwer, vernünftig, verantwortungsvoll und respektvoll zu handeln."
The German translation makes it sound like you (as in you as a company and person) have a hard time being respectful, not the actual AI implementation.
BrunoBernardino
Thank you so much for the kind words, suggestions, and support! We don't natively speak German, and we used DeepL for most of the translations.
We are currently working with a professional technical translator for German (should get updated translations in a week or two) and will consider that for other languages, but it's quite expensive to do more of that right now.
mschild
That's perfectly understandable and good to hear!
Do you generally want feedback and have a preferred channel for it beyond hackernews comments?
alabhyajindal
Hi Bruno - this looks great! I remember collaborating with you a couple times on Kagi's browser extensions. Was there a specific moment that made you want to work on Uruky, or was it because of the overall direction Kagi is heading in?
BrunoBernardino
Hey Alabhya! Nice seeing you here! :)
I don't think Kagi is heading in a necessarily "bad" direction, though I don't agree with it, and I also think there's value in a product that's solely focused on private and personal search, that doesn't have to be as expensive, expansive (Drive, Maps, Email, etc.) or big (team and resources-wise) as they are.
I hope that makes sense!
vintagedave
This sounds great, and I like it being EU-based (and, presumably, not reusing Yandex like Kagi famously does?)
Could you share more info about how you're building it? Like Kagi it wraps / reuses multiple other providers? How do you do that affordably, and how do you merge the results together into a good answer?
BrunoBernardino
Thanks! Sure. We are 100% transparent on all the search providers we're using, you can see them in the FAQ, and Yandex isn't used.
Initially we called all search providers and merged the results in a round robin fashion (so first of the first provider, first of the second provider, first of the third provider, then second of the first provider, second of the second provider, and so on), deduplicating them, but this was becoming very costly and inefficient once we had 3 and more search providers (most providers will return results within 500ms, but not infrequently one would take up to 2s or more — we timeout there, so I don't know if it'd take much more —, slowing everything down), so now we give everyone the choice of which providers to use first, and we pick results from the first two (we're actually considering switching to just the first, as costs are still a bit high and we don't want to increase pricing).
I hope that provides some more clarity! Happy to answer any more questions.
esperent
Very cool, wishing you the best of luck with this.
One bit of feedback from me, take it or leave it, but the name doesn't feel appealing or memorable. What does it mean?
vintagedave
It makes me think of the Uruk-hai from Lord of the Rings. To me that is not a positive connotation. I feel bad writing anything even slightly negative about what is a really, really awesome project, though, and I hope that you meet with success :)
BrunoBernardino
Thanks for the kind words! They might not be "standard pretty" but I'd say they're arguably resilient and disciplined, so it's not all bad! :D
BrunoBernardino
Thanks! We'll happily take suggestions, but I read it like "Euro-key". My wife also doesn't love the name, but we couldn't come up with (or find) anything with 5 letters or less that sounded decent so far.
There's no specific meaning, though I can't say I dislike the close name matches with Uruk-hai [1] and Uruk [2]! :)
esperent
I was going to say in my earlier comment that I probably didn't like it because it sounds like Uruk Hai, and the person in the comment below also said it. So safe to.say that's what most of your users will also think of. "Large ugly orc" is a terrible word association for an app even if you personally like it.
Have you tried searching for meaningful words in other languages? Kagi means key in Japanese, for example. I've had luck with this approach before.
KellyCriterion
I wish you good luck and a very healthy stamina :-))
Search is _incredibly_ hard, there are reasons why there are no real Google competitors.
BrunoBernardino
Thank you! We're not trying to be a Google competitor (that would be too much!), "simply" an alternative!
alessioalex
I know Kagi is using Yandex (Russian search engine), that's why I am no longer using it.
Is Uruky using Yandex?
BrunoBernardino
Hello! We are 100% transparent on all the search providers we're using, you can see them in the FAQ, and Yandex isn't used.
RGamma
Why is Yandex a problem? All the mainstream providers are heavily censored.
kleiba
Given the notorious European branding, consider renaming it eureuky ;-)
BrunoBernardino
Haha! I definitely read it "euro-key", but we wanted fewer letters! :D
Bombthecat
Would a family plan possible?
BrunoBernardino
You can simply share the same account number, unless you're looking for different settings per account number? In that case, feel free to reach out and we'll figure something out.
asciimoo
I'm working on a self-hosted search service called Hister with the goal to reduce my dependence on online search engines.
Hister is basically a full text indexer which saves all the visited pages rendered by your browser. It provides a flexible web (and terminal) search interface & query language to explore previously visited content with ease or quickly fall back to traditional search engines.
Here's a little summary of the background/motivation/beginnings: https://hister.org/posts/how-i-cut-my-google-search-dependen...
Project site: https://github.com/asciimoo/hister
Website: https://hister.org/ Read-only demo: https://demo.hister.org/
order-matters
i love this and have been a long time complainer that browsers dont automatically operate this way.
how does it handle forms or homepages with refreshed content? for example, the home page of hackernews - will it always show the latest feed from the last time i had a connection or will it store each time ive visited it ?
asciimoo
Thanks <3
Currently it overwrites the previous content with the latest if there is any change, but I'd like to add option to store diffs as well in the future.
djb_hackernews
I live in an old house.
The front bump out leaks when we get driving rain. I installed some flashing but that wasn't enough, it's still leaking. So I'm working on that so I can close up the big hole in the ceiling some day.
The prior owners filled in the old coal chute with literal bags of cement sort of artistically placed in the hole in the brick foundation. So I'm trying to figure out what masonry tools and skills I'll need to close it up proper.
I'd like to build my kids a playhouse of some sort, sketching out some designs for that.
happiness0067
As in they put bags of unmixed cement in the chute?
Very exciting on the playhouse. What kind of things will it have?
I'm expecting my first this year so have a ways to go before I get to work on that project
wonger_
Any way you could share the sketches? Seems fun and interesting.
jsattler
https://github.com/jsattler/BetterCapture
I'm building a lightweight screen recorder for macOS. It supports lots of features you'd expect from a professional screen recorder such as ProRes 422/4444, HEVC/H.265, and H.264, capturing alpha channels and supports HDR. Frame rates from 24 to 120fps. Can capture system audio and mic simultaneously. You can also exclude specific things from recordings, like the menu bar, dock, or wallpaper.
No tracking, no analytics, no cloud uploads, no account. MIT licensed. Everything stays on your Mac. Still early, but happy to hear feedback!
Get the top HN stories in your inbox every day.
What are you working on? Any new ideas that you're thinking about?